DXGK_PRESENTFLAGS 结构 (d3dkmddi.h)
DXGK_PRESENTFLAGS结构在位字段标志中标识要执行的当前操作的类型。
语法
typedef struct _DXGK_PRESENTFLAGS {
union {
struct {
UINT Blt : 1;
UINT ColorFill : 1;
UINT Flip : 1;
UINT FlipWithNoWait : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT LinearToSrgb : 1;
UINT Rotate : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT BltStereoUseRight : 1;
UINT FlipWithMultiPlaneOverlay : 1;
UINT RedirectedFlip : 1;
#if ...
UINT Reserved : 18;
#elif
UINT Reserved : 19;
#else
UINT Reserved : 24;
#endif
};
[in] UINT Value;
};
} DXGK_PRESENTFLAGS;
成员
[in] Blt
一个 UINT 值,该值指定是否在源图面和目标图面之间发生复制操作而不是翻转操作。
设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。
[in] ColorFill
一个 UINT 值,该值指定是否存在要从中呈现的源。 如果设置了此成员,则不存在源,驱动程序应使用 DXGKARG_PRESENT 结构的 Color 成员指定的A8R8G8B8颜色填充目标图面上 的目标 矩形。
设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。
[in] Flip
一个 UINT 值,该值指定是否在背面和主表面之间发生翻转操作。 如果设置了此成员,驱动程序应通过将视频扫描输出指向源而不是从源复制到目标来执行当前操作。 这种类型的当前操作是无撕裂的。
设置此成员等效于设置 32 位 Value 成员 (0x00000004) 的第三位。
[in] FlipWithNoWait
一个 UINT 值,该值指定无撕裂翻转操作是否不应停止图形管道。 如果无撕裂翻转停止图形管道,则图形处理单元 (GPU) 必须等待无撕裂翻转生效,然后才能运行后续命令。
FlipWithNoWait 可以设置为 TRUE (即,仅当显示微型端口驱动程序在 DXGK_DRIVERCAPS 结构的FlipCaps 成员中设置了 FlipOnVSyncWithNoWait 位字段标志时,DXGKQAITYPE_DRIVERCAPS值是在调用驱动程序的 DxgkDdiQueryAdapterInfo 函数的 DXGKARG_QUERYADAPTERINFO 结构的 Type 成员中指定时,才可设置为 1) 。
设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。
[in] SrcColorKey
一个 UINT 值,该值指定是否使用 DXGKARG_PRESENT 结构的 Color 成员中的 值执行源颜色键控制。 也就是说,不应将源图面中与颜色键匹配的任何像素复制到目标图面,并且应复制与颜色键不匹配的所有源像素。
设置此成员等效于设置 32 位 Value 成员 (0x00000010) 的第五位。
[in] DstColorKey
一个 UINT 值,该值指定是否使用 DXGKARG_PRESENT 结构的 Color 成员中的 值来执行目标颜色键。 也就是说,目标图面中与颜色键匹配的任何像素都应替换为源图面中的相应像素,并且不应替换与颜色键不匹配的所有目标像素。
设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。
[in] LinearToSrgb
一个 UINT 值,该值指定是否在复制操作期间将线性格式的源转换为 sRGB 格式。 sRGB 格式已更正为 gamma。 有关 sRGB 格式的详细信息,请访问 sRGB 网站。
设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。
[in] Rotate
一个 UINT 值,该值指定在演示位块传输期间是否旋转演示文稿数据以匹配屏幕的当前方向 (bitblt) 。 屏幕的当前方向在 D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION 结构的 Rotation 成员中设置,该成员在视频当前路径D3DKMDT_VIDPN_PRESENT_PATH结构的 ContentTransformation 成员中设置。
仅当设置了“ 旋转 位字段”标志时,显示微型端口驱动程序才应旋转数据。 即使驱动程序确定屏幕的当前方向是从演示文稿数据旋转的,并且未设置 “旋转” ,驱动程序也不应旋转数据。
设置此成员等效于设置 32 位 Value 成员 (0x00000080) 的第 8 位。
[in] FlipStereo
指定驱动程序是否应翻转立体声分配的左右图像。
如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipOnNextVSync 成员,驱动程序应完成对下一个 VSync 上的左侧映像的翻转,然后在以下 VSync 上完成向右映像的翻转。
如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 成员,驱动程序应立即开始从新分配中扫描出来。 例如,如果驱动程序正在扫描正确的映像,它应从新分配的右映像中的相同相对偏移量启动新扫描。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000100) 的第 9 位。
支持从Windows 8开始。
[in] FlipStereoTemporaryMono
指定驱动程序是否应将立体声分配的左侧图像用于立体声帧的右侧和左侧部分。 驱动程序执行与 FlipStereo 相同的当前操作,只不过它应仅从左侧图像中扫描出来以生成立体声帧的两个图像。
仅当驱动程序报告支持在当前显示模式下通过将 D3DKMDT_VIDPN_SOURCE_MODE 结构的 Type 成员设置为 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN 时,才应设置此成员。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000200) 的第 10 位。
支持从Windows 8开始。
[in] FlipStereoPreferRight
指定驱动程序将立体声主分配克隆到单声道监视器时,应使用正确的图像。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000400) 的第 11 位。
支持从Windows 8开始。
[in] BltStereoUseRight
指定当驱动程序从立体声分配呈现到单声道分配时,它应使用正确的图像。 如果未设置,驱动程序应使用左侧映像。
设置此成员等效于设置 32 位 Value 成员的第十二位 (0x00000800) 。
支持从Windows 8开始。
[in] FlipWithMultiPlaneOverlay
指定是否在覆盖平面和主表面之间发生翻转操作。 如果设置了此成员,驱动程序应通过将视频扫描输出指向源平面而不是从源平面复制到目标来执行当前操作。
设置此成员等效于设置 32 位 Value 成员 (0x00001000) 的第 13 位。
支持从Windows 8.1开始。
RedirectedFlip
[in] Reserved
此成员为保留成员,应设置为零。
将此成员设置为零等效于将 32 位 Value 成员的剩余 19 位 (0xFFFFE000) 设置为零。
支持从Windows 8开始。
[in]此成员为保留成员,应设置为零。
将此成员设置为零等效于将 32 位 Value 成员的剩余 24 位 (0xFFFFFF00) 设置为零。
[in] Value
DXGK_PRESENTFLAGS包含的联合中的成员可以保存一个 32 位值,该值标识要执行的当前操作的类型。
注解
ColorFill、SrcColorKey 和 DstColorKey 位字段标志互斥。
如果设置了 任何 FlipStereo、 FlipStereoTemporaryMono 或 FlipStereoPreferRight 成员,则以下条件适用:
- DXGKARG_SETVIDPNSOURCEADDRESS 结构的 hAllocation 成员应指向使用在 D3DKMT_DISPLAYMODE 结构的 Flags 成员中设置 Stereo 成员创建的分配。
- DXGKARG_SETVIDPNSOURCEADDRESS的 PrimarySegment 和 PrimaryAddress 成员应指向分配的起始物理地址。
- 驱动程序应遵循 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 和 FlipOnNextVSync 成员的设置。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |
另请参阅
D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION