toge's diary

コンピュータ関連の趣味をつらつらと。

[C++]FTGLの文字コード

Shift_JISだったり, UTF16だったり、なんでこんなよく分からない状態なのかと思っていたら、ふと思い出しました。
そうだFTGLで使っているfreetypeの仕様ですね。

確かにft_encoding_sjisを指定出来ますが、これはSJISUnicodeに変換してたりするわけではないです。
True Typeフォントの内部エンコーディングのうちどれを使うのかを指定するだけです。

なのでSJISのエンコーディングに対応しているTrue TypeフォントはSJISで表示できるのですが、
Unicodeにしか対応していないTrue TypeフォントはSJISでは表示出来ないわけですね。

詳しくはFT_Select_CharmapなりFT_Get_Charmap_Indexなりを見て頂ければと思います。

ということでUnicodeなTrue Typeフォントを使って、UTF16をfreetypeに渡して文字描画しろということですね。

こんなんでどうでしょ?