D3DLOCK

描述要执行的锁类型的零个或多个锁定选项的组合。

#define 说明
D3DLOCK_DISCARD 应用程序放弃锁定区域中的所有内存。 对于顶点缓冲区和索引缓冲区,将放弃整个缓冲区。 仅当使用动态使用情况创建资源时,此选项才有效, (请参阅 D3DUSAGE) 。
D3DLOCK_DONOTWAIT 如果驱动程序无法立即锁定表面,则允许应用程序返回 CPU 周期。 如果设置了此标志,并且驱动程序无法立即锁定图面,则锁调用将返回D3DERR_WASSTILLDRAWING。 仅当锁定使用 CreateOffscreenPlainSurfaceCreateRenderTargetCreateDepthStencilSurface 创建的图面时,才能使用此标志。 此标志还可以与后台缓冲区一起使用。
D3DLOCK_NO_DIRTY_UPDATE 默认情况下,资源上的锁会将脏区域添加到该资源。 此选项可防止对资源的脏状态进行任何更改。 当应用程序具有有关锁定操作期间更改的区域集的其他信息时,应使用此选项。
D3DLOCK_NOOVERWRITE 指示自上一个不带此标志的锁以来在绘图调用中引用的内存在锁定期间不会被修改。 当应用程序将数据追加到资源时,这可以启用优化。 指定此标志可使驱动程序在资源正在使用时立即返回;否则,驱动程序必须在从锁定返回之前完成使用该资源。
D3DLOCK_NOSYSLOCK 视频内存锁的默认行为是保留系统范围的关键部分,保证在锁定期间不会发生显示模式更改。 此选项会导致系统范围的关键部分在锁定期间不保留。
锁定操作非常耗时,但可以让系统执行其他任务,例如移动鼠标光标。 此选项适用于持续时间较长的锁,例如用于软件呈现的后台缓冲区的锁定,否则会对系统响应能力产生不利影响。
D3DLOCK_READONLY 应用程序不会写入缓冲区。 这样,以非本机格式存储的资源就可以在解锁时保存重新压缩步骤。

 

常量信息

要求
标头 d3d9types.h
最低操作系统 Windows 98

 

Direct3D 常量

LockRect

Lock

LockRect

LockRect

Lock

LockBox

LockBox

LockIndexBuffer

LockVertexBuffer

LockVertexBuffer

LockAttributeBuffer

LockAttributeBuffer

LockIndexBuffer

LockVertexBuffer