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 月响应给苹果,尽管苹果和厂商已知情,但该问题于今未获官方耕种。