我不完全确定这是最好的地方,但我无法想到更好的地方
我"制造"低分辨率font。 (如果你知道它实际来自哪里,可以获得奖励积分)
字体在gedit中工作正常:
然而,当尝试使用SDL_ttf渲染字体时,除了一些多字节unicode字符(特别是' æ'' ℃& #39;)而其他非ASCII字符工作正常。但是(!),所有这些角色都适用于其他字体(我一直在使用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"演示:
答案 0 :(得分:1)
我很确定我已经检查过我使用的是正确的字体..或者我生成它时可能会改变一些东西
感谢您的帮助,无论如何:)