OpenTTD Source 20241224-master-gee860a5c8e
SpriteFontCache Class Reference

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

#include <spritefontcache.h>

Inheritance diagram for SpriteFontCache:
FontCache

Public Member Functions

 SpriteFontCache (FontSize fs)
 Create a new sprite font cache.
 
void SetUnicodeGlyph (char32_t key, SpriteID sprite) override
 Map a SpriteID to the key.
 
void InitializeUnicodeGlyphMap () override
 Initialize the glyph map.
 
void ClearFontCache () override
 Clear the font cache.
 
const SpriteGetGlyph (GlyphID key) override
 Get the glyph (sprite) of the given key.
 
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?
 
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?
 
- Public Member Functions inherited from FontCache
 FontCache (FontSize fs)
 Create a new font cache.
 
virtual ~FontCache ()
 Clean everything up.
 
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.
 
virtual int GetFontSize () const
 Get the nominal font size of the font.
 
virtual const void * GetOSHandle ()
 Get the native OS font handle, if there is one.
 
bool HasParent ()
 Check whether the font cache has a parent.
 

Private Member Functions

SpriteID GetUnicodeGlyph (GlyphID key)
 Get SpriteID associated with a GlyphID.
 

Private Attributes

std::unordered_map< GlyphID, SpriteIDglyph_to_spriteid_map {}
 Mapping of glyphs to sprite IDs.
 

Additional Inherited Members

- Static Public Member Functions inherited from FontCache
static void InitializeFontCaches ()
 
static int GetDefaultFontHeight (FontSize fs)
 
static FontCacheGet (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.
 
- Protected Attributes inherited from FontCache
FontCacheparent
 The parent of this font cache.
 
const FontSize fs
 The size of the font.
 
int height
 The height of the font.
 
int ascender
 The ascender value of the font.
 
int descender
 The descender value of the font.
 
- Static Protected Attributes inherited from FontCache
static FontCachecaches [FS_END]
 All the font caches.
 

Detailed Description

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

Definition at line 17 of file spritefontcache.h.

Constructor & Destructor Documentation

◆ SpriteFontCache()

SpriteFontCache::SpriteFontCache ( FontSize  fs)

Create a new sprite font cache.

Parameters
fsThe font size to create the cache for.

Definition at line 38 of file spritefontcache.cpp.

References FontCache::ascender, FontCache::height, InitializeUnicodeGlyphMap(), ScaleFontTrad(), and ScaleGUITrad().

Member Function Documentation

◆ ClearFontCache()

void SpriteFontCache::ClearFontCache ( )
overridevirtual

Clear the font cache.

Implements FontCache.

Definition at line 97 of file spritefontcache.cpp.

References FontCache::ascender, FontCache::fs, FontCache::height, Layouter::ResetFontCache(), ScaleFontTrad(), and ScaleGUITrad().

◆ GetDrawGlyphShadow()

bool SpriteFontCache::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 126 of file spritefontcache.cpp.

◆ GetFontName()

std::string SpriteFontCache::GetFontName ( )
inlineoverridevirtual

Get the name of this font.

Returns
The name of the font.

Implements FontCache.

Definition at line 27 of file spritefontcache.h.

◆ GetGlyph()

const Sprite * SpriteFontCache::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 104 of file spritefontcache.cpp.

References Font, and GetUnicodeGlyph().

◆ GetGlyphWidth()

uint SpriteFontCache::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 111 of file spritefontcache.cpp.

References Font, FontCache::fs, FS_NORMAL, GetUnicodeGlyph(), ScaleFontTrad(), and Sprite::width.

◆ GetUnicodeGlyph()

SpriteID SpriteFontCache::GetUnicodeGlyph ( GlyphID  key)
private

Get SpriteID associated with a GlyphID.

Parameters
keyGlyph to find.
Returns
SpriteID of glyph, or 0 if not present.

Definition at line 50 of file spritefontcache.cpp.

References glyph_to_spriteid_map.

Referenced by GetGlyph(), GetGlyphWidth(), and MapCharToGlyph().

◆ InitializeUnicodeGlyphMap()

void SpriteFontCache::InitializeUnicodeGlyphMap ( )
overridevirtual

Initialize the glyph map.

Implements FontCache.

Definition at line 62 of file spritefontcache.cpp.

References ASCII_LETTERSTART, CLRA, FontCache::fs, FS_LARGE, FS_MONO, FS_NORMAL, FS_SMALL, glyph_to_spriteid_map, and SetUnicodeGlyph().

Referenced by SpriteFontCache().

◆ IsBuiltInFont()

bool SpriteFontCache::IsBuiltInFont ( )
inlineoverridevirtual

Is this a built-in sprite font?

Implements FontCache.

Definition at line 28 of file spritefontcache.h.

◆ MapCharToGlyph()

GlyphID SpriteFontCache::MapCharToGlyph ( char32_t  key,
bool  fallback = true 
)
overridevirtual

Map a character into a glyph.

Parameters
keyThe character.
fallbackAllow fallback to the parent font.
Returns
The glyph ID used to draw the character.

Implements FontCache.

Definition at line 118 of file spritefontcache.cpp.

References GetUnicodeGlyph().

◆ SetUnicodeGlyph()

void SpriteFontCache::SetUnicodeGlyph ( char32_t  key,
SpriteID  sprite 
)
overridevirtual

Map a SpriteID to the key.

Parameters
keyThe key to map to.
spriteThe sprite that is being mapped.

Implements FontCache.

Definition at line 57 of file spritefontcache.cpp.

References glyph_to_spriteid_map.

Referenced by InitializeUnicodeGlyphMap().

Field Documentation

◆ glyph_to_spriteid_map

std::unordered_map<GlyphID, SpriteID> SpriteFontCache::glyph_to_spriteid_map {}
private

Mapping of glyphs to sprite IDs.

Definition at line 31 of file spritefontcache.h.

Referenced by GetUnicodeGlyph(), InitializeUnicodeGlyphMap(), and SetUnicodeGlyph().


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