7 #include "flutter/display_list/dl_blend_mode.h"
8 #include "flutter/display_list/dl_builder.h"
9 #include "flutter/display_list/dl_color.h"
10 #include "flutter/display_list/dl_paint.h"
11 #include "flutter/display_list/effects/dl_color_filter.h"
12 #include "flutter/testing/testing.h"
22 path.addCircle(x, y, radius);
28 DisplayListBuilder builder;
30 paint.setColor(DlColor::kFuchsia());
33 builder.ClipPath(CreateCircle(200, 400, 300));
35 builder.ClipPath(CreateCircle(600, 400, 300));
36 builder.ClipPath(CreateCircle(400, 600, 300));
37 builder.DrawRect(SkRect::MakeXYWH(200, 200, 400, 400),
paint);
39 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
43 DisplayListBuilder builder;
44 builder.Translate(400, 400);
47 builder.ClipPath(CreateCircle(0, 0, 200));
51 builder.ClipPath(CreateCircle(-100, -50, 30), DlCanvas::ClipOp::kDifference);
52 builder.ClipPath(CreateCircle(100, -50, 30), DlCanvas::ClipOp::kDifference);
55 path.moveTo(-100, 50);
56 path.quadTo(0, 150, 100, 50);
57 builder.ClipPath(path, DlCanvas::ClipOp::kDifference);
61 paint.setColor(DlColor::kYellow());
62 builder.DrawRect(SkRect::MakeXYWH(-1000, -1000, 2000, 2000),
paint);
66 paint.setColor(DlColor::kMaroon());
68 path_2.moveTo(200, -200);
69 path_2.lineTo(-200, -200);
70 path_2.lineTo(-200, -40);
71 path_2.cubicTo({0, -40}, {0, -80}, {200, -80});
73 builder.DrawPath(path_2,
paint);
75 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
79 DisplayListBuilder builder;
83 paint.setColor(DlColor::kRed());
84 builder.DrawPaint(
paint);
89 builder.ClipRect(SkRect::MakeXYWH(100, 100, 100, 100));
90 builder.ClipRect(SkRect::MakeXYWH(300, 300, 100, 100));
96 paint.setColor(DlColor::kGreen());
97 builder.DrawPaint(
paint);
99 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
103 std::array<DlColor, 5> colors = {DlColor::kWhite(), DlColor::kBlack(),
104 DlColor::kSkyBlue(), DlColor::kRed(),
106 DisplayListBuilder builder;
109 builder.Translate(300, 300);
110 for (
int i = 0; i < 15; i++) {
111 builder.Scale(0.8, 0.8);
113 paint.setColor(colors[i % colors.size()]);
114 builder.ClipPath(CreateCircle(0, 0, 300));
115 builder.DrawRect(SkRect::MakeXYWH(-300, -300, 600, 600),
paint);
117 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
123 DisplayListBuilder builder;
127 paint.setColor(DlColor::kWhite());
128 builder.DrawPaint(
paint);
130 builder.ClipPath(SkPath::Circle(150, 150, 50), DlCanvas::ClipOp::kIntersect);
133 paint.setColor(DlColor::kRed());
134 paint.setBlendMode(DlBlendMode::kMultiply);
135 builder.DrawRect(SkRect::MakeXYWH(100, 100, 100, 100),
paint);
138 paint.setColor(DlColor::kGreen());
139 paint.setBlendMode(DlBlendMode::kSrcOver);
140 builder.DrawCircle(SkPoint::Make(150, 150), 50,
paint);
142 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));