そもそも FreeType を使うためには文字を Unicode で指定するのだが、これをどう変換するかが問題だった。Unicode が複雑そうでかつ文字列の処理はマルチバイトのほうが楽そうなために(あとついでに後方互換性のために)マルチバイト文字列(CP932?)で処理する設定にしているためだ。
調べてみると MultiByteToWideChar() なんかを使う方法が出てくるのだが、WinAPI の函数らしく、あまり使いたくない。
他を探してみると ICU なるライブラリがあった。以下のページに使い方と参考リンクが載っている。
日本語情報がちゃんとあるので使うのに苦労はなさそう。
ただ、コンパイルに Cygwin が必要というのがどうも…… デュアルブートで一応 Vine Linux を入れているのだが、そっちでビルドしてしまえないのだろうか。まあ Unix 系環境での make だとかを未だよく理解していないので Cygwin インストールした方が早いのだろうけれど。
処理元のテキストは EUC-JP がその特性上処理しやすそう。ただ、内部処理を試しに Unicode に変えてみても何もエラーが出なかった。もう Unicode にしてしまっても良いかもしれない。
話は変わりIPAmj明朝について。どうもグリフ名を指定して文字を呼び出すことさえ出来れば全文字使えるらしい。(参照:IPAmj明朝フォントの研究 - FIELD NOTES: 書を持って街へ出よう )ただ、FreeType の函数一覧を見てもそのような函数が見つけられない。可能なのだろうか。