186 Point content_scale = GetContentScale();
187 auto draw = [content_scale](DlCanvas* canvas,
188 const std::vector<sk_sp<DlImage>>& images) {
189 canvas->Scale(content_scale.x, content_scale.y);
190 canvas->DrawPaint(DlPaint().setColor(DlColor::kWhite()));
192 auto draw_one = [canvas](DlStrokeCap cap,
Scalar x,
Scalar y,
197 DlPaint thick_paint = DlPaint()
198 .setColor(DlColor::kBlue())
200 .setStrokeWidth(8.0f);
201 DlPaint middle_paint = DlPaint()
202 .setColor(DlColor::kGreen())
204 .setStrokeWidth(5.0f);
205 DlPaint thin_paint = DlPaint()
206 .setColor(DlColor::kMagenta())
208 .setStrokeWidth(2.0f);
209 for (
int degrees = 0; degrees < 360; degrees += 30) {
211 canvas->DrawDashedLine(center + inner * delta, center + outer * delta,
212 dash_on, dash_off, thick_paint);
213 canvas->DrawDashedLine(center + inner * delta, center + outer * delta,
214 dash_on, dash_off, middle_paint);
215 canvas->DrawDashedLine(center + inner * delta, center + outer * delta,
216 dash_on, dash_off, thin_paint);
220 draw_one(DlStrokeCap::kButt, 150.0f, 150.0f, 15.0f, 10.0f);
221 draw_one(DlStrokeCap::kSquare, 400.0f, 150.0f, 15.0f, 10.0f);
222 draw_one(DlStrokeCap::kRound, 150.0f, 400.0f, 15.0f, 10.0f);
223 draw_one(DlStrokeCap::kRound, 400.0f, 400.0f, 0.0f, 11.0f);
227 SkPath clip_path = SkPath();
228 clip_path.moveTo(275.0f, 225.0f);
229 clip_path.lineTo(325.0f, 275.0f);
230 clip_path.lineTo(275.0f, 325.0f);
231 clip_path.lineTo(225.0f, 275.0f);
232 canvas->ClipPath(clip_path);
233 canvas->DrawColor(DlColor::kYellow());
234 draw_one(DlStrokeCap::kRound, 275.0f, 275.0f, 15.0f, 10.0f);
238 DisplayListBuilder builder;
239 std::vector<sk_sp<DlImage>> images;
240 draw(&builder, images);
242 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));