7 #include "flutter/display_list/dl_builder.h"
8 #include "flutter/display_list/effects/dl_mask_filter.h"
9 #include "flutter/testing/testing.h"
10 #include "gtest/gtest.h"
12 #include "txt/platform.h"
20 struct TextRenderOptions {
23 DlColor
color = DlColor::kYellow();
28 const std::string& text,
29 const std::string_view& font_fixture,
31 const TextRenderOptions& options = {}) {
32 auto c_font_fixture = std::string(font_fixture);
33 auto mapping = flutter::testing::OpenFixtureAsSkData(c_font_fixture.c_str());
37 sk_sp<SkFontMgr> font_mgr = txt::GetDefaultFontManager();
38 SkFont sk_font(font_mgr->makeFromData(mapping), options.font_size);
39 auto blob = SkTextBlob::MakeFromString(text.c_str(), sk_font);
47 text_paint.setColor(options.color);
48 text_paint.setMaskFilter(options.mask_filter);
53 canvas->DrawTextFrame(frame, position.x(), position.y(), text_paint);
61 auto draw = [&](DlCanvas* canvas,
62 const std::vector<std::unique_ptr<DlImage>>& images) {
63 canvas->DrawColor(DlColor(0xff111111));
64 canvas->Scale(content_scale.
x, content_scale.
y);
66 TextRenderOptions options;
68 DlBlurMaskFilter::Make(DlBlurStyle::kNormal, 10,
72 SkPoint::Make(101, 101), options));
73 options.mask_filter =
nullptr;
74 options.color = DlColor::kRed();
77 SkPoint::Make(100, 100), options));
80 DisplayListBuilder builder;
83 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));
88 auto draw = [&](DlCanvas* canvas,
89 const std::vector<std::unique_ptr<DlImage>>& images) {
90 canvas->DrawColor(DlColor(0xff111111));
91 canvas->Scale(content_scale.
x, content_scale.
y);
93 TextRenderOptions options;
95 DlBlurMaskFilter::Make(DlBlurStyle::kNormal, 10,
99 SkPoint::Make(101, 101), options));
100 options.mask_filter =
nullptr;
101 options.color = DlColor::kRed();
103 "Roboto-Regular.ttf",
104 SkPoint::Make(100, 100), options));
107 DisplayListBuilder builder;
110 ASSERT_TRUE(OpenPlaygroundHere(builder.Build()));