每台显示器的 Windows 8.1 DPI:在什么情况下进行插值?

每台显示器的 Windows 8.1 DPI:在什么情况下进行插值?

我对 Windows 8.1 的新“每显示器 DPI”功能感到好奇。

我的问题涉及支持全局 DPI 设置但尚未“感知每个显示器 DPI”的旧版应用程序。这些应用程序可以以任何 DPI 进行渲染,因此当仅使用一台显示器时,它们应始终以显示分辨率进行渲染。

但是,当多个显示器的 DPI 设置不同时,Windows 有时必须通过简单的图像插值来缩放它们。在哪些情况下会发生插值?

我发现了相互矛盾的信息:

  1. VirtualDub [1] 的开发人员写道,有一个“全局 DPI”设置。所有旧版应用程序都以此分辨率渲染,然后只需插入到相应的显示器尺寸即可。这意味着在一台显示器上,旧版应用程序总是经过插入,并且很模糊。
  2. AnandTech [2] 写道,这些应用程序“最初会根据打开的显示器的 DPI 设置进行缩放”。只有当您将它们移动到其他显示器时,它们才会进行插值。这似乎是一个更好的解决方案 - 如果您在一个屏幕上打开程序并将它们留在那里,它们应该始终以原始分辨率呈现。

谁是对的?

[1]:http://www.virtualdub.org/blog/pivot/entry.php?id=384在“全局 DPI 设置”下

[2]:http://www.anandtech.com/show/7939/scaling-windows-the-dpi-arms-race/5第二段

答案1

我的问题涉及支持全局 DPI 设置但尚未“感知每个显示器 DPI”的旧版应用程序。这些应用程序可以以任何 DPI 进行渲染,因此当仅使用一台显示器时,它们应始终以显示分辨率进行渲染。

System–DPI Aware Applications不会以任何 DPI 呈现 - 应用程序以 呈现,system DPI并且 - 如果monitor DPI不同于system DPI- 则虚拟化为monitor DPI。因此,即使您有一台显示器,并且该显示器的 DPI 不同于 ,system DPI System–DPI Aware Application也会缩放。

但是,当多个显示器的 DPI 设置不同时,Windows 有时必须通过简单的图像插值来缩放它们。在哪些情况下会发生插值?

虚拟化和渲染:

  • Not DPI–aware Applications96 DPI:在任何与 DPI 不同的显示器上渲染、虚拟化96 DPI
  • System–DPI Aware Applicationssystem DPI:在任何与 DPI 不同的显示器上渲染、虚拟化system DPI
  • Per Monitor–DPI Aware Applications:在monitor DPI(WM_DPICHANGED 消息)上渲染,并未虚拟化。

我发现了相互矛盾的信息:

VirtualDub 的开发人员写道,有一个“全局 DPI”设置。所有旧版应用程序都以此分辨率呈现,然后只需插入到相应的显示器尺寸即可。这意味着在一台显示器上,旧版应用程序总是插入的,而且很模糊。

AnandTech 写道,这些应用程序“最初按打开的显示器的 DPI 设置缩放”。只有当您将它们移动到不同的显示器时,它们才会被插值。这似乎是一个更好的解决方案 - 如果您在一个屏幕上打开程序并将它们留在那里,它们应该始终以原始分辨率呈现。

谁是对的?

如果我理解正确的话:

  • VirtualDub 开发人员意味着System–DPI Aware Applications

尽管

  • AnandTech 意味着Per Monitor–DPI Aware Applications

所以两者都是正确的。

确实有——非常正确——微软信息我猜想它是 AnandTech 文章的来源之一。

答案2

Microsoft 在这篇 TechNet 文章

在此处输入图片描述

截图,因为表格。

相关内容