Commit 08f49bd2 authored by Ryan C. Gordon's avatar Ryan C. Gordon

Apparently glXSwapIntervalEXT() _does_ return a value.

Revision 6 of the GLX_EXT_swap_control spec has a typo; the function
signature they list is void, but the docs talk about a return value, and the
glxext.h headers list "int".
parent b4c91cf7
...@@ -265,7 +265,7 @@ X11_GL_InitExtensions(_THIS) ...@@ -265,7 +265,7 @@ X11_GL_InitExtensions(_THIS)
/* Check for GLX_EXT_swap_control */ /* Check for GLX_EXT_swap_control */
if (HasExtension("GLX_EXT_swap_control", extensions)) { if (HasExtension("GLX_EXT_swap_control", extensions)) {
_this->gl_data->glXSwapIntervalEXT = _this->gl_data->glXSwapIntervalEXT =
(void (*)(Display*,GLXDrawable,int)) (int (*)(Display*,GLXDrawable,int))
X11_GL_GetProcAddress(_this, "glXSwapIntervalEXT"); X11_GL_GetProcAddress(_this, "glXSwapIntervalEXT");
} }
...@@ -538,9 +538,13 @@ X11_GL_SetSwapInterval(_THIS, int interval) ...@@ -538,9 +538,13 @@ X11_GL_SetSwapInterval(_THIS, int interval)
const SDL_WindowData *windowdata = (SDL_WindowData *) const SDL_WindowData *windowdata = (SDL_WindowData *)
_this->current_glwin->driverdata; _this->current_glwin->driverdata;
Window drawable = windowdata->xwindow; Window drawable = windowdata->xwindow;
_this->gl_data->glXSwapIntervalEXT(display, drawable, interval); status = _this->gl_data->glXSwapIntervalEXT(display,drawable,interval);
status = 0; /* always succeeds, apparently. */ if (status != 0) {
SDL_SetError("glxSwapIntervalEXT failed");
status = -1;
} else {
swapinterval = interval; swapinterval = interval;
}
} else if (_this->gl_data->glXSwapIntervalMESA) { } else if (_this->gl_data->glXSwapIntervalMESA) {
status = _this->gl_data->glXSwapIntervalMESA(interval); status = _this->gl_data->glXSwapIntervalMESA(interval);
if (status != 0) { if (status != 0) {
......
...@@ -38,7 +38,7 @@ struct SDL_GLDriverData ...@@ -38,7 +38,7 @@ struct SDL_GLDriverData
Bool(*glXMakeCurrent) (Display*,GLXDrawable,GLXContext); Bool(*glXMakeCurrent) (Display*,GLXDrawable,GLXContext);
void (*glXSwapBuffers) (Display*, GLXDrawable); void (*glXSwapBuffers) (Display*, GLXDrawable);
void (*glXQueryDrawable) (Display*,GLXDrawable,int,unsigned int*); void (*glXQueryDrawable) (Display*,GLXDrawable,int,unsigned int*);
void (*glXSwapIntervalEXT) (Display*,GLXDrawable,int); int (*glXSwapIntervalEXT) (Display*,GLXDrawable,int);
int (*glXSwapIntervalSGI) (int); int (*glXSwapIntervalSGI) (int);
int (*glXSwapIntervalMESA) (int); int (*glXSwapIntervalMESA) (int);
int (*glXGetSwapIntervalMESA) (void); int (*glXGetSwapIntervalMESA) (void);
......
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