179 {
180 struct FillAndName {
183 };
184 constexpr FillAndName gFills[] = {
189 };
190 struct StyleAndName {
193 };
194 constexpr StyleAndName
gStyles[] = {
198 };
199 struct CapAndName {
203 };
204 constexpr CapAndName gCaps[] = {
208 };
209 struct PathAndName {
212 };
218 path.fName =
"moveTo-quad-close";
219
223 const char title[] = "Quad Closed Drawn Into Rectangle Clips With "
224 "Indicated Style, Fill and Linecaps, with stroke width 10";
225 canvas->
drawString(title, 20.0f, 20.0f, font, titlePaint);
226
232 for (size_t cap = 0; cap < std::size(gCaps); ++cap) {
233 if (0 < cap) {
235 }
237 for (size_t fill = 0; fill < std::size(gFills); ++fill) {
238 if (0 < fill) {
240 }
242 for (
size_t style = 0; style < std::size(
gStyles); ++style) {
243 if (0 < style) {
245 }
246
249 gCaps[cap].fCap, gCaps[cap].fJoin,
gStyles[style].fStyle,
251
258
262 labelFont, labelPaint);
264 labelFont, labelPaint);
266 labelFont, labelPaint);
267 }
269 }
271 }
274 }
SkStrokeRec::Style fStyle
constexpr SkColor SK_ColorBLACK
void drawRect(const SkRect &rect, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void drawString(const char str[], SkScalar x, SkScalar y, const SkFont &font, const SkPaint &paint)
@ kButt_Cap
no stroke extension
void setStyle(Style style)
void setColor(SkColor color)
void setAntiAlias(bool aa)
@ kStroke_Style
set to stroke geometry
@ kFill_Style
set to fill geometry
@ kStrokeAndFill_Style
sets to stroke and fill geometry
@ kBevel_Join
connects outside edges
void setStrokeWidth(SkScalar width)
void drawPath(SkPath &path, SkCanvas *canvas, SkColor color, const SkRect &clip, SkPaint::Cap cap, SkPaint::Join join, SkPaint::Style style, SkPathFillType fill, SkScalar strokeWidth)
sk_sp< SkBlender > blender SkRect rect
font
Font Metadata and Metrics.
static constexpr SkRect MakeWH(float w, float h)
static constexpr SkFontStyle gStyles[]