現在、NeHe チュートリアル レッスン 43 ( http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=43 ) に従っています。このコードは、Unicode 言語ではなく、英語のテキストに対してのみ十分に機能します。幸いなことに、NeHe のレッスン 43 からhttp://www.cs.northwestern.edu/~sco590/fonts_tutorial.htmlへのリンクをたどると、1 つだけ異なる同じチュートリアル サンプルが見つかりました。英語以外の言語で実行できます。
だから私はそれを試してみます:
freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);
名前空間freetypeの関数printは 4 番目の引数が *const unsigned short** であるため、型キャストしました。また、長い文字の二重引用符で囲まれた文字列の前に L を置き、テスト目的でアジアの文字をいくつか入れました。
その結果、英語のテキストはすべて問題なく表示されますが、タイ文字はすべて「[]B[]I[]5H[]8」になります。[] は四角いボックスです。私が理解していることから、これはフォントに指定された言語がないことを意味するため、他のフォントを試してみましたが、他のすべてのタイ語フォントはこれらの同じ正方形のボックスを提供します. 日本語フォントも同様です。それらの横にいくつかの英語の文字と一緒にすべてのボックス。部分文字列 öáæé は問題なくレンダリングされています。
私はここで何かを忘れていますか?英語以外の Unicode 言語をここに表示するにはどうすればよいですか?