mirror of https://github.com/libsdl-org/SDL
Use an opaque struct typedef for SDL_GLContext
Using a struct typedef instead of a void pointer results in extra C typechecks
This commit is contained in:
parent
41532e84cb
commit
031dc0743f
|
@ -200,7 +200,7 @@ typedef enum SDL_FlashOperation
|
||||||
*
|
*
|
||||||
* \sa SDL_GL_CreateContext
|
* \sa SDL_GL_CreateContext
|
||||||
*/
|
*/
|
||||||
typedef void *SDL_GLContext;
|
typedef struct SDL_GLContextState *SDL_GLContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opaque EGL types.
|
* Opaque EGL types.
|
||||||
|
|
|
@ -756,8 +756,8 @@ SDL_GLContext WIN_GL_CreateContext(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make the context current */
|
/* Make the context current */
|
||||||
if (WIN_GL_MakeCurrent(_this, window, temp_context) < 0) {
|
if (WIN_GL_MakeCurrent(_this, window, (SDL_GLContext)temp_context) < 0) {
|
||||||
WIN_GL_DeleteContext(_this, temp_context);
|
WIN_GL_DeleteContext(_this, (SDL_GLContext)temp_context);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -819,12 +819,12 @@ SDL_GLContext WIN_GL_CreateContext(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WIN_GL_MakeCurrent(_this, window, context) < 0) {
|
if (WIN_GL_MakeCurrent(_this, window, (SDL_GLContext)context) < 0) {
|
||||||
WIN_GL_DeleteContext(_this, context);
|
WIN_GL_DeleteContext(_this, (SDL_GLContext)context);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return context;
|
return (SDL_GLContext)context;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WIN_GL_MakeCurrent(SDL_VideoDevice *_this, SDL_Window *window, SDL_GLContext context)
|
int WIN_GL_MakeCurrent(SDL_VideoDevice *_this, SDL_Window *window, SDL_GLContext context)
|
||||||
|
|
|
@ -716,7 +716,8 @@ SDL_GLContext X11_GL_CreateContext(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
XWindowAttributes xattr;
|
XWindowAttributes xattr;
|
||||||
XVisualInfo v, *vinfo;
|
XVisualInfo v, *vinfo;
|
||||||
int n;
|
int n;
|
||||||
GLXContext context = NULL, share_context;
|
SDL_GLContext context = NULL;
|
||||||
|
GLXContext share_context;
|
||||||
const int transparent = (window->flags & SDL_WINDOW_TRANSPARENT) ? SDL_TRUE : SDL_FALSE;
|
const int transparent = (window->flags & SDL_WINDOW_TRANSPARENT) ? SDL_TRUE : SDL_FALSE;
|
||||||
|
|
||||||
if (_this->gl_config.share_with_current_context) {
|
if (_this->gl_config.share_with_current_context) {
|
||||||
|
@ -741,7 +742,7 @@ SDL_GLContext X11_GL_CreateContext(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
_this->gl_config.flags == 0 && !transparent) {
|
_this->gl_config.flags == 0 && !transparent) {
|
||||||
/* Create legacy context */
|
/* Create legacy context */
|
||||||
context =
|
context =
|
||||||
_this->gl_data->glXCreateContext(display, vinfo, share_context, True);
|
(SDL_GLContext)_this->gl_data->glXCreateContext(display, vinfo, share_context, True);
|
||||||
} else {
|
} else {
|
||||||
/* max 14 attributes plus terminator */
|
/* max 14 attributes plus terminator */
|
||||||
int attribs[15] = {
|
int attribs[15] = {
|
||||||
|
@ -813,7 +814,7 @@ SDL_GLContext X11_GL_CreateContext(SDL_VideoDevice *_this, SDL_Window *window)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (framebuffer_config) {
|
if (framebuffer_config) {
|
||||||
context = _this->gl_data->glXCreateContextAttribsARB(display,
|
context = (SDL_GLContext)_this->gl_data->glXCreateContextAttribsARB(display,
|
||||||
framebuffer_config[0],
|
framebuffer_config[0],
|
||||||
share_context, True, attribs);
|
share_context, True, attribs);
|
||||||
X11_XFree(framebuffer_config);
|
X11_XFree(framebuffer_config);
|
||||||
|
|
Loading…
Reference in New Issue