Mercurial > sdl-ios-xcode
diff src/video/x11/SDL_x11opengl.c @ 2327:7b53a8401195
In testdyngl.c the event type was being anded (&) with SDL_KEYDOWN and if the result was none zero the program was quiting. This is very weird because it was
working earlier this week.
I added some more trace code to SDL_x11events.c
In SDL_X11opengl.c I modified SDL_GL_GetSwapInterval() so that it returns a pretty good value even if you have the SGI swap extension instead of the MESA swap
extension. I just saved the value you set and return it too you.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Fri, 07 Mar 2008 23:57:15 +0000 |
parents | 3202e4826c57 |
children | e1da92da346c 911db724ea24 |
line wrap: on
line diff
--- a/src/video/x11/SDL_x11opengl.c Fri Mar 07 21:01:54 2008 +0000 +++ b/src/video/x11/SDL_x11opengl.c Fri Mar 07 23:57:15 2008 +0000 @@ -472,6 +472,16 @@ return (status); } +/* + 0 is a valid argument to glxSwapIntervalMESA and setting it to 0 + with the MESA version of the extension will undo the effect of a + previous call with a value that is greater than zero (or at least + that is what the FM says. OTOH, 0 is an invalid argument to + glxSwapIntervalSGI and it returns an error if you call it with 0 as + an argument. +*/ + +static int swapinterval = -1; int X11_GL_SetSwapInterval(_THIS, int interval) { @@ -482,12 +492,16 @@ if (status != 0) { SDL_SetError("glxSwapIntervalMESA failed"); status = -1; + } else { + swapinterval = interval; } } else if (_this->gl_data->glXSwapIntervalSGI) { status = _this->gl_data->glXSwapIntervalSGI(interval); if (status != 0) { SDL_SetError("glxSwapIntervalSGI failed"); status = -1; + } else { + swapinterval = interval; } } else { SDL_Unsupported(); @@ -502,8 +516,7 @@ if (_this->gl_data->glXGetSwapIntervalMESA) { return _this->gl_data->glXGetSwapIntervalMESA(); } else { - SDL_Unsupported(); - return -1; + return swapinterval; } }