1

我正在尝试使用以下代码将字体两次加载到不同的 TTF_Fonts (用于不同的大小)中:

char const* fontString;
char const* titleFontString;    
//load the string values using libconfig    
try
    {
        fontString = cfg.lookup("font_string");
}
catch(const SettingNotFoundException &nfex)
{
}
try
{
   titleFontString = cfg.lookup("title_font_string");
}
catch(const SettingNotFoundException &nfex)
{}
font = TTF_OpenFont( fontString, STREAMER_FONT_SIZE/SCREEN_DIMENSION_DIVIDER );
pictureTitleFont = TTF_OpenFont( titleFontString, PICTURE_TITLE_FONT_SIZE/SCREEN_DIMENSION_DIVIDER );'

第一个将加载,但第二个返回 null。我调用它们的顺序无关紧要,总是第二个失败。为什么是这样?

4

2 回答 2

1

您应该测试返回值,TTF_OpenFont并在失败的情况下使用TTF_GetError以了解错误的原因。我个人从来没有遇到过问题,但是如果字体不能支持字体大小,它可能会失败?请参阅文档以获取更多(非常少)信息

于 2013-07-05T03:56:53.733 回答
0

好的,谢谢你的帮助。

我找不到发生这种情况的原因,但似乎在调用 TTF_OpenFont() 时,两个字符串的值都在发生变化。为了解决这个问题,我在调用该特定字体之前获取每个字符串的值。不理想,但问题似乎已经消失了。

如果时间允许,我会做进一步的调查,看看我是否能弄清楚为什么会发生这种情况。

再次感谢。

于 2013-07-09T12:37:25.697 回答