刘海屏MacBook游戏分辨率适配问题仍未修复
近期,有科技博主发表文章指出,配备刘海屏的多款 MacBook 在运行游戏时存在分辨率适配问题,导致部分游戏在全屏状态下出现画面模糊的现象。该问题源于苹果系统中的一个 API 错误,尽管早在两年前已被发现,但截至目前仍未得到修复。
文章指出,当用户在刘海屏 MacBook 上启动多数游戏时,系统会调用 CGDisplayCopyAllDisplayModes 接口来获取显示器支持的分辨率,并默认选择列表中的第一个分辨率。然而,这个分辨率通常包含了刘海区域及菜单栏范围,而游戏实际无法在这些区域进行渲染,因此画面高度被压缩,造成视觉上的模糊和变形。
在 macOS 系统中,显示区域被分为完整显示范围、安全区域(safe area)以及全屏可用区域。虽然系统提供了 safeAreaInsets 属性用于标识安全区域,但该区域与实际全屏可用区域并不完全一致。若开发者仅依赖该属性进行适配,仍可能遇到分辨率设置不当的问题。
此外,CGDisplayCopyAllDisplayModes 返回的分辨率列表未对“全屏范围”和“菜单栏下方区域”做出明确区分,进一步增加了误选不合适分辨率的风险。
实测显示,多款主流游戏都受到该问题影响,包括古墓丽影:暗影无人深空Riven和Stray等,它们在默认分辨率下均出现了画面不适配的情况。尽管部分游戏如Stray和控制尝试通过自定义分辨率列表进行优化,但仍未能完全解决问题。相对而言,赛博朋克 2077能正确识别并默认使用 16:10 的分辨率,而魔兽世界由于采用较旧的 API 版本,反而可以覆盖刘海区域进行完整渲染。
针对这一情况,作者建议普通用户可在游戏设置中手动选择 16:10 比例的分辨率以避免画面压缩问题。对于开发者,可结合 NSScreen 的 safeAreaInsets 属性,通过自定义算法筛选适合的分辨率。尽管该方法可能导致部分传统比例(如 4:3)无法使用,但能有效减少画面变形。
据了解,该问题(缺陷编号:FB13375033)已于 2023 年 9 月提交至相关厂商,但截至目前仍未获得官方修复。