Initialize GLX_EXT_texture_from_pixmap attributes correctly.

This commit is contained in:
Kristian Høgsberg
2008-04-02 19:04:57 -04:00
parent 28dfb0613b
commit dc836edf49
3 changed files with 11 additions and 14 deletions
+1 -4
View File
@@ -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))
+1 -10
View File
@@ -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;
+9
View File
@@ -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;
}
}
}