SDL不呈现truetype字体

时间:2014-08-03 19:09:27

标签: c++ fonts true-type-fonts sdl-2 sdl-ttf

我不完全确定这是最好的地方,但我无法想到更好的地方

我"制造"低分辨率font。 (如果你知道它实际来自哪里,可以获得奖励积分)

字体在gedit中工作正常:gedit

然而,当尝试使用SDL_ttf渲染字体时,除了一些多字节unicode字符(特别是' æ'' & #39;)而其他非ASCII字符工作正常。但是(!),所有这些角色都适用于其他字体(我一直在使用DejaVu Sans)

My Font Dejavu Sans

其他字体工作正常的事实表明代码不应该受到责备,但以防万一:

SDL_Surface *surf = TTF_RenderUTF8_Solid(this->font, (const char *)text, col);
if (surf == nullptr) {
    fprintf(stderr, "Rendering text failed (%s)\n", TTF_GetError());
    return;
}

if (surf->format->BitsPerPixel != 8 || surf->format->BytesPerPixel != 1) {
    fprintf(stderr, "Rendering text failed (Wrong surface format)\n");
    return;
}

(text is const uint8 *)这些错误都没有被触发,显然是

我注意到这两个角色特别比其他角色宽,这可能是罪魁祸首吗?

根据下面的评论,字体似乎与SDL_TTF" latin-1"演示:

working in demo

1 个答案:

答案 0 :(得分:1)

我...我不知道出了什么问题。我刚刚尝试过,它运行良好。

enter image description here

我很确定我已经检查过我使用的是正确的字体..或者我生成它时可能会改变一些东西

感谢您的帮助,无论如何:)