mesa: add support for AlphaToCoverageDitherControlNV
[mesa.git] / src / mapi / glapi / gen / gl_XML.py
index 2854a9a56880765540ec580e7c1c42db8b67d588..7f1edbde9dd7e48748d454a9a0fb07c4e6f3c919 100644 (file)
@@ -431,6 +431,7 @@ class gl_parameter(object):
             self.count = 0
             self.counter = c
 
+        self.marshal_count = element.get("marshal_count")
         self.count_scale = int(element.get( "count_scale", "1" ))
 
         elements = (count * self.count_scale)
@@ -493,7 +494,7 @@ class gl_parameter(object):
 
 
     def is_variable_length(self):
-        return len(self.count_parameter_list) or self.counter
+        return len(self.count_parameter_list) or self.counter or self.marshal_count
 
 
     def is_64_bit(self):
@@ -564,18 +565,27 @@ class gl_parameter(object):
         return c
 
 
-    def size_string(self, use_parens = 1):
-        s = self.size()
-        if self.counter or self.count_parameter_list:
+    def size_string(self, use_parens = 1, marshal = 0):
+        base_size_str = ""
+
+        count = self.get_element_count()
+        if count:
+            base_size_str = "%d * " % count
+
+        base_size_str += "sizeof(%s)" % ( self.get_base_type_string() )
+
+        if self.counter or self.count_parameter_list or (self.marshal_count and marshal):
             list = [ "compsize" ]
 
-            if self.counter and self.count_parameter_list:
+            if self.marshal_count and marshal:
+                list = [ self.marshal_count ]
+            elif self.counter and self.count_parameter_list:
                 list.append( self.counter )
             elif self.counter:
                 list = [ self.counter ]
 
-            if s > 1:
-                list.append( str(s) )
+            if self.size() > 1:
+                list.append( base_size_str )
 
             if len(list) > 1 and use_parens :
                 return "safe_mul(%s)" % ", ".join(list)
@@ -585,7 +595,7 @@ class gl_parameter(object):
         elif self.is_image():
             return "compsize"
         else:
-            return str(s)
+            return base_size_str
 
 
     def format_string(self):