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 ビットです。
  • 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 内容

関連項目

IDirect3DIndexBuffer9::GetDesc, インデックス バッファー (Direct3D 9)