summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRALOVICH, Kristóf <tade60@freemail.hu>2008-11-27 12:53:43 +0100
committerBrian Paul <brian.paul@tungstengraphics.com>2008-11-27 07:20:38 -0700
commit8c2b4b33c583401e2efe02db859d5af31872921d (patch)
tree080c174d22c8398bffe88b48950b724fd9c79f03
parent80d1531ebefe78aaa09a0378d0369963dd925132 (diff)
Revert "glx: xcbified visual and FBConfig choosing"
-rw-r--r--src/glx/x11/glxext.c109
1 files changed, 6 insertions, 103 deletions
diff --git a/src/glx/x11/glxext.c b/src/glx/x11/glxext.c
index 90db81ed2..be6edf9b1 100644
--- a/src/glx/x11/glxext.c
+++ b/src/glx/x11/glxext.c
@@ -465,14 +465,8 @@ __glXInitializeVisualConfigFromTags(__GLcontextModes * config, int count,
}
static __GLcontextModes *
-createConfigsFromProperties(
-#ifdef USE_XCB
- uint32_t* properties,
-#else
- Display *dpy,
-#endif
- int nvisuals, int nprops,
- int screen, GLboolean tagged_only)
+createConfigsFromProperties(Display * dpy, int nvisuals, int nprops,
+ int screen, GLboolean tagged_only)
{
INT32 buf[__GLX_TOTAL_CONFIG], *props;
unsigned prop_size;
@@ -502,11 +496,7 @@ createConfigsFromProperties(
/* Read each config structure and convert it into our format */
m = modes;
for (i = 0; i < nvisuals; i++) {
-#ifdef USE_XCB
- memcpy(props, &properties[i*nprops], prop_size);
-#else
_XRead(dpy, (char *) props, prop_size);
-#endif
/* Older X servers don't send this so we default it here. */
m->drawableType = GLX_WINDOW_BIT;
__glXInitializeVisualConfigFromTags(m, nprops, props,
@@ -524,34 +514,8 @@ createConfigsFromProperties(
static GLboolean
getVisualConfigs(Display * dpy, __GLXdisplayPrivate * priv, int screen)
{
- __GLXscreenConfigs *psc;
-#ifdef USE_XCB
- xcb_connection_t* c = XGetXCBConnection(dpy);
- xcb_glx_get_visual_configs_reply_t* reply = NULL;
- uint32_t* props;
-
- psc = priv->screenConfigs + screen;
- psc->visuals = NULL;
-
- reply = xcb_glx_get_visual_configs_reply(c,
- xcb_glx_get_visual_configs(c,
- screen),
- NULL);
- if(!reply)
- goto out;
-
- props = xcb_glx_get_visual_configs_property_list(reply);
- psc->visuals = createConfigsFromProperties(props,
- reply->num_visuals,
- reply->num_properties,
- screen,
- GL_FALSE);
- free(reply);
-
-out:
- return psc->visuals != NULL;
-#else /* USE_XCB */
xGLXGetVisualConfigsReq *req;
+ __GLXscreenConfigs *psc;
xGLXGetVisualConfigsReply reply;
LockDisplay(dpy);
@@ -574,78 +538,19 @@ out:
out:
UnlockDisplay(dpy);
return psc->visuals != NULL;
-#endif /* USE_XCB */
}
static GLboolean
getFBConfigs(Display * dpy, __GLXdisplayPrivate * priv, int screen)
{
- __GLXscreenConfigs *psc;
-#ifdef USE_XCB
- xcb_connection_t* c = XGetXCBConnection(dpy);
- xcb_glx_get_fb_configs_reply_t* reply_fb = NULL;
- xcb_glx_get_fb_configs_sgix_reply_t* reply_sgix = NULL;
- uint32_t num_fb_configs;
- uint32_t num_properties;
- uint32_t* props;
-
- psc = priv->screenConfigs + screen;
- psc->serverGLXexts = __glXQueryServerString(dpy, priv->majorOpcode,
- screen, GLX_EXTENSIONS);
- psc->configs = NULL;
-
- if (atof(priv->serverGLXversion) >= 1.3) {
- reply_fb = xcb_glx_get_fb_configs_reply(c,
- xcb_glx_get_fb_configs(c,
- screen),
- NULL);
- if (!reply_fb)
- goto out;
-
- num_fb_configs = reply_fb->num_fb_configs;
- num_properties = reply_fb->num_properties * 2;
- props = xcb_glx_get_fb_configs_property_list(reply_fb);
- } else if (strstr(psc->serverGLXexts, "GLX_SGIX_fbconfig") != NULL) {
- reply_sgix = xcb_glx_get_fb_configs_sgix_reply(
- c,
- xcb_glx_get_fb_configs_sgix(c,
- 65540, /* X_GLXvop_GetFBConfigsSGIX */
- 0,
- screen),
- NULL);
-
- if (!reply_sgix)
- goto out;
-
- num_fb_configs = reply_sgix->num_fb_configs;
- num_properties = reply_sgix->num_properties * 2;
- props = xcb_glx_get_fb_configs_sgix_property_list(reply_sgix);
- } else
- goto out;
-
- psc->configs = createConfigsFromProperties(props,
- num_fb_configs,
- num_properties,
- screen,
- GL_TRUE);
-
- if (reply_fb)
- free(reply_fb);
-
- if (reply_sgix)
- free(reply_sgix);
-
-out:
- return psc->configs != NULL;
-#else /* USE_XCB */
xGLXGetFBConfigsReq *fb_req;
xGLXGetFBConfigsSGIXReq *sgi_req;
xGLXVendorPrivateWithReplyReq *vpreq;
xGLXGetFBConfigsReply reply;
+ __GLXscreenConfigs *psc;
psc = priv->screenConfigs + screen;
- psc->serverGLXexts = __glXQueryServerString(dpy, priv->majorOpcode,
- screen, GLX_EXTENSIONS);
+ psc->serverGLXexts = __glXQueryServerString(dpy, priv->majorOpcode, screen, GLX_EXTENSIONS);
LockDisplay(dpy);
@@ -680,7 +585,6 @@ out:
out:
UnlockDisplay(dpy);
return psc->configs != NULL;
-#endif /* USE_XCB */
}
/*
@@ -704,8 +608,7 @@ AllocAndFetchScreenConfigs(Display * dpy, __GLXdisplayPrivate * priv)
memset(psc, 0, screens * sizeof(__GLXscreenConfigs));
priv->screenConfigs = psc;
- priv->serverGLXversion = __glXQueryServerString(dpy, priv->majorOpcode,
- 0, GLX_VERSION);
+ priv->serverGLXversion = __glXQueryServerString(dpy, priv->majorOpcode, 0, GLX_VERSION);
if (priv->serverGLXversion == NULL) {
FreeScreenConfigs(priv);
return GL_FALSE;