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 后接收对其 DrawIndexedPrimitiveDrawIndexedPrimitive2DrawPrimitiveDrawPrimitive2 函数的调用。 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)

另请参阅

D3DDDIARG_LOCK