IDirect3DIndexBuffer9::Lock 方法 (d3d9helper.h)
锁定索引数据范围并获取指向索引缓冲区内存的指针。
语法
HRESULT Lock(
[in] UINT OffsetToLock,
[in] UINT SizeToLock,
[out] void **ppbData,
[in] DWORD Flags
);
参数
[in] OffsetToLock
类型: UINT
要锁定的索引数据的偏移量(以字节为单位)。 通过为 SizeToLock 和 OffsetToLock 这两个参数指定 0 来锁定整个索引缓冲区。
[in] SizeToLock
类型: UINT
要锁定的索引数据的大小(以字节为单位)。 通过为 SizeToLock 和 OffsetToLock 这两个参数指定 0 来锁定整个索引缓冲区。
[out] ppbData
类型: VOID**
VOID* 指针,指向包含返回索引数据的内存缓冲区。
[in] Flags
类型: DWORD
描述要执行的锁类型的零个或多个锁定标志的组合。 对于此方法,有效标志为:
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
- D3DLOCK_NOOVERWRITE
返回值
类型: HRESULT
如果方法成功,则返回值D3D_OK。 如果 方法失败,则可以D3DERR_INVALIDCALL返回值。
备注
一般情况下,不要跨多个帧锁定。 使用索引缓冲区时,可以进行多个锁调用。 但是,必须确保锁调用数与解锁调用数匹配。 IDirect3DDevice9::D rawIndexedPrimitive 调用将不会成功,并且任何当前设置的索引缓冲区上有任何未完成的锁计数。
D3DLOCK_DISCARD和D3DLOCK_NOOVERWRITE标志仅在使用 D3DUSAGE_DYNAMIC 创建的缓冲区上有效。
有关使用 D3DLOCK_DISCARD 或 D3DLOCK_NOOVERWRITE 的信息,请参阅 Direct3D 9) (编程提示 。
要求
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |