ProblemSolutionAffected GamesWhat Apple could do Problem I’ve submitted the issue described in this post to Apple as FB13375033. This issue has been open since September of 2023. If you game on a MacBook display – your game is probably rendering wrong unless you’ve adjusted your settings. If you’re a developer building a full screen game in AppKit (or Catalyst) – Apple’s APIs have some issues you need to be aware of. When most games start – they ask the system what resolutions are available for the current display and pick the best one. A Mac app can get a list of suggested output resolutions through the CGDisplayCopyAllDisplayModes function. This worked well for decades on Macs with regular displays. The problem with Apple laptops is they have a notch at the top of the display. The full screen area your game runs in is not the same resolution as the screen. Most games do not account for this problem. They output frames sized for the entire screen instead of the region they can draw to. This output is height compressed and blurry. Lets start with how layout on a notched display works. Notched Mac displays have three different regions to be aware of. The full bounds of the display. This isn’t explicitly marked on the diagram above. But it’s the entire display area including the menu and areas around the notch. The safe area of the display. This includes the area of the display directly below the notch. AppKit exposes this property through NSScreen’s safeAreaInsets property. The full screen area available for AppKit. This is distinct from the safe area. The full screen area extends from under the menu bar, while the safe area extends from below the notch. If you’re an iOS developer – you’re probably already familiar with the idea of the safe area. But the Mac adds a third concept – the full screen app area. The safe area is the area below the notch. But the full screen area for a window is the area below the menu bar. Which region does CGDisplayCopyAllDisplayModes ret...
First seen: 2025-08-14 23:18
Last seen: 2025-08-15 20:23