Skip to content

Commit 59698d5

Browse files
HakkyuKimswift-kim
authored andcommitted
Create fallback font manager to solve performance drops (#78)
1 parent 84a3cad commit 59698d5

File tree

5 files changed

+19
-1
lines changed

5 files changed

+19
-1
lines changed

third_party/txt/src/txt/font_collection.cc

+3
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ size_t FontCollection::GetFontManagersCount() const {
100100
void FontCollection::SetupDefaultFontManager(
101101
uint32_t font_initialization_data) {
102102
default_font_manager_ = GetDefaultFontManager(font_initialization_data);
103+
fallback_font_manager_ = GetFallbackFontManager(font_initialization_data);
103104
}
104105

105106
void FontCollection::SetDefaultFontManager(sk_sp<SkFontMgr> font_manager) {
@@ -145,6 +146,8 @@ std::vector<sk_sp<SkFontMgr>> FontCollection::GetFontManagerOrder() const {
145146
order.push_back(test_font_manager_);
146147
if (default_font_manager_)
147148
order.push_back(default_font_manager_);
149+
if (fallback_font_manager_)
150+
order.push_back(fallback_font_manager_);
148151
return order;
149152
}
150153

third_party/txt/src/txt/font_collection.h

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ class FontCollection : public std::enable_shared_from_this<FontCollection> {
9191
};
9292

9393
sk_sp<SkFontMgr> default_font_manager_;
94+
sk_sp<SkFontMgr> fallback_font_manager_;
9495
sk_sp<SkFontMgr> asset_font_manager_;
9596
sk_sp<SkFontMgr> dynamic_font_manager_;
9697
sk_sp<SkFontMgr> test_font_manager_;

third_party/txt/src/txt/platform.cc

+4
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,8 @@ sk_sp<SkFontMgr> GetDefaultFontManager(uint32_t font_initialization_data) {
1414
return SkFontMgr::RefDefault();
1515
}
1616

17+
sk_sp<SkFontMgr> GetFallbackFontManager(uint32_t font_initialization_data) {
18+
return nullptr;
19+
}
20+
1721
} // namespace txt

third_party/txt/src/txt/platform.h

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ std::vector<std::string> GetDefaultFontFamilies();
1717

1818
sk_sp<SkFontMgr> GetDefaultFontManager(uint32_t font_initialization_data);
1919

20+
sk_sp<SkFontMgr> GetFallbackFontManager(uint32_t font_initialization_data);
21+
2022
} // namespace txt
2123

2224
#endif // TXT_PLATFORM_H_

third_party/txt/src/txt/platform_linux.cc

+9-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,15 @@ sk_sp<SkFontMgr> GetDefaultFontManager(uint32_t font_initialization_data) {
7878
#ifdef FLUTTER_USE_FONTCONFIG
7979
return SkFontMgr_New_FontConfig(nullptr);
8080
#else
81-
return SkFontMgr_New_Custom_Directory("/usr/share/");
81+
return SkFontMgr_New_Custom_Directory("/usr/share/fonts");
82+
#endif
83+
}
84+
85+
sk_sp<SkFontMgr> GetFallbackFontManager(uint32_t font_initialization_data) {
86+
#ifdef FLUTTER_USE_FONTCONFIG
87+
return nullptr;
88+
#else
89+
return SkFontMgr_New_Custom_Directory("/usr/share/fallback_fonts");
8290
#endif
8391
}
8492

0 commit comments

Comments
 (0)