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) 数据到主图面。 此位字段标志可与 DstRectValid 和 SrcRectValid 位字段标志一起使用。
设置此成员等效于设置 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 成员,驱动程序应立即开始从新分配中扫描出来。 例如,如果驱动程序正在扫描正确的映像,它应从新分配的右映像中的相同相对偏移量启动新扫描。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员的第 18 位 (0x00020000) 。
支持从Windows 8开始。
FlipStereoTemporaryMono
指定驱动程序是否应将立体声分配的左侧图像用于立体声帧的右侧和左侧部分。 驱动程序执行与 FlipStereo 相同的当前操作,只不过它应仅从左侧图像中扫描出来以生成立体声帧的两个图像。
仅当驱动程序报告支持在当前显示模式下通过将 D3DKMDT_VIDPN_SOURCE_MODE 结构的 Type 成员设置为 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN 时,才应设置此成员。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00040000) 的第 19 位。
支持从Windows 8开始。
FlipStereoPreferRight
指定驱动程序将立体声主分配克隆到单声道监视器时,应使用正确的图像。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00080000) 的第 20 位。
支持从Windows 8开始。
BltStereoUseRight
指定当驱动程序从立体声分配呈现到单声道分配时,它应使用正确的图像。 如果未设置,驱动程序应使用左侧映像。
设置此成员等效于设置 32 位 Value 成员 (0x00100000) 的第 21 位。
支持从Windows 8开始。
PresentHistoryTokenOnly
指定驱动程序应仅提交当前历史记录令牌。
当前历史记录令牌是呈现应用提交的数据包,以通知桌面窗口管理器 (DWM) 呈现已完成并且交换链回缓冲区已准备好显示。
设置此成员等效于设置 32 位 Value 成员 (0x00200000) 的 22 位。
支持从Windows 8开始。
PresentRegionsValid
指定 D3DKMT_PRESENT。pPresentRegions 成员是有效的指针, (不是 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 位值。
注解
如果设置了 任何 FlipStereo、 FlipStereoTemporaryMono 或 FlipStereoPreferRight 成员,则以下条件适用:
- DXGKARG_SETVIDPNSOURCEADDRESS 结构的 hAllocation 成员应指向使用在 D3DKMT_DISPLAYMODE 结构的 Flags 成员中设置 Stereo 成员创建的分配。
- DXGKARG_SETVIDPNSOURCEADDRESS的 PrimarySegment 和 PrimaryAddress 成员应指向分配的起始物理地址。
- 驱动程序应遵循 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 和 FlipOnNextVSync 成员的设置。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
标头 | d3dkmthk.h (包括 D3dkmthk.h) |