Direct3Dでフォント表示
地味に、「Direct3Dを利用た文字列表示」をやっています。
その昔、DirectXアプリケーションウィザードを使うと作成されたフレームワークにくっついていた、d3dfontを読みながら実装を進めています。
(今でもSampleBrowserとかから、取ってこれるのかな?)
やってることは結構簡単で、 CreateDBISection() でBIDを作ってあげて、そこにがきがき文字を書き込んで、DirectXのテクスチャに必用なビット情報を書き込むって感じなだけです。
ポイントとしては、フォントを作る際に、ANTIALIASED_QUALITYを指定してアンリエイリアスが掛かるようにして、背景色を黒、フォントカラーを白に設定してDIBに書き込むって所でしょうか...
あとは、ビットマップデータのポインタを操作しながら、赤成分をアルファとして、A8テクスチャを作ってあげておしまい。
描画するときにはフォントを描画したい色で頂点カラーを指定した、板ポリゴンを作って、A8テクスチャを張ってあげればオッケーでしょう。
折角なんで、指定した文字セット情報(ま、使いたい文字の配列)からフォントデータを作って、文字列描画できるぐらいのとこまでやっておきますか...
マルチバイト文字っちうか、utf対応なんかもやっちゃいたいんだけど、あんまり良くわかんないんだよね..
とりあえず、SJISから片付けてみることにします。