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 位 成员的第一位(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后,DrawIndexedPrimitive2DrawPrimitive以及 调用 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)

另请参阅

D3DDDIARG_LOCK