Files @ r8067:4e085739927f
Branch filter:

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

miham
(svn r11628) -Update: WebTranslator2 update to 2007-12-13 09:47:23
american - 30 fixed by WhiteRabbit (30)
brazilian_portuguese - 22 fixed by fukumori (9), tucalipe (13)
bulgarian - 8 fixed by thetitan (8)
catalan - 22 fixed by arnaullv (22)
croatian - 17 fixed by knovak (17)
czech - 22 fixed by Hadez (22)
danish - 1 fixed, 4 changed by Bjarni (5)
dutch - 22 fixed by habell (22)
estonian - 10 fixed by kristjans (10)
french - 7 fixed, 2 changed by glx (9)
italian - 7 fixed, 2 changed by lorenzodv (9)
japanese - 23 fixed by ickoonite (23)
korean - 33 fixed, 7 changed by leejaeuk5 (40)
norwegian_nynorsk - 9 fixed by pollux (9)
romanian - 13 fixed, 3 changed by CrystyB (16)
slovak - 22 fixed by lengyel (22)
slovenian - 22 fixed by Necrolyte (22)
swedish - 10 fixed by daishan (10)
turkish - 20 fixed by jnmbk (20)
ukrainian - 22 fixed by mad (22)
/* $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();

#ifdef WITH_FREETYPE

struct FreeTypeSettings {
	char small_font[260];
	char medium_font[260];
	char large_font[260];
	uint small_size;
	uint medium_size;
	uint large_size;
	bool small_aa;
	bool medium_aa;
	bool large_aa;
};

extern FreeTypeSettings _freetype;

void InitFreeType();
const struct Sprite *GetGlyph(FontSize size, uint32 key);
uint GetGlyphWidth(FontSize size, uint32 key);

#else

/* Stub for initializiation */
static inline void InitFreeType() {}

/** 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 */