Commit d8da8f7c authored by Bob Pendleton's avatar Bob Pendleton

In testdyngl.c the event type was being anded (&) with SDL_KEYDOWN and if the...

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.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402744
parent 196aaf9b
...@@ -43,8 +43,9 @@ X11_DispatchEvent(_THIS) ...@@ -43,8 +43,9 @@ X11_DispatchEvent(_THIS)
/* filter events catchs XIM events and sends them to the correct /* filter events catchs XIM events and sends them to the correct
handler */ handler */
if (XFilterEvent(&xevent, None) == True) { if (XFilterEvent(&xevent, None) == True) {
#ifdef DEBUG_XEVENTS #if 0
printf("Filtered event of type = 0x%X\n", xevent.type); printf("Filtered event type = %d display = %d window = %d\n",
xevent.type, xevent.xany.display, xevent.xany.window);
#endif #endif
return; return;
} }
...@@ -73,6 +74,10 @@ X11_DispatchEvent(_THIS) ...@@ -73,6 +74,10 @@ X11_DispatchEvent(_THIS)
return; return;
} }
#if 0
printf("type = %d display = %d window = %d\n",
xevent.type, xevent.xany.display, xevent.xany.window);
#endif
switch (xevent.type) { switch (xevent.type) {
/* Gaining mouse coverage? */ /* Gaining mouse coverage? */
......
...@@ -472,6 +472,16 @@ X11_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) ...@@ -472,6 +472,16 @@ X11_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context)
return (status); 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 int
X11_GL_SetSwapInterval(_THIS, int interval) X11_GL_SetSwapInterval(_THIS, int interval)
{ {
...@@ -482,12 +492,16 @@ X11_GL_SetSwapInterval(_THIS, int interval) ...@@ -482,12 +492,16 @@ X11_GL_SetSwapInterval(_THIS, int interval)
if (status != 0) { if (status != 0) {
SDL_SetError("glxSwapIntervalMESA failed"); SDL_SetError("glxSwapIntervalMESA failed");
status = -1; status = -1;
} else {
swapinterval = interval;
} }
} else if (_this->gl_data->glXSwapIntervalSGI) { } else if (_this->gl_data->glXSwapIntervalSGI) {
status = _this->gl_data->glXSwapIntervalSGI(interval); status = _this->gl_data->glXSwapIntervalSGI(interval);
if (status != 0) { if (status != 0) {
SDL_SetError("glxSwapIntervalSGI failed"); SDL_SetError("glxSwapIntervalSGI failed");
status = -1; status = -1;
} else {
swapinterval = interval;
} }
} else { } else {
SDL_Unsupported(); SDL_Unsupported();
...@@ -502,8 +516,7 @@ X11_GL_GetSwapInterval(_THIS) ...@@ -502,8 +516,7 @@ X11_GL_GetSwapInterval(_THIS)
if (_this->gl_data->glXGetSwapIntervalMESA) { if (_this->gl_data->glXGetSwapIntervalMESA) {
return _this->gl_data->glXGetSwapIntervalMESA(); return _this->gl_data->glXGetSwapIntervalMESA();
} else { } else {
SDL_Unsupported(); return swapinterval;
return -1;
} }
} }
......
...@@ -180,7 +180,7 @@ main(int argc, char *argv[]) ...@@ -180,7 +180,7 @@ main(int argc, char *argv[])
SDL_GL_SwapBuffers(); SDL_GL_SwapBuffers();
while (SDL_PollEvent(&event)) { while (SDL_PollEvent(&event)) {
if (event.type & SDL_KEYDOWN) if (event.type == SDL_KEYDOWN)
done = 1; done = 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment