From: Kristian Høgsberg Date: Wed, 2 Apr 2008 23:04:57 +0000 (-0400) Subject: Initialize GLX_EXT_texture_from_pixmap attributes correctly. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dc836edf49a08a7fd77fc1f127818b0550558581;p=mesa.git Initialize GLX_EXT_texture_from_pixmap attributes correctly. --- 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; } } }