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