author | KUDr |
Mon, 01 Jan 2007 23:18:33 +0000 | |
branch | custombridgeheads |
changeset 5628 | 6975ccb4a7bd |
parent 5108 | dc67d70b5a45 |
permissions | -rw-r--r-- |
/* $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 */