Chiharu の日記

絵描き C/C++ プログラマーの日記です。

Parallel force - パラレル・フォース 〜文字の描画でけた

現在公開中のデモの文字描画は結構やっつけ実装でしたが、先ほど、ちゃんとまとめて、まともな実装に修正しました。描画対象のテキストも、イメージ同様にテキストとしてスプライト管理するようにしました。あと、やっつけ実装では加算合成で白文字を描画していましたが、まともな実装ではちゃんとαブレンディングします。
あと、いろいろ実験していて実行速度が気になったので、自前のフォント キャッシュを用意しました。といっても 100 行にも満たない程度の簡単実装です。が、速度に与える影響は大きいようで。新しい文字をスプライトとして構築するたびに GetGlyphOutline API を呼ぶのと、自前キャッシュ探索後に同 API を呼ぶのとでは、後者の方が圧倒的に速く、現状のデモにも大きく影響を与えるくらいの速度差でした。んー。キャッシュって大切。管理は std::map で。キャッシュの上限はとりあえずフォント別で 2048 文字にしてあります。ノベル系ゲームだともう少しほしいかな。ま。この辺はまた困ったときに考えよう。