Microsoft DirectX 8.0 (C++) |
インデックス バッファは、能力の点から記述される。インデックス バッファは、システム メモリ内にだけ存在できるのか、書き込み操作だけに使用されるのか、インデックス バッファが含むことができる頂点の種類と数などが記述される。これらの特性はすべて D3DINDEXBUFFER_DESC 構造体に保持される。
インデックス バッファの記述によって、既存バッファが作成された方法がアプリケーションに知らされる。システムが作成済みインデックス バッファの能力を書き込めるように、空白の記述構造体を用意する。このタスクの詳細については、「インデックス バッファの記述の取得」を参照すること。
Format メンバは、インデックス バッファ データのサーフェス フォーマットを記述する。
Type は、インデックス バッファのリソース タイプを識別する。
Usage 構造体のメンバは、一般的な能力フラグを格納する。D3DUSAGE_SOFTWAREPROCESSING フラグは、そのインデックス バッファがソフトウェア頂点処理に使用されることを示す。Usage に D3DUSAGE_WRITEONLY フラグを指定すると、インデックス バッファ メモリは書き込み処理のみに使用される。これによりドライバは解放され、高速処理と高速レンダリングを可能にする最適なメモリ位置にインデックス データが配置される。D3DUSAGE_WRITEONLYフラグが使用されていない場合、ドライバは読み出し処理に効率の悪い位置にデータを配置しなくなる。これにより、処理速度やレンダリング速度が多少犠牲になる。このフラグが指定されていない場合、アプリケーションはインデックス バッファ内のデータで読み書き処理を実行すると見なされる。
Pool は、インデックス バッファに割り当てられるメモリ クラスを指定する。D3DPOOL_SYSTEMMEM フラグは、システムがシステム メモリ内にインデックス バッファを作成したことを示す。
Size メンバは、単に頂点バッファ データのサイズをバイト数で格納する。