でフォーマットされたテキストをレンダリング私は、しかし、私はそれをやって行くのかわからない、いくつかの形式のテキスト(色、異なるフォントサイズ、下線、太字など)をレンダリングする必要があります。 D3DXFontしか...など単一のフォント/サイズ/重量/色/のテキストが一度にレンダリングされる、と私は、このような事をするID3DXFont ::のDrawTextへの複数の呼び出しを「組み合わせる」する実用的な方法を参照してください傾けることができますのDirect3Dアプリケーション
私は周りを見回して、これらのことをする既存のライブラリはないようですが、そのようなテキストレンダラーを実装する方法はわかりませんし、そのようなテキストレンダリングの仕組みに関するドキュメント単純な固定幅のASCIIビットマップフォントをレンダリングするだけでは、Unicodeが重要ではない単純なテキストブロックをレンダリングするのにはまったく異なるアプローチである可能性があります。
これを行うことができるdirect3dフォントレンダラーがない場合は、他のレンダラー(通常のウィンドウでリッチテキストをレンダリングする場合など)があり、それらをRAMのテクスチャにレンダリングしてからビデオにアップロードしますカードをバックバッファにレンダリングすると合理的なパフォーマンスが得られますか?
Ok、TextOut :: ID3DXFontがない各ブロックの位置を計算することをサポートしているようです(つまり、各ブロックに対して自分のRECTを計算する必要があります。 ...)。しかし、私は本当にAへの手段が必要で、何かをレンダリングするのにどれくらいのスペースが必要かを事前に計算しています(たとえば、ツールチップボックスを必要なサイズに拡大できます)。必要に応じて垂直スクロールバーを追加するために必要なサイズを計算する機能)。 –
これはGDIで可能ですか?私は必要なもの(すなわち、ボックスに収まるようにラップし、垂直スクロールバーに追加できるようにテキストの「高さ」を調整する)の両方を行う豊富なテキストボックスを備えたアプリをたくさん見ています。 –
Win32でRichEditコントロールを利用しているリッチテキストボックスがあります。このコントロールが利用可能であるため、ほとんどの時間、この低レベル機能をアプリケーションでコーディングする必要はありません。しかし、Win32コントロールのため、Direct3Dでのレンダリング方法はわかりません。 GDIデバイスコンテキストを取得した非表示のDirect3Dサーフェス上でGDI操作を実行することは可能ですが、既存のWin32コントロールをDirect3Dサーフェスにリダイレクトすることに成功した人はいません。 – legalize