OpenTTD Source: SpriteFontCache Class Reference

OpenTTD Source 15.0-beta1

Public Member Functions | Private Member Functions | Private Attributes
SpriteFontCache Class Reference

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

`#include <spritefontcache.h>`

Inheritance diagram for SpriteFontCache:

## 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 Sprite * | GetGlyph (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, SpriteID > | glyph_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 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.
Protected Attributes inherited from FontCache
FontCache * | parent
| 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 FontCache * | caches [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

  fs | The 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

  key | The 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

  key | The 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

  key | Glyph 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

  key | The character.
  fallback | Allow 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

  key | The key to map to.
  sprite | The 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:

- src/fontcache/spritefontcache.h
- src/fontcache/spritefontcache.cpp