D3DKMT_PRESENTFLAGS 结构 (d3dkmthk.h)

D3DKMT_PRESENTFLAGS结构标识如何执行当前操作。

语法

typedef struct _D3DKMT_PRESENTFLAGS {
  union {
    struct {
      UINT Blt : 1;
      UINT ColorFill : 1;
      UINT Flip : 1;
      UINT FlipDoNotFlip : 1;
      UINT FlipDoNotWait : 1;
      UINT FlipRestart : 1;
      UINT DstRectValid : 1;
      UINT SrcRectValid : 1;
      UINT RestrictVidPnSource : 1;
      UINT SrcColorKey : 1;
      UINT DstColorKey : 1;
      UINT LinearToSrgb : 1;
      UINT PresentCountValid : 1;
      UINT Rotate : 1;
      UINT PresentToBitmap : 1;
      UINT RedirectedFlip : 1;
      UINT RedirectedBlt : 1;
      UINT FlipStereo : 1;
      UINT FlipStereoTemporaryMono : 1;
      UINT FlipStereoPreferRight : 1;
      UINT BltStereoUseRight : 1;
      UINT PresentHistoryTokenOnly : 1;
      UINT PresentRegionsValid : 1;
      UINT PresentDDA : 1;
      UINT ProtectedContentBlankedOut : 1;
      UINT RemoteSession : 1;
      UINT CrossAdapter : 1;
      UINT DurationValid : 1;
      UINT PresentIndirect : 1;
      UINT PresentHMD : 1;
#if ...
      UINT Reserved : 2;
#elif
      UINT Reserved : 6;
#else
      UINT Reserved : 15;
#endif
    };
         UINT Value;
  };
} D3DKMT_PRESENTFLAGS;

成员

Blt

一个 UINT 值,该值指定是否将位块传输 (bitblt) 数据到主图面。 此位字段标志可与 DstRectValidSrcRectValid 位字段标志一起使用。

设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。

ColorFill

一个 UINT 值,该值指定是否使用 D3DKMT_PRESENT 结构的 Color 成员中的值对主图面执行颜色填充位。 此位字段标志可与 DstRectValid 位字段标志一起使用。

设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。

Flip

一个 UINT 值,该值指定是否翻转到新图面。

设置此成员等效于设置 32 位 Value 成员 (0x00000004) 的第三位。

FlipDoNotFlip

一个 UINT 值,该值指定是否在呈现流中插入排队等待。 设置此成员指示翻转到当前正在扫描的同一表面。

设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。

FlipDoNotWait

一个 UINT 值,该值指定 OpenGL 可安装客户端驱动程序 (ICD) 是否要求当前操作在操作开始之前等待排队翻转图面数低于特定限制。 设置此成员表示 ICD 不需要等待。 排队翻转图面的默认限制为 3。

设置此成员等效于设置 32 位 Value 成员 (0x00000010) 的第五位。

FlipRestart

一个 UINT 值,该值指定是否重启翻转到新图面。

设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。

DstRectValid

一个 UINT 值,该值指定 bitblt 是否使用目标矩形区域。

设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。

SrcRectValid

一个 UINT 值,该值指定 bitblt 是否使用源矩形区域。

设置此成员等效于设置 32 位 Value 成员 (0x00000080) 的第 8 位。

RestrictVidPnSource

一个 UINT 值,该值指定是否限制 bitblt。 如果 hWindow 成员为 NULL,则 D3DKMT_PRESENT 结构的 VidPnSourceId 成员指示将全屏 bitblt 定向到哪个输出;如果 hWindow 为非 NULL则 VidPnSourceId 指示将窗口化 bitblt 限制为的输出。

设置此成员等效于设置 32 位 Value 成员 (0x00000100) 的第 9 位。

SrcColorKey

一个 UINT 值,该值指定是否使用 D3DKMT_PRESENT 结构的 Color 成员中的 值执行源颜色键控制。 也就是说,不应将源图面中与颜色键匹配的任何像素复制到目标图面,并且应复制与颜色键不匹配的所有源像素。

设置此成员等效于设置 32 位 Value 成员 (0x00000200) 的第 10 位。

DstColorKey

一个 UINT 值,该值指定是否使用 D3DKMT_PRESENT 的 Color 成员中的 值执行目标 颜色 键。 也就是说,目标图面中与颜色键匹配的任何像素都应替换为源图面中的相应像素,并且不应替换与颜色键不匹配的所有目标像素。

设置此成员等效于设置 32 位 Value 成员 (0x00000400) 的第 11 位。

LinearToSrgb

一个 UINT 值,该值指定是否在复制操作期间将线性格式的源转换为 sRGB 格式。 sRGB 格式已更正为 gamma。 有关 sRGB 格式的详细信息,请参阅 sRGB 网站。

设置此成员等效于设置 32 位 Value 成员的第十二位 (0x00000800) 。

PresentCountValid

一个 UINT 值,该值指定在 D3DKMT_PRESENT 结构的 PresentCount 成员中设置的值是否有效。

设置此成员等效于设置 32 位 Value 成员 (0x00001000) 的第 13 位。

[in] Rotate

一个 UINT 值,该值指定在演示位块传输期间是否旋转演示文稿数据以匹配屏幕的当前方向 (bitblt) 。 屏幕的当前方向在 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 结构的 Rotation 成员中设置,该成员在视频当前路径D3DKMDT_VIDPN_PRESENT_PATH结构的 ContentTransformation 成员中设置。

仅当设置了“ 旋转 位字段”标志时,显示微型端口驱动程序才应旋转数据。 即使驱动程序确定屏幕的当前方向是从演示文稿数据旋转的,并且未设置 “旋转” ,驱动程序也不应旋转数据。

设置此成员等效于设置 32 位 Value 成员 (0x00002000) 的第 14 位。

PresentToBitmap

一个 UINT 值,该值指定是否向位图显示。

设置此成员等效于设置 32 位 Value 成员 (0x00004000) 的第 15 位。

从 Windows 7 开始受支持。

RedirectedFlip

一个 UINT 值,该值指定是否将翻转重定向到新图面。

设置此成员等效于设置 32 位 Value 成员 (0x00008000) 的第 16 位。

从 Windows 7 开始受支持。

RedirectedBlt

一个 UINT 值,该值指定是否将 bitblt 重定向到新图面。

设置此成员等效于设置 32 位 Value 成员 (0x00010000) 的第 17 位。

从 Windows 7 开始受支持。

FlipStereo

指定驱动程序是否应翻转立体声分配的左右图像。

如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipOnNextVSync 成员,驱动程序应完成对下一个 VSync 上的左侧映像的翻转,然后在以下 VSync 上完成向右映像的翻转。

如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 成员,驱动程序应立即开始从新分配中扫描出来。 例如,如果驱动程序正在扫描正确的映像,它应从新分配的右映像中的相同相对偏移量启动新扫描。

FlipStereoFlipStereoTemporaryMono 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员的第 18 位 (0x00020000) 。

支持从Windows 8开始。

FlipStereoTemporaryMono

指定驱动程序是否应将立体声分配的左侧图像用于立体声帧的右侧和左侧部分。 驱动程序执行与 FlipStereo 相同的当前操作,只不过它应仅从左侧图像中扫描出来以生成立体声帧的两个图像。

仅当驱动程序报告支持在当前显示模式下通过将 D3DKMDT_VIDPN_SOURCE_MODE 结构的 Type 成员设置为 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN 时,才应设置此成员。

FlipStereoFlipStereoTemporaryMono 成员不能同时设置。

FlipStereoTemporaryMonoFlipStereoPreferRight 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员 (0x00040000) 的第 19 位。

支持从Windows 8开始。

FlipStereoPreferRight

指定驱动程序将立体声主分配克隆到单声道监视器时,应使用正确的图像。

FlipStereoTemporaryMonoFlipStereoPreferRight 成员不能同时设置。

有关更多要求,请参阅备注部分。

设置此成员等效于设置 32 位 Value 成员 (0x00080000) 的第 20 位。

支持从Windows 8开始。

BltStereoUseRight

指定当驱动程序从立体声分配呈现到单声道分配时,它应使用正确的图像。 如果未设置,驱动程序应使用左侧映像。

设置此成员等效于设置 32 位 Value 成员 (0x00100000) 的第 21 位。

支持从Windows 8开始。

PresentHistoryTokenOnly

指定驱动程序应仅提交当前历史记录令牌。

当前历史记录令牌是呈现应用提交的数据包,以通知桌面窗口管理器 (DWM) 呈现已完成并且交换链回缓冲区已准备好显示。

设置此成员等效于设置 32 位 Value 成员 (0x00200000) 的 22 位。

支持从Windows 8开始。

PresentRegionsValid

指定 D3DKMT_PRESENTpPresentRegions 成员是有效的指针, (不是 NULL) 。

设置此成员等效于设置 32 位 Value 成员 (0x00400000) 的第 23 位。

支持从Windows 8开始。

PresentDDA

此成员为保留成员,应设置为零。

设置此成员等效于设置 32 位 Value 成员 (0x00800000) 的第 24 位。

支持从Windows 8开始。

ProtectedContentBlankedOut

此成员为保留成员,应设置为零。

设置此成员等效于设置 32 位 Value 成员 (0x01000000) 的第 25 位。

支持从Windows 8开始。

RemoteSession

指定当前操作定向到远程会话。

设置此成员等效于设置 32 位 Value 成员 (0x02000000) 的第 26 位。

支持从Windows 8开始。

CrossAdapter

交叉适配器。

DurationValid

指示持续时间是否有效。

PresentIndirect

呈现间接。

PresentHMD

Reserved

从 Windows 8 开始支持。

此成员是保留成员,应设置为零。 将此成员设置为零等效于将 32 位 Value 成员的剩余 9 位 (0xFF800000) 设置为零。

Value

标识如何执行当前操作的 32 位值。

注解

如果设置了 任何 FlipStereoFlipStereoTemporaryMonoFlipStereoPreferRight 成员,则以下条件适用:

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
标头 d3dkmthk.h (包括 D3dkmthk.h)

另请参阅

D3DKMDT_VIDPN_PRESENT_PATH

D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION

D3DKMT_DISPLAYMODE

D3DKMT_PRESENT

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS