Mercurial > sdl-ios-xcode
diff src/video/x11/SDL_x11gl.c @ 4290:485868a1c283 SDL-1.2
Cache the swap control setting, even on Mesa.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sat, 10 Oct 2009 06:38:02 +0000 |
parents | 91c458013850 |
children | f2f8525e60c2 |
line wrap: on
line diff
--- a/src/video/x11/SDL_x11gl.c Sat Oct 10 05:21:31 2009 +0000 +++ b/src/video/x11/SDL_x11gl.c Sat Oct 10 06:38:02 2009 +0000 @@ -283,15 +283,16 @@ } if ( !glXExtensionSupported(this, "GLX_MESA_swap_control") ) { this->gl_data->glXSwapIntervalMESA = NULL; - this->gl_data->glXGetSwapIntervalMESA = NULL; } if ( this->gl_config.swap_control >= 0 ) { + int rc = -1; if ( this->gl_data->glXSwapIntervalMESA ) { - this->gl_data->glXSwapIntervalMESA(this->gl_config.swap_control); + rc = this->gl_data->glXSwapIntervalMESA(this->gl_config.swap_control); } else if ( this->gl_data->glXSwapIntervalSGI ) { - if (this->gl_data->glXSwapIntervalSGI(this->gl_config.swap_control) == 0) { - this->gl_data->sgi_swap_interval = this->gl_config.swap_control; - } + rc = this->gl_data->glXSwapIntervalSGI(this->gl_config.swap_control); + } + if (rc == 0) { + this->gl_data->swap_interval = this->gl_config.swap_control; } } #else @@ -412,11 +413,9 @@ } break; case SDL_GL_SWAP_CONTROL: - if ( this->gl_data->glXGetSwapIntervalMESA ) { - *value = this->gl_data->glXGetSwapIntervalMESA(); - return 0; - } else if ( this->gl_data->glXSwapIntervalSGI ) { - *value = this->gl_data->sgi_swap_interval; + if ( ( this->gl_data->glXSwapIntervalMESA ) || + ( this->gl_data->glXSwapIntervalSGI ) ) { + *value = this->gl_data->swap_interval; return 0; } else { unsupported = 1; @@ -469,7 +468,6 @@ this->gl_data->glXSwapBuffers = NULL; this->gl_data->glXSwapIntervalSGI = NULL; this->gl_data->glXSwapIntervalMESA = NULL; - this->gl_data->glXGetSwapIntervalMESA = NULL; this->gl_config.dll_handle = NULL; this->gl_config.driver_loaded = 0; @@ -530,8 +528,6 @@ (int (*)(int)) GL_LoadFunction(handle, "glXSwapIntervalSGI"); this->gl_data->glXSwapIntervalMESA = (GLint (*)(unsigned)) GL_LoadFunction(handle, "glXSwapIntervalMESA"); - this->gl_data->glXGetSwapIntervalMESA = - (GLint (*)(void)) GL_LoadFunction(handle, "glXGetSwapIntervalMESA"); if ( (this->gl_data->glXChooseVisual == NULL) || (this->gl_data->glXCreateContext == NULL) ||