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"
20 DisplayListBuilder builder;
22 paint.setColor(DlColor::kFuchsia());
25 builder.ClipPath(DlPath::MakeCircle(
DlPoint(200, 400), 300));
27 builder.ClipPath(DlPath::MakeCircle(
DlPoint(600, 400), 300));
28 builder.ClipPath(DlPath::MakeCircle(
DlPoint(400, 600), 300));
29 builder.DrawRect(DlRect::MakeXYWH(200, 200, 400, 400), paint);
31 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
35 DisplayListBuilder builder;
36 builder.Translate(400, 400);
39 builder.ClipPath(DlPath::MakeCircle(
DlPoint(0, 0), 200));
43 builder.ClipPath(DlPath::MakeCircle(
DlPoint(-100, -50), 30),
44 DlClipOp::kDifference);
45 builder.ClipPath(DlPath::MakeCircle(
DlPoint(100, -50), 30),
46 DlClipOp::kDifference);
48 DlPathBuilder path_builder;
49 path_builder.MoveTo(
DlPoint(-100, 50));
51 builder.ClipPath(
DlPath(path_builder), DlClipOp::kDifference);
55 paint.setColor(DlColor::kYellow());
56 builder.DrawRect(DlRect::MakeXYWH(-1000, -1000, 2000, 2000), paint);
60 paint.setColor(DlColor::kMaroon());
61 DlPathBuilder path_builder_2;
62 path_builder_2.MoveTo(
DlPoint(200, -200));
63 path_builder_2.LineTo(
DlPoint(-200, -200));
64 path_builder_2.LineTo(
DlPoint(-200, -40));
68 builder.DrawPath(
DlPath(path_builder_2), paint);
70 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
74 DisplayListBuilder builder;
78 paint.setColor(DlColor::kRed());
79 builder.DrawPaint(paint);
84 builder.ClipRect(DlRect::MakeXYWH(100, 100, 100, 100));
85 builder.ClipRect(DlRect::MakeXYWH(300, 300, 100, 100));
91 paint.setColor(DlColor::kGreen());
92 builder.DrawPaint(paint);
94 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
98 std::array<DlColor, 5> colors = {DlColor::kWhite(), DlColor::kBlack(),
99 DlColor::kSkyBlue(), DlColor::kRed(),
101 DisplayListBuilder builder;
104 builder.Translate(300, 300);
105 for (
int i = 0; i < 15; i++) {
106 builder.Scale(0.8, 0.8);
108 paint.setColor(colors[i % colors.size()]);
109 builder.ClipPath(DlPath::MakeCircle(
DlPoint(0, 0), 300));
110 builder.DrawRect(DlRect::MakeXYWH(-300, -300, 600, 600), paint);
112 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
118 DisplayListBuilder builder;
122 paint.setColor(DlColor::kWhite());
123 builder.DrawPaint(paint);
125 builder.ClipPath(DlPath::MakeCircle(
DlPoint(150, 150), 50),
126 DlClipOp::kIntersect);
129 paint.setColor(DlColor::kRed());
130 paint.setBlendMode(DlBlendMode::kMultiply);
131 builder.DrawRect(DlRect::MakeXYWH(100, 100, 100, 100), paint);
134 paint.setColor(DlColor::kGreen());
135 paint.setBlendMode(DlBlendMode::kSrcOver);
136 builder.DrawCircle(
DlPoint(150, 150), 50, paint);
138 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
TEST_P(AiksTest, DrawAtlasNoColor)