Updated GL version tests for Mac OS X 10.9 ("Mavericks"). They changed the name of their GL 3.2 enum, added the GL 4.1 core profile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/src/video/cocoa/SDL_cocoaopengl.m b/src/video/cocoa/SDL_cocoaopengl.m
index 13c7777..497084f 100644
--- a/src/video/cocoa/SDL_cocoaopengl.m
+++ b/src/video/cocoa/SDL_cocoaopengl.m
@@ -54,8 +54,11 @@
#ifndef kCGLOGLPVersion_Legacy
#define kCGLOGLPVersion_Legacy 0x1000
#endif
-#ifndef kCGLOGLPVersion_3_2_Core
-#define kCGLOGLPVersion_3_2_Core 0x3200
+#ifndef kCGLOGLPVersion_GL3_Core
+#define kCGLOGLPVersion_GL3_Core 0x3200
+#endif
+#ifndef kCGLOGLPVersion_GL4_Core
+#define kCGLOGLPVersion_GL4_Core 0x4100
#endif
@implementation SDLOpenGLContext : NSOpenGLContext
@@ -179,14 +182,14 @@ Cocoa_GL_CreateContext(_THIS, SDL_Window * window)
int i = 0;
if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES) {
- SDL_SetError ("OpenGL ES not supported on this platform");
+ SDL_SetError ("OpenGL ES is not supported on this platform");
return NULL;
}
/* Sadly, we'll have to update this as life progresses, since we need to
set an enum for context profiles, not a context version number */
- if (wantver > 0x0302) {
- SDL_SetError ("OpenGL > 3.2 is not supported on this platform");
+ if (wantver > 0x0401) {
+ SDL_SetError ("OpenGL > 4.1 is not supported on this platform");
return NULL;
}
@@ -197,7 +200,13 @@ Cocoa_GL_CreateContext(_THIS, SDL_Window * window)
NSOpenGLPixelFormatAttribute profile = kCGLOGLPVersion_Legacy;
if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_CORE) {
if (wantver == 0x0302) {
- profile = kCGLOGLPVersion_3_2_Core;
+ profile = kCGLOGLPVersion_GL3_Core;
+ } else if ((wantver == 0x0401) && (data->osversion >= 0x1090)) {
+ profile = kCGLOGLPVersion_GL4_Core;
+ } else {
+ SDL_SetError("Requested GL version is not supported on this platform");
+ [pool release];
+ return NULL;
}
}
attr[i++] = kCGLPFAOpenGLProfile;