Mercurial > sdl-ios-xcode
comparison 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 |
comparison
equal
deleted
inserted
replaced
2326:133562468ff2 | 2327:7b53a8401195 |
---|---|
470 XSync(display, False); | 470 XSync(display, False); |
471 | 471 |
472 return (status); | 472 return (status); |
473 } | 473 } |
474 | 474 |
475 /* | |
476 0 is a valid argument to glxSwapIntervalMESA and setting it to 0 | |
477 with the MESA version of the extension will undo the effect of a | |
478 previous call with a value that is greater than zero (or at least | |
479 that is what the FM says. OTOH, 0 is an invalid argument to | |
480 glxSwapIntervalSGI and it returns an error if you call it with 0 as | |
481 an argument. | |
482 */ | |
483 | |
484 static int swapinterval = -1; | |
475 int | 485 int |
476 X11_GL_SetSwapInterval(_THIS, int interval) | 486 X11_GL_SetSwapInterval(_THIS, int interval) |
477 { | 487 { |
478 int status; | 488 int status; |
479 | 489 |
480 if (_this->gl_data->glXSwapIntervalMESA) { | 490 if (_this->gl_data->glXSwapIntervalMESA) { |
481 status = _this->gl_data->glXSwapIntervalMESA(interval); | 491 status = _this->gl_data->glXSwapIntervalMESA(interval); |
482 if (status != 0) { | 492 if (status != 0) { |
483 SDL_SetError("glxSwapIntervalMESA failed"); | 493 SDL_SetError("glxSwapIntervalMESA failed"); |
484 status = -1; | 494 status = -1; |
495 } else { | |
496 swapinterval = interval; | |
485 } | 497 } |
486 } else if (_this->gl_data->glXSwapIntervalSGI) { | 498 } else if (_this->gl_data->glXSwapIntervalSGI) { |
487 status = _this->gl_data->glXSwapIntervalSGI(interval); | 499 status = _this->gl_data->glXSwapIntervalSGI(interval); |
488 if (status != 0) { | 500 if (status != 0) { |
489 SDL_SetError("glxSwapIntervalSGI failed"); | 501 SDL_SetError("glxSwapIntervalSGI failed"); |
490 status = -1; | 502 status = -1; |
503 } else { | |
504 swapinterval = interval; | |
491 } | 505 } |
492 } else { | 506 } else { |
493 SDL_Unsupported(); | 507 SDL_Unsupported(); |
494 status = -1; | 508 status = -1; |
495 } | 509 } |
500 X11_GL_GetSwapInterval(_THIS) | 514 X11_GL_GetSwapInterval(_THIS) |
501 { | 515 { |
502 if (_this->gl_data->glXGetSwapIntervalMESA) { | 516 if (_this->gl_data->glXGetSwapIntervalMESA) { |
503 return _this->gl_data->glXGetSwapIntervalMESA(); | 517 return _this->gl_data->glXGetSwapIntervalMESA(); |
504 } else { | 518 } else { |
505 SDL_Unsupported(); | 519 return swapinterval; |
506 return -1; | |
507 } | 520 } |
508 } | 521 } |
509 | 522 |
510 void | 523 void |
511 X11_GL_SwapWindow(_THIS, SDL_Window * window) | 524 X11_GL_SwapWindow(_THIS, SDL_Window * window) |