mesa: fix cast/conversion for optional code
authorBrian <brian.paul@tungstengraphics.com>
Fri, 26 Sep 2008 01:57:34 +0000 (19:57 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 6 Jan 2009 21:18:57 +0000 (14:18 -0700)
(cherry picked from commit 1e3a44fab068f00378613456036716d0c3772969)

src/mesa/main/get.c
src/mesa/main/get_gen.py

index 19cc4806f9d3fc5100668a70326aef27ab0834ce..80dcea9bcac3ce8a343de27b5eccdcc7fd80c5f1 100644 (file)
@@ -1092,7 +1092,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
          GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
          ASSERT(n <= 100);
          for (i = 0; i < n; i++)
-            params[i] = ENUM_TO_INT(formats[i]);
+            params[i] = ENUM_TO_BOOLEAN(formats[i]);
          }
          break;
       case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT:
index 4c841d05a43b718093802b1c5312c39290439204..f99e0a080dc367451cdd7909fccb0cb91abbc63c 100644 (file)
@@ -50,7 +50,8 @@ TypeStrings = {
 #  - the GL state name, such as GL_CURRENT_COLOR
 #  - the state datatype, one of GLint, GLfloat, GLboolean or GLenum
 #  - list of code fragments to get the state, such as ["ctx->Foo.Bar"]
-#  - optional extra code or empty string
+#  - optional extra code or empty string.  If present, "CONVERSION" will be
+#    replaced by ENUM_TO_FLOAT, INT_TO_FLOAT, etc.
 #  - optional extensions to check, or None
 #
 StateVars = [
@@ -532,7 +533,7 @@ StateVars = [
          GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
          ASSERT(n <= 100);
          for (i = 0; i < n; i++)
-            params[i] = ENUM_TO_INT(formats[i]);""",
+            params[i] = CONVERSION(formats[i]);""",
          ["ARB_texture_compression"] ),
 
        # GL_EXT_compiled_vertex_array
@@ -1078,10 +1079,11 @@ def EmitGetFunction(stateVars, returnType):
                                assert len(extensions) == 4
                                print ('         CHECK_EXT4(%s, %s, %s, %s, "%s");' %
                                           (extensions[0], extensions[1], extensions[2], extensions[3], function))
+               conversion = ConversionFunc(varType, returnType)
                if optionalCode:
+                       optionalCode = string.replace(optionalCode, "CONVERSION", conversion);  
                        print "         {"
                        print "         " + optionalCode
-               conversion = ConversionFunc(varType, returnType)
                n = len(state)
                for i in range(n):
                        if conversion: