Enable the generation of server-side __glGetBooleanv_size and related
functions. There are two parts to this. First, a size element with a name
"Get" is shorthand for having four separate size elements with names
"GetIntegerv", "GetDoublev", "GetFloatv", and "GetBooleanv". Additionally,
a count of "?" is treated specially. This causes a call to a handcoded
function named "__gl<base name>_variable_size". This is *only* needed to
support GL_COMPRESSED_TEXTURE_FORMATS. That enum can return a variable
number of values depending how many compressed texture formats are supported
by the implementation.
Fix a problem with glGetProgram{Local,Env}Parameter[df]vARB,
glAreProgramsResidentNV, and glGetVertexAttribivNV. These changes only
affect code generated for the server-side.
The changes to enum.c are caused by enums added for the server-side
__glGetBooleanv_size functions.
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 1c4e734..04890af 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -91,9 +91,10 @@
glItem.__init__(self, name, enum_name, context)
temp = attrs.get('count', None)
- if temp == None:
- self.default_count = 0
- else:
+ self.default_count = 0
+ if temp == "?":
+ self.default_count = -1
+ elif temp:
try:
c = int(temp)
except Exception,e: