Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
In testdyngl.c the event type was being anded (&) with SDL_KEYDOWN an…
Browse files Browse the repository at this point in the history
…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 520e247
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
9 changes: 7 additions & 2 deletions src/video/x11/SDL_x11events.c
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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? */
Expand Down
17 changes: 15 additions & 2 deletions src/video/x11/SDL_x11opengl.c
Expand Up @@ -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)
{
Expand All @@ -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();
Expand All @@ -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;
}
}

Expand Down
2 changes: 1 addition & 1 deletion test/testdyngl.c
Expand Up @@ -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;
}

Expand Down

0 comments on commit 520e247

Please sign in to comment.