Direct3D9 で大量のテキスト (数行、おそらく数十行) を描画する必要があるアプリケーションを作成しています。テキストは厳密にフォーマットすることができ (つまり、さまざまな書体、スタイル、サイズ)、さまざまな文字セットの Unicode シンボルを含めることができます。最悪なのは、オンザフライで変更される可能性があるため、動的である必要があることです (レンダリング ワンス ディスプレイでは常にうまくいきません)。
これには 2 つの問題があります。1 つ目は、D3DXCreateFont への多くの呼び出しが必要になる可能性があることです。これにはコストがかかると思われます (よくわかりません)。もう 1 つのアプローチは、マルチパート ラインを描画する前にすべてのフォントを作成してから、それらを切り替えるだけです。これはより良い方法ですか? さて、線を描くときにオンザフライでフォント オブジェクトを作成し、それらをある種のフォント オブジェクト キャッシュに追加してから、新しいオブジェクトを作成する前にキャッシュを調べることもできますか? 最善のアプローチはどれだと思いますか?
2 つ目の問題は、D3DXFont が下線/取り消し線のフォント スタイルを認識していないように見えることです。D3DFONT は LOGFONT に基づいていますが、それらのフィールドは省略されています (斜体はサポートされています)。下線/取り消し線が本当に必要だとしましょう。どうすればよいですか? ID3DXFont に下線を強制する方法はありますか? 自分でそれらの線を引く必要がありますか (どうすれば速くできますか)? または、HDC で GDI を使用して描画し、それらのピクセルをテクスチャにコピーするように切り替える必要があります。これにより、適切なパフォーマンスが得られますか?