diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/glx/apple/apple_visual.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c index 282934f1749..238c24881c9 100644 --- a/src/glx/apple/apple_visual.c +++ b/src/glx/apple/apple_visual.c @@ -73,11 +73,15 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m GLint vsref = 0; CGLError error = 0; - /* Request an OpenGL 3.2 profile if one is available */ - if(apple_cgl.version_major > 1 || (apple_cgl.version_major == 1 && apple_cgl.version_minor >= 3)) { - attr[numattr++] = kCGLPFAOpenGLProfile; - attr[numattr++] = kCGLOGLPVersion_3_2_Core; - } + /* Request an OpenGL 3.2 profile if one is available and supported */ + attr[numattr++] = kCGLPFAOpenGLProfile; + attr[numattr++] = kCGLOGLPVersion_3_2_Core; + + /* Test for kCGLPFAOpenGLProfile support at runtime and roll it out if not supported */ + attr[numattr] = 0; + error = apple_cgl.choose_pixel_format(attr, pfobj, &vsref); + if (error == kCGLBadAttribute) + numattr -= 2; if (offscreen) { apple_glx_diagnostic |