DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构 (d3dkmddi.h)
DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构标识在调用显示微型端口驱动程序的 DxgkDdiSetVidPnSourceAddress 或 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 函数时要执行的特定操作类型。
语法
typedef struct _DXGK_SETVIDPNSOURCEADDRESS_FLAGS {
union {
struct {
UINT ModeChange : 1;
UINT FlipImmediate : 1;
UINT FlipOnNextVSync : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT SharedPrimaryTransition : 1;
UINT IndependentFlipExclusive : 1;
UINT MoveFlip : 1;
#if ...
UINT Reserved : 23;
#elif
UINT Reserved : 24;
#elif
UINT Reserved : 25;
#else
UINT Reserved : 29;
#endif
};
UINT Value;
};
} DXGK_SETVIDPNSOURCEADDRESS_FLAGS;
成员
ModeChange
一个 UINT 值,该值指定驱动程序切换显示模式。
设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。
FlipImmediate
一个 UINT 值,指定驱动程序执行不进行垂直同步的翻转操作。
设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。
FlipOnNextVSync
一个 UINT 值,该值指定驱动程序在下一次垂直同步时执行翻转操作。
设置此成员等效于设置 32 位 Value 成员 (0x00000004) 的第三位。
[in] FlipStereo
从Windows 8开始支持。
指定驱动程序是否翻转立体声分配的左右图像。
如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipOnNextVSync 成员,驱动程序将完成对下一个 VSync 上的左侧映像的翻转,然后在以下 VSync 上完成向右映像的翻转。
如果设置了 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 结构的 FlipImmediate 成员,驱动程序会立即开始从新分配中扫描出来。 例如,如果驱动程序正在扫描正确的映像,它将从新分配的右映像中的相同相对偏移量启动新扫描。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。
[in] FlipStereoTemporaryMono
从Windows 8开始支持。
指定驱动程序是否对立体声帧的右侧和左侧部分使用立体声分配的左侧图像。 驱动程序执行与 FlipStereo 相同的当前操作,只不过它只从左侧图像中扫描出来以生成立体声帧的两个图像。
仅当驱动程序报告支持在当前显示模式下通过将 D3DKMDT_VIDPN_SOURCE_MODE 结构的 Type 成员设置为 D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN 时,才应设置此成员。
FlipStereo 和 FlipStereoTemporaryMono 成员不能同时设置。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000010) 的第五位。
[in] FlipStereoPreferRight
从Windows 8开始支持。
指定当驱动程序将立体声主分配克隆到单声道监视器时,它会使用正确的图像。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成员不能同时设置。
有关更多要求,请参阅备注部分。
设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。
[in] SharedPrimaryTransition
从Windows 8开始支持。
指定驱动程序正在转换到共享托管主分配或从共享托管主分配转换。
如果发生以下任一转换,则设置此成员:
- 当前的主要分配不是共享的主分配,而是新的主分配。
- 当前的主要分配是共享的主分配,但新的主分配不是。
设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。
[in] IndependentFlipExclusive
从Windows 10开始支持。
设置 IndependentFlipExlusive 时,翻转是在独立翻转独占模式下完成的。 只有显示硬件 (不由 DWM) 访问前端缓冲区,并且内核模式驱动程序可以应用与垂直同步相关的优化。
[in] MoveFlip
从Windows 10开始支持。
设置 MoveFlip 后,系统会通知驱动程序使用从上一次翻转保存的任何状态来配置新的扫描请求。
[in] Reserved
此成员为保留成员,应设置为零。 将此成员设置为零等效于将 32 位 Value 成员的剩余 23 位 (0xFFFFFF00) 设置为零。
Value
DXGK_SETVIDPNSOURCEADDRESS_FLAGS包含的联合中的成员可以保存标识操作类型的 32 位值。
注解
如果设置了 任何 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) |