Fixed bug 1364 - Fullscreen OpenGL fails in OS 10.7 if deployment target 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. --HG-- branch : SDL-1.2
This commit is contained in:
parent
7193f7f024
commit
d3cee5e03b
1 changed files with 7 additions and 9 deletions
|
@ -837,8 +837,12 @@ static SDL_Surface* QZ_SetVideoFullScreen (_THIS, SDL_Surface *current, int widt
|
|||
|
||||
/* 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;
|
||||
|
||||
|
@ -850,13 +854,7 @@ static SDL_Surface* QZ_SetVideoFullScreen (_THIS, SDL_Surface *current, int widt
|
|||
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];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue