我正在尝试使用以下代码将字体加载到不同的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。我称之为哪个顺序并不重要,总是第二个失败。这是为什么?
答案 0 :(得分:1)
您应该测试TTF_OpenFont
的返回值,如果失败,请使用TTF_GetError
来了解错误的原因。我个人从未遇到过问题,但如果字体无法支持字体大小,可能会失败?有关更多(非常少)的信息,请参阅文档here。
答案 1 :(得分:0)
好的,谢谢你的帮助。
我无法找到为什么会这样,但似乎在调用TTF_OpenFont()时,两个字符串的值都在变化。 为了解决这个问题,我在调用特定字体之前获取每个字符串的值。不理想,但问题似乎已经消失了。
如果时间允许,我会做进一步的调查,看看能不知道为什么会这样。
再次感谢。