(svn r14618) -Feature: when the chosen language isn't supported by the current font, try to find a font that does and use that instead. Thanks to glx/michi_cc for the Windows implementation.

This commit is contained in:
rubidium
2008-11-24 18:53:17 +00:00
parent 6878b181c7
commit fea78fbfbb
52 changed files with 342 additions and 47 deletions

View File

@@ -19,9 +19,9 @@ void InitializeUnicodeGlyphMap();
#ifdef WITH_FREETYPE
struct FreeTypeSettings {
char small_font[260];
char medium_font[260];
char large_font[260];
char small_font[MAX_PATH];
char medium_font[MAX_PATH];
char large_font[MAX_PATH];
uint small_size;
uint medium_size;
uint large_size;
@@ -33,13 +33,26 @@ struct FreeTypeSettings {
extern FreeTypeSettings _freetype;
void InitFreeType();
void UninitFreeType();
const struct Sprite *GetGlyph(FontSize size, uint32 key);
uint GetGlyphWidth(FontSize size, uint32 key);
/**
* We would like to have a fallback font as the current one
* doesn't contain all characters we need.
* This function must set all fonts of settings.
* @param settings the settings to overwrite the fontname of.
* @param language_isocode the language, e.g. en_GB.
* @param winlangid the language ID windows style.
* @return true if a font has been set, false otherwise.
*/
bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, int winlangid);
#else
/* Stub for initializiation */
static inline void InitFreeType() {}
static inline void UninitFreeType() {}
/** Get the Sprite for a glyph */
static inline const Sprite *GetGlyph(FontSize size, uint32 key)