Ver código fonte

macOS: Fix non-highdpi OpenGL contexts not scaling properly in macOS 10.15 (bug 4810 and 4822).

Alex Szpakowski 5 anos atrás
pai
commit
009226c61e
1 arquivos alterados com 5 adições e 4 exclusões
  1. 5 4
      src/video/cocoa/SDL_cocoawindow.m

+ 5 - 4
src/video/cocoa/SDL_cocoawindow.m

@@ -1486,10 +1486,11 @@ Cocoa_CreateWindow(_THIS, SDL_Window * window)
     #pragma clang diagnostic push
     #pragma clang diagnostic ignored "-Wdeprecated-declarations"
     #endif
-    if (window->flags & SDL_WINDOW_ALLOW_HIGHDPI) {
-        if ([contentView respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)]) {
-            [contentView setWantsBestResolutionOpenGLSurface:YES];
-        }
+    /* Note: as of the macOS 10.15 SDK, this defaults to YES instead of NO when
+     * the NSHighResolutionCapable boolean is set in Info.plist. */
+    if ([contentView respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)]) {
+        BOOL highdpi = (window->flags & SDL_WINDOW_ALLOW_HIGHDPI) != 0;
+        [contentView setWantsBestResolutionOpenGLSurface:highdpi];
     }
     #ifdef __clang__
     #pragma clang diagnostic pop