Microsoft DirectX 8.0 (Visual Basic)

頂点バッファのプールと使用

頂点バッファは、Direct3DDevice8.CreateVertexBuffer メソッドで作成し、このメソッドはプール (メモリ クラス) と使用パラメータを取る。CreateVertexBuffer は、固定機能頂点処理またはプロセス頂点の出力として使用するため、柔軟な頂点フォーマット (FVF) コードを指定して作成することもできる。詳細については、「FVF 頂点バッファ」および「転送先頂点バッファの FVF 使用設定」を参照すること。

D3DUSAGE_SOFTWAREPROCESSING フラグは、そのデバイスに対してミックス モードまたはソフトウェア頂点処理 (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING) が有効になっているときに設定できる。D3DUSAGE_SOFTWAREPROCESSING はミックス モードでのソフトウェア頂点処理に使用するバッファに設定し、ミックス モードでのハードウェア頂点処理 (D3DCREATE_HARDWARE_VERTEXPROCESSING) 時に最高のパフォーマンスを得たいときは設定してはならない。ただし、単一のバッファがハードウェアおよびソフトウェア頂点処理の両方で使用される場合、D3DUSAGE_SOFTWAREPROCESSING を設定する以外のオプションはない。D3DUSAGE_SOFTWAREPROCESSING は、ソフトウェア デバイスだけでなくミックスにも設定することができる。

頂点処理がハードウェアで実行される場合でも、D3DPOOL_SYSTEMMEM を指定すれば、頂点バッファとインデックス バッファをシステム メモリ内に強制的に配置することができる。これは、ドライバによってこれらのバッファが AGP メモリに入れられたときに、ページ ロックされるメモリが多くなりすぎないようにする方法である。