• Home
  • Raw
  • Download

Lines Matching full:a

5 <a name='SkPath'></a>
10 class <a href='SkPath_Reference#SkPath'>SkPath</a> {
12 enum <a href='#SkPath_Direction'>Direction</a> : int {
13 <a href='#SkPath_kCW_Direction'>kCW_Direction</a>,
14 <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>,
17 <a href='#SkPath_empty_constructor'>SkPath()</a>;
18 …<a href='#SkPath_copy_const_SkPath'>SkPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>&…
19 <a href='#SkPath_destructor'>~SkPath()</a>;
20a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_copy_operator'>operator=</a>(const <
21 …<a href='#SkPath_equal_operator'>operator==</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>…
22a href='#SkPath_notequal_operator'>operator!=</a>(const <a href='SkPath_Reference#SkPath'>SkPath</
23 …bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='SkPath_Reference#SkPat…
24a href='#SkPath_interpolate'>interpolate</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& e…
26 enum <a href='#SkPath_FillType'>FillType</a> {
27 <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>,
28 <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>,
29 <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,
30 <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>,
33 <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>() const;
34 void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft);
35 bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>() const;
36 void <a href='#SkPath_toggleInverseFillType'>toggleInverseFillType</a>();
38 enum <a href='#SkPath_Convexity'>Convexity</a> : uint8_t {
39 <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
40 <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>,
41 <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>,
44 … <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>() const;
45 …<a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUn…
46 …void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> con…
47 bool <a href='#SkPath_isConvex'>isConvex</a>() const;
48 …bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds) con…
49 …bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect)…
50 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset()</a>;
51 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind()</a>;
52 bool <a href='#SkPath_isEmpty'>isEmpty</a>() const;
53 bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>() const;
54 bool <a href='#SkPath_isFinite'>isFinite</a>() const;
55 bool <a href='#SkPath_isVolatile'>isVolatile</a>() const;
56 …void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatil…
57a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>S…
58a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>S…
59 … const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, bool exact);
60a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'…
61 …const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3, const <a href='SkPoint_Reference#SkPoin…
62 …bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='…
63 int <a href='#SkPath_countPoints'>countPoints</a>() const;
64 …<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index)…
65 …int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a h…
66 int <a href='#SkPath_countVerbs'>countVerbs</a>() const;
67 …int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t <a href='SkPath_Reference#Verb'>verbs</a>[], i…
68 void <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& other);
69 …const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>() co…
70 void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>() const;
71 …<a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBoun…
72a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_R…
73 void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount);
74 void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>();
75a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocume…
76 …<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='S…
77a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocu…
78a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocume…
79 …<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='S…
80a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocu…
81a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocume…
82a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='Sk…
83a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocu…
84a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocu…
85 <a href='undocumented#SkScalar'>SkScalar</a> w);
86a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='…
87a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undo…
88 <a href='undocumented#SkScalar'>SkScalar</a> w);
89a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocu…
90 … <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3);
91a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='…
92a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undo…
93 …<a href='undocumented#SkScalar'>SkScalar</a> dx3, <a href='undocumented#SkScalar'>SkScalar</a> dy3…
94a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRe…
95a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocument…
96a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPo…
98 enum <a href='#SkPath_ArcSize'>ArcSize</a> {
99 <a href='#SkPath_kSmall_ArcSize'>kSmall_ArcSize</a>,
100 <a href='#SkPath_kLarge_ArcSize'>kLarge_ArcSize</a>,
103a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocument…
104 …<a href='#SkPath_Direction'>Direction</a> sweep, <a href='undocumented#SkScalar'>SkScalar</a> x, <
105a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPo…
106 const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy);
107a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocume…
108 …<a href='#SkPath_Direction'>Direction</a> sweep, <a href='undocumented#SkScalar'>SkScalar</a> dx, …
109 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_close'>close()</a>;
110 …static bool <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>F…
111a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonI…
112a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(const <a href='SkPoint_Reference#SkPo…
113 …<a href='undocumented#SkScalar'>SkScalar</a> w, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pt…
114a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_R…
115a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect<…
116a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='…
117a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='…
118a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocu…
119 …<a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
120a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='…
121a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='…
122a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='un…
123 …<a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
124a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='Sk…
125a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const…
126 …<a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
127a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const…
128 …<a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>);
129a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href…
130a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href…
131 …<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href=…
132a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::init…
134 enum <a href='#SkPath_AddPathMode'>AddPathMode</a> {
135 <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>,
136 <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>,
139a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
140 …<a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend…
141a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
142a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
143 …<a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend…
144 …<a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(…
145a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undoc…
146 …void <a href='#SkPath_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href=…
147a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>&…
148 …id <a href='#SkPath_transform'>transform</a>(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix<…
149 …bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* la…
150 …void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a
151 …void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</
153 enum <a href='#SkPath_SegmentMask'>SegmentMask</a> {
154 <a href='#SkPath_kLine_SegmentMask'>kLine_SegmentMask</a> = 1 << 0,
155 <a href='#SkPath_kQuad_SegmentMask'>kQuad_SegmentMask</a> = 1 << 1,
156 <a href='#SkPath_kConic_SegmentMask'>kConic_SegmentMask</a> = 1 << 2,
157 <a href='#SkPath_kCubic_SegmentMask'>kCubic_SegmentMask</a> = 1 << 3,
160 uint32_t <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() const;
162 enum <a href='#SkPath_Verb'>Verb</a> {
163 <a href='#SkPath_kMove_Verb'>kMove_Verb</a>,
164 <a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
165 <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>,
166 <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
167 <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>,
168 <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
169 <a href='#SkPath_kDone_Verb'>kDone_Verb</a>,
172 …bool <a href='#SkPath_contains'>contains</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a hr…
173 …void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a hre…
174 void <a href='#SkPath_dump'>dump()</a> const;
175 void <a href='#SkPath_dumpHex'>dumpHex</a>() const;
176 size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer) const;
177 …<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkData'>SkData</a>> <a href='#SkPath_…
178 size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length);
179 uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>() const;
180 bool <a href='#SkPath_isValid'>isValid</a>() const;
185a href='SkPath_Reference#Path'>Paths</a> contain geometry. <a href='SkPath_Reference#Path'>Paths</
186 …line a figure. <a href='SkPath_Reference#Path'>Path</a> always starts with a move verb to a <a hre…
187 …additional <a href='SkPath_Reference#Verb'>verbs</a> that add <a href='undocumented#Line'>lines</a
188 Adding a close verb makes the geometry into a continuous loop, a closed <a href='SkPath_Overview#Co…
189 <a href='SkPath_Reference#Path'>Paths</a> may contain any number of <a href='SkPath_Overview#Contou…
191a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Overview#Contour'>contours</a> may contain…
192a href='#Path_Quad'>Quadratic_Beziers</a>, <a href='SkPath_Reference#Conic'>Conics</a>, and <a hre…
195 When used to draw a filled area, <a href='SkPath_Reference#Path'>Path</a> describes whether the fil…
196 outside the geometry. <a href='SkPath_Reference#Path'>Path</a> also describes the winding rule used…
197 overlapping <a href='SkPath_Overview#Contour'>contours</a>.
199 Internally, <a href='SkPath_Reference#Path'>Path</a> lazily computes metrics likes bounds and conve…
200 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_updateBoundsCache'>updateBoundsCache…
202 <a name='Verb'></a>
204 <a name='SkPath_Verb'></a>
209 enum <a href='#SkPath_Verb'>Verb</a> {
210 <a href='#SkPath_kMove_Verb'>kMove_Verb</a>,
211 <a href='#SkPath_kLine_Verb'>kLine_Verb</a>,
212 <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>,
213 <a href='#SkPath_kConic_Verb'>kConic_Verb</a>,
214 <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>,
215 <a href='#SkPath_kClose_Verb'>kClose_Verb</a>,
216 <a href='#SkPath_kDone_Verb'>kDone_Verb</a>,
220a href='#SkPath_Verb'>Verb</a> instructs <a href='SkPath_Reference#Path'>Path</a> how to interpret…
221 manage <a href='SkPath_Overview#Contour'>Contour</a>, and terminate <a href='SkPath_Reference#Path'…
230 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kMove_Verb'><code>SkPath::kMove_Verb<…
233 Consecutive <a href='#SkPath_kMove_Verb'>kMove_Verb</a> are preserved but all but the last <a href=…
234a href='#SkPath_kMove_Verb'>kMove_Verb</a> after other <a href='SkPath_Reference#Verb'>Verbs</a> i…
235 if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a> …
236 <a href='#SkPath_kMove_Verb'>kMove_Verb</a> as the last <a href='#SkPath_Verb'>Verb</a> is preserve…
240 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kLine_Verb'><code>SkPath::kLine_Verb<…
243a href='undocumented#Line'>Line</a> is a straight segment from <a href='SkPoint_Reference#Point'>P…
244a href='SkPath_Overview#Contour'>Contour</a>. <a href='#SkPath_kLine_Verb'>kLine_Verb</a> at same …
245 …ws <a href='SkPoint_Reference#Point'>Point</a> if <a href='SkPaint_Reference#SkPaint'>SkPaint</a>:…
246a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> is <a href='SkPaint…
247 …me position as prior <a href='undocumented#Line'>line</a> or <a href='undocumented#Curve'>curve</a
251 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kQuad_Verb'><code>SkPath::kQuad_Verb<…
254a href='SkPath_Reference#Quad'>Quad</a> from <a href='#Path_Last_Point'>Last_Point</a>, using cont…
255a href='SkPath_Reference#Quad'>Quad</a> is a parabolic section within tangents from <a href='#Path…
256 and control <a href='SkPoint_Reference#Point'>Point</a> to end <a href='SkPoint_Reference#Point'>Po…
260 … border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConic_Verb'><code>SkPath::kConic_Verb…
263a href='SkPath_Reference#Conic'>Conic</a> from <a href='#Path_Last_Point'>Last_Point</a>, using co…
264 <a href='SkPath_Reference#Conic'>Conic</a> is a elliptical, parabolic, or hyperbolic section within…
265a href='#Path_Last_Point'>Last_Point</a> to control <a href='SkPoint_Reference#Point'>Point</a>, a…
266 by <a href='#Path_Conic_Weight'>Conic_Weight</a>. <a href='#Path_Conic_Weight'>Conic_Weight</a> les…
267 parabolic (and identical to <a href='SkPath_Reference#Quad'>Quad</a>); greater than one hyperbolic.
271 … border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCubic_Verb'><code>SkPath::kCubic_Verb…
274a href='SkPath_Reference#Cubic'>Cubic</a> from <a href='#Path_Last_Point'>Last_Point</a>, using tw…
275a href='SkPath_Reference#Cubic'>Cubic</a> is a third-order <a href='#Bezier_Curve'>Bezier_Curve</a
276a href='SkPoint_Reference#Point'>Point</a>, and from second control <a href='SkPoint_Reference#Poi…
280 … border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kClose_Verb'><code>SkPath::kClose_Verb…
283a href='SkPath_Overview#Contour'>Contour</a>, connecting <a href='#Path_Last_Point'>Last_Point</a>…
284 <a href='#SkPath_kClose_Verb'>kClose_Verb</a> are preserved but only first has an effect. <a href='…
285 <a href='#SkPath_kMove_Verb'>kMove_Verb</a> has no effect.
289 …; border: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kDone_Verb'><code>SkPath::kDone_Verb<…
292 Not in <a href='#Path_Verb_Array'>Verb_Array</a>, but returned by <a href='SkPath_Reference#Path'>P…
295 …ach <a href='#SkPath_Verb'>Verb</a> has zero or more <a href='SkPoint_Reference#Point'>Points</a> …
296a href='SkPath_Reference#Path'>Path</a> iterator returns complete <a href='undocumented#Curve'>cur…
301a href='#SkPath_Verb'>Verb</a> | Allocated <a href='SkPoint_Reference#Point'>Points</a> | Iterated…
303 | <a href='#SkPath_kMove_Verb'>kMove_Verb</a> | 1 | 1 | 0 |
304 | <a href='#SkPath_kLine_Verb'>kLine_Verb</a> | 1 | 2 | 0 |
305 | <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> | 2 | 3 | 0 |
306 | <a href='#SkPath_kConic_Verb'>kConic_Verb</a> | 2 | 3 | 1 |
307 | <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> | 3 | 4 | 0 |
308 | <a href='#SkPath_kClose_Verb'>kClose_Verb</a> | 0 | 1 | 0 |
309 | <a href='#SkPath_kDone_Verb'>kDone_Verb</a> | -- | 0 | 0 |
324 <a name='Direction'></a>
326 <a name='SkPath_Direction'></a>
331 enum <a href='#SkPath_Direction'>Direction</a> : int {
332 <a href='#SkPath_kCW_Direction'>kCW_Direction</a>,
333 <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>,
337 <a href='#SkPath_Direction'>Direction</a> describes whether <a href='SkPath_Overview#Contour'>Conto…
338a href='SkPath_Reference#Path'>Path</a> contains multiple overlapping <a href='SkPath_Overview#Con…
339 <a href='#Path_Fill_Type'>Fill_Type</a> determines whether overlaps are filled or form holes.
341 <a href='#SkPath_Direction'>Direction</a> also determines how <a href='SkPath_Overview#Contour'>Con…
342 …asures along <a href='SkPath_Reference#Path'>Path</a> to determine where to start and stop stroke;…
345a href='SkPath_Overview#Contour'>Contours</a> like <a href='SkRect_Reference#Rect'>Rect</a>, <a hr…
346 <a href='#SkPath_kCW_Direction'>kCW_Direction</a> travel clockwise; the same added with <a href='#S…
356 …order: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCW_Direction'><code>SkPath::kCW_Directi…
362 …rder: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCCW_Direction'><code>SkPath::kCCW_Direct…
375a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_rArcTo'>rArcTo</a> <a href='#SkPath_isRect'>isRe…
377 <a name='SkPath_empty_constructor'></a>
382 <a href='#SkPath_empty_constructor'>SkPath()</a>
385a href='SkPath_Reference#SkPath'>SkPath</a>. By default, <a href='SkPath_Reference#SkPath'>SkPath<…
386 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> is set to <a
390 empty <a href='SkPath_Reference#SkPath'>SkPath</a>
406 <a href='#SkPath_reset'>reset</a> <a href='#SkPath_rewind'>rewind</a>
408 <a name='SkPath_copy_const_SkPath'></a>
413 <a href='#SkPath_copy_const_SkPath'>SkPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& …
416 Constructs a copy of an existing <a href='#SkPath_copy_const_SkPath_path'>path</a>.
417 …ctor makes two <a href='SkPath_Reference#Path'>paths</a> identical by value. Internally, <a href='…
418 …nter values. The underlying <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Poin…
419 and <a href='SkPath_Reference#Conic_Weight'>weights</a> are copied when modified.
421 Creating a <a href='SkPath_Reference#SkPath'>SkPath</a> copy is very efficient and never allocates …
422 <a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the und…
427 <table> <tr> <td><a name='SkPath_copy_const_SkPath_path'><code><strong>path</strong></code></a>…
428 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to copy by value</td>
434 copy of <a href='SkPath_Reference#SkPath'>SkPath</a>
438 …47312aacd946c8a6eabaca797140432"><div>Modifying one <a href='#SkPath_copy_const_SkPath_path'>path<…
456 <a href='#SkPath_copy_operator'>operator=</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <
458 <a name='SkPath_destructor'></a>
463 <a href='#SkPath_destructor'>~SkPath()</a>
466 …ny shared <a href='undocumented#Data'>data</a> and deletes <a href='undocumented#Data'>data</a> if…
470 …me="01ad6be9b7d15a2217daea273eb3d466"><div>delete calls <a href='SkPath_Reference#Path'>Path</a> d…
475a href='#SkPath_empty_constructor'>SkPath()</a> <a href='#SkPath_copy_const_SkPath'>SkPath</a>(con…
477 <a name='SkPath_copy_operator'></a>
482a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_copy_operator'>operator=</a>(const <
485 Constructs a copy of an existing <a href='#SkPath_copy_operator_path'>path</a>.
486 <a href='SkPath_Reference#SkPath'>SkPath</a> assignment makes two <a href='SkPath_Reference#Path'>p…
487 … <a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a> a…
490 Copying <a href='SkPath_Reference#SkPath'>SkPath</a> by assignment is very efficient and never allo…
491 <a href='SkPath_Reference#SkPath'>SkPath</a> are always copied by value from the interface; the und…
496 <table> <tr> <td><a name='SkPath_copy_operator_path'><code><strong>path</strong></code></a></td>
497a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a
503 <a href='SkPath_Reference#SkPath'>SkPath</a> copied by value
520a href='#SkPath_swap'>swap</a> <a href='#SkPath_copy_const_SkPath'>SkPath</a>(const <a href='SkPat…
522 <a name='SkPath_equal_operator'></a>
527 …<a href='#SkPath_equal_operator'>operator==</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>…
530a href='#SkPath_equal_operator_a'>a</a> and <a href='#SkPath_equal_operator_b'>b</a>; returns true…
535 <table> <tr> <td><a name='SkPath_equal_operator_a'><code><strong>a</strong></code></a></td>
536 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
538 <tr> <td><a name='SkPath_equal_operator_b'><code><strong>b</strong></code></a></td>
539 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
545 true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are equivalent
549 …51bb357f2ac5990d88f8b82e02"><div><a href='#SkPath_rewind'>rewind()</a> removes <a href='#Path_Verb…
550 <a href='SkPath_Reference#Path'>Path</a> pair are equivalent.
566a href='#SkPath_notequal_operator'>operator!=</a>(const <a href='SkPath_Reference#SkPath'>SkPath</
568 <a name='SkPath_notequal_operator'></a>
573a href='#SkPath_notequal_operator'>operator!=</a>(const <a href='SkPath_Reference#SkPath'>SkPath</
576a href='#SkPath_notequal_operator_a'>a</a> and <a href='#SkPath_notequal_operator_b'>b</a>; return…
581 <table> <tr> <td><a name='SkPath_notequal_operator_a'><code><strong>a</strong></code></a></td>
582 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
584 <tr> <td><a name='SkPath_notequal_operator_b'><code><strong>b</strong></code></a></td>
585 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to compare</td>
591 true if <a href='SkPath_Reference#SkPath'>SkPath</a> pair are not equivalent
595 …ddle-embed name="bbbda1cc818d96c9c0d2a06c0c48902b"><div><a href='SkPath_Reference#Path'>Path</a> p…
609 <a name='Property'></a>
611 <a name='SkPath_isInterpolatable'></a>
616 bool <a href='#SkPath_isInterpolatable'>isInterpolatable</a>(const <a href='SkPath_Reference#SkPath…
619a href='SkPath_Reference#SkPath'>SkPath</a> contain equal <a href='SkPath_Reference#Verb'>verbs</a
620a href='SkPath_Reference#SkPath'>SkPath</a> contain one or more <a href='SkPath_Reference#Conic'>c…
622a href='#SkPath_conicTo'>conicTo</a>() may add different <a href='SkPath_Reference#Verb'>verbs</a>…
623 …rivial to interpolate a pair of <a href='SkPath_Reference#SkPath'>SkPath</a> containing <a href='S…
624 <a href='#Conic_Weight'>conic weight</a> values.
628 <table> <tr> <td><a name='SkPath_isInterpolatable_compare'><code><strong>compare</strong></code…
629 …<td><a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_isInterpolatable_compare'>com…
635 …rue if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a h…
651 <a href='#SkPath_isInterpolatable'>isInterpolatable</a>
653 <a name='Interpolate'></a>
655 <a name='SkPath_interpolate'></a>
660 … <a href='SkPath_Reference#SkPath'>SkPath</a>& ending, <a href='undocumented#SkScalar'>SkScalar</a
663 …between <a href='SkPath_Reference#Path'>Paths</a> with <a href='#Path_Point_Array'>Point_Array</a>…
664a href='#Path_Verb_Array'>Verb_Array</a> and <a href='SkPath_Reference#Conic_Weight'>Weights</a> t…
665 …f this <a href='#Path_Point_Array'>Point_Array</a> and <a href='#SkPath_interpolate_ending'>ending…
666a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> * <a href='#Sk…
668a href='#SkPath_interpolate_weight'>weight</a> is most useful when between zero (<a href='#SkPath_…
669 one (this <a href='#Path_Point_Array'>Point_Array</a>); will work with values outside of this
672a href='#SkPath_interpolate'>interpolate()</a> returns false and leaves <a href='#SkPath_interpola…
673a href='undocumented#Size'>size</a> as <a href='#SkPath_interpolate_ending'>ending</a> <a href='#P…
674 compatibility prior to calling <a href='#SkPath_interpolate'>interpolate()</a>.
678 <table> <tr> <td><a name='SkPath_interpolate_ending'><code><strong>ending</strong></code></a></…
679 …<td><a href='#Path_Point_Array'>Point_Array</a> averaged with this <a href='#Path_Point_Array'>Poi…
681 <tr> <td><a name='SkPath_interpolate_weight'><code><strong>weight</strong></code></a></td>
682 <td>contribution of this <a href='#Path_Point_Array'>Point_Array</a>, and
683 one minus contribution of <a href='#SkPath_interpolate_ending'>ending</a> <a href='#Path_Point_Arra…
686 <tr> <td><a name='SkPath_interpolate_out'><code><strong>out</strong></code></a></td>
687 <td><a href='SkPath_Reference#Path'>Path</a> replaced by interpolated averages</td>
693 true if <a href='SkPath_Reference#Path'>Paths</a> contain same number of <a href='SkPoint_Reference…
701 <a href='#SkPath_isInterpolatable'>isInterpolatable</a>
703 <a name='Fill_Type'></a>
705 <a name='SkPath_FillType'></a>
710 enum <a href='#SkPath_FillType'>FillType</a> {
711 <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>,
712 <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a>,
713 <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>,
714 <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>,
718a href='#Path_Fill_Type'>Fill_Type</a> selects the rule used to fill <a href='SkPath_Reference#Pat…
719 fills if the sum of <a href='SkPath_Overview#Contour'>Contour</a> edges is not zero, where clockwis…
720 …ise edges subtract one. <a href='SkPath_Reference#Path'>Path</a> set to <a href='#SkPath_kEvenOdd_…
721 number of <a href='SkPath_Overview#Contour'>Contour</a> edges is odd. Each <a href='#Path_Fill_Type…
723 <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> fills where the sum of <a h…
724 <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> fills where the number of <
730 winding variants draw the top rectangle overlap, which has a winding of 2, the
731 same as the outer parts of the top rectangles, which have a winding of 1.
741 …r: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kWinding_FillType'><code>SkPath::kWinding_Fi…
744 is enclosed by a non-zero sum of Contour Directions</td>
747 …r: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kEvenOdd_FillType'><code>SkPath::kEvenOdd_Fi…
753 …solid #dddddd; padding: 8px; '><a name='SkPath_kInverseWinding_FillType'><code>SkPath::kInverseWin…
756 is enclosed by a zero sum of Contour Directions</td>
759 …solid #dddddd; padding: 8px; '><a name='SkPath_kInverseEvenOdd_FillType'><code>SkPath::kInverseEve…
772a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> <a href='#SkPat…
774 <a name='SkPath_getFillType'></a>
779 <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a>()const
782a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPath'>Sk…
783 <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>.
787a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEve…
789 <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
805 <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_setFillType'>setFillType</a> <a href='#SkP…
807 <a name='SkPath_setFillType'></a>
812 void <a href='#SkPath_setFillType'>setFillType</a>(<a href='#SkPath_FillType'>FillType</a> ft)
815 Sets <a href='#SkPath_FillType'>FillType</a>, the rule used to fill <a href='SkPath_Reference#SkPat…
816 that <a href='#SkPath_setFillType_ft'>ft</a> is legal, values outside of <a href='#SkPath_FillType'…
820 <table> <tr> <td><a name='SkPath_setFillType_ft'><code><strong>ft</strong></code></a></td>
821a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_FillType'>kEve…
825 <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a>
829 …c6d0ac823d2"><div>If empty <a href='SkPath_Reference#Path'>Path</a> is set to inverse <a href='#Sk…
834 <a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a> <a href='#SkP…
836 <a name='SkPath_isInverseFillType'></a>
841 bool <a href='#SkPath_isInverseFillType'>isInverseFillType</a>()const
844 Returns if <a href='#SkPath_FillType'>FillType</a> describes area outside <a href='SkPath_Reference…
849a href='#SkPath_FillType'>FillType</a> is <a href='#SkPath_kInverseWinding_FillType'>kInverseWindi…
865a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a> <a href='#SkP…
867 <a name='SkPath_toggleInverseFillType'></a>
872 void <a href='#SkPath_toggleInverseFillType'>toggleInverseFillType</a>()
875 Replaces <a href='#SkPath_FillType'>FillType</a> with its inverse. The inverse of <a href='#SkPath_…
876 unmodified by the original <a href='#SkPath_FillType'>FillType</a>.
878 | <a href='#SkPath_FillType'>FillType</a> | toggled <a href='#SkPath_FillType'>FillType</a> |
880 | <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> | <a href='#SkPath_kInverseWinding_Fill…
881 | <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> | <a href='#SkPath_kInverseEvenOdd_Fill…
882 | <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> | <a href='#SkPath_kWindi…
883 | <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> | <a href='#SkPath_kEvenO…
887 …fbd"><div><a href='SkPath_Reference#Path'>Path</a> drawn normally and through its inverse touches …
892a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a> <a href='#SkP…
894 <a name='Convexity'></a>
896 <a name='SkPath_Convexity'></a>
901 enum <a href='#SkPath_Convexity'>Convexity</a> : uint8_t {
902 <a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>,
903 <a href='#SkPath_kConvex_Convexity'>kConvex_Convexity</a>,
904 <a href='#SkPath_kConcave_Convexity'>kConcave_Convexity</a>,
908a href='SkPath_Reference#Path'>Path</a> is convex if it contains one <a href='SkPath_Overview#Cont…
909a href='SkPath_Overview#Contour'>Contour</a> angles all have same <a href='#SkPath_Direction'>Dire…
910 may have better performance and require fewer resources on <a href='#GPU_Surface'>GPU_Surface</a>.
912 <a href='SkPath_Reference#Path'>Path</a> is concave when either at least one <a href='#SkPath_Direc…
913 another is counterclockwise, or the sum of the changes in <a href='#SkPath_Direction'>Direction</a>…
916a href='SkPath_Reference#Path'>Path</a> <a href='#SkPath_Convexity'>Convexity</a> is <a href='#SkP…
917 if needed by destination <a href='SkSurface_Reference#Surface'>Surface</a>.
926 …: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kUnknown_Convexity'><code>SkPath::kUnknown_Co…
932 …r: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConvex_Convexity'><code>SkPath::kConvex_Con…
935 one Contour made of a simple geometry without indentations</td>
938 …: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConcave_Convexity'><code>SkPath::kConcave_Co…
941 more than one Contour, or a geometry with indentations</td>
951a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_Direction'>Direction</a> <a href='#S…
953 <a name='SkPath_getConvexity'></a>
958 <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexity'>getConvexity</a>()const
961 Computes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if…
962a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> is computed…
963a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPat…
967 computed or stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convex…
975a href='#SkPath_Convexity'>Convexity</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='#S…
977 <a name='SkPath_getConvexityOrUnknown'></a>
982 <a href='#SkPath_Convexity'>Convexity</a> <a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnk…
985 … <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, or <a hr…
986a href='SkPath_Reference#SkPath'>SkPath</a> has been altered since <a href='SkPath_Reference#SkPat…
990 stored <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>
994 …378a4"><div><a href='#SkPath_Convexity'>Convexity</a> is unknown unless <a href='#SkPath_getConvex…
995 that alters the <a href='SkPath_Reference#Path'>path</a>.
1000a href='#SkPath_Convexity'>Convexity</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='#S…
1002 <a name='SkPath_setConvexity'></a>
1007 void <a href='#SkPath_setConvexity'>setConvexity</a>(<a href='#SkPath_Convexity'>Convexity</a> conv…
1010a href='#SkPath_setConvexity_convexity'>convexity</a> so that it is later returned by <a href='#Sk…
1011 <a href='#SkPath_setConvexity_convexity'>convexity</a> may differ from <a href='#SkPath_getConvexit…
1014a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kUnknown_Convexity'>kUnk…
1015a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a>, and <a hre…
1017a href='#SkPath_setConvexity_convexity'>convexity</a> is <a href='#SkPath_kConvex_Convexity'>kConv…
1018a href='#SkPath_getConvexityOrUnknown'>getConvexityOrUnknown</a>() will return <a href='#SkPath_se…
1023 <table> <tr> <td><a name='SkPath_setConvexity_convexity'><code><strong>convexity</strong></code…
1024a href='#SkPath_kUnknown_Convexity'>kUnknown_Convexity</a>, <a href='#SkPath_kConvex_Convexity'>kC…
1034a href='#SkPath_Convexity'>Convexity</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='#S…
1036 <a name='SkPath_isConvex'></a>
1041 bool <a href='#SkPath_isConvex'>isConvex</a>()const
1044a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> if required…
1045a href='#SkPath_setConvexity'>setConvexity</a>() was called with <a href='#SkPath_kConvex_Convexit…
1046 … <a href='SkPath_Reference#Path'>path</a> has not been altered, <a href='SkPath_Reference#SkPath'>…
1050a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Convexity'>Convexity</a> stored or c…
1054 …9de244e4cbf58ec9554557b"><div>Concave shape is erroneously considered convex after a forced call to
1055 <a href='#SkPath_setConvexity'>setConvexity</a>.
1060a href='#SkPath_Convexity'>Convexity</a> <a href='SkPath_Overview#Contour'>Contour</a> <a href='#S…
1062 <a name='SkPath_isOval'></a>
1067 bool <a href='#SkPath_isOval'>isOval</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* bounds)const
1070 … this <a href='SkPath_Reference#Path'>path</a> is recognized as an <a href='undocumented#Oval'>ova…
1072 <a href='#SkPath_isOval_bounds'>bounds</a> receives <a href='#SkPath_isOval_bounds'>bounds</a> of <
1074 <a href='#SkPath_isOval_bounds'>bounds</a> is unmodified if <a href='undocumented#Oval'>oval</a> is…
1078 <table> <tr> <td><a name='SkPath_isOval_bounds'><code><strong>bounds</strong></code></a></td>
1079 …<td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='undocumented#Ova…
1085 … if <a href='SkPath_Reference#SkPath'>SkPath</a> is recognized as an <a href='undocumented#Oval'>o…
1093 <a href='undocumented#Oval'>Oval</a> <a href='#SkPath_addCircle'>addCircle</a> <a href='#SkPath_add…
1095 <a name='SkPath_isRRect'></a>
1100 bool <a href='#SkPath_isRRect'>isRRect</a>(<a href='SkRRect_Reference#SkRRect'>SkRRect</a>* rrect)c…
1103 Returns true if <a href='SkPath_Reference#Path'>path</a> is representable as <a href='SkRRect_Refer…
1104a href='SkPath_Reference#Path'>path</a> is representable as <a href='undocumented#Oval'>oval</a>, …
1106 <a href='#SkPath_isRRect_rrect'>rrect</a> receives bounds of <a href='SkRRect_Reference#SkRRect'>Sk…
1108 <a href='#SkPath_isRRect_rrect'>rrect</a> is unmodified if <a href='SkRRect_Reference#SkRRect'>SkRR…
1112 <table> <tr> <td><a name='SkPath_isRRect_rrect'><code><strong>rrect</strong></code></a></td>
1113 …<td>storage for bounding <a href='SkRect_Reference#SkRect'>SkRect</a> of <a href='SkRRect_Referenc…
1119 true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only <a href='SkRRect_Reference#SkRRe…
1128 <a href='#RRect'>Round_Rect</a> <a href='#SkPath_addRoundRect'>addRoundRect</a> <a href='#SkPath_ad…
1130 <a name='SkPath_reset'></a>
1135 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset()</a>
1138 Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state.
1139a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, and <a href='SkPath_Reference#Conic_Weight'>…
1140 Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is released.
1144 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
1152 <a href='#SkPath_rewind'>rewind()</a>
1154 <a name='SkPath_rewind'></a>
1159 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind()</a>
1162 Sets <a href='SkPath_Reference#SkPath'>SkPath</a> to its initial state, preserving internal storage.
1163a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, and <a href='SkPath_Reference#Conic_Weight'>…
1164 Internal storage associated with <a href='SkPath_Reference#SkPath'>SkPath</a> is retained.
1166 Use <a href='#SkPath_rewind'>rewind()</a> instead of <a href='#SkPath_reset'>reset()</a> if <a href…
1171 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
1176 a newly initialized <a href='SkPath_Reference#Path'>path</a>.
1181 <a href='#SkPath_reset'>reset()</a>
1183 <a name='SkPath_isEmpty'></a>
1188 bool <a href='#SkPath_isEmpty'>isEmpty</a>()const
1191 Returns if <a href='SkPath_Reference#SkPath'>SkPath</a> is empty.
1192a href='SkPath_Reference#SkPath'>SkPath</a> may have <a href='#SkPath_FillType'>FillType</a> but h…
1193a href='#SkPath_empty_constructor'>SkPath()</a> constructs empty <a href='SkPath_Reference#SkPath'…
1197 …rue if the <a href='SkPath_Reference#Path'>path</a> contains no <a href='SkPath_Reference#SkPath'>…
1217 <a href='#SkPath_empty_constructor'>SkPath()</a> <a href='#SkPath_reset'>reset()</a> <a href='#SkPa…
1219 <a name='SkPath_isLastContourClosed'></a>
1224 bool <a href='#SkPath_isLastContourClosed'>isLastContourClosed</a>()const
1227 Returns if <a href='SkPath_Overview#Contour'>contour</a> is closed.
1228a href='SkPath_Overview#Contour'>Contour</a> is closed if <a href='SkPath_Reference#SkPath'>SkPath…
1229a href='SkPath_Overview#Contour'>contour</a> draws <a href='SkPaint_Reference#SkPaint'>SkPaint</a>…
1233 true if the last <a href='SkPath_Overview#Contour'>contour</a> ends with a <a href='#SkPath_kClose_…
1237a href='#SkPath_close'>close()</a> has no effect if <a href='SkPath_Reference#Path'>Path</a> is em…
1238 false until <a href='SkPath_Reference#Path'>Path</a> has geometry followed by <a href='#SkPath_clos…
1254 <a href='#SkPath_close'>close()</a>
1256 <a name='SkPath_isFinite'></a>
1261 bool <a href='#SkPath_isFinite'>isFinite</a>()const
1264 …for finite <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array values between negative <a href='…
1265 positive <a href='undocumented#SK_ScalarMax'>SK_ScalarMax</a>. Returns false for any <a href='SkPoi…
1266a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a>, <a href='undocumented#SK_ScalarNega…
1270 true if all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> values are finite
1288 <a href='undocumented#SkScalar'>SkScalar</a>
1290 <a name='SkPath_isVolatile'></a>
1295 bool <a href='#SkPath_isVolatile'>isVolatile</a>()const
1298 Returns true if the <a href='SkPath_Reference#Path'>path</a> is volatile; it will not be altered or…
1299 by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volat…
1300a href='SkSurface_Reference#SkSurface'>SkSurface</a> to attach a cache of <a href='undocumented#Da…
1305 true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing
1321 <a href='#SkPath_setIsVolatile'>setIsVolatile</a>
1323 <a name='Volatile'></a>
1325 <a name='SkPath_setIsVolatile'></a>
1330 void <a href='#SkPath_setIsVolatile'>setIsVolatile</a>(bool <a href='#SkPath_isVolatile'>isVolatile…
1333 Specifies whether <a href='SkPath_Reference#SkPath'>SkPath</a> is volatile; whether it will be alte…
1334 by the caller after it is drawn. <a href='SkPath_Reference#SkPath'>SkPath</a> by default have volat…
1335 <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> to attach a cache of <a href='undocumented#Dat…
1337 Mark temporary <a href='SkPath_Reference#Path'>paths</a>, discarded or modified after use, as volat…
1338 to inform <a href='undocumented#SkBaseDevice'>SkBaseDevice</a> that the <a href='SkPath_Reference#P…
1340 Mark animating <a href='SkPath_Reference#SkPath'>SkPath</a> volatile to improve performance.
1341 Mark unchanging <a href='SkPath_Reference#SkPath'>SkPath</a> non-volatile to improve repeated rende…
1343 <a href='undocumented#Raster_Surface'>raster surface</a> <a href='SkPath_Reference#SkPath'>SkPath</
1344 <a href='undocumented#GPU_Surface'>GPU surface</a> <a href='SkPath_Reference#SkPath'>SkPath</a> dra…
1348 <table> <tr> <td><a name='SkPath_setIsVolatile_isVolatile'><code><strong>isVolatile</strong></c…
1349 <td>true if caller will alter <a href='SkPath_Reference#SkPath'>SkPath</a> after drawing</td>
1359 <a href='#SkPath_setIsVolatile_isVolatile'>isVolatile</a>
1361 <a name='SkPath_IsLineDegenerate'></a>
1366a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>S…
1369 Tests if <a href='undocumented#Line'>line</a> between <a href='SkPoint_Reference#SkPoint'>SkPoint</
1370 <a href='undocumented#Line'>Line</a> with no length or that moves a very short distance is degenera…
1371 treated as a <a href='SkPoint_Reference#Point'>point</a>.
1373a href='#SkPath_IsLineDegenerate_exact'>exact</a> changes the equality test. If true, returns true…
1374 …se, returns true if <a href='#SkPath_IsLineDegenerate_p1'>p1</a> equals or nearly equals <a href='…
1378 <table> <tr> <td><a name='SkPath_IsLineDegenerate_p1'><code><strong>p1</strong></code></a></td>
1379 <td><a href='undocumented#Line'>line</a> start <a href='SkPoint_Reference#Point'>point</a></td>
1381 <tr> <td><a name='SkPath_IsLineDegenerate_p2'><code><strong>p2</strong></code></a></td>
1382 <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td>
1384 <tr> <td><a name='SkPath_IsLineDegenerate_exact'><code><strong>exact</strong></code></a></td>
1391 true if <a href='undocumented#Line'>line</a> is degenerate; its length is effectively zero
1413 <a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a> <a href='#SkPath_IsCubicDegenerate'>IsCubic…
1415 <a name='SkPath_IsQuadDegenerate'></a>
1420a href='#SkPath_IsQuadDegenerate'>IsQuadDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'>S…
1423 Tests if <a href='SkPath_Reference#Quad'>quad</a> is degenerate.
1424 <a href='SkPath_Reference#Quad'>Quad</a> with no length or that moves a very short distance is dege…
1425 treated as a <a href='SkPoint_Reference#Point'>point</a>.
1429 <table> <tr> <td><a name='SkPath_IsQuadDegenerate_p1'><code><strong>p1</strong></code></a></td>
1430 …<td><a href='SkPath_Reference#Quad'>quad</a> start <a href='SkPoint_Reference#Point'>point</a></td>
1432 <tr> <td><a name='SkPath_IsQuadDegenerate_p2'><code><strong>p2</strong></code></a></td>
1433 …<td><a href='SkPath_Reference#Quad'>quad</a> control <a href='SkPoint_Reference#Point'>point</a></…
1435 <tr> <td><a name='SkPath_IsQuadDegenerate_p3'><code><strong>p3</strong></code></a></td>
1436 … <td><a href='SkPath_Reference#Quad'>quad</a> end <a href='SkPoint_Reference#Point'>point</a></td>
1438 <tr> <td><a name='SkPath_IsQuadDegenerate_exact'><code><strong>exact</strong></code></a></td>
1439 …ly if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, …
1443 …ue if <a href='#SkPath_IsQuadDegenerate_p1'>p1</a>, <a href='#SkPath_IsQuadDegenerate_p2'>p2</a>, …
1447 true if <a href='SkPath_Reference#Quad'>quad</a> is degenerate; its length is effectively zero
1469 <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a> <a href='#SkPath_IsCubicDegenerate'>IsCubic…
1471 <a name='SkPath_IsCubicDegenerate'></a>
1476a href='#SkPath_IsCubicDegenerate'>IsCubicDegenerate</a>(const <a href='SkPoint_Reference#SkPoint'…
1477 const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p4, bool exact)
1480 Tests if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate.
1481 <a href='SkPath_Reference#Cubic'>Cubic</a> with no length or that moves a very short distance is de…
1482 treated as a <a href='SkPoint_Reference#Point'>point</a>.
1486 <table> <tr> <td><a name='SkPath_IsCubicDegenerate_p1'><code><strong>p1</strong></code></a></td>
1487 …<td><a href='SkPath_Reference#Cubic'>cubic</a> start <a href='SkPoint_Reference#Point'>point</a></…
1489 <tr> <td><a name='SkPath_IsCubicDegenerate_p2'><code><strong>p2</strong></code></a></td>
1490 …<td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a>…
1492 <tr> <td><a name='SkPath_IsCubicDegenerate_p3'><code><strong>p3</strong></code></a></td>
1493 …<td><a href='SkPath_Reference#Cubic'>cubic</a> control <a href='SkPoint_Reference#Point'>point</a>…
1495 <tr> <td><a name='SkPath_IsCubicDegenerate_p4'><code><strong>p4</strong></code></a></td>
1496 …<td><a href='SkPath_Reference#Cubic'>cubic</a> end <a href='SkPoint_Reference#Point'>point</a></td>
1498 <tr> <td><a name='SkPath_IsCubicDegenerate_exact'><code><strong>exact</strong></code></a></td>
1499a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a hr…
1503a href='#SkPath_IsCubicDegenerate_p1'>p1</a>, <a href='#SkPath_IsCubicDegenerate_p2'>p2</a>, <a hr…
1507 true if <a href='SkPath_Reference#Cubic'>cubic</a> is degenerate; its length is effectively zero
1522 <a name='SkPath_isLine'></a>
1527 bool <a href='#SkPath_isLine'>isLine</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='u…
1530 Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains only one <a href='#SkPath_isL…
1531a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> array has two entries…
1532a href='SkPath_Reference#SkPath'>SkPath</a> contains one <a href='#SkPath_isLine_line'>line</a> an…
1533a href='#SkPath_isLine_line'>line</a> start <a href='SkPoint_Reference#Point'>point</a> and <a hre…
1534 …false if <a href='SkPath_Reference#SkPath'>SkPath</a> is not one <a href='#SkPath_isLine_line'>lin…
1538 <table> <tr> <td><a name='SkPath_isLine_line'><code><strong>line</strong></code></a></td>
1539 <td>storage for <a href='#SkPath_isLine_line'>line</a>. May be nullptr</td>
1545 true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains exactly one <a href='#SkPath_isLine_l…
1562 <a name='Point_Array'></a>
1564a href='#Path_Point_Array'>Point_Array</a> contains <a href='SkPoint_Reference#Point'>Points</a> s…
1565a href='#SkPath_Verb'>Verb</a> in <a href='#Path_Verb_Array'>Verb_Array</a>. For instance, <a href…
1566a href='SkPath_Reference#Quad'>Quad</a> is described by <a href='#Path_Verb_Array'>Verb_Array</a>:…
1567a href='SkPoint_Reference#Point'>Point</a> for move, one <a href='SkPoint_Reference#Point'>Point</
1569a href='#Path_Point_Array'>Point_Array</a> may be read directly from <a href='SkPath_Reference#Pat…
1570 <a href='#SkPath_getPoint'>getPoint</a>, with <a href='#SkPath_Iter'>Iter</a>, or with <a href='#Sk…
1572 <a name='SkPath_getPoints'></a>
1577 int <a href='#SkPath_getPoints'>getPoints</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a hr…
1580a href='#SkPath_getPoints_points'>points</a> in <a href='SkPath_Reference#SkPath'>SkPath</a>. Up t…
1581 <a href='#SkPath_getPoints_points'>points</a> may be nullptr; then, <a href='#SkPath_getPoints_max'…
1582a href='#SkPath_getPoints_max'>max</a> is greater than number of <a href='#SkPath_getPoints_points…
1586 <table> <tr> <td><a name='SkPath_getPoints_points'><code><strong>points</strong></code></a></td>
1587 …<td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Arra…
1589 <tr> <td><a name='SkPath_getPoints_max'><code><strong>max</strong></code></a></td>
1596 <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Point_Array'>SkPoint array<…
1615 <a href='#SkPath_countPoints'>countPoints</a> <a href='#SkPath_getPoint'>getPoint</a>
1617 <a name='SkPath_countPoints'></a>
1622 int <a href='#SkPath_countPoints'>countPoints</a>()const
1625 Returns the number of <a href='SkPoint_Reference#Point'>points</a> in <a href='SkPath_Reference#SkP…
1626 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> count is initially zero.
1630 <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array …
1649 <a href='#SkPath_getPoints'>getPoints</a>
1651 <a name='SkPath_getPoint'></a>
1656 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_getPoint'>getPoint</a>(int index)c…
1659a href='SkPoint_Reference#SkPoint'>SkPoint</a> at <a href='#SkPath_getPoint_index'>index</a> in <
1660 0 to <a href='#SkPath_countPoints'>countPoints</a>() - 1.
1661 Returns (0, 0) if <a href='#SkPath_getPoint_index'>index</a> is out of range.
1665 <table> <tr> <td><a name='SkPath_getPoint_index'><code><strong>index</strong></code></a></td>
1666 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a> element selector</td>
1672 <a href='SkPath_Reference#Point_Array'>SkPoint array</a> value or (0, 0)
1689 <a href='#SkPath_countPoints'>countPoints</a> <a href='#SkPath_getPoints'>getPoints</a>
1691 <a name='Verb_Array'></a>
1693 <a href='#Path_Verb_Array'>Verb_Array</a> always starts with <a href='#SkPath_kMove_Verb'>kMove_Ver…
1694 If <a href='#SkPath_kClose_Verb'>kClose_Verb</a> is not the last entry, it is always followed by <a
1695 the quantity of <a href='#SkPath_kMove_Verb'>kMove_Verb</a> equals the <a href='SkPath_Overview#Con…
1696 <a href='#Path_Verb_Array'>Verb_Array</a> does not include or count <a href='#SkPath_kDone_Verb'>kD…
1697 returned when iterating through <a href='#Path_Verb_Array'>Verb_Array</a>.
1699a href='#Path_Verb_Array'>Verb_Array</a> may be read directly from <a href='SkPath_Reference#Path'…
1700 or with <a href='#SkPath_RawIter'>RawIter</a>.
1702 <a name='SkPath_countVerbs'></a>
1707 int <a href='#SkPath_countVerbs'>countVerbs</a>()const
1710a href='SkPath_Reference#Verb'>verbs</a>: <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, <a href='#S…
1711 <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>; a…
1732 <a href='#SkPath_getVerbs'>getVerbs</a> <a href='#SkPath_Iter'>Iter</a> <a href='#SkPath_RawIter'>R…
1734 <a name='SkPath_getVerbs'></a>
1739 int <a href='#SkPath_getVerbs'>getVerbs</a>(uint8_t <a href='SkPath_Reference#Verb'>verbs</a>[], in…
1742a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Path'>path</a>. Up to <
1743 <a href='#SkPath_getVerbs_verbs'>verbs</a> are copied as one byte per verb.
1747 <table> <tr> <td><a name='SkPath_getVerbs_verbs'><code><strong>verbs</strong></code></a></td>
1748 <td>storage for <a href='#SkPath_getVerbs_verbs'>verbs</a>, may be nullptr</td>
1750 <tr> <td><a name='SkPath_getVerbs_max'><code><strong>max</strong></code></a></td>
1751 <td>maximum number to copy into <a href='#SkPath_getVerbs_verbs'>verbs</a></td>
1757 the actual number of <a href='#SkPath_getVerbs_verbs'>verbs</a> in the <a href='SkPath_Reference#Pa…
1776a href='#SkPath_countVerbs'>countVerbs</a> <a href='#SkPath_getPoints'>getPoints</a> <a href='#SkP…
1778 <a name='SkPath_swap'></a>
1783 void <a href='#SkPath_swap'>swap</a>(<a href='SkPath_Reference#SkPath'>SkPath</a>& other)
1786a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, <a
1787 Cached state is also exchanged. <a href='#SkPath_swap'>swap()</a> internally exchanges pointers, so
1790a href='#SkPath_swap'>swap()</a> usage has largely been replaced by <a href='#SkPath_copy_operator…
1791 <a href='SkPath_Reference#SkPath'>SkPath</a> do not copy their content on assignment until they are…
1792 making assignment as efficient as <a href='#SkPath_swap'>swap()</a>.
1796 <table> <tr> <td><a name='SkPath_swap_other'><code><strong>other</strong></code></a></td>
1797 <td><a href='SkPath_Reference#SkPath'>SkPath</a> exchanged by value</td>
1816 <a href='#SkPath_copy_operator'>operator=</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <
1818 <a name='SkPath_getBounds'></a>
1823 const <a href='SkRect_Reference#SkRect'>SkRect</a>& <a href='#SkPath_getBounds'>getBounds</a>()const
1826 Returns minimum and maximum axes values of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array.
1827 Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_R…
1828 be larger or smaller than area affected when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
1830a href='SkRect_Reference#SkRect'>SkRect</a> returned includes all <a href='SkPoint_Reference#SkPoi…
1831 <a href='#SkPath_kMove_Verb'>kMove_Verb</a> that define empty <a href='SkPath_Overview#Contour'>con…
1835 bounds of all <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPoint_Reference#SkPoint…
1839 …5c0fc3acb74fab99d544b80eadd10ad"><div>Bounds of upright <a href='undocumented#Circle'>Circle</a> c…
1840 Bounds of rotated <a href='undocumented#Circle'>Circle</a> includes control <a href='SkPoint_Refere…
1855 <a href='#SkPath_computeTightBounds'>computeTightBounds</a> <a href='#SkPath_updateBoundsCache'>upd…
1857 <a name='Utility'></a>
1859 <a name='SkPath_updateBoundsCache'></a>
1864 void <a href='#SkPath_updateBoundsCache'>updateBoundsCache</a>()const
1867 Updates internal bounds so that subsequent calls to <a href='#SkPath_getBounds'>getBounds</a>() are…
1868 …red copies of <a href='SkPath_Reference#SkPath'>SkPath</a> may also access cached bounds through <
1870 For now, identical to calling <a href='#SkPath_getBounds'>getBounds</a>() and ignoring the returned…
1872 Call to prepare <a href='SkPath_Reference#SkPath'>SkPath</a> subsequently drawn from multiple threa…
1873 to avoid a race condition where each draw separately computes the bounds.
1891 <a href='#SkPath_getBounds'>getBounds</a>
1893 <a name='SkPath_computeTightBounds'></a>
1898 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_computeTightBounds'>computeTightBound…
1901 …lues of the <a href='undocumented#Line'>lines</a> and <a href='undocumented#Curve'>curves</a> in <
1902 Returns (0, 0, 0, 0) if <a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='SkPoint_R…
1904 when <a href='SkPath_Reference#SkPath'>SkPath</a> is drawn.
1906 Includes <a href='SkPoint_Reference#SkPoint'>SkPoint</a> associated with <a href='#SkPath_kMove_Ver…
1907 <a href='SkPath_Overview#Contour'>contours</a>.
1909 Behaves identically to <a href='#SkPath_getBounds'>getBounds</a>() when <a href='SkPath_Reference#S…
1910 only <a href='undocumented#Line'>lines</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> contain…
1911a href='SkPath_Reference#Quad'>quad</a>, <a href='SkPath_Reference#Conic'>conic</a>, or <a href='S…
1912 and unlike <a href='#SkPath_getBounds'>getBounds</a>(), does not cache the result.
1916 tight bounds of <a href='undocumented#Curve'>curves</a> in <a href='SkPath_Reference#SkPath'>SkPath…
1934 <a href='#SkPath_getBounds'>getBounds</a>
1936 <a name='SkPath_conservativelyContainsRect'></a>
1941a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a>(const <a href='SkRect_R…
1944 Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a href=…
1945 …eturn false when <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained by <a hre…
1947 … now, only returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> has one <a href='SkPath_Ov…
1948a href='#SkPath_conservativelyContainsRect_rect'>rect</a> may share <a href='SkPoint_Reference#Poi…
1949 Returns true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is empty, that is, it ha…
1950a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='undocumented#Line'>line</a> described b…
1954 <table> <tr> <td><a name='SkPath_conservativelyContainsRect_rect'><code><strong>rect</strong></…
1955 …<td><a href='SkRect_Reference#SkRect'>SkRect</a>, <a href='undocumented#Line'>line</a>, or <a href…
1961 true if <a href='#SkPath_conservativelyContainsRect_rect'>rect</a> is contained
1965 …5fb1941"><div><a href='SkRect_Reference#Rect'>Rect</a> is drawn in blue if it is contained by red …
1970a href='#SkPath_contains'>contains</a> <a href='undocumented#Op'>Op</a> <a href='SkRect_Reference#…
1972 <a name='SkPath_incReserve'></a>
1977 void <a href='#SkPath_incReserve'>incReserve</a>(int extraPtCount)
1980a href='SkPath_Reference#SkPath'>SkPath</a> <a href='#Verb_Array'>verb array</a> and <a href='Sk…
1982 …ucing the number and <a href='undocumented#Size'>size</a> of allocations when creating <a href='Sk…
1986 <table> <tr> <td><a name='SkPath_incReserve_extraPtCount'><code><strong>extraPtCount</strong></…
1987 <td>number of additional <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to allocate</td>
1997 <a href='#Path_Point_Array'>Point_Array</a>
1999 <a name='SkPath_shrinkToFit'></a>
2004 void <a href='#SkPath_shrinkToFit'>shrinkToFit</a>()
2007 Shrinks <a href='SkPath_Reference#SkPath'>SkPath</a> verb array and <a href='SkPoint_Reference#SkPo…
2008 May reduce the heap overhead for <a href='SkPath_Reference#SkPath'>SkPath</a> known to be fully con…
2012 <a href='#SkPath_incReserve'>incReserve</a>
2014 <a name='Build'></a>
2016 <a name='SkPath_moveTo'></a>
2021a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocume…
2024a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<
2028 <table> <tr> <td><a name='SkPath_moveTo_x'><code><strong>x</strong></code></a></td>
2029 <td>x-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
2031 <tr> <td><a name='SkPath_moveTo_y'><code><strong>y</strong></code></a></td>
2032 <td>y-axis value of <a href='SkPath_Overview#Contour'>contour</a> start</td>
2038 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2046a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_lineTo'>lineTo</a> <a href='#SkPath_…
2048 <a name='SkPath_moveTo_2'></a>
2053 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='Sk…
2056 …ginning of <a href='SkPath_Overview#Contour'>contour</a> at <a href='SkPoint_Reference#SkPoint'>Sk…
2060 <table> <tr> <td><a name='SkPath_moveTo_2_p'><code><strong>p</strong></code></a></td>
2061 <td><a href='SkPath_Overview#Contour'>contour</a> start</td>
2067 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2075a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_lineTo'>lineTo</a> <a href='#SkPath_…
2077 <a name='SkPath_rMoveTo'></a>
2082a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocu…
2085 Adds beginning of <a href='SkPath_Overview#Contour'>contour</a> relative to <a href='#Last_Point'>…
2086a href='SkPath_Reference#SkPath'>SkPath</a> is empty, starts <a href='SkPath_Overview#Contour'>con…
2087a href='SkPath_Overview#Contour'>contour</a> at <a href='#Last_Point'>last point</a> offset by (<
2092 <table> <tr> <td><a name='SkPath_rMoveTo_dx'><code><strong>dx</strong></code></a></td>
2093 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour…
2095 <tr> <td><a name='SkPath_rMoveTo_dy'><code><strong>dy</strong></code></a></td>
2096 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Overview#Contour'>contour…
2102 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2110a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_lineTo'>lineTo</a> <a href='#SkPath_…
2112 <a name='SkPath_lineTo'></a>
2117a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocume…
2120a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to (<a href='#SkPat…
2121 <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2123a href='#SkPath_lineTo'>lineTo</a>() appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a hr…
2124a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to …
2128 <table> <tr> <td><a name='SkPath_lineTo_x'><code><strong>x</strong></code></a></td>
2129 <td>end of added <a href='undocumented#Line'>line</a> on x-axis</td>
2131 <tr> <td><a name='SkPath_lineTo_y'><code><strong>y</strong></code></a></td>
2132 <td>end of added <a href='undocumented#Line'>line</a> on y-axis</td>
2138 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2146a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2148 <a name='SkPath_lineTo_2'></a>
2153 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='Sk…
2156a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint…
2157 <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2159a href='#SkPath_lineTo'>lineTo</a>() first appends <a href='#SkPath_kMove_Verb'>kMove_Verb</a> to …
2160a href='#SkPath_lineTo'>lineTo</a>() then appends <a href='#SkPath_kLine_Verb'>kLine_Verb</a> to …
2164 <table> <tr> <td><a name='SkPath_lineTo_2_p'><code><strong>p</strong></code></a></td>
2165 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='undocumented#Line'>line<…
2171 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2179a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2181 <a name='SkPath_rLineTo'></a>
2186a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocu…
2189a href='undocumented#Line'>line</a> from <a href='#Last_Point'>last point</a> to <a href='SkPoint…
2190 <a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2192a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2193a href='#SkPath_kLine_Verb'>kLine_Verb</a> to <a href='#Verb_Array'>verb array</a> and <a href='u…
2194a href='undocumented#Line'>Line</a> end is <a href='#Last_Point'>last point</a> plus <a href='SkP…
2195 Function name stands for "relative <a href='undocumented#Line'>line</a> to".
2199 <table> <tr> <td><a name='SkPath_rLineTo_dx'><code><strong>dx</strong></code></a></td>
2200 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end …
2202 <tr> <td><a name='SkPath_rLineTo_dy'><code><strong>dy</strong></code></a></td>
2203 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='undocumented#Line'>line</a> end …
2209 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2217a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2219 <a name='Quad'></a>
2223a href='SkPath_Reference#Quad'>Quad</a> describes a <a href='#Path_Quad'>Quadratic_Bezier</a>, a s…
2224a parabola. <a href='SkPath_Reference#Quad'>Quad</a> begins at a start <a href='SkPoint_Reference#…
2225 and then <a href='undocumented#Curve'>curves</a> to an end <a href='SkPoint_Reference#Point'>Point<…
2231a href='SkPath_Reference#Quad'>Quad</a> is a special case of <a href='SkPath_Reference#Conic'>Coni…
2233a href='SkPath_Reference#Quad'>Quad</a> is always contained by the triangle connecting its three <
2234 … <a href='undocumented#Line'>line</a> between start <a href='SkPoint_Reference#Point'>Point</a> an…
2235 …e <a href='undocumented#Line'>line</a> between control <a href='SkPoint_Reference#Point'>Point</a>…
2241 <a name='SkPath_quadTo'></a>
2246a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocume…
2249a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards (<a hre…
2250a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>Sk…
2251 before adding <a href='SkPath_Reference#Quad'>quad</a>.
2253a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2254a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a href=…
2255 to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
2259 <table> <tr> <td><a name='SkPath_quadTo_x1'><code><strong>x1</strong></code></a></td>
2260 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>qua…
2262 <tr> <td><a name='SkPath_quadTo_y1'><code><strong>y1</strong></code></a></td>
2263 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>qua…
2265 <tr> <td><a name='SkPath_quadTo_x2'><code><strong>x2</strong></code></a></td>
2266 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a
2268 <tr> <td><a name='SkPath_quadTo_y2'><code><strong>y2</strong></code></a></td>
2269 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Quad'>quad</a
2275 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2283a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2285 <a name='SkPath_quadTo_2'></a>
2290a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='Sk…
2293a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href…
2294a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>Sk…
2295 before adding <a href='SkPath_Reference#Quad'>quad</a>.
2297a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2298a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href='…
2299 to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
2303 <table> <tr> <td><a name='SkPath_quadTo_2_p1'><code><strong>p1</strong></code></a></td>
2304 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Qua…
2306 <tr> <td><a name='SkPath_quadTo_2_p2'><code><strong>p2</strong></code></a></td>
2307 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Quad'>q…
2313 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2321a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2323 <a name='SkPath_rQuadTo'></a>
2328a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocu…
2331a href='SkPath_Reference#Quad'>quad</a> from <a href='#Last_Point'>last point</a> towards <a href…
2332 If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'…
2333a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2335a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2336 …ppends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; and a…
2337 control and <a href='SkPath_Reference#Quad'>quad</a> end to <a href='SkPath_Reference#Point_Array'…
2338a href='SkPath_Reference#Quad'>Quad</a> control is <a href='#Last_Point'>last point</a> plus <a h…
2339a href='SkPath_Reference#Quad'>Quad</a> end is <a href='#Last_Point'>last point</a> plus <a href=…
2340 Function name stands for "relative <a href='SkPath_Reference#Quad'>quad</a> to".
2344 <table> <tr> <td><a name='SkPath_rQuadTo_dx1'><code><strong>dx1</strong></code></a></td>
2345 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> …
2347 <tr> <td><a name='SkPath_rQuadTo_dy1'><code><strong>dy1</strong></code></a></td>
2348 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> …
2350 <tr> <td><a name='SkPath_rQuadTo_dx2'><code><strong>dx2</strong></code></a></td>
2351 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> …
2353 <tr> <td><a name='SkPath_rQuadTo_dy2'><code><strong>dy2</strong></code></a></td>
2354 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Quad'>quad</a> …
2360 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2368a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2370 <a name='Conic'></a>
2372 <a href='SkPath_Reference#Conic'>Conic</a> describes a conical section: a piece of an ellipse, or a
2373 parabola, or a piece of a hyperbola. <a href='SkPath_Reference#Conic'>Conic</a> begins at a start <
2374a href='undocumented#Curve'>curves</a> towards a control <a href='SkPoint_Reference#Point'>Point</
2375 of the control <a href='SkPoint_Reference#Point'>Point</a> is determined by <a href='#Path_Conic_We…
2377a href='SkPath_Reference#Conic'>Conic</a> in <a href='SkPath_Reference#Path'>Path</a> adds two <a
2378 may be inspected with <a href='#SkPath_Iter'>Iter</a>, or with <a href='#SkPath_RawIter'>RawIter</a
2380 <a name='Conic_Weight'></a>
2384 … strength of the control <a href='SkPoint_Reference#Point'>Point</a> and the type of <a href='SkPa…
2385 …m zero to infinity. At zero, Weight causes the control <a href='SkPoint_Reference#Point'>Point</a>…
2386a href='SkPath_Reference#Conic'>Conic</a> is identical to a <a href='undocumented#Line'>line</a> s…
2387a href='SkPoint_Reference#Point'>point</a>. If Weight is less than one, <a href='SkPath_Reference#…
2388a href='SkPath_Reference#Conic'>Conic</a> is identical to <a href='SkPath_Reference#Quad'>Quad</a>…
2389 parabolic <a href='undocumented#Arc'>arc</a>. If Weight is greater than one, <a href='SkPath_Refere…
2390a href='undocumented#Arc'>arc</a>. If Weight is infinity, <a href='SkPath_Reference#Conic'>Conic</
2391a href='SkPoint_Reference#Point'>Point</a> to control <a href='SkPoint_Reference#Point'>Point</a>,…
2395 …en <a href='#Path_Conic_Weight'>Conic_Weight</a> is one, <a href='SkPath_Reference#Quad'>Quad</a> …
2408 If weight is less than one, <a href='SkPath_Reference#Conic'>Conic</a> is an elliptical segment.
2412 …b1c0add5b4"><div>A 90 degree circular <a href='undocumented#Arc'>arc</a> has the weight <code>1 / …
2425 If weight is greater than one, <a href='SkPath_Reference#Conic'>Conic</a> is a hyperbolic segment. …
2426 a hyperbolic segment can be approximated by straight <a href='undocumented#Line'>lines</a> connecti…
2427 control <a href='SkPoint_Reference#Point'>Point</a> with the end <a href='SkPoint_Reference#Point'>…
2444 <a name='SkPath_conicTo'></a>
2449a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocu…
2452a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards (<a h…
2453a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>Sk…
2454 before adding <a href='SkPath_Reference#Conic'>conic</a>.
2456a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2458 … <a href='#SkPath_conicTo_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>kC…
2459a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicT…
2461 If <a href='#SkPath_conicTo_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to…
2462a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicT…
2464 If <a href='#SkPath_conicTo_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Verb…
2465a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), (<a href='#SkPath_conicT…
2469 <table> <tr> <td><a name='SkPath_conicTo_x1'><code><strong>x1</strong></code></a></td>
2470 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>co…
2472 <tr> <td><a name='SkPath_conicTo_y1'><code><strong>y1</strong></code></a></td>
2473 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>co…
2475 <tr> <td><a name='SkPath_conicTo_x2'><code><strong>x2</strong></code></a></td>
2476 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic<…
2478 <tr> <td><a name='SkPath_conicTo_y2'><code><strong>y2</strong></code></a></td>
2479 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Conic'>conic<…
2481 <tr> <td><a name='SkPath_conicTo_w'><code><strong>w</strong></code></a></td>
2482 <td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
2488 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2492 …>As weight increases, <a href='undocumented#Curve'>curve</a> is pulled towards control <a href='Sk…
2493 The bottom two <a href='undocumented#Curve'>curves</a> are elliptical; the next is parabolic; the
2494 top <a href='undocumented#Curve'>curve</a> is hyperbolic.
2499 <a href='#SkPath_rConicTo'>rConicTo</a> <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_addArc'>…
2501 <a name='SkPath_conicTo_2'></a>
2506a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='…
2509a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards <a hr…
2510a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'>Sk…
2511 before adding <a href='SkPath_Reference#Conic'>conic</a>.
2513a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2515 …<a href='#SkPath_conicTo_2_w'>w</a> is finite and not one, appends <a href='#SkPath_kConic_Verb'>k…
2516a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#Sk…
2518a href='#SkPath_conicTo_2_w'>w</a> is one, appends <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to …
2519 to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
2521 …f <a href='#SkPath_conicTo_2_w'>w</a> is not finite, appends <a href='#SkPath_kLine_Verb'>kLine_Ve…
2522a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, <a href='#Sk…
2526 <table> <tr> <td><a name='SkPath_conicTo_2_p1'><code><strong>p1</strong></code></a></td>
2527 …<td>control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Con…
2529 <tr> <td><a name='SkPath_conicTo_2_p2'><code><strong>p2</strong></code></a></td>
2530 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of added <a href='SkPath_Reference#Conic'>…
2532 <tr> <td><a name='SkPath_conicTo_2_w'><code><strong>w</strong></code></a></td>
2533 <td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
2539 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2543a href='SkPath_Reference#Conic'>Conics</a> and <a href='undocumented#Arc'>arcs</a> use identical r…
2544 the <a href='#Path_Conic_Weight'>Conic_Weight</a> also increases, but remains smaller than one.
2549 <a href='#SkPath_rConicTo'>rConicTo</a> <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_addArc'>…
2551 <a name='SkPath_rConicTo'></a>
2556a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undo…
2559a href='SkPath_Reference#Conic'>conic</a> from <a href='#Last_Point'>last point</a> towards <a hr…
2560a href='#SkPath_rConicTo_w'>w</a>. If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or la…
2561a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2563a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2566a href='#SkPath_rConicTo_w'>w</a> is finite and not one, next appends <a href='#SkPath_kConic_Verb…
2567 and <a href='#SkPath_rConicTo_w'>w</a> is recorded as <a href='#Conic_Weight'>conic weight</a>; ot…
2568a href='#SkPath_kQuad_Verb'>kQuad_Verb</a> to <a href='#Verb_Array'>verb array</a>; or if <a href…
2569 twice to <a href='#Verb_Array'>verb array</a>.
2571 …cases appends <a href='SkPoint_Reference#SkPoint'>SkPoint</a> control and end to <a href='SkPath_…
2572a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#…
2573a href='#Last_Point'>last point</a> plus <a href='SkPoint_Reference#Vector'>vector</a> (<a href='#…
2575 Function name stands for "relative <a href='SkPath_Reference#Conic'>conic</a> to".
2579 <table> <tr> <td><a name='SkPath_rConicTo_dx1'><code><strong>dx1</strong></code></a></td>
2580 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a
2582 <tr> <td><a name='SkPath_rConicTo_dy1'><code><strong>dy1</strong></code></a></td>
2583 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a
2585 <tr> <td><a name='SkPath_rConicTo_dx2'><code><strong>dx2</strong></code></a></td>
2586 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a
2588 <tr> <td><a name='SkPath_rConicTo_dy2'><code><strong>dy2</strong></code></a></td>
2589 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Conic'>conic</a
2591 <tr> <td><a name='SkPath_rConicTo_w'><code><strong>w</strong></code></a></td>
2592 <td>weight of added <a href='SkPath_Reference#Conic'>conic</a></td>
2598 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2606 <a href='#SkPath_conicTo'>conicTo</a> <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_addArc'>ad…
2608 <a name='Cubic'></a>
2612 <a href='SkPath_Reference#Cubic'>Cubic</a> describes a <a href='#Bezier_Curve'>Bezier_Curve</a> seg…
2613a href='SkPath_Reference#Cubic'>Cubic</a> begins at a start <a href='SkPoint_Reference#Point'>Poin…
2614a href='undocumented#Curve'>curves</a> from the end <a href='SkPoint_Reference#Point'>Point</a> to…
2620 <a name='SkPath_cubicTo'></a>
2625a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocu…
2628a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards (<a h…
2629a href='#SkPath_cubicTo_x3'>x3</a>, <a href='#SkPath_cubicTo_y3'>y3</a>). If <a href='SkPath_Refer…
2630 (0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
2632a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2633a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and (<a hre…
2634 to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
2638 <table> <tr> <td><a name='SkPath_cubicTo_x1'><code><strong>x1</strong></code></a></td>
2639 …<td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cub…
2641 <tr> <td><a name='SkPath_cubicTo_y1'><code><strong>y1</strong></code></a></td>
2642 …<td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cub…
2644 <tr> <td><a name='SkPath_cubicTo_x2'><code><strong>x2</strong></code></a></td>
2645 …<td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cu…
2647 <tr> <td><a name='SkPath_cubicTo_y2'><code><strong>y2</strong></code></a></td>
2648 …<td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cu…
2650 <tr> <td><a name='SkPath_cubicTo_x3'><code><strong>x3</strong></code></a></td>
2651 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic<…
2653 <tr> <td><a name='SkPath_cubicTo_y3'><code><strong>y3</strong></code></a></td>
2654 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic<…
2660 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2668a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2670 <a name='SkPath_cubicTo_2'></a>
2675a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='…
2678a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a hr…
2679a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPath_cubicTo_2_p3'>p3</a>. If <a href='…
2680 (0, 0) before adding <a href='SkPath_Reference#Cubic'>cubic</a>.
2682a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2683a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and <a href…
2684 to <a href='SkPath_Reference#Point_Array'>SkPoint array</a>.
2688 <table> <tr> <td><a name='SkPath_cubicTo_2_p1'><code><strong>p1</strong></code></a></td>
2689 …<td>first control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cub…
2691 <tr> <td><a name='SkPath_cubicTo_2_p2'><code><strong>p2</strong></code></a></td>
2692 …<td>second control <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cu…
2694 <tr> <td><a name='SkPath_cubicTo_2_p3'><code><strong>p3</strong></code></a></td>
2695 …<td>end <a href='SkPoint_Reference#SkPoint'>SkPoint</a> of <a href='SkPath_Reference#Cubic'>cubic<…
2701 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2709a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2711 <a name='SkPath_rCubicTo'></a>
2716a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undo…
2719a href='SkPath_Reference#Cubic'>cubic</a> from <a href='#Last_Point'>last point</a> towards <a hr…
2720a href='SkPoint_Reference#Vector'>vector</a> (<a href='#SkPath_rCubicTo_dx2'>dx2</a>, <a href='#Sk…
2721 If <a href='SkPath_Reference#SkPath'>SkPath</a> is empty, or last <a href='SkPath_Reference#SkPath'…
2722a href='#SkPath_kClose_Verb'>kClose_Verb</a>, <a href='#Last_Point'>last point</a> is set to (0, …
2724a href='#SkPath_kMove_Verb'>kMove_Verb</a> to <a href='#Verb_Array'>verb array</a> and (0, 0) to …
2725 …ends <a href='#SkPath_kCubic_Verb'>kCubic_Verb</a> to <a href='#Verb_Array'>verb array</a>; and a…
2726 control and <a href='SkPath_Reference#Cubic'>cubic</a> end to <a href='SkPath_Reference#Point_Arra…
2727a href='SkPath_Reference#Cubic'>Cubic</a> control is <a href='#Last_Point'>last point</a> plus <a
2728a href='SkPath_Reference#Cubic'>Cubic</a> end is <a href='#Last_Point'>last point</a> plus <a hre…
2729 Function name stands for "relative <a href='SkPath_Reference#Cubic'>cubic</a> to".
2733 <table> <tr> <td><a name='SkPath_rCubicTo_dx1'><code><strong>dx1</strong></code></a></td>
2734 …<td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cu…
2736 <tr> <td><a name='SkPath_rCubicTo_dy1'><code><strong>dy1</strong></code></a></td>
2737 …<td>offset from <a href='#Last_Point'>last point</a> to first <a href='SkPath_Reference#Cubic'>cu…
2739 <tr> <td><a name='SkPath_rCubicTo_dx2'><code><strong>dx2</strong></code></a></td>
2740 …<td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>c…
2742 <tr> <td><a name='SkPath_rCubicTo_dy2'><code><strong>dy2</strong></code></a></td>
2743 …<td>offset from <a href='#Last_Point'>last point</a> to second <a href='SkPath_Reference#Cubic'>c…
2745 <tr> <td><a name='SkPath_rCubicTo_dx3'><code><strong>dx3</strong></code></a></td>
2746 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a
2748 <tr> <td><a name='SkPath_rCubicTo_dy3'><code><strong>dy3</strong></code></a></td>
2749 …<td>offset from <a href='#Last_Point'>last point</a> to <a href='SkPath_Reference#Cubic'>cubic</a
2755 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2763a href='SkPath_Overview#Contour'>Contour</a> <a href='#SkPath_moveTo'>moveTo</a> <a href='#SkPath_…
2765 <a name='Arc'></a>
2769a href='undocumented#Arc'>Arc</a> can be constructed in a number of ways. <a href='undocumented#Ar…
2770a href='SkPoint_Reference#Point'>point</a> and end <a href='SkPoint_Reference#Point'>point</a>, an…
2771 and some constructions correspond to <a href='undocumented#Arc'>Arc</a> drawing in graphics standar…
2773a href='undocumented#Arc'>Arc</a> draws are implemented by one or more <a href='SkPath_Reference#C…
2774a href='SkPath_Reference#Conic'>Conic</a> describes an <a href='undocumented#Arc'>Arc</a> of some …
2776 Circle<a href='#SkPath_arcTo'>arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, b…
2777 describes <a href='undocumented#Arc'>Arc</a> as a piece of <a href='undocumented#Oval'>Oval</a>, be…
2778 …ue <a href='SkPath_Overview#Contour'>Contour</a> or start a new one. This construction is similar …
2779a href='#HTML_Canvas'>HTML_Canvas</a> <a href='undocumented#Arc'>arcs</a>. Variation <a href='#SkP…
2780 requiring <a href='SkPath_Reference#Path'>Path</a>.
2782 Path<a href='#SkPath_arcTo_2'>arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar ra…
2783a href='undocumented#Arc'>Arc</a> as tangent to the <a href='undocumented#Line'>line</a> segment f…
2784 …<a href='undocumented#Line'>line</a> segment from (x1, y1) to (x2, y2). This construction is simil…
2785 <a href='#HTML_Canvas'>HTML_Canvas</a> <a href='undocumented#Arc'>arcs</a>.
2787 arcs<a href='#SkPath_arcTo_4'>arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeAr…
2788 describes <a href='undocumented#Arc'>Arc</a> as part of <a href='undocumented#Oval'>Oval</a> with r…
2789a href='SkPoint_Reference#Point'>Point</a> added to <a href='SkPath_Reference#Path'>Path</a> and e…
2790 …l values choose a single solution. This construction is similar to <a href='undocumented#SVG'>SVG<…
2792a href='#SkPath_conicTo'>conicTo</a> describes <a href='undocumented#Arc'>Arc</a> of less than 180…
2793a href='#SkPath_conicTo'>conicTo</a> can represent any <a href='undocumented#Arc'>Arc</a> with a s…
2794 …erted to <a href='SkPath_Reference#Conic'>Conic</a> <a href='undocumented#Data'>data</a> when adde…
2799 …<td><sup>1</sup> sup<a href='#SkPath_arcTo'>arcTo(const SkRect& oval, SkScalar startAngle, SkScala…
2801 <td><sup>2</sup> parameter adds move to first <a href='SkPoint_Reference#Point'>point</a></td>
2805 …<td><sup>4</sup> sup<a href='#SkPath_arcTo_2'>arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScala…
2807 …> sup<a href='#SkPath_arcTo_4'>arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize large…
2818 …<td>1 describes an <a href='undocumented#Arc'>arc</a> from an <a href='undocumented#Oval'>oval</a>…
2820 …<td>2 is similar to 1, but does not require building a <a href='SkPath_Reference#Path'>path</a> to…
2822 <td>3 is similar to 1, but always begins new <a href='SkPath_Overview#Contour'>Contour</a>.</td>
2824 …<td>4 describes an <a href='undocumented#Arc'>arc</a> from a pair of tangent <a href='undocumented…
2826a href='undocumented#Arc'>arc</a> from <a href='undocumented#Oval'>Oval</a> center, <a href='undoc…
2828 …an <a href='undocumented#Arc'>arc</a> from a pair of tangent <a href='undocumented#Line'>lines</a>…
2832 <a name='SkPath_arcTo'></a>
2837a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRe…
2840 Appends <a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href…
2841a href='#SkPath_arcTo_oval'>oval</a>, from <a href='#SkPath_arcTo_startAngle'>startAngle</a> throu…
2842 <a href='#SkPath_arcTo_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is al…
2843 positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
2845a href='#SkPath_arcTo'>arcTo</a>() adds <a href='undocumented#Line'>line</a> connecting <a href='S…
2846a href='SkPath_Reference#SkPath'>SkPath</a> is not empty. Otherwise, added <a href='SkPath_Overvie…
2847 of <a href='undocumented#Arc'>arc</a>. Angles greater than -360 and less than 360 are treated modul…
2851 <table> <tr> <td><a name='SkPath_arcTo_oval'><code><strong>oval</strong></code></a></td>
2852 <td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
2854 <tr> <td><a name='SkPath_arcTo_startAngle'><code><strong>startAngle</strong></code></a></td>
2855 <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
2857 <tr> <td><a name='SkPath_arcTo_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
2860 <tr> <td><a name='SkPath_arcTo_forceMoveTo'><code><strong>forceMoveTo</strong></code></a></td>
2861 …<td>true to start a new <a href='SkPath_Overview#Contour'>contour</a> with <a href='undocumented#A…
2867 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2871a href='#SkPath_arcTo'>arcTo</a> continues a previous <a href='SkPath_Overview#Contour'>contour</a
2877a href='#SkPath_addArc'>addArc</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#S…
2879 <a name='SkPath_arcTo_2'></a>
2884a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocument…
2887a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending…
2888 weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>A…
2889a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to (<a hre…
2890a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_2_radius'>radius</a>, posi…
2892a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> does not start…
2893a href='SkPoint_Reference#Vector'>Vector</a> from (<a href='#SkPath_arcTo_2_x1'>x1</a>, <a href='#…
2895 <a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo…
2896a href='#SkPath_arcTo'>arcTo</a> appends <a href='undocumented#Line'>Line</a> from last <a href='S…
2898 <a href='#SkPath_arcTo'>arcTo</a> appends at most one <a href='undocumented#Line'>Line</a> and one …
2899a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='undocumented#Arct'>Post…
2903 <table> <tr> <td><a name='SkPath_arcTo_2_x1'><code><strong>x1</strong></code></a></td>
2906 <tr> <td><a name='SkPath_arcTo_2_y1'><code><strong>y1</strong></code></a></td>
2909 <tr> <td><a name='SkPath_arcTo_2_x2'><code><strong>x2</strong></code></a></td>
2912 <tr> <td><a name='SkPath_arcTo_2_y2'><code><strong>y2</strong></code></a></td>
2915 <tr> <td><a name='SkPath_arcTo_2_radius'><code><strong>radius</strong></code></a></td>
2916 …<td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> c…
2922 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2934a href='#SkPath_arcTo'>arcTo</a> is represented by <a href='undocumented#Line'>Line</a> and circul…
2949 <a href='#SkPath_conicTo'>conicTo</a>
2951 <a name='SkPath_arcTo_3'></a>
2956a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPo…
2959a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, after appending…
2960 weighted to describe part of <a href='undocumented#Circle'>circle</a>. <a href='undocumented#Arc'>A…
2961a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#Point'>point</a> to <a href…
2962a href='undocumented#Circle'>circle</a> sized to <a href='#SkPath_arcTo_3_radius'>radius</a>, posi…
2964a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> does n…
2965a href='SkPoint_Reference#Vector'>vector</a> from <a href='#SkPath_arcTo_3_p1'>p1</a> to <a href='…
2967 <a href='undocumented#Arc'>Arc</a> sweep is always less than 180 degrees. If <a href='#SkPath_arcTo…
2968a href='#SkPath_arcTo'>arcTo</a>() appends <a href='undocumented#Line'>line</a> from last <a href=…
2970 <a href='#SkPath_arcTo'>arcTo</a>() appends at most one <a href='undocumented#Line'>line</a> and on…
2971a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#Arct'>Po…
2975 <table> <tr> <td><a name='SkPath_arcTo_3_p1'><code><strong>p1</strong></code></a></td>
2976 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> common to pair of tangents</td>
2978 <tr> <td><a name='SkPath_arcTo_3_p2'><code><strong>p2</strong></code></a></td>
2981 <tr> <td><a name='SkPath_arcTo_3_radius'><code><strong>radius</strong></code></a></td>
2982 …<td>distance from <a href='undocumented#Arc'>arc</a> to <a href='undocumented#Circle'>circle</a> c…
2988 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
2992a href='undocumented#Line'>lines</a> are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends <a hr…
2993 <a href='#SkPath_arcTo_3_p1'>p1</a>, but does not append a circular <a href='SkPath_Reference#Conic…
3007 <a href='#SkPath_conicTo'>conicTo</a>
3009 <a name='SkPath_ArcSize'></a>
3014 enum <a href='#SkPath_ArcSize'>ArcSize</a> {
3015 <a href='#SkPath_kSmall_ArcSize'>kSmall_ArcSize</a>,
3016 <a href='#SkPath_kLarge_ArcSize'>kLarge_ArcSize</a>,
3020 …s-aligned <a href='undocumented#Oval'>Ovals</a> with the same height and width intersect a pair of…
3021 <a href='#SkPath_ArcSize'>ArcSize</a> and <a href='#SkPath_Direction'>Direction</a> select one of t…
3022a href='undocumented#Arc'>arc</a> between the <a href='SkPoint_Reference#Point'>Points</a>; and by…
3032 …rder: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kSmall_ArcSize'><code>SkPath::kSmall_ArcS…
3038 …rder: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kLarge_ArcSize'><code>SkPath::kLarge_ArcS…
3047 …v><a href='undocumented#Arc'>Arc</a> begins at top of <a href='undocumented#Oval'>Oval</a> pair an…
3054 <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_Direction'>Direction</a>
3056 <a name='SkPath_arcTo_4'></a>
3061a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocument…
3062 … <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
3065a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocu…
3066a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkP…
3067a href='undocumented#Curve'>curves</a> from last <a href='SkPath_Reference#SkPath'>SkPath</a> <a h…
3070a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_4_sweep'>sweep</a> is always less than 36…
3071a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals…
3072a href='#SkPath_arcTo_4_rx'>rx</a>, <a href='#SkPath_arcTo_4_ry'>ry</a>) to fit last <a href='SkPa…
3075 <a href='#SkPath_arcTo'>arcTo</a>() appends up to four <a href='SkPath_Reference#Conic'>conic</a> <
3076a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'…
3077 …posite the integer value of <a href='#SkPath_arcTo_4_sweep'>sweep</a>; <a href='undocumented#Swee…
3078 while <a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
3082 <table> <tr> <td><a name='SkPath_arcTo_4_rx'><code><strong>rx</strong></code></a></td>
3085 <tr> <td><a name='SkPath_arcTo_4_ry'><code><strong>ry</strong></code></a></td>
3088 …<tr> <td><a name='SkPath_arcTo_4_xAxisRotate'><code><strong>xAxisRotate</strong></code></a></td>
3091 <tr> <td><a name='SkPath_arcTo_4_largeArc'><code><strong>largeArc</strong></code></a></td>
3092 <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
3094 <tr> <td><a name='SkPath_arcTo_4_sweep'><code><strong>sweep</strong></code></a></td>
3095 <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
3097 <tr> <td><a name='SkPath_arcTo_4_x'><code><strong>x</strong></code></a></td>
3098 <td>end of <a href='undocumented#Arc'>arc</a></td>
3100 <tr> <td><a name='SkPath_arcTo_4_y'><code><strong>y</strong></code></a></td>
3101 <td>end of <a href='undocumented#Arc'>arc</a></td>
3107 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3115 <a href='#SkPath_rArcTo'>rArcTo</a> <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_Directio…
3117 <a name='SkPath_arcTo_5'></a>
3122a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPo…
3123 const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
3126a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. <a href='undocu…
3127a href='undocumented#Oval'>oval</a> with radii (<a href='#SkPath_arcTo_5_r'>r</a>.<a href='#SkPoin…
3128a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to (<a
3132a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo_5_sweep'>sweep</a> is always less than 36…
3133a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals…
3134 fit last <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPoint_Reference#SkPoint'>SkPoint</
3135 an <a href='undocumented#Arc'>arc</a>.
3137 <a href='#SkPath_arcTo'>arcTo</a>() appends up to four <a href='SkPath_Reference#Conic'>conic</a> <
3138a href='#SkPath_arcTo'>arcTo</a>() implements the functionality of <a href='undocumented#SVG_Arc'…
3139 …posite the integer value of <a href='#SkPath_arcTo_5_sweep'>sweep</a>; <a href='undocumented#Swee…
3140 <a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
3144 <table> <tr> <td><a name='SkPath_arcTo_5_r'><code><strong>r</strong></code></a></td>
3147 …<tr> <td><a name='SkPath_arcTo_5_xAxisRotate'><code><strong>xAxisRotate</strong></code></a></td>
3150 <tr> <td><a name='SkPath_arcTo_5_largeArc'><code><strong>largeArc</strong></code></a></td>
3151 <td>chooses smaller or larger <a href='undocumented#Arc'>arc</a></td>
3153 <tr> <td><a name='SkPath_arcTo_5_sweep'><code><strong>sweep</strong></code></a></td>
3154 <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>arc</a></td>
3156 <tr> <td><a name='SkPath_arcTo_5_xy'><code><strong>xy</strong></code></a></td>
3157 <td>end of <a href='undocumented#Arc'>arc</a></td>
3163 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3171 <a href='#SkPath_rArcTo'>rArcTo</a> <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_Directio…
3173 <a name='SkPath_rArcTo'></a>
3178a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocume…
3179 … <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
3182a href='undocumented#Arc'>Arc</a> to <a href='SkPath_Reference#Path'>Path</a>, relative to last <a
3183a href='SkPath_Reference#Conic'>Conic</a>, weighted to describe part of <a href='undocumented#Oval…
3184a href='#SkPath_rArcTo_xAxisRotate'>xAxisRotate</a> degrees. <a href='undocumented#Arc'>Arc</a> <a
3185 (<a href='#SkPath_rArcTo_dx'>dx</a>, <a href='#SkPath_rArcTo_dy'>dy</a>), choosing one of four poss…
3186 …er. If <a href='SkPath_Reference#Path'>Path</a> is empty, the start <a href='undocumented#Arc'>Arc…
3189a href='undocumented#Arc'>Arc</a> <a href='#SkPath_rArcTo_sweep'>sweep</a> is always less than 360…
3190 …f last <a href='SkPath_Reference#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> equals…
3191a href='#SkPath_arcTo'>arcTo</a> scales radii (<a href='#SkPath_rArcTo_rx'>rx</a>, <a href='#SkPat…
3192 greater than zero but too small to describe an <a href='undocumented#Arc'>arc</a>.
3194 <a href='#SkPath_arcTo'>arcTo</a> appends up to four <a href='SkPath_Reference#Conic'>Conic</a> <a
3195 <a href='#SkPath_arcTo'>arcTo</a> implements the functionality of <a href='#SVG_Arc'>SVG_Arc</a>, a…
3196 opposite the integer value of <a href='#SkPath_rArcTo_sweep'>sweep</a>; <a href='undocumented#SVG'>…
3197 <a href='#SkPath_kCW_Direction'>kCW_Direction</a> cast to int is zero.
3201 <table> <tr> <td><a name='SkPath_rArcTo_rx'><code><strong>rx</strong></code></a></td>
3204 <tr> <td><a name='SkPath_rArcTo_ry'><code><strong>ry</strong></code></a></td>
3207 <tr> <td><a name='SkPath_rArcTo_xAxisRotate'><code><strong>xAxisRotate</strong></code></a></td>
3210 <tr> <td><a name='SkPath_rArcTo_largeArc'><code><strong>largeArc</strong></code></a></td>
3211 <td>chooses smaller or larger <a href='undocumented#Arc'>Arc</a></td>
3213 <tr> <td><a name='SkPath_rArcTo_sweep'><code><strong>sweep</strong></code></a></td>
3214 <td>chooses clockwise or counterclockwise <a href='undocumented#Arc'>Arc</a></td>
3216 <tr> <td><a name='SkPath_rArcTo_dx'><code><strong>dx</strong></code></a></td>
3217 …fset end of <a href='undocumented#Arc'>Arc</a> from last <a href='SkPath_Reference#Path'>Path</a> …
3219 <tr> <td><a name='SkPath_rArcTo_dy'><code><strong>dy</strong></code></a></td>
3220 …fset end of <a href='undocumented#Arc'>Arc</a> from last <a href='SkPath_Reference#Path'>Path</a> …
3226 reference to <a href='SkPath_Reference#Path'>Path</a>
3234 <a href='#SkPath_arcTo'>arcTo</a> <a href='#SkPath_ArcSize'>ArcSize</a> <a href='#SkPath_Direction'…
3236 <a name='SkPath_close'></a>
3241 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_close'>close()</a>
3244a href='#SkPath_kClose_Verb'>kClose_Verb</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>. A cl…
3245 with <a href='undocumented#Line'>line</a>, forming a continuous loop. Open and closed <a href='SkPa…
3246a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kFill_Style'>kFill_Style</a>. Wi…
3247a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Cap'>Cap</a> at <a href='SkPath_…
3248 <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Join'>Join</a> at <a href='SkPat…
3250a href='#SkPath_close'>close()</a> has no effect if <a href='SkPath_Reference#SkPath'>SkPath</a> i…
3254 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3262 <a name='SkPath_IsInverseFillType'></a>
3267 static bool <a href='#SkPath_IsInverseFillType'>IsInverseFillType</a>(<a href='#SkPath_FillType'>Fi…
3270a href='#SkPath_IsInverseFillType_fill'>fill</a> is inverted and <a href='SkPath_Reference#Path'>P…
3273 | <a href='#SkPath_FillType'>FillType</a> | is inverse |
3275 | <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> | false |
3276 | <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> | false |
3277 | <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> | true |
3278 | <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> | true |
3282 <table> <tr> <td><a name='SkPath_IsInverseFillType_fill'><code><strong>fill</strong></code></a>…
3283 …<td>one of: <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_F…
3284 <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>, <a href='#SkPath_kInverseE…
3291 true if <a href='SkPath_Reference#Path'>Path</a> fills outside its bounds
3310a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a> <a href='#SkP…
3312 <a name='SkPath_ConvertToNonInverseFillType'></a>
3317a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_ConvertToNonInverseFillType'>ConvertToNonI…
3320 …<a href='#Path_Fill_Type'>Fill_Type</a> representing <a href='SkPath_Reference#Path'>Path</a> <a h…
3322 | <a href='#SkPath_FillType'>FillType</a> | inside <a href='#SkPath_FillType'>FillType</a> |
3324 | <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> | <a href='#SkPath_kWinding_FillType'>k…
3325 | <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> | <a href='#SkPath_kEvenOdd_FillType'>k…
3326 | <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> | <a href='#SkPath_kWindi…
3327 | <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> | <a href='#SkPath_kEvenO…
3331 <table> <tr> <td><a name='SkPath_ConvertToNonInverseFillType_fill'><code><strong>fill</strong><…
3332 …<td>one of: <a href='#SkPath_kWinding_FillType'>kWinding_FillType</a>, <a href='#SkPath_kEvenOdd_F…
3333 <a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a>, <a href='#SkPath_kInverseE…
3340a href='#SkPath_ConvertToNonInverseFillType_fill'>fill</a>, or <a href='#SkPath_kWinding_FillType'…
3359a href='#SkPath_FillType'>FillType</a> <a href='#SkPath_getFillType'>getFillType</a> <a href='#SkP…
3361 <a name='SkPath_ConvertConicToQuads'></a>
3366a href='#SkPath_ConvertConicToQuads'>ConvertConicToQuads</a>(const <a href='SkPoint_Reference#SkPo…
3367 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int pow2)
3370a href='SkPath_Reference#Conic'>Conic</a> with <a href='SkPath_Reference#Quad'>Quad</a> array. <a
3371a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_ConvertConicToQuads_p1'>p1</a>, end <a
3372 <a href='SkPath_Reference#Quad'>Quad</a> array is stored in <a href='#SkPath_ConvertConicToQuads_pt…
3373 Maximum <a href='SkPath_Reference#Quad'>Quad</a> count is 2 to the <a href='#SkPath_ConvertConicToQ…
3374a href='SkPoint_Reference#Point'>point</a> in array shares last <a href='SkPoint_Reference#Point'>…
3375 …ext <a href='SkPath_Reference#Quad'>Quad</a>. Maximum <a href='#SkPath_ConvertConicToQuads_pts'>pt…
3376 …<< <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a>)) * <a href='undocumented#sizeof()'>sizeof<…
3378 Returns <a href='SkPath_Reference#Quad'>Quad</a> count used the approximation, which may be smaller
3381a href='#Path_Conic_Weight'>Conic_Weight</a> determines the amount of influence <a href='SkPath_Re…
3382 <a href='#SkPath_ConvertConicToQuads_w'>w</a> less than one represents an elliptical section. <a hr…
3383 a hyperbolic section. <a href='#SkPath_ConvertConicToQuads_w'>w</a> equal to one represents a parab…
3385a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> are sufficient to …
3386 of up to 90 degrees; in this case, set <a href='#SkPath_ConvertConicToQuads_pow2'>pow2</a> to one.
3390 <table> <tr> <td><a name='SkPath_ConvertConicToQuads_p0'><code><strong>p0</strong></code></a></…
3391 …<td><a href='SkPath_Reference#Conic'>Conic</a> start <a href='SkPoint_Reference#Point'>Point</a></…
3393 <tr> <td><a name='SkPath_ConvertConicToQuads_p1'><code><strong>p1</strong></code></a></td>
3394 …<td><a href='SkPath_Reference#Conic'>Conic</a> control <a href='SkPoint_Reference#Point'>Point</a>…
3396 <tr> <td><a name='SkPath_ConvertConicToQuads_p2'><code><strong>p2</strong></code></a></td>
3397 …<td><a href='SkPath_Reference#Conic'>Conic</a> end <a href='SkPoint_Reference#Point'>Point</a></td>
3399 <tr> <td><a name='SkPath_ConvertConicToQuads_w'><code><strong>w</strong></code></a></td>
3400 <td><a href='SkPath_Reference#Conic'>Conic</a> weight</td>
3402 <tr> <td><a name='SkPath_ConvertConicToQuads_pts'><code><strong>pts</strong></code></a></td>
3403 <td>storage for <a href='SkPath_Reference#Quad'>Quad</a> array</td>
3405 <tr> <td><a name='SkPath_ConvertConicToQuads_pow2'><code><strong>pow2</strong></code></a></td>
3406a href='SkPath_Reference#Quad'>Quad</a> count, as power of two, normally 0 to 5 (1 to 32 <a href='…
3412 …er of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> written to …
3416A pair of <a href='SkPath_Reference#Quad'>Quad</a> <a href='undocumented#Curve'>curves</a> are dra…
3417 The middle <a href='undocumented#Curve'>curve</a> is nearly circular. The top-right <a href='undocu…
3418 be drawn exactly with a single <a href='SkPath_Reference#Quad'>Quad</a>.
3423 <a href='SkPath_Reference#Conic'>Conic</a> <a href='SkPath_Reference#Quad'>Quad</a>
3425 <a name='SkPath_isRect'></a>
3430a href='#SkPath_isRect'>isRect</a>(<a href='SkRect_Reference#SkRect'>SkRect</a>* <a href='SkRect_R…
3433 Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to <a href='SkRect_Refer…
3434 …alse: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and …
3435 …true: <a href='#SkPath_isRect_rect'>rect</a>, <a href='#SkPath_isRect_isClosed'>isClosed</a>, and …
3437a href='#SkPath_isRect_rect'>rect</a> may be smaller than the <a href='SkPath_Reference#SkPath'>Sk…
3438 that do not alter the area drawn by the returned <a href='#SkPath_isRect_rect'>rect</a>.
3442 <table> <tr> <td><a name='SkPath_isRect_rect'><code><strong>rect</strong></code></a></td>
3443 <td>storage for bounds of <a href='SkRect_Reference#SkRect'>SkRect</a>; may be nullptr</td>
3445 <tr> <td><a name='SkPath_isRect_isClosed'><code><strong>isClosed</strong></code></a></td>
3446 …<td>storage set to true if <a href='SkPath_Reference#SkPath'>SkPath</a> is closed; may be nullptr<…
3448 <tr> <td><a name='SkPath_isRect_direction'><code><strong>direction</strong></code></a></td>
3449 …<td>storage set to <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_isRect_direction'…
3455 true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains <a href='SkRect_Reference#SkRect'>SkR…
3459a href='#SkPath_addRect'>addRect</a>, <a href='#SkPath_isRect'>isRect</a> returns true. Following …
3460 …ng <a href='#SkPath_lineTo'>lineTo</a> does not. <a href='#SkPath_addPoly'>addPoly</a> returns tru…
3461 side of <a href='#SkPath_isRect_rect'>rect</a> is made up of consecutive <a href='undocumented#Line…
3478a href='#SkPath_computeTightBounds'>computeTightBounds</a> <a href='#SkPath_conservativelyContains…
3480 <a name='SkPath_isNestedFillRects'></a>
3485a href='#SkPath_isNestedFillRects'>isNestedFillRects</a>(<a href='SkRect_Reference#SkRect'>SkRect<…
3488 Returns true if <a href='SkPath_Reference#SkPath'>SkPath</a> is equivalent to nested <a href='SkRec…
3489 If false, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_…
3490 If true, <a href='#SkPath_isNestedFillRects_rect'>rect</a> and <a href='#SkPath_isNestedFillRects_d…
3491a href='#SkPath_isNestedFillRects_rect'>rect</a>[0] to outer <a href='SkRect_Reference#SkRect'>SkR…
3492a href='#SkPath_isNestedFillRects_dirs'>dirs</a>[0] to <a href='SkPath_Reference#SkPath'>SkPath</a
3493 inner <a href='SkRect_Reference#SkRect'>SkRect</a>.
3497 <table> <tr> <td><a name='SkPath_isNestedFillRects_rect'><code><strong>rect</strong></code></a>…
3498 <td>storage for <a href='SkRect_Reference#SkRect'>SkRect</a> pair; may be nullptr</td>
3500 <tr> <td><a name='SkPath_isNestedFillRects_dirs'><code><strong>dirs</strong></code></a></td>
3501 …<td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Directio…
3507 true if <a href='SkPath_Reference#SkPath'>SkPath</a> contains nested <a href='SkRect_Reference#SkRe…
3524a href='#SkPath_computeTightBounds'>computeTightBounds</a> <a href='#SkPath_conservativelyContains…
3526 <a name='SkPath_addRect'></a>
3531a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='…
3534a href='SkRect_Reference#SkRect'>SkRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, appen…
3535 starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-righ…
3536 and bottom-left if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Dir…
3537 …ottom-right, and top-right if <a href='#SkPath_addRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direc…
3541 <table> <tr> <td><a name='SkPath_addRect_rect'><code><strong>rect</strong></code></a></td>
3542 …<td><a href='SkRect_Reference#SkRect'>SkRect</a> to add as a closed <a href='SkPath_Overview#Conto…
3544 <tr> <td><a name='SkPath_addRect_dir'><code><strong>dir</strong></code></a></td>
3545 …td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind…
3551 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3555 …d name="0f841e4eaebb613b5069800567917c2d"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> d…
3556 The right <a href='SkRect_Reference#Rect'>Rect</a> dashes starting at the top-left corner, towards …
3561 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawRect'>drawRect</a> <a hr…
3563 <a name='SkPath_addRect_2'></a>
3568a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='…
3571a href='SkRect_Reference#Rect'>Rect</a> to <a href='SkPath_Reference#Path'>Path</a>, appending <a
3572a href='#SkPath_addRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a hr…
3573 <a href='#SkPath_kCCW_Direction'>kCCW_Direction</a>, <a href='SkRect_Reference#Rect'>Rect</a> corne…
3574 <a href='#SkPath_addRect_2_start'>start</a> determines the first corner added.
3576 | <a href='#SkPath_addRect_2_start'>start</a> | first corner |
3585 <table> <tr> <td><a name='SkPath_addRect_2_rect'><code><strong>rect</strong></code></a></td>
3586 …<td><a href='SkRect_Reference#Rect'>Rect</a> to add as a closed <a href='SkPath_Overview#Contour'>…
3588 <tr> <td><a name='SkPath_addRect_2_dir'><code><strong>dir</strong></code></a></td>
3589 …<td><a href='#SkPath_Direction'>Direction</a> to wind added <a href='SkPath_Overview#Contour'>cont…
3591 <tr> <td><a name='SkPath_addRect_2_start'><code><strong>start</strong></code></a></td>
3592 <td>initial corner of <a href='SkRect_Reference#Rect'>Rect</a> to add</td>
3598 reference to <a href='SkPath_Reference#Path'>Path</a>
3602 …"><div>The arrow is just after the initial corner and <a href='SkPoint_Reference#Point'>points</a>…
3603 corner appended to <a href='SkPath_Reference#Path'>Path</a>.
3608 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawRect'>drawRect</a> <a hr…
3610 <a name='SkPath_addRect_3'></a>
3615a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocu…
3616 … <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW_Direction</a>)
3619a href='SkRect_Reference#SkRect'>SkRect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#…
3620 …ing <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine_Verb</a>…
3621 starting with top-left corner of <a href='SkRect_Reference#SkRect'>SkRect</a>; followed by top-righ…
3622 and bottom-left if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_D…
3623 …ttom-right, and top-right if <a href='#SkPath_addRect_3_dir'>dir</a> is <a href='#SkPath_kCCW_Dire…
3627 <table> <tr> <td><a name='SkPath_addRect_3_left'><code><strong>left</strong></code></a></td>
3628 <td>smaller x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
3630 <tr> <td><a name='SkPath_addRect_3_top'><code><strong>top</strong></code></a></td>
3631 <td>smaller y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
3633 <tr> <td><a name='SkPath_addRect_3_right'><code><strong>right</strong></code></a></td>
3634 <td>larger x-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
3636 <tr> <td><a name='SkPath_addRect_3_bottom'><code><strong>bottom</strong></code></a></td>
3637 <td>larger y-axis value of <a href='SkRect_Reference#SkRect'>SkRect</a></td>
3639 <tr> <td><a name='SkPath_addRect_3_dir'><code><strong>dir</strong></code></a></td>
3640 …td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to wind…
3646 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3650a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at …
3651 The <a href='#SkPath_addRect_3_right'>right</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes sta…
3656 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawRect'>drawRect</a> <a hr…
3658 <a name='SkPath_addOval'></a>
3663a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='…
3666a href='#SkPath_addOval_oval'>oval</a> to <a href='SkPath_Reference#Path'>path</a>, appending <a h…
3667a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#SkRect…
3668a href='#SkPath_addOval_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begins at (<a
3669a href='#SkPath_addOval_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, counter…
3673 <table> <tr> <td><a name='SkPath_addOval_oval'><code><strong>oval</strong></code></a></td>
3676 <tr> <td><a name='SkPath_addOval_dir'><code><strong>dir</strong></code></a></td>
3677 …<td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to win…
3683 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3691a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawOval'>drawOval</a> <a hr…
3693 <a name='SkPath_addOval_2'></a>
3698a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='…
3701a href='undocumented#Oval'>Oval</a> to <a href='SkPath_Reference#Path'>Path</a>, appending <a href…
3702a href='undocumented#Oval'>Oval</a> is upright ellipse bounded by <a href='SkRect_Reference#Rect'>…
3703 … half <a href='#SkPath_addOval_2_oval'>oval</a> height. <a href='undocumented#Oval'>Oval</a> begin…
3704a href='#SkPath_addOval_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, count…
3706 | <a href='#SkPath_addOval_2_start'>start</a> | <a href='SkPoint_Reference#Point'>Point</a> |
3708a href='#SkPath_addOval_2_oval'>oval</a>.<a href='#SkRect_centerX'>centerX</a>(), <a href='#SkPath…
3709a href='#SkPath_addOval_2_oval'>oval</a>.<a href='#SkRect_fRight'>fRight</a>, <a href='#SkPath_add…
3710a href='#SkPath_addOval_2_oval'>oval</a>.<a href='#SkRect_centerX'>centerX</a>(), <a href='#SkPath…
3711a href='#SkPath_addOval_2_oval'>oval</a>.<a href='#SkRect_fLeft'>fLeft</a>, <a href='#SkPath_addOv…
3715 <table> <tr> <td><a name='SkPath_addOval_2_oval'><code><strong>oval</strong></code></a></td>
3718 <tr> <td><a name='SkPath_addOval_2_dir'><code><strong>dir</strong></code></a></td>
3719 <td><a href='#SkPath_Direction'>Direction</a> to wind ellipse</td>
3721 <tr> <td><a name='SkPath_addOval_2_start'><code><strong>start</strong></code></a></td>
3722 <td>index of initial <a href='SkPoint_Reference#Point'>point</a> of ellipse</td>
3728 reference to <a href='SkPath_Reference#Path'>Path</a>
3736a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawOval'>drawOval</a> <a hr…
3738 <a name='SkPath_addCircle'></a>
3743a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='un…
3746a href='undocumented#Circle'>Circle</a> centered at (<a href='#SkPath_addCircle_x'>x</a>, <a href=…
3747a href='#SkPath_kConic_Verb'>kConic_Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose_Verb</a>. <
3748a href='#SkPath_addCircle_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, and c…
3750 Has no effect if <a href='#SkPath_addCircle_radius'>radius</a> is zero or negative.
3754 <table> <tr> <td><a name='SkPath_addCircle_x'><code><strong>x</strong></code></a></td>
3755 <td>center of <a href='undocumented#Circle'>Circle</a></td>
3757 <tr> <td><a name='SkPath_addCircle_y'><code><strong>y</strong></code></a></td>
3758 <td>center of <a href='undocumented#Circle'>Circle</a></td>
3760 <tr> <td><a name='SkPath_addCircle_radius'><code><strong>radius</strong></code></a></td>
3763 <tr> <td><a name='SkPath_addCircle_dir'><code><strong>dir</strong></code></a></td>
3764 …<td><a href='#SkPath_Direction'>Direction</a> to wind <a href='undocumented#Circle'>Circle</a></td>
3770 reference to <a href='SkPath_Reference#Path'>Path</a>
3778a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawCircle'>drawCircle</a> <
3780 <a name='SkPath_addArc'></a>
3785a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='Sk…
3788a href='undocumented#Arc'>arc</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, as the start of…
3789a href='#SkPath_addArc_oval'>oval</a>, from <a href='#SkPath_addArc_startAngle'>startAngle</a> thr…
3790 <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> are measured in degrees, where zero degrees is a…
3791 positive x-axis, and positive sweeps extends <a href='undocumented#Arc'>arc</a> clockwise.
3793a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> <= -360, or <a href='#SkPath_addArc_sweepAngle'>…
3794 …nd <a href='#SkPath_addArc_oval'>oval</a> instead of <a href='undocumented#Arc'>arc</a>. Otherwise…
3795 modulo 360, and <a href='undocumented#Arc'>arc</a> may or may not draw depending on numeric roundin…
3799 <table> <tr> <td><a name='SkPath_addArc_oval'><code><strong>oval</strong></code></a></td>
3800 <td>bounds of ellipse containing <a href='undocumented#Arc'>arc</a></td>
3802 <tr> <td><a name='SkPath_addArc_startAngle'><code><strong>startAngle</strong></code></a></td>
3803 <td>starting angle of <a href='undocumented#Arc'>arc</a> in degrees</td>
3805 <tr> <td><a name='SkPath_addArc_sweepAngle'><code><strong>sweepAngle</strong></code></a></td>
3812 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3817 above and below because <a href='#SkPath_addArc_sweepAngle'>sweepAngle</a> is outside of the range …
3818 and <a href='#SkPath_addArc_startAngle'>startAngle</a> modulo 90 is not zero.
3823a href='undocumented#Arc'>Arc</a> <a href='#SkPath_arcTo'>arcTo</a> <a href='SkCanvas_Reference#Sk…
3825 <a name='SkPath_addRoundRect'></a>
3830a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const…
3833a href='SkRRect_Reference#SkRRect'>SkRRect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, cr…
3834a href='#SkPath_addRoundRect_rect'>rect</a>; each corner is 90 degrees of an ellipse with radii (<
3835 <a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a
3836 …If <a href='#SkPath_addRoundRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction</
3839a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is too large, …
3840a href='#SkPath_addRoundRect_rx'>rx</a> or <a href='#SkPath_addRoundRect_ry'>ry</a> is less than o…
3841 <a href='SkRect_Reference#SkRect'>SkRect</a> <a href='#SkPath_addRoundRect_rect'>rect</a> to <a hre…
3843a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Referenc…
3847 <table> <tr> <td><a name='SkPath_addRoundRect_rect'><code><strong>rect</strong></code></a></td>
3848 <td>bounds of <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
3850 <tr> <td><a name='SkPath_addRoundRect_rx'><code><strong>rx</strong></code></a></td>
3851 <td>x-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
3853 <tr> <td><a name='SkPath_addRoundRect_ry'><code><strong>ry</strong></code></a></td>
3854 <td>y-axis radius of rounded corners on the <a href='SkRRect_Reference#SkRRect'>SkRRect</a></td>
3856 <tr> <td><a name='SkPath_addRoundRect_dir'><code><strong>dir</strong></code></a></td>
3857 …<td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to win…
3863 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3867 …<div>If either radius is zero, <a href='SkPath_Reference#Path'>path</a> contains <a href='SkRect_R…
3868 If sides are only radii, <a href='SkPath_Reference#Path'>path</a> contains <a href='undocumented#Ov…
3869 All remaining <a href='SkPath_Reference#Path'>path</a> draws are convex, and are drawn in gray; no
3870 <a href='SkPath_Reference#Path'>paths</a> constructed from <a href='#SkPath_addRoundRect'>addRoundR…
3876 <a href='#SkPath_addRRect'>addRRect</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href…
3878 <a name='SkPath_addRoundRect_2'></a>
3883a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const…
3886a href='#RRect'>Round_Rect</a> to <a href='SkPath_Reference#Path'>Path</a>, creating a new closed …
3887 …al to <a href='#SkPath_addRoundRect_2_rect'>rect</a>; each corner is 90 degrees of an ellipse with…
3890 | <a href='#SkPath_addRoundRect_2_radii'>radii</a> index | location |
3901 If <a href='#SkPath_addRoundRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a
3902 …kwise. If <a href='#SkPath_addRoundRect_2_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Di…
3905a href='#SkPath_addRoundRect_2_radii'>radii</a> on any side of <a href='#SkPath_addRoundRect_2_rec…
3906 uniformly until the corners fit. If either radius of a corner is less than or
3909a href='SkPath_Reference#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Re…
3913 <table> <tr> <td><a name='SkPath_addRoundRect_2_rect'><code><strong>rect</strong></code></a></t…
3914 <td>bounds of <a href='#RRect'>Round_Rect</a></td>
3916 <tr> <td><a name='SkPath_addRoundRect_2_radii'><code><strong>radii</strong></code></a></td>
3917 …<td>array of 8 <a href='undocumented#SkScalar'>SkScalar</a> values, a radius pair for each corner<…
3919 <tr> <td><a name='SkPath_addRoundRect_2_dir'><code><strong>dir</strong></code></a></td>
3920 <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='#RRect'>Round_Rect</a></td>
3926 reference to <a href='SkPath_Reference#Path'>Path</a>
3934 <a href='#SkPath_addRRect'>addRRect</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href…
3936 <a name='SkPath_addRRect'></a>
3941a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href…
3944a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, creatin…
3945 <a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW_Direction</a>, <a hre…
3946 …ise. If <a href='#SkPath_addRRect_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction<…
3949a href='SkPath_Reference#SkPath'>SkPath</a> may be empty, or may contain: <a href='SkRect_Referenc…
3953 <table> <tr> <td><a name='SkPath_addRRect_rrect'><code><strong>rrect</strong></code></a></td>
3956 <tr> <td><a name='SkPath_addRRect_dir'><code><strong>dir</strong></code></a></td>
3957 …<td><a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Direction'>Direction</a> to win…
3963 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
3971 <a href='#SkPath_addRoundRect'>addRoundRect</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>:…
3973 <a name='SkPath_addRRect_2'></a>
3978a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href…
3981a href='#SkPath_addRRect_2_rrect'>rrect</a> to <a href='SkPath_Reference#Path'>Path</a>, creating
3982 …e; if <a href='#SkPath_addRRect_2_dir'>dir</a> is <a href='#SkPath_kCCW_Direction'>kCCW_Direction<…
3983a href='#SkPath_addRRect_2_start'>start</a> determines the first <a href='SkPoint_Reference#Point'…
3985 | <a href='#SkPath_addRRect_2_start'>start</a> | location |
3996a href='SkPath_Reference#Path'>Path</a> may be empty, or may contain: <a href='SkRect_Reference#Re…
4000 <table> <tr> <td><a name='SkPath_addRRect_2_rrect'><code><strong>rrect</strong></code></a></td>
4003 <tr> <td><a name='SkPath_addRRect_2_dir'><code><strong>dir</strong></code></a></td>
4004 <td><a href='#SkPath_Direction'>Direction</a> to wind <a href='#RRect'>Round_Rect</a></td>
4006 <tr> <td><a name='SkPath_addRRect_2_start'><code><strong>start</strong></code></a></td>
4007 …<td>index of initial <a href='SkPoint_Reference#Point'>point</a> of <a href='#RRect'>Round_Rect</a
4013 reference to <a href='SkPath_Reference#Path'>Path</a>
4021 <a href='#SkPath_addRoundRect'>addRoundRect</a> <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>:…
4023 <a name='SkPath_addPoly'></a>
4028 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='…
4031a href='SkPath_Overview#Contour'>contour</a> created from <a href='undocumented#Line'>line</a> arr…
4032a href='SkPath_Overview#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>…
4033a href='#SkPath_addPoly_pts'>pts</a> array. If <a href='#SkPath_addPoly_close'>close</a> is true, …
4034 <a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] and <a href='#…
4036 If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove_Ver…
4037 Has no effect if <a href='#SkPath_addPoly_count'>count</a> is less than one.
4041 <table> <tr> <td><a name='SkPath_addPoly_pts'><code><strong>pts</strong></code></a></td>
4042 …<td>array of <a href='undocumented#Line'>line</a> sharing end and start <a href='SkPoint_Reference…
4044 <tr> <td><a name='SkPath_addPoly_count'><code><strong>count</strong></code></a></td>
4045 <td>length of <a href='SkPath_Reference#Point_Array'>SkPoint array</a></td>
4047 <tr> <td><a name='SkPath_addPoly_close'><code><strong>close</strong></code></a></td>
4048 …<td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>…
4054 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4062 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawPoints'>drawPoints</a>
4064 <a name='SkPath_addPoly_2'></a>
4069a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::init…
4072a href='SkPath_Overview#Contour'>contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a
4073a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If <a
4074 connecting last and first <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPath_addPo…
4076 If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove_Ve…
4080 <table> <tr> <td><a name='SkPath_addPoly_2_list'><code><strong>list</strong></code></a></td>
4081 <td>array of <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td>
4083 <tr> <td><a name='SkPath_addPoly_2_close'><code><strong>close</strong></code></a></td>
4084 …<td>true to add <a href='undocumented#Line'>line</a> connecting <a href='SkPath_Overview#Contour'>…
4090 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4098 <a href='SkCanvas_Reference#SkCanvas'>SkCanvas</a>::<a href='#SkCanvas_drawPoints'>drawPoints</a>
4100 <a name='SkPath_AddPathMode'></a>
4105 enum <a href='#SkPath_AddPathMode'>AddPathMode</a> {
4106 <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>,
4107 <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPathMode</a>,
4111a href='#SkPath_AddPathMode'>AddPathMode</a> chooses how <a href='#SkPath_addPath'>addPath</a> app…
4112 the last <a href='SkPath_Overview#Contour'>Contour</a> or start a new <a href='SkPath_Overview#Cont…
4121 … 2px solid #dddddd; padding: 8px; '><a name='SkPath_kAppend_AddPathMode'><code>SkPath::kAppend_Add…
4124a href='SkPath_Reference#Path'>Path</a> <a href='SkPath_Reference#Verb'>Verbs</a>, <a href='SkPoin…
4125 Since <a href='SkPath_Reference#Path'>Path</a> <a href='#Path_Verb_Array'>Verb_Array</a> begins wit…
4126 starts a new <a href='SkPath_Overview#Contour'>Contour</a>.
4130 … 2px solid #dddddd; padding: 8px; '><a name='SkPath_kExtend_AddPathMode'><code>SkPath::kExtend_Add…
4133 If destination is closed or empty, start a new <a href='SkPath_Overview#Contour'>Contour</a>. If de…
4134a href='undocumented#Line'>Line</a> from <a href='#Path_Last_Point'>Last_Point</a> to added <a hre…
4135a href='SkPath_Reference#Path'>Path</a> initial <a href='#SkPath_kMove_Verb'>kMove_Verb</a>, then …
4142 …1b02e74c64aafdb734f2e5cf3e5ab0"><div>test is built from <a href='SkPath_Reference#Path'>path</a>, …
4143 …n uses <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a>; the right uses <a href='#SkP…
4144 The top right composition is made up of one <a href='SkPath_Overview#Contour'>contour</a>; the othe…
4149 <a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_reverseAddPath'>reverseAddPath</a>
4151 <a name='SkPath_addPath'></a>
4156a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
4159a href='#SkPath_addPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, offset by (<
4161a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMod…
4162 …If <a href='#SkPath_addPath_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPat…
4163a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a
4167 <table> <tr> <td><a name='SkPath_addPath_src'><code><strong>src</strong></code></a></td>
4168a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='Sk…
4170 <tr> <td><a name='SkPath_addPath_dx'><code><strong>dx</strong></code></a></td>
4171 …<td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>…
4173 <tr> <td><a name='SkPath_addPath_dy'><code><strong>dy</strong></code></a></td>
4174 …<td>offset added to <a href='#SkPath_addPath_src'>src</a> <a href='SkPath_Reference#Point_Array'>…
4176 <tr> <td><a name='SkPath_addPath_mode'><code><strong>mode</strong></code></a></td>
4177 …<td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddP…
4183 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4191 <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_offset'>offset</a> <a href='#SkPath_…
4193 <a name='SkPath_addPath_2'></a>
4198a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
4201 Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>.
4203a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathM…
4204 …f <a href='#SkPath_addPath_2_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPa…
4205a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a
4209 <table> <tr> <td><a name='SkPath_addPath_2_src'><code><strong>src</strong></code></a></td>
4210a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='Sk…
4212 <tr> <td><a name='SkPath_addPath_2_mode'><code><strong>mode</strong></code></a></td>
4213 …<td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddP…
4219 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4227 <a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_reverseAddPath'>reverseAddPath</a>
4229 <a name='SkPath_addPath_3'></a>
4234a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='…
4237a href='#SkPath_addPath_3_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a>, transforme…
4238a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a
4240a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathM…
4241 …f <a href='#SkPath_addPath_3_mode'>mode</a> is <a href='#SkPath_kExtend_AddPathMode'>kExtend_AddPa…
4242a href='SkPath_Reference#Verb'>verbs</a>, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>, and <a
4246 <table> <tr> <td><a name='SkPath_addPath_3_src'><code><strong>src</strong></code></a></td>
4247a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='Sk…
4249 <tr> <td><a name='SkPath_addPath_3_matrix'><code><strong>matrix</strong></code></a></td>
4250 <td>transform applied to <a href='#SkPath_addPath_3_src'>src</a></td>
4252 <tr> <td><a name='SkPath_addPath_3_mode'><code><strong>mode</strong></code></a></td>
4253 …<td><a href='#SkPath_kAppend_AddPathMode'>kAppend_AddPathMode</a> or <a href='#SkPath_kExtend_AddP…
4259 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4267a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_transform'>transform</a> <a href='#S…
4269 <a name='SkPath_reverseAddPath'></a>
4274 <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(c…
4277 Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='SkPath_Reference#SkPath'>SkPath</a
4278a href='#SkPath_reverseAddPath_src'>src</a> always appends a new <a href='SkPath_Overview#Contour'…
4282 <table> <tr> <td><a name='SkPath_reverseAddPath_src'><code><strong>src</strong></code></a></td>
4283a href='SkPath_Reference#SkPath'>SkPath</a> <a href='SkPath_Reference#Verb'>verbs</a>, <a href='Sk…
4289 reference to <a href='SkPath_Reference#SkPath'>SkPath</a>
4297a href='#SkPath_AddPathMode'>AddPathMode</a> <a href='#SkPath_transform'>transform</a> <a href='#S…
4299 <a name='SkPath_offset'></a>
4304 …fset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a>…
4307a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset_dx'>dx</a>, <a
4308 …<a href='#SkPath_offset_dst'>dst</a> is nullptr, <a href='SkPath_Reference#SkPath'>SkPath</a> is r…
4312 <table> <tr> <td><a name='SkPath_offset_dx'><code><strong>dx</strong></code></a></td>
4313 …<td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</…
4315 <tr> <td><a name='SkPath_offset_dy'><code><strong>dy</strong></code></a></td>
4316 …<td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</…
4318 <tr> <td><a name='SkPath_offset_dst'><code><strong>dst</strong></code></a></td>
4319 …<td>overwritten, translated copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</…
4329 <a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_transform'>transform</a>
4331 <a name='Transform'></a>
4333 <a name='SkPath_offset_2'></a>
4338 void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScal…
4341a href='SkPath_Reference#Point_Array'>SkPoint array</a> by (<a href='#SkPath_offset_2_dx'>dx</a>, …
4345 <table> <tr> <td><a name='SkPath_offset_2_dx'><code><strong>dx</strong></code></a></td>
4346 …<td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> x-axis coordinates</…
4348 <tr> <td><a name='SkPath_offset_2_dy'><code><strong>dy</strong></code></a></td>
4349 …<td>offset added to <a href='SkPath_Reference#Point_Array'>SkPoint array</a> y-axis coordinates</…
4359a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_transform'>transform</a> <a href='SkCanvas_R…
4361 <a name='SkPath_transform'></a>
4366 …nst <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Reference#Matrix'>matrix…
4369a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, an…
4370 transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
4371a href='SkPath_Reference#SkPath'>SkPath</a> replaces <a href='#SkPath_transform_dst'>dst</a>; if <
4376 <table> <tr> <td><a name='SkPath_transform_matrix'><code><strong>matrix</strong></code></a></td>
4377 …<td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPat…
4379 <tr> <td><a name='SkPath_transform_dst'><code><strong>dst</strong></code></a></td>
4380 …<td>overwritten, transformed copy of <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr<…
4390a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_offset'>offset</a> <a href='SkCanvas_Referen…
4392 <a name='SkPath_transform_2'></a>
4397 void transform(const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& <a href='SkMatrix_Referenc…
4400a href='#Verb_Array'>verb array</a>, <a href='SkPath_Reference#Point_Array'>SkPoint array</a>, an…
4401 transform may change <a href='SkPath_Reference#Verb'>verbs</a> and increase their number.
4402 <a href='SkPath_Reference#SkPath'>SkPath</a> is replaced by transformed <a href='undocumented#Data'…
4406 <table> <tr> <td><a name='SkPath_transform_2_matrix'><code><strong>matrix</strong></code></a></…
4407 …<td><a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a> to apply to <a href='SkPath_Reference#SkPat…
4417a href='#SkPath_addPath'>addPath</a> <a href='#SkPath_offset'>offset</a> <a href='SkCanvas_Referen…
4419 <a name='Last_Point'></a>
4421 <a href='SkPath_Reference#Path'>Path</a> is defined cumulatively, often by adding a segment to the …
4422a href='SkPath_Overview#Contour'>Contour</a>. <a href='#Path_Last_Point'>Last_Point</a> of <a href…
4423a href='#Path_Last_Point'>Last_Point</a> can be read and written directly with <a href='#SkPath_ge…
4425 <a name='SkPath_getLastPt'></a>
4430 bool <a href='#SkPath_getLastPt'>getLastPt</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a>* las…
4433a href='#Last_Point'>last point</a> on <a href='SkPath_Reference#SkPath'>SkPath</a> in <a href='#S…
4434 storing (0, 0) if <a href='#SkPath_getLastPt_lastPt'>lastPt</a> is not nullptr.
4438 <table> <tr> <td><a name='SkPath_getLastPt_lastPt'><code><strong>lastPt</strong></code></a></td>
4439 …<td>storage for final <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='SkPath_Referenc…
4445 true if <a href='SkPath_Reference#Point_Array'>SkPoint array</a> contains one or more <a href='SkP…
4461 <a href='#SkPath_setLastPt'>setLastPt</a>
4463 <a name='SkPath_setLastPt'></a>
4468 void <a href='#SkPath_setLastPt'>setLastPt</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a h…
4471a href='#Last_Point'>last point</a> to (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkPath_setL…
4472a href='#Verb_Array'>verb array</a> and append (<a href='#SkPath_setLastPt_x'>x</a>, <a href='#SkP…
4476 <table> <tr> <td><a name='SkPath_setLastPt_x'><code><strong>x</strong></code></a></td>
4477 <td>set x-axis value of <a href='#Last_Point'>last point</a></td>
4479 <tr> <td><a name='SkPath_setLastPt_y'><code><strong>y</strong></code></a></td>
4480 <td>set y-axis value of <a href='#Last_Point'>last point</a></td>
4490 <a href='#SkPath_getLastPt'>getLastPt</a>
4492 <a name='SkPath_setLastPt_2'></a>
4497 void <a href='#SkPath_setLastPt'>setLastPt</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a
4500a href='#Last_Point'>last point</a> on the <a href='SkPath_Reference#Path'>path</a>. If <a href='…
4501 <a href='#Verb_Array'>verb array</a> and append <a href='#SkPath_setLastPt_2_p'>p</a> to <a href='…
4505 <table> <tr> <td><a name='SkPath_setLastPt_2_p'><code><strong>p</strong></code></a></td>
4506 <td>set value of <a href='#Last_Point'>last point</a></td>
4516 <a href='#SkPath_getLastPt'>getLastPt</a>
4518 <a name='SkPath_SegmentMask'></a>
4523 enum <a href='#SkPath_SegmentMask'>SegmentMask</a> {
4524 <a href='#SkPath_kLine_SegmentMask'>kLine_SegmentMask</a> = 1 << 0,
4525 <a href='#SkPath_kQuad_SegmentMask'>kQuad_SegmentMask</a> = 1 << 1,
4526 <a href='#SkPath_kConic_SegmentMask'>kConic_SegmentMask</a> = 1 << 2,
4527 <a href='#SkPath_kCubic_SegmentMask'>kCubic_SegmentMask</a> = 1 << 3,
4531a href='#SkPath_SegmentMask'>SegmentMask</a> constants correspond to each drawing <a href='#SkPath…
4532a href='SkPath_Reference#Path'>Path</a> only contains <a href='undocumented#Line'>Lines</a>, only …
4541 …r: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kLine_SegmentMask'><code>SkPath::kLine_Segme…
4544 Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kLine_Verb'>kLine_Verb</
4548 …r: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kQuad_SegmentMask'><code>SkPath::kQuad_Segme…
4551a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kQuad_Verb'>kQuad_Verb</a>. Not…
4555 …: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kConic_SegmentMask'><code>SkPath::kConic_Segm…
4558 Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kConic_Verb'>kConic_Verb…
4562 …: 2px solid #dddddd; padding: 8px; '><a name='SkPath_kCubic_SegmentMask'><code>SkPath::kCubic_Segm…
4565 Set if <a href='#Path_Verb_Array'>Verb_Array</a> contains <a href='#SkPath_kCubic_Verb'>kCubic_Verb…
4572 …<a href='#SkPath_conicTo'>conicTo</a> has a weight of one, <a href='SkPath_Reference#Quad'>Quad</a
4586 <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a> <a href='#SkPath_Verb'>Verb</a>
4588 <a name='SkPath_getSegmentMasks'></a>
4593 uint32_t <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>()const
4596 Returns a mask, where each set bit corresponds to a <a href='#SkPath_SegmentMask'>SegmentMask</a> c…
4597 if <a href='SkPath_Reference#SkPath'>SkPath</a> contains one or more <a href='SkPath_Reference#Verb…
4598a href='SkPath_Reference#SkPath'>SkPath</a> contains no <a href='undocumented#Line'>lines</a>, or …
4600 <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a>() returns a cached result; it is very fast.
4604 <a href='#SkPath_SegmentMask'>SegmentMask</a> bits or zero
4620 <a href='#SkPath_getSegmentMasks'>getSegmentMasks</a> <a href='#SkPath_Verb'>Verb</a>
4622 <a name='SkPath_contains'></a>
4627 bool contains(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkSca…
4630a href='SkPoint_Reference#Point'>point</a> (<a href='#SkPath_contains_x'>x</a>, <a href='#SkPath_c…
4631 account <a href='#SkPath_FillType'>FillType</a>.
4633 | <a href='#SkPath_FillType'>FillType</a> | <a href='#SkPath_contains'>contains()</a> returns true …
4635a href='#SkPath_kWinding_FillType'>kWinding_FillType</a> | a non-zero sum of <a href='SkPath_Overv…
4636 | <a href='#SkPath_kEvenOdd_FillType'>kEvenOdd_FillType</a> | an odd number of <a href='SkPath_Over…
4637a href='#SkPath_kInverseWinding_FillType'>kInverseWinding_FillType</a> | a zero sum of <a href='Sk…
4638 | <a href='#SkPath_kInverseEvenOdd_FillType'>kInverseEvenOdd_FillType</a> | and even number of <a h…
4642 <table> <tr> <td><a name='SkPath_contains_x'><code><strong>x</strong></code></a></td>
4645 <tr> <td><a name='SkPath_contains_y'><code><strong>y</strong></code></a></td>
4652 true if <a href='SkPoint_Reference#Point'>Point</a> is in <a href='SkPath_Reference#Path'>Path</a>
4660 <a href='#SkPath_conservativelyContainsRect'>conservativelyContainsRect</a> <a href='#Path_Fill_Typ…
4662 <a name='SkPath_dump'></a>
4667 void <a href='#SkPath_dump'>dump</a>(<a href='SkWStream_Reference#SkWStream'>SkWStream</a>* <a href…
4670a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkPath</a>…
4671 … output. Set <a href='#SkPath_dump_forceClose'>forceClose</a> to true to get edges used to fill <a
4672 Set <a href='#SkPath_dump_dumpAsHex'>dumpAsHex</a> true to generate exact binary representations
4673a href='SkPoint_Reference#Point'>point</a> numbers used in <a href='SkPath_Reference#Point_Array'…
4677 <table> <tr> <td><a name='SkPath_dump_stream'><code><strong>stream</strong></code></a></td>
4678 …ble <a href='SkWStream_Reference#SkWStream'>SkWStream</a> receiving <a href='SkPath_Reference#SkPa…
4680 <tr> <td><a name='SkPath_dump_forceClose'><code><strong>forceClose</strong></code></a></td>
4681 <td>true if missing <a href='#SkPath_kClose_Verb'>kClose_Verb</a> is output</td>
4683 <tr> <td><a name='SkPath_dump_dumpAsHex'><code><strong>dumpAsHex</strong></code></a></td>
4684 <td>true if <a href='undocumented#SkScalar'>SkScalar</a> values are written as hexadecimal</td>
4717a href='#SkPath_dumpHex'>dumpHex</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRec…
4719 <a name='SkPath_dump_2'></a>
4724 void <a href='#SkPath_dump'>dump()</a>const
4727 Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#SkPath'>SkP…
4728 directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are writ…
4729 …cision; it may not be possible to reconstruct original <a href='SkPath_Reference#SkPath'>SkPath</a>
4749a href='#SkPath_dumpHex'>dumpHex</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRec…
4751 <a name='SkPath_dumpHex'></a>
4756 void <a href='#SkPath_dumpHex'>dumpHex</a>()const
4759 Writes <a href='undocumented#Text'>text</a> representation of <a href='SkPath_Reference#Path'>Path<…
4760 directly compiled as C++ code. Floating <a href='SkPoint_Reference#Point'>point</a> values are writ…
4762 original <a href='SkPath_Reference#Path'>Path</a>.
4764 Use instead of <a href='#SkPath_dump'>dump()</a> when submitting
4765 <a href='https://bug.skia.org'>bug reports against Skia</a></a> .
4784a href='#SkPath_dump'>dump</a> <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_dump…
4786 <a name='SkPath_writeToMemory'></a>
4791 size_t <a href='#SkPath_writeToMemory'>writeToMemory</a>(void* buffer)const
4794 Writes <a href='SkPath_Reference#SkPath'>SkPath</a> to <a href='#SkPath_writeToMemory_buffer'>buffe…
4795 Pass nullptr to obtain the storage <a href='undocumented#Size'>size</a>.
4797a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#V…
4798 …writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Co…
4800 Use only be used in concert with <a href='#SkPath_readFromMemory'>readFromMemory</a>();
4801 the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
4805 <table> <tr> <td><a name='SkPath_writeToMemory_buffer'><code><strong>buffer</strong></code></a>…
4806 <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a>; may be nullptr</td>
4812 <a href='undocumented#Size'>size</a> of storage required for <a href='SkPath_Reference#SkPath'>SkPa…
4828a href='#SkPath_serialize'>serialize</a> <a href='#SkPath_readFromMemory'>readFromMemory</a> <a hr…
4830 <a name='SkPath_serialize'></a>
4835 <a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkData'>SkData</a>&gt; <a href='#Sk…
4838 …rites <a href='SkPath_Reference#SkPath'>SkPath</a> to buffer, returning the buffer written to, wra…
4840a href='#SkPath_serialize'>serialize()</a> writes <a href='SkPath_Reference#SkPath'>SkPath</a>::<a
4841 …writes computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Co…
4843 <a href='#SkPath_serialize'>serialize()</a> should only be used in concert with <a href='#SkPath_re…
4844 The format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
4848 <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> wrapped in <a hre…
4864a href='#SkPath_writeToMemory'>writeToMemory</a> <a href='#SkPath_readFromMemory'>readFromMemory</
4866 <a name='SkPath_readFromMemory'></a>
4871 size_t <a href='#SkPath_readFromMemory'>readFromMemory</a>(const void* buffer, size_t length)
4874a href='SkPath_Reference#SkPath'>SkPath</a> from <a href='#SkPath_readFromMemory_buffer'>buffer</a
4875 <a href='undocumented#Data'>data</a> is inconsistent, or the <a href='#SkPath_readFromMemory_length…
4877a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a>, <a href='#V…
4878 … reads computed information like <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Co…
4880 Used only in concert with <a href='#SkPath_writeToMemory'>writeToMemory</a>();
4881 the format used for <a href='SkPath_Reference#SkPath'>SkPath</a> in memory is not guaranteed.
4885 <table> <tr> <td><a name='SkPath_readFromMemory_buffer'><code><strong>buffer</strong></code></a
4886 <td>storage for <a href='SkPath_Reference#SkPath'>SkPath</a></td>
4888 <tr> <td><a name='SkPath_readFromMemory_length'><code><strong>length</strong></code></a></td>
4889 …<td><a href='#SkPath_readFromMemory_buffer'>buffer</a> <a href='undocumented#Size'>size</a> in byt…
4912 <a href='#SkPath_writeToMemory'>writeToMemory</a>
4914 <a name='Generation_ID'></a>
4916a href='#Path_Generation_ID'>Generation_ID</a> provides a quick way to check if <a href='#Path_Ver…
4917a href='#Path_Conic_Weight'>Conic_Weight</a> has changed. <a href='#Path_Generation_ID'>Generation…
4918 not necessarily have matching <a href='#Path_Generation_ID'>Generation_IDs</a>.
4920 Empty <a href='SkPath_Reference#Path'>Paths</a> have a <a href='#Path_Generation_ID'>Generation_ID<…
4922 <a name='SkPath_getGenerationID'></a>
4927 uint32_t <a href='#SkPath_getGenerationID'>getGenerationID</a>()const
4931 Returns a non-zero, globally unique value. A different value is returned
4932 if verb array, <a href='SkPoint_Reference#SkPoint'>SkPoint</a> array, or <a href='SkPath_Reference#…
4934 Setting <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does …
4936 Each time the <a href='SkPath_Reference#Path'>path</a> is modified, a different generation identifi…
4937 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_FillType'>FillType</a> does affect g…
4960 <a href='#SkPath_equal_operator'>operator==</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>&…
4962 <a name='SkPath_isValid'></a>
4967 bool <a href='#SkPath_isValid'>isValid</a>()const
4970a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consistent. Co…
4976 true if <a href='SkPath_Reference#SkPath'>SkPath</a> <a href='undocumented#Data'>data</a> is consis…
4978 <a name='SkPath_Iter'></a>
4983 class <a href='#SkPath_Iter'>Iter</a> {
4985 <a href='#SkPath_Iter_Iter'>Iter()</a>;
4986 …<a href='#SkPath_Iter_Iter'>Iter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='…
4987 …void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>…
4988 …<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_Iter_next'>next</a>(<a href='SkPoint_Reference#Sk…
4989 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>() …
4990 bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>() const;
4991 bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>() const;
4996 … <a href='#Path_Verb_Array'>Verb_Array</a>, and associated <a href='#Path_Point_Array'>Point_Array…
4997 Provides options to treat open <a href='SkPath_Overview#Contour'>Contours</a> as closed, and to ign…
4998 degenerate <a href='undocumented#Data'>data</a>.
5002 …iv>Ignoring the actual <a href='SkPath_Reference#Verb'>Verbs</a> and replacing them with <a href='…
5003 <a href='SkPath_Reference#Path'>path</a> of the <a href='undocumented#Glyph'>glyph</a>.
5008 <a href='#SkPath_RawIter'>RawIter</a>
5010 <a name='SkPath_Iter_Iter'></a>
5015 <a href='#SkPath_Iter_Iter'>Iter()</a>
5018a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> with an empty <a href…
5019 <a href='#SkPath_kDone_Verb'>kDone_Verb</a>.
5020 Call <a href='#SkPath_Iter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>SkP…
5024 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of empty <a href='SkP…
5041 <a href='#SkPath_Iter_setPath'>setPath</a>
5043 <a name='SkPath_Iter_const_SkPath'></a>
5048 <a href='#SkPath_Iter'>Iter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='SkPath…
5051a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of…
5052a href='#SkPath_Iter_const_SkPath_path'>path</a>. If <a href='#SkPath_Iter_const_SkPath_forceClose…
5053 open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_const_SkPath_path'>path</
5057 <table> <tr> <td><a name='SkPath_Iter_const_SkPath_path'><code><strong>path</strong></code></a>…
5058 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
5060 …<tr> <td><a name='SkPath_Iter_const_SkPath_forceClose'><code><strong>forceClose</strong></code>…
5061 …<td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_V…
5067 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> of <a href='#SkPath_I…
5092 <a href='#SkPath_Iter_setPath'>setPath</a>
5094 <a name='SkPath_Iter_setPath'></a>
5099 void <a href='#SkPath_Iter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>&…
5102a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of…
5103a href='#SkPath_Iter_setPath_path'>path</a>. If <a href='#SkPath_Iter_setPath_forceClose'>forceClo…
5104 open <a href='SkPath_Overview#Contour'>contour</a>. <a href='#SkPath_Iter_setPath_path'>path</a> is…
5108 <table> <tr> <td><a name='SkPath_Iter_setPath_path'><code><strong>path</strong></code></a></td>
5109 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
5111 …<tr> <td><a name='SkPath_Iter_setPath_forceClose'><code><strong>forceClose</strong></code></a><…
5112 …<td>true if open <a href='SkPath_Overview#Contour'>contours</a> generate <a href='#SkPath_kClose_V…
5139 <a href='#SkPath_Iter_const_SkPath'>Iter(const SkPath& path, bool forceClose)</a>
5141 <a name='SkPath_Iter_next'></a>
5146 <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4], bool d…
5149a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Ar…
5150 When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone…
5152a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_Iter_next_pts'>pts</
5154 If <a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true, skip consecut…
5155 … very small <a href='undocumented#Line'>lines</a>, <a href='SkPath_Reference#Quad'>quads</a>, and …
5156 skip <a href='#SkPath_kClose_Verb'>kClose_Verb</a> following <a href='#SkPath_kMove_Verb'>kMove_Ver…
5157a href='#SkPath_Iter_next_doConsumeDegenerates'>doConsumeDegenerates</a> is true and <a href='#SkP…
5158 <a href='SkPath_Reference#Conic'>conics</a> with zero lengths.
5162 <table> <tr> <td><a name='SkPath_Iter_next_pts'><code><strong>pts</strong></code></a></td>
5163a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing ret…
5165 …<tr> <td><a name='SkPath_Iter_next_doConsumeDegenerates'><code><strong>doConsumeDegenerates</st…
5166 <td>if true, skip degenerate <a href='SkPath_Reference#Verb'>verbs</a></td>
5168 <tr> <td><a name='SkPath_Iter_next_exact'><code><strong>exact</strong></code></a></td>
5169 <td>skip zero length <a href='undocumented#Curve'>curves</a></td>
5175 next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#…
5179 …enerate skips the first in a <a href='#SkPath_kMove_Verb'>kMove_Verb</a> pair, the <a href='#SkPat…
5180a href='#SkPath_kClose_Verb'>kClose_Verb</a>, the zero length <a href='undocumented#Line'>Line</a
5182 skip degenerate if <a href='#SkPath_Iter_next_exact'>exact</a> skips the same as skip degenerate, b…
5183 the very small <a href='undocumented#Line'>Line</a>.
5185 …l of the <a href='SkPath_Reference#Verb'>Verbs</a> and <a href='SkPoint_Reference#Point'>Points</a
5218a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_IsLineDegenerate'>IsLineDegenerate</a> <a href='#S…
5220 <a name='SkPath_Iter_conicWeight'></a>
5225 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_Iter_conicWeight'>conicWeight</a>()co…
5228 …ns <a href='SkPath_Reference#Conic'>conic</a> weight if <a href='#SkPath_Iter_next'>next()</a> ret…
5230a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</
5235a href='SkPath_Reference#Conic'>conic</a> weight for <a href='SkPath_Reference#Conic'>conic</a> <a
5254 <a href='#Path_Conic_Weight'>Conic_Weight</a>
5256 <a name='SkPath_Iter_isCloseLine'></a>
5261 bool <a href='#SkPath_Iter_isCloseLine'>isCloseLine</a>()const
5264 Returns true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> returned by <a href='#SkPath_Iter_…
5265a href='#SkPath_kClose_Verb'>kClose_Verb</a>. When true, the end <a href='SkPoint_Reference#Point'…
5266 also the start <a href='SkPoint_Reference#Point'>point</a> of <a href='SkPath_Overview#Contour'>con…
5268a href='#SkPath_Iter_next'>next()</a> has not been called, or <a href='#SkPath_Iter_next'>next()</
5273 true if last <a href='#SkPath_kLine_Verb'>kLine_Verb</a> was generated by <a href='#SkPath_kClose_V…
5295 <a href='#SkPath_close'>close()</a>
5297 <a name='SkPath_Iter_isClosedContour'></a>
5302 bool <a href='#SkPath_Iter_isClosedContour'>isClosedContour</a>()const
5305 …ns true if subsequent calls to <a href='#SkPath_Iter_next'>next()</a> return <a href='#SkPath_kClo…
5306a href='#SkPath_kMove_Verb'>kMove_Verb</a>. if true, <a href='SkPath_Overview#Contour'>contour</a>…
5307 <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> may have been initial…
5311 true if <a href='SkPath_Overview#Contour'>contour</a> is closed
5330 <a href='#SkPath_Iter_const_SkPath'>Iter(const SkPath& path, bool forceClose)</a>
5332 <a name='SkPath_RawIter'></a>
5337 class <a href='#SkPath_RawIter'>RawIter</a> {
5339 <a href='#SkPath_RawIter_RawIter'>RawIter()</a>;
5340 …<a href='#SkPath_RawIter_RawIter'>RawIter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& …
5341 …void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath<…
5342 …<a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_next'>next</a>(<a href='SkPoint_Reference…
5343 <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a> const;
5344 …<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>…
5349 … <a href='#Path_Verb_Array'>Verb_Array</a>, and associated <a href='#Path_Point_Array'>Point_Array…
5350 <a href='#Path_Verb_Array'>Verb_Array</a>, <a href='#Path_Point_Array'>Point_Array</a>, and <a href…
5352 <a name='SkPath_RawIter_RawIter'></a>
5357 <a href='#SkPath_RawIter_RawIter'>RawIter()</a>
5360a href='#SkPath_RawIter'>RawIter</a> with an empty <a href='SkPath_Reference#SkPath'>SkPath</a>. <
5361 Call <a href='#SkPath_RawIter_setPath'>setPath</a> to initialize <a href='SkPath_Reference#SkPath'>…
5365 <a href='#SkPath_RawIter'>RawIter</a> of empty <a href='SkPath_Reference#SkPath'>SkPath</a>
5367 <a name='SkPath_RawIter_copy_const_SkPath'></a>
5372 <a href='#SkPath_RawIter'>RawIter</a>(const <a href='SkPath_Reference#SkPath'>SkPath</a>& <a href='…
5375a href='#SkPath_RawIter'>RawIter</a> to return elements of <a href='#Verb_Array'>verb array</a>, …
5379 <table> <tr> <td><a name='SkPath_RawIter_copy_const_SkPath_path'><code><strong>path</strong></c…
5380 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
5386 <a href='#SkPath_RawIter'>RawIter</a> of <a href='#SkPath_RawIter_copy_const_SkPath_path'>path</a>
5388 <a name='SkPath_RawIter_setPath'></a>
5393 void <a href='#SkPath_RawIter_setPath'>setPath</a>(const <a href='SkPath_Reference#SkPath'>SkPath</
5396a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Iter'>Iter</a> to return elements of…
5397 <a href='#SkPath_RawIter_setPath_path'>path</a>.
5401 <table> <tr> <td><a name='SkPath_RawIter_setPath_path'><code><strong>path</strong></code></a></…
5402 <td><a href='SkPath_Reference#SkPath'>SkPath</a> to iterate</td>
5406 <a name='SkPath_RawIter_next'></a>
5411 <a href='#SkPath_Verb'>Verb</a> next(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[4])
5414a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> in <a href='#Verb_Ar…
5415 When <a href='#Verb_Array'>verb array</a> is exhausted, returns <a href='#SkPath_kDone_Verb'>kDone…
5416a href='SkPoint_Reference#SkPoint'>SkPoint</a> are stored in <a href='#SkPath_RawIter_next_pts'>pt…
5420 <table> <tr> <td><a name='SkPath_RawIter_next_pts'><code><strong>pts</strong></code></a></td>
5421a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='undocumented#Data'>data</a> describing ret…
5427 next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from <a href='#…
5450 <a href='#SkPath_RawIter_peek'>peek()</a>
5452 <a name='SkPath_RawIter_peek'></a>
5457 <a href='#SkPath_Verb'>Verb</a> <a href='#SkPath_RawIter_peek'>peek()</a>const
5460 …ns next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a>, but does no…
5464 next <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_Verb'>Verb</a> from verb array
5486 <a href='#SkPath_RawIter_next'>next</a>
5488 <a name='SkPath_RawIter_conicWeight'></a>
5493 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPath_RawIter_conicWeight'>conicWeight</a>(…
5496 …s <a href='SkPath_Reference#Conic'>conic</a> weight if <a href='#SkPath_RawIter_next'>next()</a> r…
5498a href='#SkPath_RawIter_next'>next()</a> has not been called, or <a href='#SkPath_RawIter_next'>ne…
5503a href='SkPath_Reference#Conic'>conic</a> weight for <a href='SkPath_Reference#Conic'>conic</a> <a
5522 <a href='#Path_Conic_Weight'>Conic_Weight</a>