5 #include "display_list/dl_blend_mode.h"
6 #include "display_list/dl_color.h"
7 #include "display_list/dl_tile_mode.h"
8 #include "flutter/testing/testing.h"
13 #include "include/core/SkMatrix.h"
14 #include "include/core/SkRRect.h"
19 TEST(SkiaConversionTest, ToMatrixTranslate) {
20 SkMatrix sk_matrix = SkMatrix::Translate(100, 100);
23 EXPECT_EQ(matrix.
m[12], 100);
24 EXPECT_EQ(matrix.
m[13], 100);
33 TEST(SkiaConversionTest, ToMatrixScale) {
34 SkMatrix sk_matrix = SkMatrix::Scale(2, 2);
37 EXPECT_EQ(matrix.
m[0], 2);
38 EXPECT_EQ(matrix.
m[5], 2);
47 TEST(SkiaConversionTest, ToMatrixRotate) {
48 SkMatrix sk_matrix = SkMatrix::RotateDeg(90);
52 EXPECT_EQ(matrix.
vec[1],
Vector4(-1, 0, 0, 0));
58 TEST(SkiaConversionTest, ToMatrixSkew) {
59 SkMatrix sk_matrix = SkMatrix::Skew(2, 2);
71 flutter::DlImageSampling::kNearestNeighbor)
75 flutter::DlImageSampling::kNearestNeighbor)
89 flutter::DlImageSampling::kMipmapLinear)
93 flutter::DlImageSampling::kMipmapLinear)
98 TEST(SkiaConversionsTest, SkPointToPoint) {
99 for (
int x = -100; x < 100; x += 4) {
100 for (
int y = -100; y < 100; y += 4) {
102 Point(x * 0.25f, y * 0.25f));
107 TEST(SkiaConversionsTest, SkPointToSize) {
108 for (
int x = -100; x < 100; x += 4) {
109 for (
int y = -100; y < 100; y += 4) {
111 Size(x * 0.25f, y * 0.25f));
121 const flutter::DlColor
color = flutter::DlColor(0x8040C020);
130 TEST(SkiaConversionsTest, GradientStopConversion) {
132 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
133 flutter::DlColor::kRed(),
134 flutter::DlColor::kGreen()};
135 std::vector<float> stops = {0.0, 0.5, 1.0};
136 const auto gradient =
137 flutter::DlColorSource::MakeLinear(SkPoint::Make(0, 0),
138 SkPoint::Make(1.0, 1.0),
142 flutter::DlTileMode::kClamp,
146 std::vector<Color> converted_colors;
147 std::vector<Scalar> converted_stops;
156 TEST(SkiaConversionsTest, GradientMissing0) {
157 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
158 flutter::DlColor::kRed()};
159 std::vector<float> stops = {0.5, 1.0};
160 const auto gradient =
161 flutter::DlColorSource::MakeLinear(SkPoint::Make(0, 0),
162 SkPoint::Make(1.0, 1.0),
166 flutter::DlTileMode::kClamp,
170 std::vector<Color> converted_colors;
171 std::vector<Scalar> converted_stops;
182 TEST(SkiaConversionsTest, GradientMissingLastValue) {
183 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
184 flutter::DlColor::kRed()};
185 std::vector<float> stops = {0.0, .5};
186 const auto gradient =
187 flutter::DlColorSource::MakeLinear(SkPoint::Make(0, 0),
188 SkPoint::Make(1.0, 1.0),
192 flutter::DlTileMode::kClamp,
196 std::vector<Color> converted_colors;
197 std::vector<Scalar> converted_stops;
208 TEST(SkiaConversionsTest, GradientStopGreaterThan1) {
209 std::vector<flutter::DlColor> colors = {flutter::DlColor::kBlue(),
210 flutter::DlColor::kGreen(),
211 flutter::DlColor::kRed()};
212 std::vector<float> stops = {0.0, 100, 1.0};
213 const auto gradient =
214 flutter::DlColorSource::MakeLinear(SkPoint::Make(0, 0),
215 SkPoint::Make(1.0, 1.0),
219 flutter::DlTileMode::kClamp,
223 std::vector<Color> converted_colors;
224 std::vector<Scalar> converted_stops;
234 TEST(SkiaConversionsTest, GradientConversionNonMonotonic) {
235 std::vector<flutter::DlColor> colors = {
236 flutter::DlColor::kBlue(), flutter::DlColor::kGreen(),
237 flutter::DlColor::kGreen(), flutter::DlColor::kRed()};
238 std::vector<float> stops = {0.0, 0.5, 0.4, 1.0};
239 const auto gradient =
240 flutter::DlColorSource::MakeLinear(SkPoint::Make(0, 0),
241 SkPoint::Make(1.0, 1.0),
245 flutter::DlTileMode::kClamp,
249 std::vector<Color> converted_colors;
250 std::vector<Scalar> converted_stops;
263 SkRRect::MakeRectXY(SkRect::MakeLTRB(0, 0, 10, 10), 10, 10)));
265 SkRRect::MakeRectXY(SkRect::MakeLTRB(0, 0, 10, 10), 10, 9.999)));
267 SkRRect::MakeRectXY(SkRect::MakeLTRB(0, 0, 10, 10), 10, 9)));
269 SkRRect::MakeRectXY(SkRect::MakeLTRB(0, 0, 10, 10), 10, 5)));
270 SkRect rect = SkRect::MakeLTRB(0, 0, 10, 10);
281 rrect.setRectRadii(rect, test.radii);
283 for (
int i = 0; i < 8; i++) {
284 auto save = test.values[i];
286 rrect.setRectRadii(rect, test.radii);
288 <<
"values[" << i <<
"] == " << test.values[i];
290 rrect.setRectRadii(rect, test.radii);
292 <<
"values[" << i <<
"] == " << test.values[i];
293 test.values[i] = save;
298 for (
auto i = 0; i < static_cast<int>(flutter::DlBlendMode::kLastMode); i++) {