OpenTTD Source 20250914-master-g748700bd9e
|
Font cache for fonts that are based on a freetype font. More...
Public Member Functions | |
FreeTypeFontCache (FontSize fs, FT_Face face, int pixels) | |
Create a new FreeTypeFontCache. | |
~FreeTypeFontCache () | |
Free everything that was allocated for this font cache. | |
void | ClearFontCache () override |
Reset cached glyphs. | |
GlyphID | MapCharToGlyph (char32_t key, bool allow_fallback=true) override |
Map a character into a glyph. | |
std::string | GetFontName () override |
Get the name of this font. | |
bool | IsBuiltInFont () override |
Is this a built-in sprite font? | |
const void * | GetOSHandle () override |
Get the native OS font handle, if there is one. | |
![]() | |
TrueTypeFontCache (FontSize fs, int pixels) | |
Create a new TrueTypeFontCache. | |
virtual | ~TrueTypeFontCache () |
Free everything that was allocated for this font cache. | |
int | GetFontSize () const override |
Get the nominal font size of the font. | |
const Sprite * | GetGlyph (GlyphID key) override |
Get the glyph (sprite) of the given key. | |
void | ClearFontCache () override |
Reset cached glyphs. | |
uint | GetGlyphWidth (GlyphID key) override |
Get the width of the glyph with the given key. | |
bool | GetDrawGlyphShadow () override |
Do we need to draw a glyph shadow? | |
bool | IsBuiltInFont () override |
Is this a built-in sprite font? | |
![]() | |
FontSize | GetSize () const |
Get the FontSize of the font. | |
int | GetHeight () const |
Get the height of the font. | |
int | GetAscender () const |
Get the ascender value of the font. | |
int | GetDescender () const |
Get the descender value of the font. | |
bool | HasParent () |
Check whether the font cache has a parent. | |
Private Member Functions | |
void | SetFontSize (int pixels) |
const Sprite * | InternalGetGlyph (GlyphID key, bool aa) override |
Private Attributes | |
FT_Face | face |
The font face associated with this font. | |
Additional Inherited Members | |
![]() | |
static void | InitializeFontCaches () |
Initialise font caches with the base sprite font cache for all sizes. | |
static void | UninitializeFontCaches () |
Free everything allocated w.r.t. | |
static void | LoadFontCaches (FontSizes fontsizes) |
(Re)initialize the font cache related things, i.e. | |
static void | ClearFontCaches (FontSizes fontsizes) |
Clear cached information for the specified font caches. | |
static int | GetDefaultFontHeight (FontSize fs) |
static FontCache * | Get (FontSize fs) |
Get the font cache of a given font size. | |
static std::string | GetName (FontSize fs) |
Get the font name of a given font size. | |
![]() | |
static const int | DEFAULT_FONT_HEIGHT [FS_END] = {10, 6, 18, 10} |
Default unscaled font heights. | |
static const int | DEFAULT_FONT_ASCENDER [FS_END] = {8, 5, 15, 8} |
Default unscaled font ascenders. | |
![]() | |
GlyphEntry * | GetGlyphPtr (GlyphID key) |
GlyphEntry & | SetGlyphPtr (GlyphID key, GlyphEntry &&glyph) |
![]() | |
FontCache (FontSize fs) | |
![]() | |
static void | Register (std::unique_ptr< FontCache > &&fc) |
Register a FontCache for its font size. | |
![]() | |
int | req_size = 0 |
Requested font size. | |
int | used_size = 0 |
Used font size. | |
std::unordered_map< GlyphID, GlyphEntry > | glyph_to_sprite_map {} |
![]() | |
std::unique_ptr< FontCache > | parent |
The parent of this font cache. | |
const FontSize | fs |
The size of the font. | |
int | height = 0 |
The height of the font. | |
int | ascender = 0 |
The ascender value of the font. | |
int | descender = 0 |
The descender value of the font. | |
![]() | |
static constexpr int | MAX_GLYPH_DIM = 256 |
Maximum glyph dimensions. | |
static constexpr uint | MAX_FONT_MIN_REC_SIZE = 20u |
Upper limit for the recommended font size in case a font file contains nonsensical values. | |
![]() | |
static std::array< std::unique_ptr< FontCache >, FS_END > | caches {} |
All the font caches. | |
Font cache for fonts that are based on a freetype font.
Definition at line 32 of file freetypefontcache.cpp.
FreeTypeFontCache::FreeTypeFontCache | ( | FontSize | fs, |
FT_Face | face, | ||
int | pixels | ||
) |
Create a new FreeTypeFontCache.
fs | The font size that is going to be cached. |
face | The font that has to be loaded. |
pixels | The number of pixels this font should be high. |
Definition at line 55 of file freetypefontcache.cpp.
References face.
FreeTypeFontCache::~FreeTypeFontCache | ( | ) |
Free everything that was allocated for this font cache.
Definition at line 116 of file freetypefontcache.cpp.
References ClearFontCache(), and face.
|
overridevirtual |
Reset cached glyphs.
Implements FontCache.
Definition at line 126 of file freetypefontcache.cpp.
References TrueTypeFontCache::ClearFontCache(), face, and TrueTypeFontCache::req_size.
Referenced by ~FreeTypeFontCache().
|
inlineoverridevirtual |
Get the name of this font.
Implements FontCache.
Definition at line 44 of file freetypefontcache.cpp.
References face.
|
inlineoverridevirtual |
Get the native OS font handle, if there is one.
Reimplemented from FontCache.
Definition at line 46 of file freetypefontcache.cpp.
References face.
Implements TrueTypeFontCache.
Definition at line 135 of file freetypefontcache.cpp.
|
inlineoverridevirtual |
Is this a built-in sprite font?
Implements FontCache.
Definition at line 45 of file freetypefontcache.cpp.
|
overridevirtual |
Map a character into a glyph.
key | The character. |
fallback | Allow fallback to the parent font. |
Implements FontCache.
Definition at line 196 of file freetypefontcache.cpp.
References face, and FontCache::parent.
|
private |
Definition at line 62 of file freetypefontcache.cpp.
|
private |
The font face associated with this font.
Definition at line 34 of file freetypefontcache.cpp.
Referenced by ClearFontCache(), FreeTypeFontCache(), GetFontName(), GetOSHandle(), MapCharToGlyph(), and ~FreeTypeFontCache().