Flutter Engine
 
Loading...
Searching...
No Matches
txt::TypefaceFontAssetProvider Class Reference

#include <typeface_font_asset_provider.h>

Inheritance diagram for txt::TypefaceFontAssetProvider:
txt::FontAssetProvider

Public Member Functions

 TypefaceFontAssetProvider ()
 
 ~TypefaceFontAssetProvider () override
 
void RegisterTypeface (sk_sp< SkTypeface > typeface)
 
void RegisterTypeface (sk_sp< SkTypeface > typeface, const std::string &family_name_alias)
 
size_t GetFamilyCount () const override
 
std::string GetFamilyName (int index) const override
 
sk_sp< SkFontStyleSet > MatchFamily (const std::string &family_name) override
 
- Public Member Functions inherited from txt::FontAssetProvider
virtual ~FontAssetProvider ()=default
 

Additional Inherited Members

- Static Protected Member Functions inherited from txt::FontAssetProvider
static std::string CanonicalFamilyName (std::string family_name)
 

Detailed Description

Definition at line 44 of file typeface_font_asset_provider.h.

Constructor & Destructor Documentation

◆ TypefaceFontAssetProvider()

txt::TypefaceFontAssetProvider::TypefaceFontAssetProvider ( )
default

◆ ~TypefaceFontAssetProvider()

txt::TypefaceFontAssetProvider::~TypefaceFontAssetProvider ( )
overridedefault

Member Function Documentation

◆ GetFamilyCount()

size_t txt::TypefaceFontAssetProvider::GetFamilyCount ( ) const
overridevirtual

Implements txt::FontAssetProvider.

Definition at line 18 of file typeface_font_asset_provider.cc.

18 {
19 return family_names_.size();
20}

Referenced by txt::testing::TEST_F().

◆ GetFamilyName()

std::string txt::TypefaceFontAssetProvider::GetFamilyName ( int  index) const
overridevirtual

Implements txt::FontAssetProvider.

Definition at line 23 of file typeface_font_asset_provider.cc.

23 {
24 return family_names_[index];
25}

◆ MatchFamily()

sk_sp< SkFontStyleSet > txt::TypefaceFontAssetProvider::MatchFamily ( const std::string &  family_name)
overridevirtual

Implements txt::FontAssetProvider.

Definition at line 28 of file typeface_font_asset_provider.cc.

29 {
30 auto found = registered_families_.find(CanonicalFamilyName(family_name));
31 if (found == registered_families_.end()) {
32 return nullptr;
33 }
34 return found->second;
35}
static std::string CanonicalFamilyName(std::string family_name)

References txt::FontAssetProvider::CanonicalFamilyName().

Referenced by txt::testing::TEST_F().

◆ RegisterTypeface() [1/2]

void txt::TypefaceFontAssetProvider::RegisterTypeface ( sk_sp< SkTypeface >  typeface)

Definition at line 37 of file typeface_font_asset_provider.cc.

37 {
38 if (typeface == nullptr) {
39 return;
40 }
41
42 SkString sk_family_name;
43 typeface->getFamilyName(&sk_family_name);
44
45 std::string family_name(sk_family_name.c_str(), sk_family_name.size());
46 RegisterTypeface(std::move(typeface), family_name);
47}
void RegisterTypeface(sk_sp< SkTypeface > typeface)

References RegisterTypeface().

Referenced by flutter::FontCollection::LoadFontFromList(), txt::RegisterSystemFonts(), and RegisterTypeface().

◆ RegisterTypeface() [2/2]

void txt::TypefaceFontAssetProvider::RegisterTypeface ( sk_sp< SkTypeface >  typeface,
const std::string &  family_name_alias 
)

Definition at line 49 of file typeface_font_asset_provider.cc.

51 {
52 if (family_name_alias.empty()) {
53 return;
54 }
55
56 std::string canonical_name = CanonicalFamilyName(family_name_alias);
57 auto family_it = registered_families_.find(canonical_name);
58 if (family_it == registered_families_.end()) {
59 family_names_.push_back(family_name_alias);
60 auto value =
61 std::make_pair(canonical_name, sk_make_sp<TypefaceFontStyleSet>());
62 family_it = registered_families_.emplace(value).first;
63 }
64 family_it->second->registerTypeface(std::move(typeface));
65}
int32_t value

References txt::FontAssetProvider::CanonicalFamilyName(), and value.


The documentation for this class was generated from the following files: