Initialize GLX_EXT_texture_from_pixmap attributes correctly.
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user