OpenTTD Source 20251213-master-g1091fa6071
TrueTypeFontCache Class Referenceabstract

Font cache for fonts that are based on a TrueType font. More...

#include <truetypefontcache.h>

Inheritance diagram for TrueTypeFontCache:
FontCache CoreTextFontCache FreeTypeFontCache Win32FontCache

Data Structures

struct  GlyphEntry
 Container for information about a glyph. More...
 

Public Member Functions

 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 SpriteGetGlyph (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?
 
- Public Member Functions inherited from FontCache
FontSize GetSize () const
 Get the FontSize of the font.
 
FontIndex GetIndex () const
 
FontLoadReason GetFontLoadReason () const
 
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.
 
virtual GlyphID MapCharToGlyph (char32_t key)=0
 Map a character into a glyph.
 
virtual const void * GetOSHandle ()
 Get the native OS font handle, if there is one.
 
virtual std::string GetFontName ()=0
 Get the name of this font.
 
virtual int GetGlyphYOffset ()
 

Protected Member Functions

GlyphEntryGetGlyphPtr (GlyphID key)
 
GlyphEntrySetGlyphPtr (GlyphID key, GlyphEntry &&glyph)
 
virtual const SpriteInternalGetGlyph (GlyphID key, bool aa)=0
 
- Protected Member Functions inherited from FontCache
 FontCache (FontSize fs)
 

Protected Attributes

int req_size = 0
 Requested font size.
 
int used_size = 0
 Used font size.
 
std::unordered_map< GlyphID, GlyphEntryglyph_to_sprite_map {}
 
- Protected Attributes inherited from FontCache
const FontSize fs
 The size of the font.
 
FontIndex font_index
 The index of the font.
 
FontLoadReason load_reason
 Reason why the font is loaded.
 
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 Protected Attributes

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 Protected Attributes inherited from FontCache
static FontCaches caches
 
static std::array< FontMetrics, FS_END > metrics {}
 
static std::array< FontIndex, FS_END > default_font_index {}
 

Additional Inherited Members

- Static Public Member Functions inherited from FontCache
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 int GetFontBaseline (FontSize fs)
 
static void AddFallback (FontSizes fontsizes, FontLoadReason load_reason, std::string_view name, std::span< const std::byte > os_data={})
 Add a fallback font, with optional OS-specific handle.
 
template<typename T >
static void AddFallbackWithHandle (FontSizes fontsizes, FontLoadReason load_reason, std::string_view name, T &handle)
 Add a fallback font, with OS-specific handle.
 
static std::span< const std::unique_ptr< FontCache > > Get ()
 Get span of all FontCaches.
 
static FontCacheGet (FontIndex font_index)
 Get the font cache of a given font size.
 
static int GetCharacterHeight (FontSize fs)
 
static void UpdateCharacterHeight (FontSize fs)
 
static FontIndex GetDefaultFontIndex (FontSize fs)
 
static class FontCacheGetDefaultFontCache (FontSize fs)
 
static FontIndex GetFontIndexForCharacter (FontSize fs, char32_t c)
 
- Static Public Attributes inherited from FontCache
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, 6, 15, 8}
 Default unscaled font ascenders.
 
- Protected Types inherited from FontCache
using FontCaches = std::vector< std::unique_ptr< FontCache > >
 
- Static Protected Member Functions inherited from FontCache
static void Register (std::unique_ptr< FontCache > &&fc, FontLoadReason load_reason)
 
static void LoadDefaultFonts (FontSize fs)
 
static void LoadFallbackFonts (FontSize fs, FontLoadReason load_reason)
 

Detailed Description

Font cache for fonts that are based on a TrueType font.

Definition at line 22 of file truetypefontcache.h.

Constructor & Destructor Documentation

◆ TrueTypeFontCache()

TrueTypeFontCache::TrueTypeFontCache ( FontSize  fs,
int  pixels 
)

Create a new TrueTypeFontCache.

Parameters
fsThe font size that is going to be cached.
pixelsThe number of pixels this font should be high.

Definition at line 24 of file truetypefontcache.cpp.

◆ ~TrueTypeFontCache()

TrueTypeFontCache::~TrueTypeFontCache ( )
virtual

Free everything that was allocated for this font cache.

Definition at line 31 of file truetypefontcache.cpp.

References ClearFontCache().

Member Function Documentation

◆ ClearFontCache()

void TrueTypeFontCache::ClearFontCache ( )
overridevirtual

◆ GetDrawGlyphShadow()

bool TrueTypeFontCache::GetDrawGlyphShadow ( )
overridevirtual

Do we need to draw a glyph shadow?

Returns
True if it has to be done, otherwise false.

Implements FontCache.

Definition at line 60 of file truetypefontcache.cpp.

References FontCache::fs, and FS_NORMAL.

◆ GetFontSize()

int TrueTypeFontCache::GetFontSize ( ) const
inlineoverridevirtual

Get the nominal font size of the font.

Returns
The nominal font size.

Reimplemented from FontCache.

Definition at line 48 of file truetypefontcache.h.

References used_size.

◆ GetGlyph()

const Sprite * TrueTypeFontCache::GetGlyph ( GlyphID  key)
overridevirtual

Get the glyph (sprite) of the given key.

Parameters
keyThe key to look up.
Returns
The sprite.

Implements FontCache.

Definition at line 76 of file truetypefontcache.cpp.

References TrueTypeFontCache::GlyphEntry::data.

Referenced by GetGlyphWidth().

◆ GetGlyphPtr()

TrueTypeFontCache::GlyphEntry * TrueTypeFontCache::GetGlyphPtr ( GlyphID  key)
protected

Definition at line 47 of file truetypefontcache.cpp.

◆ GetGlyphWidth()

uint TrueTypeFontCache::GetGlyphWidth ( GlyphID  key)
overridevirtual

Get the width of the glyph with the given key.

Parameters
keyThe key to look up.
Returns
The width.

Implements FontCache.

Definition at line 65 of file truetypefontcache.cpp.

References TrueTypeFontCache::GlyphEntry::data, GetGlyph(), and TrueTypeFontCache::GlyphEntry::width.

◆ IsBuiltInFont()

bool TrueTypeFontCache::IsBuiltInFont ( )
inlineoverridevirtual

Is this a built-in sprite font?

Implements FontCache.

Definition at line 53 of file truetypefontcache.h.

◆ SetGlyphPtr()

TrueTypeFontCache::GlyphEntry & TrueTypeFontCache::SetGlyphPtr ( GlyphID  key,
GlyphEntry &&  glyph 
)
protected

Definition at line 54 of file truetypefontcache.cpp.

Field Documentation

◆ glyph_to_sprite_map

std::unordered_map<GlyphID, GlyphEntry> TrueTypeFontCache::glyph_to_sprite_map {}
protected

Definition at line 38 of file truetypefontcache.h.

◆ MAX_FONT_MIN_REC_SIZE

constexpr uint TrueTypeFontCache::MAX_FONT_MIN_REC_SIZE = 20u
staticconstexprprotected

Upper limit for the recommended font size in case a font file contains nonsensical values.

Definition at line 25 of file truetypefontcache.h.

◆ MAX_GLYPH_DIM

constexpr int TrueTypeFontCache::MAX_GLYPH_DIM = 256
staticconstexprprotected

Maximum glyph dimensions.

Definition at line 24 of file truetypefontcache.h.

◆ req_size

int TrueTypeFontCache::req_size = 0
protected

◆ used_size

int TrueTypeFontCache::used_size = 0
protected

Used font size.

Definition at line 28 of file truetypefontcache.h.

Referenced by GetFontSize().


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