OpenTTD Source: TrueTypeFontCache Class Reference

OpenTTD Source 15.0-beta1

Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
TrueTypeFontCache Class Referenceabstract

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

`#include <truetypefontcache.h>`

Inheritance diagram for TrueTypeFontCache:

## 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.
void | SetUnicodeGlyph (char32_t key, SpriteID sprite) override
| Map a SpriteID to the key.
void | InitializeUnicodeGlyphMap () override
| Initialize the glyph map.
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?
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 GlyphID | MapCharToGlyph (char32_t key, bool fallback=true)=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.
bool | HasParent ()
| Check whether the font cache has a parent.

## Protected Member Functions
GlyphEntry * | GetGlyphPtr (GlyphID key)
GlyphEntry & | SetGlyphPtr (GlyphID key, GlyphEntry &&glyph)
virtual const Sprite * | InternalGetGlyph (GlyphID key, bool aa)=0

## Protected Attributes
int | req_size
| Requested font size.
int | used_size
| Used font size.
std::unordered_map< GlyphID, GlyphEntry > | glyph_to_sprite_map {}
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
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 FontCache * | caches [FS_END]
| All the font caches.

## 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.

## 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

  fs | The font size that is going to be cached.
  pixels | The 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

Reset cached glyphs.

Implements FontCache.

Reimplemented in Win32FontCache.

Definition at line 40 of file truetypefontcache.cpp.

References FontCache::fs, and Layouter::ResetFontCache().

Referenced by FreeTypeFontCache::ClearFontCache(), CoreTextFontCache::ClearFontCache(), Win32FontCache::ClearFontCache(), and ~TrueTypeFontCache().

## ◆ 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

  key | The key to look up.

Returns
  The sprite.

Implements FontCache.

Definition at line 78 of file truetypefontcache.cpp.

References TrueTypeFontCache::GlyphEntry::data, FontCache::GetGlyph(), and FontCache::parent.

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

  key | The key to look up.

Returns
  The width.

Implements FontCache.

Definition at line 65 of file truetypefontcache.cpp.

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

## ◆ InitializeUnicodeGlyphMap()

void TrueTypeFontCache::InitializeUnicodeGlyphMap | ( |  | ) |
| inlineoverridevirtual

Initialize the glyph map.

Implements FontCache.

Definition at line 50 of file truetypefontcache.h.

References FontCache::InitializeUnicodeGlyphMap(), and FontCache::parent.

## ◆ IsBuiltInFont()

bool TrueTypeFontCache::IsBuiltInFont | ( |  | ) |
| inlineoverridevirtual

Is this a built-in sprite font?

Implements FontCache.

Definition at line 55 of file truetypefontcache.h.

## ◆ SetGlyphPtr()

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

Definition at line 54 of file truetypefontcache.cpp.

## ◆ SetUnicodeGlyph()

void TrueTypeFontCache::SetUnicodeGlyph | ( | char32_t | key,
|  | SpriteID | sprite
| ) |  |
| inlineoverridevirtual

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 49 of file truetypefontcache.h.

References FontCache::parent, and FontCache::SetUnicodeGlyph().

## 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
| protected

Requested font size.

Definition at line 27 of file truetypefontcache.h.

Referenced by FreeTypeFontCache::ClearFontCache(), CoreTextFontCache::ClearFontCache(), and Win32FontCache::ClearFontCache().

## ◆ used_size

int TrueTypeFontCache::used_size
| 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:

- src/fontcache/truetypefontcache.h
- src/fontcache/truetypefontcache.cpp