diff options
author | peter1138 <peter1138@openttd.org> | 2006-11-16 22:05:33 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-11-16 22:05:33 +0000 |
commit | 1a4f1c8177f7ee351cb0096e3456d055b97dc60a (patch) | |
tree | 4fb6c0fac873efffc85cef437baa70d50d51fdfb /fontcache.h | |
parent | 40d647ddde652bb8f1c7b4215279cc82d01ca38f (diff) | |
download | openttd-1a4f1c8177f7ee351cb0096e3456d055b97dc60a.tar.xz |
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
Diffstat (limited to 'fontcache.h')
-rw-r--r-- | fontcache.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/fontcache.h b/fontcache.h new file mode 100644 index 000000000..249f35cd0 --- /dev/null +++ b/fontcache.h @@ -0,0 +1,56 @@ +/* $Id$ */ + +#ifndef FONTCACHE_H +#define FONTCACHE_H + +/** Get the SpriteID mapped to the given font size and key */ +SpriteID GetUnicodeGlyph(FontSize size, uint32 key); + +/** Map a SpriteID to the font size and key */ +void SetUnicodeGlyph(FontSize size, uint32 key, SpriteID sprite); + +/** Initialize the glyph map */ +void InitializeUnicodeGlyphMap(void); + +#ifdef WITH_FREETYPE + +typedef struct FreeTypeSettings { + char small_font[260]; + char medium_font[260]; + char large_font[260]; + uint small_size; + uint medium_size; + uint large_size; +} FreeTypeSettings; + +extern FreeTypeSettings _freetype; + +void InitFreeType(void); +const struct Sprite *GetGlyph(FontSize size, uint32 key); +uint GetGlyphWidth(FontSize size, uint32 key); + +#else + +/* Stub for initializiation */ +static inline void InitFreeType(void) {} + +/** Get the Sprite for a glyph */ +static inline const Sprite *GetGlyph(FontSize size, uint32 key) +{ + SpriteID sprite = GetUnicodeGlyph(size, key); + if (sprite == 0) sprite = GetUnicodeGlyph(size, '?'); + return GetSprite(sprite); +} + + +/** Get the width of a glyph */ +static inline uint GetGlyphWidth(FontSize size, uint32 key) +{ + SpriteID sprite = GetUnicodeGlyph(size, key); + if (sprite == 0) sprite = GetUnicodeGlyph(size, '?'); + return SpriteExists(sprite) ? GetSprite(sprite)->width + (size != FS_NORMAL) : 0; +} + +#endif /* WITH_FREETYPE */ + +#endif /* FONTCACHE_H */ |