IDirect3DDevice9::CreateIndexBuffer 方法 (d3d9helper.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,表示沒有使用值。 不過,如果需要使用方式,請使用一或多個 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,讓 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
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

Direct3D 9 (索引緩衝區)