diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m index 84f89639d..35e74e328 100644 --- a/src/video/cocoa/SDL_cocoaopengl.m +++ b/src/video/cocoa/SDL_cocoaopengl.m @@ -212,6 +212,7 @@ SDL_WindowData *windowdata = (SDL_WindowData *)window->driverdata; NSOpenGLContext *nscontext = (NSOpenGLContext *)context; + windowdata->nscontext = nscontext; if ([nscontext view] != [windowdata->nswindow contentView]) { [nscontext setView:[windowdata->nswindow contentView]]; [nscontext update]; @@ -272,12 +273,12 @@ Cocoa_GL_SwapWindow(_THIS, SDL_Window * window) { NSAutoreleasePool *pool; - NSOpenGLContext *nscontext; + SDL_WindowData *windowdata = (SDL_WindowData *)window->driverdata; + NSOpenGLContext *nscontext = windowdata->nscontext; pool = [[NSAutoreleasePool alloc] init]; - /* FIXME: Do we need to get the context for the window? */ - [[NSOpenGLContext currentContext] flushBuffer]; + [nscontext flushBuffer]; [pool release]; } diff --git a/src/video/cocoa/SDL_cocoawindow.h b/src/video/cocoa/SDL_cocoawindow.h index 180cd0e3f..d348c34d1 100644 --- a/src/video/cocoa/SDL_cocoawindow.h +++ b/src/video/cocoa/SDL_cocoawindow.h @@ -86,6 +86,7 @@ struct SDL_WindowData { SDL_Window *window; NSWindow *nswindow; + NSOpenGLContext *nscontext; SDL_bool created; Cocoa_WindowListener *listener; struct SDL_VideoData *videodata;