OpenTTD Source 20241224-master-gee860a5c8e
|
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, bool allow_fallback=true) 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. | |
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. | |
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. | |
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) |
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 () |
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 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. | |
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 109 of file font_win32.cpp.
References dc.
Win32FontCache::~Win32FontCache | ( | ) |
Definition at line 115 of file font_win32.cpp.
|
overridevirtual |
Reset cached glyphs.
Reimplemented from TrueTypeFontCache.
Definition at line 185 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 193 of file font_win32.cpp.
|
overridevirtual |
Map a character into a glyph.
key | The character. |
fallback | Allow fallback to the parent font. |
Implements FontCache.
Definition at line 265 of file font_win32.cpp.
References dc, FontCache::MapCharToGlyph(), and FontCache::parent.
|
private |
Definition at line 122 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.