我目前正在跟随NeHe教程43课程(http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=43)。该代码仅适用于英文文本,而不适用于Unicode语言。幸运的是,我从NeHe 43课程中找到了一个链接http://www.cs.northwestern.edu/~sco590/fonts_tutorial.html,发现另一个完全相同的教程示例,唯一的区别是它使用w_char,并且该站点声称可以在除英语以外的语言上运行。
函数freetype的print命名空间有第四个参数*const unsigned short**,所以我进行了类型转换。我还在双引号前面加了L来表示长字符,并添加了一些亚洲字符进行测试。
结果是所有英文文本都可以正常显示,但所有泰语字符都变成了"[]B[]I[]5H[]8"。[]是方框。据我所知,这意味着字体没有指定的语言,所以我尝试了其他字体,但所有其他泰语字体都会产生相同的方框。对于日文字体也是一样。所有方框旁边都有一些英文字符。子字符串öáæé可以正常渲染而没有任何问题。
我有什么遗漏吗?如何在此处显示非英语Unicode语言?
所以我试了一下:
freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);
函数freetype的print命名空间有第四个参数*const unsigned short**,所以我进行了类型转换。我还在双引号前面加了L来表示长字符,并添加了一些亚洲字符进行测试。
结果是所有英文文本都可以正常显示,但所有泰语字符都变成了"[]B[]I[]5H[]8"。[]是方框。据我所知,这意味着字体没有指定的语言,所以我尝试了其他字体,但所有其他泰语字体都会产生相同的方框。对于日文字体也是一样。所有方框旁边都有一些英文字符。子字符串öáæé可以正常渲染而没有任何问题。
我有什么遗漏吗?如何在此处显示非英语Unicode语言?