diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index fef20147dcf..7123217b0ca 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -505,9 +505,13 @@ struct glx_screen const struct glx_screen_vtable *vtable; /** - * GLX extension string reported by the X-server. + * \name Storage for the GLX vendor, version, and extension strings */ + /*@{ */ const char *serverGLXexts; + const char *serverGLXvendor; + const char *serverGLXversion; + /*@} */ /** * GLX extension string to be reported to applications. This is the @@ -576,17 +580,6 @@ struct glx_display */ /*@{ */ int minorVersion; - /*@} */ - - /** - * \name Storage for the servers GLX vendor and versions strings. - * - * These are the same for all screens on this display. These fields will - * be filled in on demand. - */ - /*@{ */ - const char *serverGLXvendor; - const char *serverGLXversion; /*@} */ /** diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 16594791ca7..ecf94eeb04c 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -1359,17 +1359,16 @@ glXQueryServerString(Display * dpy, int screen, int name) struct glx_display *priv; const char **str; - if (GetGLXPrivScreenConfig(dpy, screen, &priv, &psc) != Success) { return NULL; } switch (name) { case GLX_VENDOR: - str = &priv->serverGLXvendor; + str = &psc->serverGLXvendor; break; case GLX_VERSION: - str = &priv->serverGLXversion; + str = &psc->serverGLXversion; break; case GLX_EXTENSIONS: str = &psc->serverGLXexts; diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 3ba4f220924..91d021e710e 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -280,8 +280,6 @@ glx_display_free(struct glx_display *priv) } FreeScreenConfigs(priv); - free((char *) priv->serverGLXvendor); - free((char *) priv->serverGLXversion); __glxHashDestroy(priv->glXDrawHash); @@ -801,6 +799,8 @@ glx_screen_cleanup(struct glx_screen *psc) psc->visuals = NULL; /* NOTE: just for paranoia */ } free((char *) psc->serverGLXexts); + free((char *) psc->serverGLXvendor); + free((char *) psc->serverGLXversion); } /* @@ -821,12 +821,6 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv) if (!priv->screens) return GL_FALSE; - priv->serverGLXversion = __glXQueryServerString(dpy, 0, GLX_VERSION); - if (priv->serverGLXversion == NULL) { - FreeScreenConfigs(priv); - return GL_FALSE; - } - for (i = 0; i < screens; i++, psc++) { psc = NULL; #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) @@ -892,8 +886,6 @@ __glXInitialize(Display * dpy) dpyPriv->codes = *XInitExtension(dpy, __glXExtensionName); dpyPriv->dpy = dpy; - dpyPriv->serverGLXvendor = 0x0; - dpyPriv->serverGLXversion = 0x0; /* This GLX implementation requires X_GLXQueryExtensionsString * and X_GLXQueryServerString, which are new in GLX 1.1. diff --git a/src/glx/tests/clientinfo_unittest.cpp b/src/glx/tests/clientinfo_unittest.cpp index c81a7dccebe..e9996080160 100644 --- a/src/glx/tests/clientinfo_unittest.cpp +++ b/src/glx/tests/clientinfo_unittest.cpp @@ -43,8 +43,6 @@ public: this->next = 0; this->dpy = dpy; this->minorVersion = minor; - this->serverGLXvendor = 0; - this->serverGLXversion = 0; this->glXDrawHash = 0; this->screens = new glx_screen *[dpy->nscreens];