|
OpenTTD Source
1.10.0-RC1
|
Font cache for fonts that are based on a TrueType font. More...
Data Structures | |
| struct | GlyphEntry |
| Container for information about a glyph. More... | |
Public Member Functions | |
| TrueTypeFontCache (FontSize fs, int pixels) | |
| Create a new TrueTypeFontCache. More... | |
| virtual | ~TrueTypeFontCache () |
| Free everything that was allocated for this font cache. | |
| virtual int | GetFontSize () const |
| Get the nominal font size of the font. More... | |
| virtual SpriteID | GetUnicodeGlyph (WChar key) |
| Get the SpriteID mapped to the given key. More... | |
| virtual void | SetUnicodeGlyph (WChar key, SpriteID sprite) |
| Map a SpriteID to the key. More... | |
| virtual void | InitializeUnicodeGlyphMap () |
| Initialize the glyph map. | |
| virtual const Sprite * | GetGlyph (GlyphID key) |
| Get the glyph (sprite) of the given key. More... | |
| virtual const void * | GetFontTable (uint32 tag, size_t &length) |
| Read a font table from the font. More... | |
| virtual void | ClearFontCache () |
| Reset cached glyphs. | |
| virtual uint | GetGlyphWidth (GlyphID key) |
| Get the width of the glyph with the given key. More... | |
| virtual bool | GetDrawGlyphShadow () |
| Do we need to draw a glyph shadow? More... | |
| virtual bool | IsBuiltInFont () |
| Is this a built-in sprite font? | |
Public Member Functions inherited from FontCache | |
| FontCache (FontSize fs) | |
| Create a new font cache. More... | |
| virtual | ~FontCache () |
| Clean everything up. More... | |
| FontSize | GetSize () const |
| Get the FontSize of the font. More... | |
| virtual int | GetHeight () const |
| Get the height of the font. More... | |
| int | GetAscender () const |
| Get the ascender value of the font. More... | |
| int | GetDescender () const |
| Get the descender value of the font. More... | |
| int | GetUnitsPerEM () const |
| Get the units per EM value of the font. More... | |
| virtual GlyphID | MapCharToGlyph (WChar key)=0 |
| Map a character into a glyph. More... | |
| virtual void * | GetOSHandle () |
| Get the native OS font handle, if there is one. More... | |
| virtual const char * | GetFontName ()=0 |
| Get the name of this font. More... | |
| bool | HasParent () |
| Check whether the font cache has a parent. | |
Protected Types | |
| typedef SmallMap< uint32, SmallPair< size_t, const void * > > | FontTable |
| Table with font table cache. | |
Protected Member Functions | |
| GlyphEntry * | GetGlyphPtr (GlyphID key) |
| void | SetGlyphPtr (GlyphID key, const GlyphEntry *glyph, bool duplicate=false) |
| virtual const void * | InternalGetFontTable (uint32 tag, size_t &length)=0 |
| virtual const Sprite * | InternalGetGlyph (GlyphID key, bool aa)=0 |
Protected Attributes | |
| int | req_size |
| Requested font size. | |
| int | used_size |
| Used font size. | |
| FontTable | font_tables |
| Cached font tables. | |
| GlyphEntry ** | glyph_to_sprite |
| The glyph cache. More... | |
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. | |
| int | units_per_em |
| The units per EM value of the font. | |
Additional Inherited Members | |
Static Public Member Functions inherited from FontCache | |
| static FontCache * | Get (FontSize fs) |
| Get the font cache of a given font size. More... | |
Font cache for fonts that are based on a TrueType font.
Definition at line 209 of file fontcache.cpp.
| TrueTypeFontCache::TrueTypeFontCache | ( | FontSize | fs, |
| int | pixels | ||
| ) |
Create a new TrueTypeFontCache.
| fs | The font size that is going to be cached. |
| pixels | The number of pixels this font should be high. |
Definition at line 265 of file fontcache.cpp.
|
virtual |
Do we need to draw a glyph shadow?
Implements FontCache.
Definition at line 352 of file fontcache.cpp.
References FontCache::fs, and FS_NORMAL.
|
inlinevirtual |
Get the nominal font size of the font.
Reimplemented from FontCache.
Definition at line 248 of file fontcache.cpp.
|
virtual |
Read a font table from the font.
| tag | The of the table to load. |
| length | The length of the read data. |
Implements FontCache.
Definition at line 427 of file fontcache.cpp.
References SmallMap< T, U >::Find(), font_tables, and SmallMap< T, U >::Insert().
Get the glyph (sprite) of the given key.
| key | The key to look up. |
Implements FontCache.
Definition at line 370 of file fontcache.cpp.
|
virtual |
Get the width of the glyph with the given key.
| key | The key to look up. |
Implements FontCache.
Definition at line 357 of file fontcache.cpp.
Get the SpriteID mapped to the given key.
| key | The key to get the sprite for. |
Implements FontCache.
Definition at line 249 of file fontcache.cpp.
References FontCache::GetUnicodeGlyph(), and FontCache::parent.
Map a SpriteID to the key.
| key | The key to map to. |
| sprite | The sprite that is being mapped. |
Implements FontCache.
Definition at line 250 of file fontcache.cpp.
References FontCache::parent, and FontCache::SetUnicodeGlyph().
|
protected |
The glyph cache.
This is structured to reduce memory consumption. 1) There is a 'segment' table for each font size. 2) Each segment table is a discrete block of characters. 3) Each block contains 256 (aligned) characters sequential characters.
The cache is accessed in the following way: For character 0x0041 ('A'): glyph_to_sprite[0x00][0x41] For character 0x20AC (Euro): glyph_to_sprite[0x20][0xAC]
Currently only 256 segments are allocated, "limiting" us to 65536 characters. This can be simply changed in the two functions Get & SetGlyphPtr.
Definition at line 237 of file fontcache.cpp.
Referenced by ClearFontCache().