OpenGLの上のFreeTypeフォントを使用して、英語以外のUnicodeテキストのレンダリングの問題

StackOverflow https://stackoverflow.com/questions/2219952

質問

私は現在、訥河チュートリアルのレッスン43を以下のAM(ます。http:// nehe.gamedev.net/data/lessons/lesson.asp?lesson=43する)。コードは、英語のテキストではなく、ユニコードに変換された言語のために満足に動作します。 //www.cs:幸いなことに、私はでhttp訥河レッスン43からリンクをたどります。 northwestern.edu/~sco590/fonts_tutorial.html と一つだけの違いで別の同一のチュートリアルのサンプルを見つけました:それはw_charを使用し、サイトが英語以外の言語で実行できることを主張します。

だから私はそれを試してみるます:

freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);
名前空間の

関数の印刷のfreetypeののconstの符号なしshortが**ので、私はそれを型変換*として、第四引数があります。私はまた、長い文字を二重引用符で囲まれた文字列の前にLを入れて、テストの目的のために、いくつかのアジア言語の文字を入れます。

その結果、すべての英語のテキストがうまく表示することができますが、すべてのタイ語の文字は、「[] B [] I [] 5H [] 8」になります。 []正方形のボックスです。私が理解から、これはフォントが指定された言語を持っていないことを意味し、私は他のフォントを試してみたが、他のすべてのタイ語フォントは、これらの同じ正方形のボックスを配ります。日本語フォントの場合、それは同じです。それらの隣にいくつかの英語の文字と一緒にすべての箱。サブストリングöáæéは何の問題もなくうまくレンダリングされます。

私はここで何かを忘れているだろうか?どのように我々はここに英語以外のUnicodeの言語を表示することができますか?

役に立ちましたか?

解決

幸いなことに、著者は(質問で指定された)彼のウェブサイトで彼のチュートリアルの修正版をアップロードしており、それが元のバージョンに(wchar_t型を使用して、著者が使用しています* constの短い符号なし**印刷機能では、引数として)、英語以外の言語を可能にする。

他のヒント

これは、レッスン43の印刷()のように見えることも、どこかのUnicode近いことはできません。訥河がやっているすべては、UTF8文字列を受け入れ、FreeTypeのためにUTF32に変換ない、最初の256 ASCII文字のための256のディスプレイリストを作成しています。

翻字これは私のために非常によく働いているC ++にを。

また、 GNU Unifontは、必ずすべてのためのグリフを持たせるためにを BMPするます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top