Fix inverted version checks in check_extra.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 30 Aug 2010 19:22:39 +0000 (12:22 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 30 Aug 2010 19:29:22 +0000 (12:29 -0700)
Previously, if an attribute was enabled by either a specific GL version
or an extension, the check would require -both- to be enabled.  This bug
was not discovered earlier because version checks are currently only ever
used on their own.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/get.c

index 632dadd..a3cb5ec 100644 (file)
@@ -1661,16 +1661,22 @@ check_extra(GLcontext *ctx, const char *func, const struct value_desc *d)
    for (e = d->extra; *e != EXTRA_END; e++)
       switch (*e) {
       case EXTRA_VERSION_30:
-        if (version < 30)
-           return GL_FALSE;
+        if (version >= 30) {
+           total++;
+           enabled++;
+        }
         break;
       case EXTRA_VERSION_31:
-        if (version < 31)
-           return GL_FALSE;
+        if (version >= 31) {
+           total++;
+           enabled++;
+        }
         break;
       case EXTRA_VERSION_32:
-        if (version < 32)
-           return GL_FALSE;
+        if (version >= 32) {
+           total++;
+           enabled++;
+        }
         break;
       case EXTRA_NEW_BUFFERS:
         if (ctx->NewState & _NEW_BUFFERS)