Skia
2D Graphics Library
SkFontMgr Class Referenceabstract

#include <SkFontMgr.h>

Inheritance diagram for SkFontMgr:

Public Member Functions

int countFamilies () const
 
void getFamilyName (int index, SkString *familyName) const
 
sk_sp< SkFontStyleSetcreateStyleSet (int index) const
 
sk_sp< SkFontStyleSetmatchFamily (const char familyName[]) const
 The caller must call unref() on the returned object. More...
 
sk_sp< SkTypefacematchFamilyStyle (const char familyName[], const SkFontStyle &) const
 Find the closest matching typeface to the specified familyName and style and return a ref to it. More...
 
sk_sp< SkTypefacematchFamilyStyleCharacter (const char familyName[], const SkFontStyle &, const char *bcp47[], int bcp47Count, SkUnichar character) const
 Use the system fallback to find a typeface for the given character. More...
 
sk_sp< SkTypefacemakeFromData (sk_sp< SkData >, int ttcIndex=0) const
 Create a typeface for the specified data and TTC index (pass 0 for none) or NULL if the data is not recognized. More...
 
sk_sp< SkTypefacemakeFromStream (std::unique_ptr< SkStreamAsset >, int ttcIndex=0) const
 Create a typeface for the specified stream and TTC index (pass 0 for none) or NULL if the stream is not recognized. More...
 
sk_sp< SkTypefacemakeFromStream (std::unique_ptr< SkStreamAsset >, const SkFontArguments &) const
 
sk_sp< SkTypefacemakeFromFile (const char path[], int ttcIndex=0) const
 Create a typeface for the specified fileName and TTC index (pass 0 for none) or NULL if the file is not found, or its contents are not recognized. More...
 
sk_sp< SkTypefacelegacyMakeTypeface (const char familyName[], SkFontStyle style) const
 
bool unique () const
 May return true if the caller is the only owner. More...
 
void ref () const
 Increment the reference count. More...
 
void unref () const
 Decrement the reference count. More...
 

Static Public Member Functions

static sk_sp< SkFontMgrRefDefault ()
 Return the default fontmgr. More...
 
static sk_sp< SkFontMgrRefEmpty ()
 

Protected Member Functions

virtual int onCountFamilies () const =0
 
virtual void onGetFamilyName (int index, SkString *familyName) const =0
 
virtual sk_sp< SkFontStyleSetonCreateStyleSet (int index) const =0
 
virtual sk_sp< SkFontStyleSetonMatchFamily (const char familyName[]) const =0
 May return NULL if the name is not found. More...
 
virtual sk_sp< SkTypefaceonMatchFamilyStyle (const char familyName[], const SkFontStyle &) const =0
 
virtual sk_sp< SkTypefaceonMatchFamilyStyleCharacter (const char familyName[], const SkFontStyle &, const char *bcp47[], int bcp47Count, SkUnichar character) const =0
 
virtual sk_sp< SkTypefaceonMakeFromData (sk_sp< SkData >, int ttcIndex) const =0
 
virtual sk_sp< SkTypefaceonMakeFromStreamIndex (std::unique_ptr< SkStreamAsset >, int ttcIndex) const =0
 
virtual sk_sp< SkTypefaceonMakeFromStreamArgs (std::unique_ptr< SkStreamAsset >, const SkFontArguments &) const =0
 
virtual sk_sp< SkTypefaceonMakeFromFile (const char path[], int ttcIndex) const =0
 
virtual sk_sp< SkTypefaceonLegacyMakeTypeface (const char familyName[], SkFontStyle) const =0
 

Member Function Documentation

◆ countFamilies()

int SkFontMgr::countFamilies ( ) const

◆ createStyleSet()

sk_sp<SkFontStyleSet> SkFontMgr::createStyleSet ( int  index) const

◆ getFamilyName()

void SkFontMgr::getFamilyName ( int  index,
SkString familyName 
) const

◆ legacyMakeTypeface()

sk_sp<SkTypeface> SkFontMgr::legacyMakeTypeface ( const char  familyName[],
SkFontStyle  style 
) const

◆ makeFromData()

sk_sp<SkTypeface> SkFontMgr::makeFromData ( sk_sp< SkData ,
int  ttcIndex = 0 
) const

Create a typeface for the specified data and TTC index (pass 0 for none) or NULL if the data is not recognized.

The caller must call unref() on the returned object if it is not null.

◆ makeFromFile()

sk_sp<SkTypeface> SkFontMgr::makeFromFile ( const char  path[],
int  ttcIndex = 0 
) const

Create a typeface for the specified fileName and TTC index (pass 0 for none) or NULL if the file is not found, or its contents are not recognized.

The caller must call unref() on the returned object if it is not null.

◆ makeFromStream() [1/2]

sk_sp<SkTypeface> SkFontMgr::makeFromStream ( std::unique_ptr< SkStreamAsset ,
const SkFontArguments  
) const

◆ makeFromStream() [2/2]

sk_sp<SkTypeface> SkFontMgr::makeFromStream ( std::unique_ptr< SkStreamAsset ,
int  ttcIndex = 0 
) const

Create a typeface for the specified stream and TTC index (pass 0 for none) or NULL if the stream is not recognized.

The caller must call unref() on the returned object if it is not null.

◆ matchFamily()

sk_sp<SkFontStyleSet> SkFontMgr::matchFamily ( const char  familyName[]) const

The caller must call unref() on the returned object.

Never returns NULL; will return an empty set if the name is not found.

Passing nullptr as the parameter will return the default system family. Note that most systems don't have a default system family, so passing nullptr will often result in the empty set.

It is possible that this will return a style set not accessible from createStyleSet(int) due to hidden or auto-activated fonts.

◆ matchFamilyStyle()

sk_sp<SkTypeface> SkFontMgr::matchFamilyStyle ( const char  familyName[],
const SkFontStyle  
) const

Find the closest matching typeface to the specified familyName and style and return a ref to it.

The caller must call unref() on the returned object. Will return nullptr if no 'good' match is found.

Passing |nullptr| as the parameter for |familyName| will return the default system font.

It is possible that this will return a style set not accessible from createStyleSet(int) or matchFamily(const char[]) due to hidden or auto-activated fonts.

◆ matchFamilyStyleCharacter()

sk_sp<SkTypeface> SkFontMgr::matchFamilyStyleCharacter ( const char  familyName[],
const SkFontStyle ,
const char *  bcp47[],
int  bcp47Count,
SkUnichar  character 
) const

Use the system fallback to find a typeface for the given character.

Note that bcp47 is a combination of ISO 639, 15924, and 3166-1 codes, so it is fine to just pass a ISO 639 here.

Will return NULL if no family can be found for the character in the system fallback.

Passing |nullptr| as the parameter for |familyName| will return the default system font.

bcp47[0] is the least significant fallback, bcp47[bcp47Count-1] is the most significant. If no specified bcp47 codes match, any font with the requested character will be matched.

◆ onCountFamilies()

virtual int SkFontMgr::onCountFamilies ( ) const
protectedpure virtual

◆ onCreateStyleSet()

virtual sk_sp<SkFontStyleSet> SkFontMgr::onCreateStyleSet ( int  index) const
protectedpure virtual

◆ onGetFamilyName()

virtual void SkFontMgr::onGetFamilyName ( int  index,
SkString familyName 
) const
protectedpure virtual

◆ onLegacyMakeTypeface()

virtual sk_sp<SkTypeface> SkFontMgr::onLegacyMakeTypeface ( const char  familyName[],
SkFontStyle   
) const
protectedpure virtual

◆ onMakeFromData()

virtual sk_sp<SkTypeface> SkFontMgr::onMakeFromData ( sk_sp< SkData ,
int  ttcIndex 
) const
protectedpure virtual

◆ onMakeFromFile()

virtual sk_sp<SkTypeface> SkFontMgr::onMakeFromFile ( const char  path[],
int  ttcIndex 
) const
protectedpure virtual

◆ onMakeFromStreamArgs()

virtual sk_sp<SkTypeface> SkFontMgr::onMakeFromStreamArgs ( std::unique_ptr< SkStreamAsset ,
const SkFontArguments  
) const
protectedpure virtual

◆ onMakeFromStreamIndex()

virtual sk_sp<SkTypeface> SkFontMgr::onMakeFromStreamIndex ( std::unique_ptr< SkStreamAsset ,
int  ttcIndex 
) const
protectedpure virtual

◆ onMatchFamily()

virtual sk_sp<SkFontStyleSet> SkFontMgr::onMatchFamily ( const char  familyName[]) const
protectedpure virtual

May return NULL if the name is not found.

◆ onMatchFamilyStyle()

virtual sk_sp<SkTypeface> SkFontMgr::onMatchFamilyStyle ( const char  familyName[],
const SkFontStyle  
) const
protectedpure virtual

◆ onMatchFamilyStyleCharacter()

virtual sk_sp<SkTypeface> SkFontMgr::onMatchFamilyStyleCharacter ( const char  familyName[],
const SkFontStyle ,
const char *  bcp47[],
int  bcp47Count,
SkUnichar  character 
) const
protectedpure virtual

◆ ref()

void SkRefCntBase::ref ( ) const
inlineinherited

Increment the reference count.

Must be balanced by a call to unref().

◆ RefDefault()

static sk_sp<SkFontMgr> SkFontMgr::RefDefault ( )
static

Return the default fontmgr.

◆ RefEmpty()

static sk_sp<SkFontMgr> SkFontMgr::RefEmpty ( )
static

◆ unique()

bool SkRefCntBase::unique ( ) const
inlineinherited

May return true if the caller is the only owner.

Ensures that all previous owner's actions are complete.

◆ unref()

void SkRefCntBase::unref ( ) const
inlineinherited

Decrement the reference count.

If the reference count is 1 before the decrement, then delete the object. Note that if this is the case, then the object needs to have been allocated via new, and not on the stack.


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