mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 18:40:29 +00:00
(svn r25451) -Fix (r25445): Ini configuration for medium font was overwritten by front configuration of other sizes.
This commit is contained in:
parent
aa3c106843
commit
798f472552
@ -284,16 +284,16 @@ FreeTypeFontCache::FreeTypeFontCache(FontSize fs, FT_Face face, int pixels) : Fo
|
|||||||
*/
|
*/
|
||||||
static void LoadFreeTypeFont(FontSize fs)
|
static void LoadFreeTypeFont(FontSize fs)
|
||||||
{
|
{
|
||||||
FreeTypeSubSetting &settings = _freetype.medium;
|
FreeTypeSubSetting *settings = NULL;
|
||||||
switch (fs) {
|
switch (fs) {
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
case FS_SMALL: settings = _freetype.small; break;
|
case FS_SMALL: settings = &_freetype.small; break;
|
||||||
case FS_NORMAL: settings = _freetype.medium; break;
|
case FS_NORMAL: settings = &_freetype.medium; break;
|
||||||
case FS_LARGE: settings = _freetype.large; break;
|
case FS_LARGE: settings = &_freetype.large; break;
|
||||||
case FS_MONO: settings = _freetype.mono; break;
|
case FS_MONO: settings = &_freetype.mono; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrEmpty(settings.font)) return;
|
if (StrEmpty(settings->font)) return;
|
||||||
|
|
||||||
if (_library == NULL) {
|
if (_library == NULL) {
|
||||||
if (FT_Init_FreeType(&_library) != FT_Err_Ok) {
|
if (FT_Init_FreeType(&_library) != FT_Err_Ok) {
|
||||||
@ -305,12 +305,12 @@ static void LoadFreeTypeFont(FontSize fs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
FT_Face face = NULL;
|
FT_Face face = NULL;
|
||||||
FT_Error error = FT_New_Face(_library, settings.font, 0, &face);
|
FT_Error error = FT_New_Face(_library, settings->font, 0, &face);
|
||||||
|
|
||||||
if (error != FT_Err_Ok) error = GetFontByFaceName(settings.font, &face);
|
if (error != FT_Err_Ok) error = GetFontByFaceName(settings->font, &face);
|
||||||
|
|
||||||
if (error == FT_Err_Ok) {
|
if (error == FT_Err_Ok) {
|
||||||
DEBUG(freetype, 2, "Requested '%s', using '%s %s'", settings.font, face->family_name, face->style_name);
|
DEBUG(freetype, 2, "Requested '%s', using '%s %s'", settings->font, face->family_name, face->style_name);
|
||||||
|
|
||||||
/* Attempt to select the unicode character map */
|
/* Attempt to select the unicode character map */
|
||||||
error = FT_Select_Charmap(face, ft_encoding_unicode);
|
error = FT_Select_Charmap(face, ft_encoding_unicode);
|
||||||
@ -340,11 +340,11 @@ static void LoadFreeTypeFont(FontSize fs)
|
|||||||
FT_Done_Face(face);
|
FT_Done_Face(face);
|
||||||
|
|
||||||
static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" };
|
static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" };
|
||||||
ShowInfoF("Unable to use '%s' for %s font, FreeType reported error 0x%X, using sprite font instead", settings.font, SIZE_TO_NAME[fs], error);
|
ShowInfoF("Unable to use '%s' for %s font, FreeType reported error 0x%X, using sprite font instead", settings->font, SIZE_TO_NAME[fs], error);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
found_face:
|
found_face:
|
||||||
new FreeTypeFontCache(fs, face, settings.size);
|
new FreeTypeFontCache(fs, face, settings->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user