Free Type 2 を使用してフォントをロードしたり、正しいグリフとそのサイズを見つけたりするハードウェア アクセラレーション テキスト レンダラーを作成したいと考えています。
これを行う私の計画は、ビデオ メモリに (特定のフォント、サイズなどの) グリフを含む大きなテクスチャを用意し、システム メモリにテクスチャの内容に関する情報を定義する各テクスチャのテーブルを用意することです。
次に、テーブルを使用して頂点バッファーを作成し、テキストをレンダリングします。
私が直面している問題は、テクスチャの構築です。Unicode のすべてのグリフに対してテクスチャを作成するのは現実的ではありません。多すぎます。以前の Ascii では、イメージ エディターでテクスチャを作成し、必要に応じて事前にテーブルに記入していましたが、このためには、必要なグリフを取得するだけでなく、それらを効率的にキャッシュする何らかの動的システムが必要になります。同じグリフを vram に繰り返しアップロードしないようにします... (私が推測する、最も一般的に使用されていないシステムの一種)
もう 1 つの問題は、すべてのグリフが同じサイズではないことです。最大のグリフに十分な大きさのグリッドにテクスチャを分割できます (これを正確に解決するには何らかの方法が必要です)。新しいグリフ(最も一般的に使用されていないものなどに基づく)ですが、多くの無駄なスペースが残りますが、グリフがスワップインおよびスワップアウトされるため、断片化の問題に遭遇することなく、それらをより効率的にパックする方法がわかりません...
また、テクスチャが以前のテキストにまだ使用されている場合、テクスチャを更新するとグラフィックス ハードウェアが停止する可能性があると思いますが、これは正しい仮定であり、その場合はどうすれば回避できますか?