文字の表示

今日散歩している時に、多言語表示ってどのくらいコンピューターのリソースを使うんだろう?って疑問に思った。
前にも同じような事を考えた事があった気がするけど。。

表示する文字をあらかじめ限定出来ない場合はフルセットのフォントデータを対応する言語分用意しておく必要があるだろう。ストレージの容量はFlashROMがあるので今では問題にならなく出来る。

文字が多い言語だとアクセスパターンが離散的になる可能性があるので、仮想記憶があれば大分助かりそう。もし仮想記憶が無い場合は、出てきた文字に対応するフォントデータをハッシュテーブルにしまったりするんだろうか。

アウトラインフォントの場合はラスタライズしないといけないので、ビットマップをキャッシュすればメモリをトレードオフに計算量を減らせる。容量を節約する為にキャッシュするデータに簡単な圧縮を掛けておくと良いのかな?

高DPI環境で高品位にテキスト表示する場合は文字毎に表示を微調整するから毎度ラスタライズする事になるんだろうか。。並列化はしやすそうだし、ビットマップ自体はキャッシュしないにしても、別の形式でしまっておくのも手かも?工夫の余地が色々ありそう。

DPIが低くて文字も小さい場合にはビットマップフォントの方がエッジがぼやけていなくてシャープで見やすかったりするので、ビットマップをキャッシュする方式が良さそう。面倒な裏事情はライブラリの内部に隠蔽するべきだろうけれど。。