windows显示驱动开发-用于连接和配置的接口(二)

路径优先顺序

SetDisplayConfig CCD 函数确定按 pathArray 参数指定的路径数组中的活动路径进行排序,以便 SetDisplayConfig 为较低的数组路径元素提供更高的优先级。 以下项会影响排序:

如果 SetDisplayConfig 找不到现有的显示配置, 则 SetDisplayConfig 在搜索顺序的最佳模式逻辑中使用路径优先级。 因此,SetDisplayConfig 更可能在本机分辨率下满足高优先级的路径,而非低优先级路径。

在克隆路径中,优先级最高的路径是计划翻转的路径。 因此,优先级较低的路径可能会发生轻微的撕裂现象。

DirectX 图形内核子系统利用路径优先级(连同 GDI 主视图)来派生路径重要性值,并将该值传递给显示微型端口驱动程序调用中的 D3DKMDT_VIDPN_PRESENT_PATH 结构的 ImportanceOrdinal 成员。 路径重要性值会影响驱动程序决策,例如驱动程序应在资源分配中优先选择的路径。 例如,低序号路径可能能够更好地访问叠加层或更高质量的控制器。

QueryDisplayConfig CCD 函数始终按优先级顺序返回路径。 如果在 QueryDisplayConfig 的 Flags 参数中设置了QDC_ALL_PATHS标志,QueryDisplayConfig 将返回 pPathInfoArray 参数指定的路径数组中的所有活动路径组合之后的所有非活动路径组合。

桌面布局

调用方在对 SetDisplayConfig CCD 函数的调用中使用 DISPLAYCONFIG_SOURCE_MODE 结构的 position 成员来控制桌面上源图面的排列。 位置成员指定源图面左上角桌面坐标中的位置。 定位在 (0, 0) 处的源图面被视为主图面。 GDI 具有有关如何在桌面空间中排列源图面的严格规则。 例如,GDI 不允许源图面之间的任何间隙,也不允许在源图面中重叠。

尽管 SetDisplayConfig 尝试重新排列源图面以强制实施这些 GDI 布局规则,但调用方应指定源图面的布局。 未定义 GDI 如何重新排列源图面以强制实施其布局规则,而源图面的结果布局可能不是调用方想要实现的。

模式信息与路径信息之间的关系

连接和配置 (CCD) QueryDisplayConfig 函数始终返回特定显示配置的路径信息以及源模式和目标模式信息。 下图显示了未设置 DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 时源和目标模式信息与路径信息的关系的示例;也就是说,当路径不识别虚拟时。 在此示例中,QDC_ALL_PATHS标志在对 QueryDisplayConfig 的调用中传递给 Flags 参数。

从 Windows 10 开始, DISPLAYCONFIG_PATH_INFO、 DISPLAYCONFIG_PATH_SOURCE_INFO和 DISPLAYCONFIG_PATH_TARGET_INFO 结构将更新为支持虚拟感知的路径:

  • DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE标志已添加为标志值。 设置此标志时,它指示路径支持虚拟模式。
  • 在DISPLAYCONFIG_PATH_SOURCE_INFO中增加了一个联合体。 仅当未设置添加的标志时,才使用 modeInfoIdx 成员。 设置标志时,模式信息位于 cloneGroupId 和 sourceModeInfoIdx 成员中。
  • 向DISPLAYCONFIG_PATH_TARGET_INFO添加了一个联合体。 仅当未设置添加的标志时,才使用 modeInfoIdx 成员。 设置标志后,模式信息位于 desktopModeInfoIdx 和 targetModeInfoIdx 成员中。
相关推荐
CodeStats2 分钟前
从 CPU 指令执行到权限管控:对比三大操作系统,梳理编程语言演进,解读 HTML/CSS/JS 浏览器解析的共通底层逻辑
java·linux·windows
尔染君子2 分钟前
嵌入式Linux驱动开发(基于树莓派rasberrypi 5的LED驱动开发)
linux·运维·驱动开发
ziyitty11 分钟前
解决Windows下Bash调用Python输出中文乱码的问题
windows·python·bash
charlie11451419136 分钟前
通用GUI编程技术——图形渲染实战(四十九)——完全自绘控件架构:状态机与动画
c++·windows·架构·图形渲染
Java.熵减码农2 小时前
Windows 下 Node.js 安装与配置完全指南
windows·node.js
小此方2 小时前
Re:Linux系统篇(二十九)文件篇·二:深度解析Linux文件描述符、dup2指针覆盖与内建命令重定向完全解析
linux·运维·驱动开发
love530love9 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
CryptoPP10 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
cup1112 小时前
[开源] Meta Assistant / 告别命令行,我为一堆 Python 脚本做了一个 Windows 任务栏的“家”
windows·python·工具·nuitka·脚本运行