Files @ r5135:84eef833ae0c
Branch filter:

Location: cpp/openttd-patchpack/source/fontcache.h

miham
(svn r7216) WebTranslator2 update to 2006-11-19 22:30:04
american - 5 fixed by WhiteRabbit (5)
brazilian_portuguese - 10 fixed by tucalipe (10)
catalan - 9 fixed by arnaullv (9)
czech - 5 fixed by Hadez (5)
danish - 3 fixed, 2 changed by ThomasA (5)
dutch - 3 fixed by habell (3)
finnish - 7 fixed, 3 changed by kerba (10)
french - 5 fixed by glx (2), belugas (3)
galician - 7 fixed, 1 changed by Condex (8)
german - 4 fixed by Neonox (4)
italian - 3 fixed by sidew (3)
polish - 6 fixed, 20 changed by meush (26)
portuguese - 5 fixed by izhirahider (5)
romanian - 9 fixed, 2 changed by kneekoo (11)
spanish - 5 fixed, 1 changed by eusebio (6)
turkish - 2 fixed by jnmbk (2)
ukrainian - 6 fixed by znikoz (6)
/* $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 */