IDirect3DVertexBuffer9::Lock

本文详细介绍了DirectX中对顶点缓冲区进行内存操作时所使用的Lock函数,包括其参数说明及不同Flags属性的作用,如D3DLOCK_DISCARD、D3DLOCK_NO_DIRTY_UPDATE等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电子书《精通DirectX.3D图形与动画程序设计.王德才.pdf》p54

对顶点缓冲区的内存操作,必须通过Lock和Unlock来实现

以下介绍Lock函数

HRESULT Lock(
  [in]   UINT OffsetToLock,
  [in]   UINT SizeToLock,
  [out]  VOID **ppbData,
  [in]   DWORD Flags
);
OffToLock 指定加锁内存起始地址
SizeToLock指定加锁内存大小
ppbData 用于返回内存指针地址
Flags 表示顶点缓冲区的加锁属性,可以取0(默认值),或以下值得逻辑或:
D3DLOCK_DISCARD 更新整个缓冲区
D3DLOCK_NO_DIRTY_UPDATE 在默认状态下,对缓冲区加锁会对该区域设置一个Dirty标记。该属性不对该区域设置Dirty标记,当对缓冲区由特殊需要时使用
D3DLOCK_NOSYSLOCK 保证不覆盖缓冲区数据,设置改属性可以立即返回内存指针,提高系统性能
D3DLOCK_READONLY 在加锁过程中系统可以进行其他操作
D3DLOCK_NOOVERWRITE 设置缓冲区为只读属性

备注:
执行Lock()需要一定的时间,默认状态下,Direct3D会暂停其他的显示操作,知道Lock()执行结束。设置D3DLOCK_NOSYSLOCK属性,可以使Direct3D在执行对缓冲区加锁的同时执行其他操作,比如移动鼠标等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值