57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* $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 */
 |