D3DDDI_LOCKFLAGS结构标识如何锁定资源。
语法
typedef struct _D3DDDI_LOCKFLAGS {
union {
struct {
UINT ReadOnly : 1;
UINT WriteOnly : 1;
UINT NoOverwrite : 1;
UINT Discard : 1;
UINT RangeValid : 1;
UINT AreaValid : 1;
UINT BoxValid : 1;
UINT NotifyOnly : 1;
UINT MightDrawFromLocked : 1;
UINT DoNotWait : 1;
UINT Reserved : 22;
};
UINT Value;
};
} D3DDDI_LOCKFLAGS;
成员
ReadOnly
一个 UINT 值,该值指定锁定的资源是否只能从中读取。 设置此成员等效于设置 32 位 值 成员的第一位(0x00000001)。
WriteOnly
一个 UINT 值,该值指定是否只能写入锁定的资源。 设置此成员等效于设置 32 位 值 成员的第二位(0x00000002)。
NoOverwrite
一个 UINT 值,该值指定锁定的资源是否可以向其追加数据,但无法修改资源中的现有数据。 此成员仅用于 Direct3D 顶点缓冲区锁。
设置此成员相当于设置 32 位 值 成员(0x00000004)的第三位。
Discard
一个 UINT 值,该值指定是否修改了整个锁定的资源。 因此,由于现有内容可以放弃,因此无需进行初步处理。
设置此成员相当于设置 32 位 值 成员的第四位(0x00000008)。
RangeValid
一个 UINT 值,该值指定锁定的资源是否为线性资源。
设置此成员相当于设置 32 位 值 成员(0x00000010)的第五位。
AreaValid
一个 UINT 值,该值指定锁定的资源是否为图面。
设置此成员相当于设置 32 位 值 成员的第六位(0x00000020)。
BoxValid
一个 UINT 值,该值指定锁定的资源是否为卷。
设置此成员相当于设置 32 位 值 成员的第七位(0x00000040)。
NotifyOnly
一个 UINT 值,该值指定锁调用是否仅用于通知。
设置此成员相当于设置 32 位 值 成员(0x00000080)的第八位。
MightDrawFromLocked
一个 UINT 值,该值指定驱动程序是否可能请求从顶点缓冲区中绘制,即使顶点缓冲区被 Direct3D 运行时锁定。 MightDrawFromLocked 不能保证驱动程序在调用 Lock后,DrawIndexedPrimitive2、DrawPrimitive以及 调用 drawPrimitive2 函数后,驱动程序将收到对其 DrawIndexedPrimitive的调用。 MightDrawFromLocked 仅在创建时使用 MightDrawFromLocked 位字段标志创建的顶点缓冲区 D3DDDIARG_CREATERESOURCE 上设置。
设置此成员相当于设置 32 位 值 成员的第九位(0x00000100)。
DoNotWait
一个 UINT 值,该值指定用户模式显示驱动程序是否应等待资源处于空闲状态。 设置 DoNotWait 表示用户模式显示驱动程序不应等待资源处于空闲状态。
设置此成员相当于设置 32 位 值 成员的第十位(0x00000200)。
Reserved
此成员是保留的,应设置为零。 将此成员设置为零相当于将 32 位 值 成员的剩余 22 位(0xFFFFFC00)设置为零。
Value
包含在D3DDDI_LOCKFLAGS中的一个成员,可以保存一个 32 位值,用于标识如何锁定资源。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 在 Windows Vista 和更高版本的 Windows作系统中可用。 |
| 标头 | d3dumddi.h (包括 D3dumddi.h) |