X11: Don't create a window and GL context to look up the glX extension string.

It's not necessary.
Ryan C. Gordon 2015-02-17 23:00:46 -05:00
parent f0c061d141
commit f75d6c0915
1 changed files with 1 additions and 30 deletions

View File

@ -312,32 +312,10 @@ static void
X11_GL_InitExtensions(_THIS) X11_GL_InitExtensions(_THIS)
{ {
Display *display = ((SDL_VideoData *) _this->driverdata)->display; Display *display = ((SDL_VideoData *) _this->driverdata)->display;
int screen = DefaultScreen(display); const int screen = DefaultScreen(display);
XVisualInfo *vinfo;
XSetWindowAttributes xattr;
Window w;
GLXContext context;
const char *(*glXQueryExtensionsStringFunc) (Display *, int); const char *(*glXQueryExtensionsStringFunc) (Display *, int);
const char *extensions; const char *extensions;
vinfo = X11_GL_GetVisual(_this, display, screen);
if (!vinfo) {
return;
}
xattr.background_pixel = 0;
xattr.border_pixel = 0;
xattr.colormap =
X11_XCreateColormap(display, RootWindow(display, screen), vinfo->visual,
AllocNone);
w = X11_XCreateWindow(display, RootWindow(display, screen), 0, 0, 32, 32, 0,
vinfo->depth, InputOutput, vinfo->visual,
(CWBackPixel | CWBorderPixel | CWColormap), &xattr);
context = _this->gl_data->glXCreateContext(display, vinfo, NULL, True);
if (context) {
_this->gl_data->glXMakeCurrent(display, w, context);
}
X11_XFree(vinfo);
glXQueryExtensionsStringFunc = glXQueryExtensionsStringFunc =
(const char *(*)(Display *, int)) X11_GL_GetProcAddress(_this, (const char *(*)(Display *, int)) X11_GL_GetProcAddress(_this,
"glXQueryExtensionsString"); "glXQueryExtensionsString");
@ -397,13 +375,6 @@ X11_GL_InitExtensions(_THIS)
if (HasExtension("GLX_EXT_create_context_es2_profile", extensions)) { if (HasExtension("GLX_EXT_create_context_es2_profile", extensions)) {
_this->gl_data->HAS_GLX_EXT_create_context_es2_profile = SDL_TRUE; _this->gl_data->HAS_GLX_EXT_create_context_es2_profile = SDL_TRUE;
} }
if (context) {
_this->gl_data->glXMakeCurrent(display, None, NULL);
_this->gl_data->glXDestroyContext(display, context);
}
X11_XDestroyWindow(display, w);
X11_PumpEvents(_this);
} }
/* glXChooseVisual and glXChooseFBConfig have some small differences in /* glXChooseVisual and glXChooseFBConfig have some small differences in