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

関連項目

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

インデックス バッファー (Direct3D 9)