From 2771862adcbc163c0a3f3eaaf4b58c658e72f680 Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Tue, 8 Apr 2008 19:17:06 -0400 Subject: [PATCH] Handle fbconfig comparison correctly for attributes the X server didn't send. --- src/glx/x11/dri_glx.c | 9 +++++---- src/glx/x11/glcontextmodes.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c index fd100474523..70873c2cc41 100644 --- a/src/glx/x11/dri_glx.c +++ b/src/glx/x11/dri_glx.c @@ -520,13 +520,13 @@ static const struct { unsigned int attrib, offset; } attribMap[] = { static int scalarEqual(__GLcontextModes *mode, unsigned int attrib, unsigned int value) { - unsigned int driValue; + unsigned int glxValue; int i; for (i = 0; i < ARRAY_SIZE(attribMap); i++) if (attribMap[i].attrib == attrib) { - driValue = *(unsigned int *) ((char *) mode + attribMap[i].offset); - return driValue == value; + glxValue = *(unsigned int *) ((char *) mode + attribMap[i].offset); + return glxValue == GLX_DONT_CARE || glxValue == value; } return GL_TRUE; /* Is a non-existing attribute equal to value? */ @@ -572,7 +572,8 @@ driConfigEqual(const __DRIcoreExtension *core, glxValue |= GLX_TEXTURE_2D_BIT_EXT; if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT) glxValue |= GLX_TEXTURE_RECTANGLE_BIT_EXT; - if (glxValue != modes->bindToTextureTargets) + if (modes->bindToTextureTargets != GLX_DONT_CARE && + glxValue != modes->bindToTextureTargets) return GL_FALSE; break; diff --git a/src/glx/x11/glcontextmodes.c b/src/glx/x11/glcontextmodes.c index 58c548a8fc1..2a8e48d00d4 100644 --- a/src/glx/x11/glcontextmodes.c +++ b/src/glx/x11/glcontextmodes.c @@ -415,7 +415,7 @@ _gl_context_modes_create( unsigned count, size_t minimum_size ) (*next)->bindToTextureRgb = GLX_DONT_CARE; (*next)->bindToTextureRgba = GLX_DONT_CARE; (*next)->bindToMipmapTexture = GLX_DONT_CARE; - (*next)->bindToTextureTargets = 0; + (*next)->bindToTextureTargets = GLX_DONT_CARE; (*next)->yInverted = GLX_DONT_CARE; next = & ((*next)->next); -- 2.30.2