summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2008-04-02 19:04:57 -0400
committerKristian Høgsberg <[email protected]>2008-04-02 19:05:43 -0400
commitdc836edf49a08a7fd77fc1f127818b0550558581 (patch)
tree893fd63c6bb1ef8549799da8e1dacf031b1fdb7b /src
parent28dfb0613b51c51d5f09010ea38d050a9ec817d7 (diff)
Initialize GLX_EXT_texture_from_pixmap attributes correctly.
Diffstat (limited to 'src')
-rw-r--r--src/glx/x11/dri_glx.c5
-rw-r--r--src/mesa/drivers/dri/common/dri_util.c11
-rw-r--r--src/mesa/drivers/dri/common/utils.c9
3 files changed, 11 insertions, 14 deletions
diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
index 31ade0da2a3..004af0bf3c1 100644
--- a/src/glx/x11/dri_glx.c
+++ b/src/glx/x11/dri_glx.c
@@ -508,11 +508,11 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
__ATTRIB(__DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT, optimalPbufferHeight),
#if 0
__ATTRIB(__DRI_ATTRIB_SWAP_METHOD, swapMethod),
+#endif
__ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGB, bindToTextureRgb),
__ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGBA, bindToTextureRgba),
__ATTRIB(__DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE, bindToMipmapTexture),
__ATTRIB(__DRI_ATTRIB_YINVERTED, yInverted),
-#endif
};
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
@@ -564,8 +564,6 @@ driConfigEqual(const __DRIcoreExtension *core,
return GL_FALSE;
break;
-#if 0
- /* The X server doesn't send these, so ignore them for now. */
case __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS:
glxValue = 0;
if (value & __DRI_ATTRIB_TEXTURE_1D_BIT)
@@ -577,7 +575,6 @@ driConfigEqual(const __DRIcoreExtension *core,
if (glxValue != modes->bindToTextureTargets)
return GL_FALSE;
break;
-#endif
default:
if (!scalarEqual(modes, attrib, value))
diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
index daf1d56feb9..b7718f50fd7 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -1006,6 +1006,7 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
__ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGB, bindToTextureRgb),
__ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGBA, bindToTextureRgba),
__ATTRIB(__DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE, bindToMipmapTexture),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS, bindToTextureTargets),
__ATTRIB(__DRI_ATTRIB_YINVERTED, yInverted),
/* The struct field doesn't matter here, these are handled by the
@@ -1013,7 +1014,6 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
* so the iterator includes them though.*/
__ATTRIB(__DRI_ATTRIB_RENDER_TYPE, level),
__ATTRIB(__DRI_ATTRIB_CONFIG_CAVEAT, level),
- __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS, level),
__ATTRIB(__DRI_ATTRIB_SWAP_METHOD, level)
};
@@ -1038,15 +1038,6 @@ driGetConfigAttribIndex(const __DRIconfig *config,
else
*value = 0;
break;
- case __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS:
- *value = 0;
- if (config->modes.bindToTextureTargets & GLX_TEXTURE_1D_BIT_EXT)
- *value |= __DRI_ATTRIB_TEXTURE_1D_BIT;
- if (config->modes.bindToTextureTargets & GLX_TEXTURE_2D_BIT_EXT)
- *value |= __DRI_ATTRIB_TEXTURE_2D_BIT;
- if (config->modes.bindToTextureTargets & GLX_TEXTURE_RECTANGLE_BIT_EXT)
- *value |= __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT;
- break;
case __DRI_ATTRIB_SWAP_METHOD:
break;
diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c
index 1839ef935a1..237d51cf22b 100644
--- a/src/mesa/drivers/dri/common/utils.c
+++ b/src/mesa/drivers/dri/common/utils.c
@@ -713,6 +713,15 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type,
modes->accumAlphaBits) > 0);
modes->haveDepthBuffer = (modes->depthBits > 0);
modes->haveStencilBuffer = (modes->stencilBits > 0);
+
+ modes->bindToTextureRgb = GL_TRUE;
+ modes->bindToTextureRgba = GL_TRUE;
+ modes->bindToMipmapTexture = GL_FALSE;
+ modes->bindToTextureTargets = modes->rgbMode ?
+ __DRI_ATTRIB_TEXTURE_1D_BIT |
+ __DRI_ATTRIB_TEXTURE_2D_BIT |
+ __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT :
+ 0;
}
}
}