{"id":48897,"date":"2025-08-14T14:29:21","date_gmt":"2025-08-14T18:29:21","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=48897"},"modified":"2025-08-15T14:00:15","modified_gmt":"2025-08-15T18:00:15","slug":"your-mac-game-is-probably-rendering-blurry","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2025\/08\/14\/your-mac-game-is-probably-rendering-blurry\/","title":{"rendered":"Your Mac Game Is Probably Rendering Blurry"},"content":{"rendered":"<p><a href=\"https:\/\/www.colincornaby.me\/2025\/08\/your-mac-game-is-probably-rendering-blurry\/\">Colin Cornaby<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.colincornaby.me\/2025\/08\/your-mac-game-is-probably-rendering-blurry\/\"><p>I&rsquo;ve submitted the issue described in this post to Apple as FB13375033. This issue has been open since September of 2023.<\/p><p>If you game on a MacBook display &#x2013; your game is <em>probably<\/em> rendering wrong unless you&rsquo;ve adjusted your settings. If you&rsquo;re a developer building a full screen game in AppKit (or Catalyst) &#x2013; Apple&rsquo;s APIs have some issues you need to be aware of.<\/p><p>[&#8230;]<\/p><p>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.<\/p><p>[&#8230;]<\/p><p>The problem is that these resolutions [from <code>CGDisplayCopyAllDisplayModes()<\/code>] are mixed in a single list with no built in way to filter.<\/p><p>Worse yet &#x2013; most games default to the first resolution on the list.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/01\/04\/apples-mac-gaming-push\/\">Apple&rsquo;s Mac Gaming Push<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/11\/24\/the-macbook-pro-notch\/\">The MacBook Pro Notch<\/a><\/li>\n<\/ul>\n\n<p id=\"your-mac-game-is-probably-rendering-blurry-update-2025-08-15\">Update (<a href=\"#your-mac-game-is-probably-rendering-blurry-update-2025-08-15\">2025-08-15<\/a>): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=44906305\">Hacker News<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Colin Cornaby: I&rsquo;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 &#x2013; your game is probably rendering wrong unless you&rsquo;ve adjusted your settings. If you&rsquo;re a developer building a full screen game in AppKit (or Catalyst) &#x2013; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2025-08-14T18:29:24Z","apple_news_api_id":"c101376f-86f1-49fc-8541-4d80cdb38daf","apple_news_api_modified_at":"2025-08-15T18:00:17Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/AwQE3b4bxSfyFQU2AzbONrw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[131,69,418,619,30,1155,100,2598,71],"class_list":["post-48897","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-bug","tag-cocoa","tag-game","tag-graphics","tag-mac","tag-macbook","tag-macbookpro","tag-macos-15-sequoia","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/48897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=48897"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/48897\/revisions"}],"predecessor-version":[{"id":48918,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/48897\/revisions\/48918"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=48897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=48897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=48897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}