两年未修复:苹果 MacBook 刘海屏 BUG 致多款主流游戏模糊
发布时间:2025-08-15 22:19 浏览量:2
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 月反馈给苹果,尽管苹果和厂商已知情,但该问题至今未获官方修复。