IDirect3DDevice9::CreateIndexBuffer メソッド (d3d9.h)
インデックス バッファーを作成します。
構文
HRESULT CreateIndexBuffer(
[in] UINT Length,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DIndexBuffer9 **ppIndexBuffer,
[in] HANDLE *pSharedHandle
);
パラメーター
[in] Length
型: UINT
インデックス バッファーのサイズ (バイト単位)。
[in] Usage
型: DWORD
使用量には 0 を指定できます。これは、使用量の値がないことを示します。 ただし、使用が必要な場合は、1 つ以上の D3DUSAGE 定数の組み合わせを使用します。 CreateIndexBuffer の usage パラメーターと IDirect3D9::CreateDevice の動作フラグを照合することをお勧めします。 詳細については、「解説」を参照してください。
[in] Format
型: D3DFORMAT
インデックス バッファーの形式を記述する D3DFORMAT 列挙型のメンバー。 詳細については、「解説」を参照してください。 有効な設定は次のとおりです。
項目 | 説明 |
---|---|
D3DFMT_INDEX16 | インデックスはそれぞれ 16 ビットです。 |
D3DFMT_INDEX32 | インデックスはそれぞれ 32 ビットです。 |
[in] Pool
種類: D3DPOOL
リソースを配置する有効なメモリ クラスを記述する D3DPOOL 列挙型のメンバー。
[out, retval] ppIndexBuffer
種類: IDirect3DIndexBuffer9**
作成されたインデックス バッファー リソースを表す IDirect3DIndexBuffer9 インターフェイスへのポインターのアドレス。
[in] pSharedHandle
型: HANDLE*
このパラメーターは、Direct3D 9 for Windows Vista で リソースを共有するために使用できます。リソースを共有しないように NULL に設定します。 このパラメーターは、Windows Vista より前のオペレーティング システムの Direct3D 9 では使用されません。 これを NULL に設定します。
戻り値
型: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合、戻り値は、D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、D3DXERR_INVALIDDATA、E_OUTOFMEMORYのいずれかになります。
解説
インデックス バッファーは、インデックスを保持するために使用されるメモリ リソースであり、サーフェスと頂点バッファーの両方に似ています。 インデックス バッファーを使用すると、Direct3D は不要なデータコピーを回避し、予想される使用に最適なメモリの種類にバッファーを配置できます。
インデックス バッファーを使用するには、インデックス バッファーを作成し、ロックし、インデックスを入力し、ロックを解除し、 IDirect3DDevice9::SetIndices に渡し、頂点を設定し、頂点シェーダーを設定し、 レンダリングのために IDirect3DDevice9::D rawIndexedPrimitive を呼び出します。
D3DCAPS9 構造体の MaxVertexIndex メンバーは、レンダリングに有効なインデックス バッファーの種類を示します。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9.h (D3D9.h を含む) |
Library | D3D9.lib |