OpenTTD Source: FreeTypeFontCache Class Reference

OpenTTD Source 15.0-beta1

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

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

Inheritance diagram for FreeTypeFontCache:

## 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.
Public Member Functions inherited from TrueTypeFontCache
| 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.
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 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 Member Functions inherited from TrueTypeFontCache
GlyphEntry * | GetGlyphPtr (GlyphID key)
GlyphEntry & | SetGlyphPtr (GlyphID key, GlyphEntry &&glyph)
Protected Attributes inherited from TrueTypeFontCache
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 inherited from TrueTypeFontCache
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.

## Detailed Description

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

Definition at line 32 of file freetypefontcache.cpp.

## Constructor & Destructor Documentation

## ◆ FreeTypeFontCache()

FreeTypeFontCache::FreeTypeFontCache | ( | FontSize | fs,
|  | FT_Face | face,
|  | int | pixels
| ) |  |

Create a new FreeTypeFontCache.

Parameters

  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 58 of file freetypefontcache.cpp.

References face.

## ◆ ~FreeTypeFontCache()

FreeTypeFontCache::~FreeTypeFontCache | ( |  | ) |

Free everything that was allocated for this font cache.

Definition at line 207 of file freetypefontcache.cpp.

References ClearFontCache().

## Member Function Documentation

## ◆ ClearFontCache()

void FreeTypeFontCache::ClearFontCache | ( |  | ) |
| overridevirtual

Reset cached glyphs.

Implements FontCache.

Definition at line 217 of file freetypefontcache.cpp.

References TrueTypeFontCache::ClearFontCache(), and TrueTypeFontCache::req_size.

Referenced by ~FreeTypeFontCache().

## ◆ GetFontName()

std::string FreeTypeFontCache::GetFontName | ( |  | ) |
| inlineoverridevirtual

Get the name of this font.

Returns
  The name of the font.

Implements FontCache.

Definition at line 44 of file freetypefontcache.cpp.

References face.

## ◆ GetOSHandle()

const void * FreeTypeFontCache::GetOSHandle | ( |  | ) |
| inlineoverridevirtual

Get the native OS font handle, if there is one.

Returns
  Opaque OS font handle.

Reimplemented from FontCache.

Definition at line 46 of file freetypefontcache.cpp.

References face.

## ◆ InternalGetGlyph()

const Sprite * FreeTypeFontCache::InternalGetGlyph | ( | GlyphID | key,
|  | bool | aa
| ) |  |
| overrideprivatevirtual

Implements TrueTypeFontCache.

Definition at line 226 of file freetypefontcache.cpp.

## ◆ IsBuiltInFont()

bool FreeTypeFontCache::IsBuiltInFont | ( |  | ) |
| inlineoverridevirtual

Is this a built-in sprite font?

Implements FontCache.

Definition at line 45 of file freetypefontcache.cpp.

## ◆ MapCharToGlyph()

GlyphID FreeTypeFontCache::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 287 of file freetypefontcache.cpp.

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

## ◆ SetFontSize()

void FreeTypeFontCache::SetFontSize | ( | int | pixels | ) |
| private

Definition at line 65 of file freetypefontcache.cpp.

## Field Documentation

## ◆ face

FT_Face FreeTypeFontCache::face
| private

The font face associated with this font.

Definition at line 34 of file freetypefontcache.cpp.

Referenced by FreeTypeFontCache(), GetFontName(), and GetOSHandle().

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

- src/fontcache/freetypefontcache.cpp