Microsoft DirectX 8.0 (Visual Basic)

Direct3DDevice8.CreateIndexBuffer

インデックス バッファを作成する。

object.CreateIndexBuffer( _ 
    LengthInBytes As Long, _ 
    Usage As Long, _ 
    Format As CONST_D3DFORMAT, _ 
    Pool As CONST_D3DPOOL) As Direct3DIndexBuffer8

指定項目

object
Direct3DDevice8 オブジェクトを表すオブジェクト式。
LengthInBytes
インデックス バッファのサイズ (バイト単位)。
Usage
このリソースの使用方法の制御情報を記述する。CONST_D3DUSAGEFLAGS 列挙で定義される次の 1 つ以上のフラグの組み合わせ。
D3DUSAGE_DONOTCLIP
インデックス バッファの内容が決してクリッピングを要求しないことを示す。
D3DUSAGE_DYNAMIC
頂点またはインデックス バッファが動的なメモリの使用を必要とすることを示す。この使用方法は、ドライバが配置する場所を決定できるので、ドライバにとって有効である。一般的に、静的な頂点バッファはビデオ メモリに配置され、動的な頂点バッファは AGP メモリに配置される。分割した静的な使用方法は存在しないことに注意すること。D3DUSAGE_DYNAMIC を指定しない場合に、頂点バッファは静的に作成される。D3DUSAGE_DYNAMIC は、D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE ロッキング フラグによって厳密に強制される。この結果、D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE は、D3DUSAGE_DYNAMIC を指定して作成された頂点およびインデックス バッファでのみ有効である。これらは、静的な頂点バッファでは有効なフラグではない。

D3DUSAGE_DYNAMIC は、管理下の頂点およびインデックス バッファでは指定できないことに注意すること。詳細については、「リソースの管理」を参照すること。

D3DUSAGE_RTPATCHES
高次プリミティブの描画にインデックス バッファを使用するとき設定する。
D3DUSAGE_NPATCHES
N パッチの描画にインデックス バッファを使用するとき設定する。
D3DUSAGE_POINTS
ポイント スプライトまたはインデックス付きポイント リストの描画に、インデックス バッファを使用するとき設定する。
D3DUSAGE_SOFTWAREPROCESSING
バッファがソフトウェア処理で使用されることを示す。
D3DUSAGE_WRITEONLY
インデックス バッファへの書き込み操作しか実行できないことをシステムに通知する。このフラグを使用すると、ドライバは最適なメモリ領域を選択して効率的に書き込み操作やレンダリングを実行できる。この能力を使用して作成されたインデックス バッファからの読み込みを試みると、パフォーマンスが低下する場合がある。
Format
インデックス バッファのフォーマットを示す CONST_D3DFORMAT 列挙のメンバ。有効な設定は次のとおりである。
D3DFMT_INDEX16
インデックスはそれぞれ 16 ビットである。
D3DFMT_INDEX32
インデックスはそれぞれ 32 ビットである。「注意」を参照すること。
Pool
CONST_D3DPOOL 列挙のメンバ。リソースが配置される有効なメモリ クラスを記述する。

戻り値

作成されたインデックス バッファ リソースを表す Direct3DIndexBuffer8 オブジェクト。

エラー コード

失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。

D3DERR_INVALIDCALL
D3DERR_OUTOFVIDEOMEMORY
D3DXERR_INVALIDDATA
E_OUTOFMEMORY

エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。

注意

インデックス バッファは、インデックスを保持するために使われるメモリ リソースであり、サーフェス バッファおよび頂点バッファに似ている。インデックス バッファを使うことで、Microsoft® Direct3D® では、データの不必要なコピー処理を避けることができ、意図されている使用方法に最適なメモリ タイプにバッファを格納することができる。

インデックス バッファを使うには、インデックス バッファを作成し、それをロックして、インデックスを格納する。次に、バッファをアンロックし、Direct3DDevice8.SetIndices に渡して頂点と頂点シェーダを設定し、Direct3DDevice8.DrawIndexedPrimitive を呼び出してレンダリングを行う。

D3DCAPS8 型の MaxVertexIndex メンバは、レンダリングで有効なインデックス バッファのタイプを示す。

参照

Direct3DIndexBuffer8.GetDesc