【问题标题】:What happens when you connect non-retina display to MBP with retina?当您将非视网膜显示器连接到带视网膜的 MBP 时会发生什么?
【发布时间】:2012-06-17 07:04:34
【问题描述】:

AFAIK Mac OSX 具有统一的屏幕空间。因此,我不清楚当您有多个具有不同支持比例因子的显示器时会发生什么。视网膜显示器会进入低分辨率模式(因此 -[NSScreen backingScaleFactor] 返回所有附加显示器中的最小值)?如果不是,如果应用程序的一部分显示在带有视网膜的显示器上,而另一部分显示在没有视网膜的显示器上,应用程序将如何呈现?

【问题讨论】:

  • 我不确定,但我会假设应用程序的窗口行为类似于当前具有不同分辨率的两个显示器的情况,其中窗口跨越显示器的边界。
  • @MichaelDautermann 这是一个选项。如果事实如此,则有 3 个可能的选项:为支持比例因子 1 渲染图像,为支持比例因子 2 渲染图像,或为两个支持比例因子渲染图像。但我想确切地知道 OSX 采用了什么选项。

标签: macos cocoa retina-display


【解决方案1】:

我目前正在处理一些 HiDPI 问题,并且我的非视网膜 MBP 和 Thunder 显示器已打开 HiDPI 模式。

在连接的显示器上,它有 2.0 的支持比例因子,当我将窗口拖动到 MBP 显示器(具有通常的 DPI)时,接下来会发生:

当窗口的主要部分在 HiDPI 上时,它会以 2.0 的支持比例因子渲染所有窗口。

当主要部分移动到非 HiDPI 显示器时,它会重新渲染所有支持比例因子等于 1.0 的图形,并在两个显示器上显示新的渲染窗口。

希望对你有帮助)

编辑:添加了屏幕截图。

显示屏边框附近的屏幕截图(通常在左侧,视网膜在右侧):

backingScalefactor 1.0: https://dl.dropbox.com/u/51547223/Backing1.0.png

backingScalefactor 2.0: https://dl.dropbox.com/u/51547223/Backing2.0.png

【讨论】:

  • 哇,谢谢。你能这么好心并为这两种情况发布屏幕截图吗?
  • @Kentzo 你应该试试“Quartz Debug”工具,你可以在 Apple 开发者门户上下载。其中必须有一个带有一个复选框的窗口 - 启用 HiDPI 分辨率。检查它并重新登录。在 Preferences->Displays 中,您将看到名为 123x456 (HiDPI) 的新分辨率。它将在通常的显示器上模拟视网膜显示)
  • 再次感谢您。由于某种原因错过了这个功能。
猜你喜欢
  • 2014-03-19
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
相关资源
最近更新 更多