Skip to content

Commit

Permalink
Fixed bug 1364 - Fullscreen OpenGL fails in OS 10.7 if deployment tar…
Browse files Browse the repository at this point in the history
…get is less than 10.7

amaranth72@gmail.com 2012-01-07 01:28:40 PST
Using the latest Hg tip of SDL 1.2, SDL_SetVideoMode will fail with the
SDL_OPENGL and SDL_FULLSCREEN flags set if the computer is running Lion and the
build deployment target version is lower than 10.7.

The issue seems to be at line 840 of SDL_QuartzVideo.m, where it checks if the
minimum required version is less than 10.7. If that condition is true, then it
uses the pre-Lion fullscreen method, even though the condition doesn't seem to
say anything about whether the computer is currently running Lion or not.

I tried doing this inside the #if conditional check (pseudocode): if (isLion) {
do new Lion stuff } else { do old stuff } , and that seemed to work fine. An
"invalid fullscreen drawable" warning was still around even though fullscreen
worked with the new addition, but I think that's because Lion wants SDL to add
a new Spaces thing when it goes fullscreen.
  • Loading branch information
slouken committed Jan 7, 2012
1 parent d476dbc commit ad23360
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions src/video/quartz/SDL_QuartzVideo.m
Expand Up @@ -837,8 +837,12 @@ other blitting while waiting on the VBL (and hence results in higher framerates)

/* Apparently Lion checks some version flag set by the linker
and changes API behavior. Annoying. */
#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
{
if ( isLion ) {
[ qz_window setLevel:CGShieldingWindowLevel() ];
[ gl_context setView: window_view ];
[ gl_context setFullScreen ];
[ gl_context update ];
} else {
CGLError err;
CGLContextObj ctx;

Expand All @@ -850,13 +854,7 @@ other blitting while waiting on the VBL (and hence results in higher framerates)
SDL_SetError ("Error setting OpenGL fullscreen: %s", CGLErrorString(err));
goto ERR_NO_GL;
}
}
#else
[ qz_window setLevel:CGShieldingWindowLevel() ];
[ gl_context setView: window_view ];
[ gl_context setFullScreen ];
[ gl_context update ];
#endif
}

[ window_view release ];
[ gl_context makeCurrentContext];
Expand Down

0 comments on commit ad23360

Please sign in to comment.