两年未修复:苹果 MacBook 刘海屏 BUG 致多款主流游戏模糊

市场资讯
Aug 15

  炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!

(来源:IT之家)

IT之家 8 月 15 日消息,科技博客 Random Thoughts 本月发布博文,指出在多款在带刘海屏的 MacBook 存在分辨率适配缺陷,导致大量游戏全屏运行时画面模糊,该问题源于苹果已知但尚未修复的系统 API 错误,已持续有两年但至今未解决。

IT之家援引博文介绍,在带刘海屏的 MacBook 上启动多数游戏后,都会通过苹果的 CGDisplayCopyAllDisplayModes API 获取显示器的全部可选分辨率,并默认选取列表中的首个分辨率。

问题在于,这个默认分辨率通常包含了刘海及菜单栏区域,而实际游戏窗口无法绘制这些区域,导致画面高度被强行压缩,最终呈现出模糊、失真的效果。

苹果在 macOS 系统中,将显示区域划分为三个概念:完整显示范围、安全区域(safe area)以及全屏可用区域。虽然 NSScreen 提供了 safeAreaInsets 属性用于标注安全区域,但这一区域与全屏实际可用区域并不完全重合,开发者若只依赖 safe area 仍会出现分辨率不匹配的问题。

此外,CGDisplayCopyAllDisplayModes 返回的分辨率列表将“全屏范围”和“菜单栏下方区域”的分辨率混在一起,缺乏明确区分,进一步加剧了误选风险。

该博文实测多款主流游戏都受此影响。包括《古墓丽影:暗影》、《无人深空》《Riven》和《Stray》等,均出现默认分辨率不符实际绘制区域的情况,导致画面被拉伸或模糊。

《Stray》

《控制》等部分游戏则通过“自定义分辨率列表”规避了部分问题,但仍未完全解决。值得一提的是,《赛博朋克 2077》能正确默认到 16:10 分辨率,而《魔兽世界》则因采用老版 API,可直接绘制包括刘海区域的整个屏幕。

赛博朋克 2077

针对上述问题,作者提出了临时解决方案。普通玩家可以在游戏设置中手动选择 16:10 比例的分辨率,避免默认的“压缩输出”;开发者则可以借助 NSScreen 的 safeAreaInsets 属性,结合定制算法筛选出合适的分辨率,尽管这种方法可能会丢失部分常见分辨率(如 4:3),但能大幅减少画面畸变。

博文指出,相关缺陷(FB13375033)已经于 2023 年 9 月反馈给苹果,尽管苹果和厂商已知情,但该问题至今未获官方修复。

海量资讯、精准解读,尽在新浪财经APP

Disclaimer: Investing carries risk. This is not financial advice. The above content should not be regarded as an offer, recommendation, or solicitation on acquiring or disposing of any financial products, any associated discussions, comments, or posts by author or other users should not be considered as such either. It is solely for general information purpose only, which does not consider your own investment objectives, financial situations or needs. TTM assumes no responsibility or warranty for the accuracy and completeness of the information, investors should do their own research and may seek professional advice before investing.

Most Discussed

  1. 1
     
     
     
     
  2. 2
     
     
     
     
  3. 3
     
     
     
     
  4. 4
     
     
     
     
  5. 5
     
     
     
     
  6. 6
     
     
     
     
  7. 7
     
     
     
     
  8. 8
     
     
     
     
  9. 9
     
     
     
     
  10. 10