41 canvas->
drawPath(
SkPath::Polygon({{20,20}, {50,40}, {80,20}, {80,80}, {50,60}, {20,80}},
51 canvas->
drawPath(
SkPath::Polygon({{20,20}, {50,50}, {68,20}, {68,80}, {50,50}, {20,80}},
62 {80,50}, {40,80}, {60,20}, {20,20}, {39.99f,80}, {80,50},
73 canvas->
drawPath(
SkPath::Polygon({{20,20}, {80,80}, {70,50}, {80,20}, {20,80}, {0,50}},
false,
84 .addPolygon({{40,20}, {40,80}, {80,50}},
false)
95 .addPolygon({{30,30}, {30,70}, {70,70}, {70,30}},
false)
105 canvas->
drawPath(
SkPath::Polygon({{30,20}, {50,80}, {70,20}, {20,57}, {80,57}},
false),
114 canvas->
scale(10, 10);
117 {5.8070392608642578125f, 6.4612660408020019531f},
118 {-2.9186885356903076172f, 2.811046600341796875f},
119 {0.49999994039535522461f, -1.4124038219451904297f},
129 canvas->
drawPath(
SkPath::Polygon({{50,50}, {50,20}, {80,20}, {50,50}, {20,50}, {20,80}},
false),
137 canvas->
drawPath(
SkPath::Polygon({{20,60}, {35,80}, {50,60}, {65,80}, {80,60}},
false),
paint);
155 .addPolygon({{30,30}, {45,50}, {30,70}},
false)
156 .addPolygon({{70,30}, {70,70}, {55,50}},
false)
169 path.moveTo(70, -0.000001f);
170 path.lineTo(70, 0.0);
171 path.lineTo(60, -30.0);
172 path.lineTo(40, 20.0);
173 path.moveTo(50, 50.0);
174 path.lineTo(50, -50.0);
175 path.lineTo(10, 50.0);
186 path.quadTo(20, 50, 80, 50);
187 path.quadTo(20, 50, 20, 80);
199 path.quadTo(20, 20, 20, 80);
211 path.quadTo(20, 80, 20, 20);
369 paint.setAntiAlias(
true);
372 test_concave(canvas,
paint);
373 test_reverse_concave(canvas,
paint);
374 test_bowtie(canvas,
paint);
375 test_fake_bowtie(canvas,
paint);
376 test_intruding_vertex(canvas,
paint);
377 test_fish(canvas,
paint);
378 test_fast_forward(canvas,
paint);
379 test_hole(canvas,
paint);
380 test_star(canvas,
paint);
381 test_twist(canvas,
paint);
382 test_inversion_repeat_vertex(canvas,
paint);
383 test_stairstep(canvas,
paint);
384 test_stairstep2(canvas,
paint);
385 test_overlapping(canvas,
paint);
386 test_partners(canvas,
paint);
387 test_winding_merged_to_zero(canvas,
paint);
388 test_monotone_1(canvas,
paint);
389 test_monotone_2(canvas,
paint);
390 test_monotone_3(canvas,
paint);
391 test_monotone_4(canvas,
paint);
392 test_monotone_5(canvas,
paint);
393 test_degenerate(canvas,
paint);
394 test_coincident_edge(canvas,
paint);
395 test_bowtie_coincident_triangle(canvas,
paint);
396 test_collinear_outer_boundary_edge(canvas,
paint);
397 test_coincident_edges_1(canvas,
paint);
398 test_coincident_edges_2(canvas,
paint);
399 test_coincident_edges_3(canvas,
paint);
400 test_coincident_edges_4(canvas,
paint);
void translate(SkScalar dx, SkScalar dy)
void drawPath(const SkPath &path, const SkPaint &paint)
void scale(SkScalar sx, SkScalar sy)
@ kFill_Style
set to fill geometry
SkPathBuilder & addPolygon(const SkPoint pts[], int count, bool isClosed)
static SkPath Polygon(const SkPoint pts[], int count, bool isClosed, SkPathFillType=SkPathFillType::kWinding, bool isVolatile=false)
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path