X11: Don't create a window and GL context to look up the glX extension string.
It's not necessary.
parent
f0c061d141
commit
f75d6c0915
|
@ -312,32 +312,10 @@ static void
|
|||
X11_GL_InitExtensions(_THIS)
|
||||
{
|
||||
Display *display = ((SDL_VideoData *) _this->driverdata)->display;
|
||||
int screen = DefaultScreen(display);
|
||||
XVisualInfo *vinfo;
|
||||
XSetWindowAttributes xattr;
|
||||
Window w;
|
||||
GLXContext context;
|
||||
const int screen = DefaultScreen(display);
|
||||
const char *(*glXQueryExtensionsStringFunc) (Display *, int);
|
||||
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 =
|
||||
(const char *(*)(Display *, int)) X11_GL_GetProcAddress(_this,
|
||||
"glXQueryExtensionsString");
|
||||
|
@ -397,13 +375,6 @@ X11_GL_InitExtensions(_THIS)
|
|||
if (HasExtension("GLX_EXT_create_context_es2_profile", extensions)) {
|
||||
_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
|
||||
|
|
Loading…
Reference in New Issue