Skip to content

Commit c761164

Browse files
HakkyuKimswift-kim
authored andcommitted
Create fallback font manager to solve performance drops (flutter#78)
1 parent f8e4a2d commit c761164

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
@@ -99,6 +99,7 @@ size_t FontCollection::GetFontManagersCount() const {
9999

100100
void FontCollection::SetupDefaultFontManager() {
101101
default_font_manager_ = GetDefaultFontManager();
102+
fallback_font_manager_ = GetFallbackFontManager();
102103
}
103104

104105
void FontCollection::SetDefaultFontManager(sk_sp<SkFontMgr> font_manager) {
@@ -144,6 +145,8 @@ std::vector<sk_sp<SkFontMgr>> FontCollection::GetFontManagerOrder() const {
144145
order.push_back(test_font_manager_);
145146
if (default_font_manager_)
146147
order.push_back(default_font_manager_);
148+
if (fallback_font_manager_)
149+
order.push_back(fallback_font_manager_);
147150
return order;
148151
}
149152

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() {
1414
return SkFontMgr::RefDefault();
1515
}
1616

17+
sk_sp<SkFontMgr> GetFallbackFontManager() {
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();
1919

20+
sk_sp<SkFontMgr> GetFallbackFontManager();
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() {
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() {
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)