|
OpenTTD Source 20251213-master-g1091fa6071
|
Font cache for fonts that are based on a Win32 font. More...
#include <font_win32.h>
Public Member Functions | |
| Win32FontCache (FontSize fs, const LOGFONT &logfont, int pixels) | |
| Create a new Win32FontCache. | |
| void | ClearFontCache () override |
| Reset cached glyphs. | |
| GlyphID | MapCharToGlyph (char32_t key) override |
| Map a character into a glyph. | |
| std::string | GetFontName () override |
| Get the name of this 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. | |
| 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? | |
| bool | IsBuiltInFont () override |
| Is this a built-in sprite font? | |
Public Member Functions inherited from FontCache | |
| FontSize | GetSize () const |
| Get the FontSize of the font. | |
| FontIndex | GetIndex () const |
| FontLoadReason | GetFontLoadReason () const |
| 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 | GetGlyphYOffset () |
Protected Member Functions | |
| const Sprite * | InternalGetGlyph (GlyphID key, bool aa) override |
Protected Member Functions inherited from TrueTypeFontCache | |
| GlyphEntry * | GetGlyphPtr (GlyphID key) |
| GlyphEntry & | SetGlyphPtr (GlyphID key, GlyphEntry &&glyph) |
Protected Member Functions inherited from FontCache | |
| FontCache (FontSize fs) | |
Private Member Functions | |
| void | SetFontSize (int pixels) |
Private Attributes | |
| LOGFONT | logfont |
| Logical font information for selecting the font face. | |
| HFONT | font = nullptr |
| The font face associated with this font. | |
| HDC | dc = nullptr |
| Cached GDI device context. | |
| HGDIOBJ | old_font |
| Old font selected into the GDI context. | |
| SIZE | glyph_size |
| Maximum size of regular glyphs. | |
| std::string | fontname |
| Cached copy of loaded font facename. | |
| ReusableBuffer< uint8_t > | render_buffer |
| Temporary buffer for rendering glyphs. | |
Additional Inherited Members | |
Static Public Member Functions inherited from FontCache | |
| static void | InitializeFontCaches () |
| Initialise font caches with the base sprite font cache for all sizes. | |
| static void | UninitializeFontCaches () |
| Free everything allocated w.r.t. | |
| static void | LoadFontCaches (FontSizes fontsizes) |
| (Re)initialize the font cache related things, i.e. | |
| static void | ClearFontCaches (FontSizes fontsizes) |
| Clear cached information for the specified font caches. | |
| static int | GetDefaultFontHeight (FontSize fs) |
| static int | GetFontBaseline (FontSize fs) |
| static void | AddFallback (FontSizes fontsizes, FontLoadReason load_reason, std::string_view name, std::span< const std::byte > os_data={}) |
| Add a fallback font, with optional OS-specific handle. | |
| template<typename T > | |
| static void | AddFallbackWithHandle (FontSizes fontsizes, FontLoadReason load_reason, std::string_view name, T &handle) |
| Add a fallback font, with OS-specific handle. | |
| static std::span< const std::unique_ptr< FontCache > > | Get () |
| Get span of all FontCaches. | |
| static FontCache * | Get (FontIndex font_index) |
| Get the font cache of a given font size. | |
| static int | GetCharacterHeight (FontSize fs) |
| static void | UpdateCharacterHeight (FontSize fs) |
| static FontIndex | GetDefaultFontIndex (FontSize fs) |
| static class FontCache * | GetDefaultFontCache (FontSize fs) |
| static FontIndex | GetFontIndexForCharacter (FontSize fs, char32_t c) |
Static Public Attributes inherited from FontCache | |
| static const int | DEFAULT_FONT_HEIGHT [FS_END] = {10, 6, 18, 10} |
| Default unscaled font heights. | |
| static const int | DEFAULT_FONT_ASCENDER [FS_END] = {8, 6, 15, 8} |
| Default unscaled font ascenders. | |
Protected Types inherited from FontCache | |
| using | FontCaches = std::vector< std::unique_ptr< FontCache > > |
Static Protected Member Functions inherited from FontCache | |
| static void | Register (std::unique_ptr< FontCache > &&fc, FontLoadReason load_reason) |
| static void | LoadDefaultFonts (FontSize fs) |
| static void | LoadFallbackFonts (FontSize fs, FontLoadReason load_reason) |
Protected Attributes inherited from TrueTypeFontCache | |
| int | req_size = 0 |
| Requested font size. | |
| int | used_size = 0 |
| Used font size. | |
| std::unordered_map< GlyphID, GlyphEntry > | glyph_to_sprite_map {} |
Protected Attributes inherited from FontCache | |
| const FontSize | fs |
| The size of the font. | |
| FontIndex | font_index |
| The index of the font. | |
| FontLoadReason | load_reason |
| Reason why the font is loaded. | |
| int | height = 0 |
| The height of the font. | |
| int | ascender = 0 |
| The ascender value of the font. | |
| int | descender = 0 |
| 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 FontCaches | caches |
| static std::array< FontMetrics, FS_END > | metrics {} |
| static std::array< FontIndex, FS_END > | default_font_index {} |
Font cache for fonts that are based on a Win32 font.
Definition at line 20 of file font_win32.h.
| Win32FontCache::Win32FontCache | ( | FontSize | fs, |
| const LOGFONT & | logfont, | ||
| int | pixels | ||
| ) |
Create a new Win32FontCache.
| fs | The font size that is going to be cached. |
| logfont | The font that has to be loaded. |
| pixels | The number of pixels this font should be high. |
Definition at line 92 of file font_win32.cpp.
References dc.
| Win32FontCache::~Win32FontCache | ( | ) |
Definition at line 98 of file font_win32.cpp.
|
overridevirtual |
Reset cached glyphs.
Reimplemented from TrueTypeFontCache.
Definition at line 168 of file font_win32.cpp.
References TrueTypeFontCache::ClearFontCache(), font, and TrueTypeFontCache::req_size.
|
inlineoverridevirtual |
Get the name of this font.
Implements FontCache.
Definition at line 41 of file font_win32.h.
References fontname.
|
inlineoverridevirtual |
Get the native OS font handle, if there is one.
Reimplemented from FontCache.
Definition at line 42 of file font_win32.h.
References logfont.
Implements TrueTypeFontCache.
Definition at line 176 of file font_win32.cpp.
|
overridevirtual |
Map a character into a glyph.
| key | The character. |
Implements FontCache.
Definition at line 248 of file font_win32.cpp.
References dc.
|
private |
Definition at line 105 of file font_win32.cpp.
|
private |
Cached GDI device context.
Definition at line 24 of file font_win32.h.
Referenced by MapCharToGlyph(), and Win32FontCache().
|
private |
The font face associated with this font.
Definition at line 23 of file font_win32.h.
Referenced by ClearFontCache().
|
private |
Cached copy of loaded font facename.
Definition at line 27 of file font_win32.h.
Referenced by GetFontName().
|
private |
Maximum size of regular glyphs.
Definition at line 26 of file font_win32.h.
|
private |
Logical font information for selecting the font face.
Definition at line 22 of file font_win32.h.
Referenced by GetOSHandle().
|
private |
Old font selected into the GDI context.
Definition at line 25 of file font_win32.h.
|
private |
Temporary buffer for rendering glyphs.
Definition at line 29 of file font_win32.h.