5 #include "display_list/dl_color.h"
6 #include "display_list/dl_tile_mode.h"
7 #include "gtest/gtest.h"
11 #include "display_list/dl_builder.h"
12 #include "display_list/dl_paint.h"
13 #include "display_list/effects/dl_color_source.h"
14 #include "flutter/fml/platform/darwin/scoped_nsautorelease_pool.h"
21 #include "third_party/skia/include/core/SkPaint.h"
27 std::string GetTestName() {
28 std::string suite_name =
29 ::testing::UnitTest::GetInstance()->current_test_suite()->name();
30 std::string test_name =
31 ::testing::UnitTest::GetInstance()->current_test_info()->name();
33 ss <<
"impeller_" << suite_name <<
"_" << test_name;
37 std::string GetGoldenFilename() {
38 return GetTestName() +
".png";
41 bool SaveScreenshot(std::unique_ptr<Screenshot> screenshot) {
42 if (!screenshot || !screenshot->GetBytes()) {
45 std::string test_name = GetTestName();
46 std::string filename = GetGoldenFilename();
48 test_name, filename, screenshot->GetWidth(), screenshot->GetHeight());
49 return screenshot->WriteToPNG(
65 Screenshotter().GetPlayground().GetContext()->DescribeGpuModel());
71 fml::ScopedNSAutoreleasePool autorelease_pool_;
73 std::unique_ptr<MetalScreenshotter> screenshotter_;
77 flutter::DisplayListBuilder builder;
78 flutter::DlPaint paint;
79 paint.setDrawStyle(flutter::DlDrawStyle::kFill);
81 flutter::DlColor colors[2] = {flutter::DlColor::RGBA(1, 0, 0, 1),
82 flutter::DlColor::RGBA(0, 0, 1, 1)};
85 paint.setColorSource(flutter::DlConicalGradientColorSource::MakeConical(
92 flutter::DlTileMode::kClamp
95 builder.DrawRect(SkRect::MakeXYWH(10, 10, 250, 250), paint);
102 ASSERT_TRUE(SaveScreenshot(std::move(screenshot)));