OpenGLの環境下でフォントのレンダリングについて色々調べている。
まずは標準のofTruetypeFontをつかってたんだけど、いろいろ問題がある・・・。
このクラスはFreeTypeをベースにしてる。余談だけど、グリフで遊ぶならOF007とかにバンドルされているFreeTypeはVersion2くらいなので、日本語の大部分のフォントで正しいアウトラインがとれないし、ビットマップレンダリングも崩れる事がある。これは最新のFreeTypeを入れれば解消される。
問題なのはカーニング。一見詰めは効いてるように見えるが・・・
・欧文フォントなら文字幅での詰めはあるが、カーニングpairが効かない。
・日本語フォントはpaltがとれないので等幅になる。
これらはGPOSに含まれるカーニング情報であり、FreeTypeのDOCに書いてあるとおり。
※ただしkernテーブルにカーニング情報がある場合はFreeTypeでもカーニングされるらしい。
しらべたところ、ICUやPangoというテキストレイアウトライブラリがあればできるっぽいとのとこで、
まだ試してないけどofxFontとかofxPangoというアドオンが見つかった。
とりあえず自分の用途にはちょっとあってなさそうだったので、Pangoコンパイルしてみた。
なんか大変だった・・・。
これからofで使ってみる。
追記:
どうやらharfbuzzを内部で使っていてこれだけでできそう。ややこしいな・・・