Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

In testdyngl.c the event type was being anded (&) with SDL_KEYDOWN an…

…d 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.
  • Loading branch information
pendletonrc committed Mar 7, 2008
1 parent 28b2b61 commit 520e247805d471c6e831ece3461e0bae6a31df90
Showing with 23 additions and 5 deletions.
  1. +7 −2 src/video/x11/SDL_x11events.c
  2. +15 −2 src/video/x11/SDL_x11opengl.c
  3. +1 −1 test/testdyngl.c
@@ -43,8 +43,9 @@ X11_DispatchEvent(_THIS)
/* 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 @@ X11_DispatchEvent(_THIS)
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? */
@@ -472,6 +472,16 @@ X11_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context)
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 @@ X11_GL_SetSwapInterval(_THIS, int interval)
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 @@ X11_GL_GetSwapInterval(_THIS)
if (_this->gl_data->glXGetSwapIntervalMESA) {
return _this->gl_data->glXGetSwapIntervalMESA();
} else {
SDL_Unsupported();
return -1;
return swapinterval;
}
}

@@ -180,7 +180,7 @@ main(int argc, char *argv[])
SDL_GL_SwapBuffers();

while (SDL_PollEvent(&event)) {
if (event.type & SDL_KEYDOWN)
if (event.type == SDL_KEYDOWN)
done = 1;
}

0 comments on commit 520e247

Please sign in to comment.