我一直试图让FreeType在我的游戏中工作,但似乎没有工作,只要我尝试从字体中加载字符。我已经看过网上的一大堆教程,并且据我所见,代码似乎没有任何问题。FreeType错误:FT_Load_Char返回36
我试过不同的字体,但他们产生相同的错误。
这是一个失败的代码:
int errorCode = FT_New_Face(freetype, filename.c_str(), 0, &face);
if (errorCode != 0)
{
std::cerr << "Failed to load font: " << filename << ". Error code: " << errorCode << std::endl;
}
for (char i = 0; i < 256; i++)
{
errorCode = FT_Load_Char(face, i, FT_LOAD_RENDER); // This returns 36 when i is 0
if (errorCode != 0)
{
std::cerr << filename << ": Failed to load character '" << i << "'. Error code: " << errorCode << std::endl;
}
}
此打印出来:我在FreeType的头抬起头来错误代码36
FreeSans.ttf: Failed to load character ' '. Error code: 36
,它似乎是 “Invalid_Size_Handle”。这让我感到困惑,因为没有大小处理函数中传递的位置。我可以考虑face-> size属性的唯一大小的句柄,但不应该有任何错误,因为face结构在FT_New_Face函数中初始化。
是的,我在代码中初始化FreeType。
那么,有没有人知道我做错了什么,我能做些什么来解决这个问题?
我将shoudl投射到FT_ULONG – Magn3s1um
我试过了,结果相同。 – whoosy
不要施放它,而是使用该类型实例化对象。将1个字节的值转换为8个字节的值不正确 – Magn3s1um