Mercurial > sdl-ios-xcode
changeset 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 | 133562468ff2 |
children | 91e601d9df8b |
files | src/video/x11/SDL_x11events.c src/video/x11/SDL_x11opengl.c test/testdyngl.c |
diffstat | 3 files changed, 23 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/x11/SDL_x11events.c Fri Mar 07 21:01:54 2008 +0000 +++ b/src/video/x11/SDL_x11events.c Fri Mar 07 23:57:15 2008 +0000 @@ -43,8 +43,9 @@ /* filter events catchs XIM events and sends them to the correct handler */ if (XFilterEvent(&xevent, None) == True) { -#ifdef DEBUG_XEVENTS - printf("Filtered event of type = 0x%X\n", xevent.type); +#if 0 + printf("Filtered event type = %d display = %d window = %d\n", + xevent.type, xevent.xany.display, xevent.xany.window); #endif return; } @@ -73,6 +74,10 @@ return; } +#if 0 + printf("type = %d display = %d window = %d\n", + xevent.type, xevent.xany.display, xevent.xany.window); +#endif switch (xevent.type) { /* Gaining mouse coverage? */
--- 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; } }