IDirect3DDevice9::CreateIndexBuffer
インデックス バッファーを作成します。
HRESULT
CreateIndexBuffer(
UINT Length,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
IDirect3DIndexBuffer9** ppIndexBuffer,
HANDLE* pSharedHandle
);
パラメータ
- Length
インデックス バッファーのサイズ (バイト単位) です。 - Usage
使用法には 0 を指定できます。これは使用法の値がないことを示します。ただし、使用法が必要な場合は、1 つ以上の D3DUSAGE 定数の組み合わせを使用します。CreateIndexBuffer の使用法パラメーターと IDirect3D9::CreateDevice の動作フラグを一致させることが適切です。詳細については、「解説」を参照してください。 - Format
D3DFORMAT 列挙型のメンバー。インデックス バッファーのフォーマットを指定します。詳細については、「解説」を参照してください。有効な設定は次のとおりです。- D3DFMT_INDEX16
インデックスは 16 ビットです。 - D3DFMT_INDEX32
インデックスは 32 ビットです。
- D3DFMT_INDEX16
- Pool
D3DPOOL 列挙型のメンバー。リソースを配置する有効なメモリー クラスを表します。 - ppIndexBuffer
作成されたインデックス バッファー リソースを示す IDirect3DIndexBuffer9 インターフェイスへのポインターのアドレスです。 - pSharedHandle
予約済みです。このパラメーターを NULL に設定します。このパラメーターを Windows Vista の Direct3D 9 で使用して、リソースを共有することができます。
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、D3DXERR_INVALIDDATA、E_OUTOFMEMORY のいずれかです。
解説
インデックス バッファーはインデックスを保持するために使用されるメモリー リソースであり、サーフェスおよび頂点バッファーと同様です。インデックス バッファーを使用すると、Direct3D は、不要なデータがコピーされるのを回避したり、予測される使用法に応じて適切なメモリー タイプをバッファーに適用したりできます。
インデックス バッファーを使用するには、インデックス バッファーを作成してロックし、インデックスを配置してロックを解除し、IDirect3DDevice9::SetIndices に渡します。次に、頂点をセットアップして、頂点シェーダーをセットアップし、IDirect3DDevice9::DrawIndexedPrimitive を呼び出してレンダリングします。
D3DCAPS9 構造体の MaxVertexIndex メンバーは、レンダリングに有効なインデックス バッファーのタイプを指定します。
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容