Microsoft DirectX 8.0 (Visual Basic)

アプリケーション管理リソースおよび割り当て方法

管理頂点バッファ リソースまたはインデックス バッファ リソースは、作成時に D3DUSAGE_DYNAMIC を指定しても、動的として宣言することはできない。このためには、頂点バッファの内容に加える変更ごとに追加コピーが必要となる。動的頂点バッファは、BSP ツリーまたはその他の可視データ構造から取得したデータだけでなく、動的ジオメトリのレンダリングで使用できる。これは、目的のフォーマットのバッファを事前に割り当てることで実現する。その後、これらのリソースは、アプリケーションのニーズをサポートするために、アプリケーションのリソース マネージャによって分割される。アプリケーションが同時に使用する異なる頂点ストライドはごくわずかしかなく、異なる頂点バッファは一意の各ストライドに対してのみ必要なので、動的頂点バッファの総数は少ない。このようにして動的リソースを管理するときは、リソースへの高頻度な要求によってアプリケーションのパフォーマンスが低下しないようにすることが大切である。

D3D 管理リソースとアプリケーション管理リソースの両方を同時に使用するときは、管理リソースを作成する前に、すべてのアプリケーション管理リソースを D3DPOOL_DEFAULT メモリに割り当てる必要がある。D3DPOOL_MANAGED メモリにリソースを割り当てた後で D3DPOOL_DEFAULT メモリにリソースを割り当てると、D3D メモリ リソースは使用可能メモリの不正確なアカウントを指定する。