Share via


アプリケーションで管理されたリソースと割り当て方法 (Direct3D 9)

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

Direct3D で管理されたリソースとアプリケーションで管理されたリソースの両方を使用するときには、アプリケーションで管理されたリソースを D3DPOOL_DEFAULT メモリーに割り当ててから Direct3D で管理されたリソースを作成します。これにより、メモリー マネージャーは使用可能なメモリーの正確なカウントを維持することができます。