所以,我有一个实现解析一个xml,其中包括维基百科主页的位置和字符串。使用rapidxml进行解析,然后通过http://utfcpp.sourceforge.net/将字符串从UTF-8转换为UTF-32。然后在freetype中使用UTF-32代码:
unsigned long c = FT_Get_Char_Index(face,*p);
FT_Load_Glyph(face,c,FT_LOAD_RENDER);
其中* p是UTF-32字符代码。然后在OpenGL中呈现此字形。
现在,我似乎无法让哭泣的角色工作,也没有任何中文或日文或者viet,我确信* p对应于正确的代码,我会感谢我能得到的任何指示。< / p>
对于这些字体,使用了微软arial.ttf,从Arch linux package和我在fontviewing程序中看到的,它应该包含我想要的字符。
答案 0 :(得分:7)
有两点需要建议:
首先,您是否已调用FT_Select_Charmap来指定您使用的是Unicode编码?
FT_Select_Charmap(face , ft_encoding_unicode);
其次,并非所有Arial字体都包含所有字符,并且某些字体查看器(在Windows上,无论如何)可以通过自动替换来自不同面的字形来误导。如果可以找到,请尝试ArialUni.ttf。
答案 1 :(得分:1)
不要忘记在加载脸部后立即设置字体大小。
FT_Error err = FT_Set_Pixel_Sizes(face, (width), (height));