Ultralight C++ API 1.3.0
Loading...
Searching...
No Matches
ultralight::FontLoader Class Referenceabstract

#include <Ultralight/platform/FontLoader.h>

Details

User-defined font loader interface.

The library uses this to load all system fonts.

Every operating system has its own library of installed system fonts. The FontLoader interface is used to lookup these fonts and fetch the actual font data (raw TTF/OTF file data) for a given given font description.

Usage

To provide your own custom FontLoader implementation, you should inherit from this class, handle the virtual member functions, and then pass an instance of your class to Platform::set_font_loader() before calling Renderer::Create() or App::Create().

Note

AppCore uses a default OS-specific FontLoader implementation when you call App::Create().

If you are using Renderer::Create(), you can still use AppCore's implementation– see the helper functions defined in <AppCore/Platform.h>.

Public Member Functions

virtual ~FontLoader ()
 
virtual String fallback_font () const =0
 Fallback font family name.
 
virtual String fallback_font_for_characters (const String &characters, int weight, bool italic) const =0
 Fallback font family name that can render the specified characters.
 
virtual RefPtr< FontFileLoad (const String &family, int weight, bool italic)=0
 Get the actual font file data (TTF/OTF) for a given font description.
 

Constructor & Destructor Documentation

◆ ~FontLoader()

virtual ultralight::FontLoader::~FontLoader ( )
virtual

Member Function Documentation

◆ fallback_font()

virtual String ultralight::FontLoader::fallback_font ( ) const
pure virtual

Fallback font family name.

Will be used if all other fonts fail to load.

Note
This font should be guaranteed to exist (eg, FontLoader::Load won't fail when passed this font family name).

◆ fallback_font_for_characters()

virtual String ultralight::FontLoader::fallback_font_for_characters ( const String characters,
int  weight,
bool  italic 
) const
pure virtual

Fallback font family name that can render the specified characters.

Mainly used to support CJK (Chinese, Japanese, Korean) text display.

Parameters
charactersOne or more UTF-16 characters. This is almost always a single character.
weightFont weight.
italicWhether or not italic is requested.
Returns
Returns a font family name that can render the text.

◆ Load()

virtual RefPtr< FontFile > ultralight::FontLoader::Load ( const String family,
int  weight,
bool  italic 
)
pure virtual

Get the actual font file data (TTF/OTF) for a given font description.

Parameters
familyFont family name.
weightFont weight.
italicWhether or not italic is requested.
Returns
A font file matching the given description (either an on-disk font filepath or an in-memory file contents). You can return NULL here and the loader will fallback to another font.

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