Commit 3f5593d6132b627ff59b5cf1fd68429b6ca5a67c

Ryan C. Gordon 2022-11-26T13:57:12

cocoa: Patched to compile on macOS SDK < 10.10. Fixes #6586. (cherry picked from commit fa5adcafd52303fde86c64094462303404259d75)

diff --git a/src/video/cocoa/SDL_cocoaopengl.h b/src/video/cocoa/SDL_cocoaopengl.h
index fe8a8e5..9330b57 100644
--- a/src/video/cocoa/SDL_cocoaopengl.h
+++ b/src/video/cocoa/SDL_cocoaopengl.h
@@ -59,6 +59,9 @@ struct SDL_GLDriverData
 - (SDL_Window*)window;
 - (void)explicitUpdate;
 - (void)dealloc;
+
+@property (retain, nonatomic) NSOpenGLPixelFormat* openglPixelFormat;  // macOS 10.10 has -[NSOpenGLContext pixelFormat] but this handles older OS releases.
+
 @end
 
 /* OpenGL functions */
diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m
index 607f307..2cdbc17 100644
--- a/src/video/cocoa/SDL_cocoaopengl.m
+++ b/src/video/cocoa/SDL_cocoaopengl.m
@@ -76,6 +76,7 @@ DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* now, const 
 {
     self = [super initWithFormat:format shareContext:share];
     if (self) {
+        self.openglPixelFormat = format;
         SDL_AtomicSet(&self->dirty, 0);
         self->window = NULL;
         SDL_AtomicSet(&self->swapIntervalSetting, 0);
@@ -100,7 +101,7 @@ DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* now, const 
 - (void)movedToNewScreen
 {
     if (self->displayLink) {
-        CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(self->displayLink, [self CGLContextObj], [[self pixelFormat] CGLPixelFormatObj]);
+        CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(self->displayLink, [self CGLContextObj], [[self openglPixelFormat] CGLPixelFormatObj]);
     }
 }