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,这表示没有使用值。 但是,如果需要使用,请使用一个或多个 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
类型: 句柄*
此参数可用于 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 |