diff options
Diffstat (limited to 'mesalib/src/mapi/glapi')
22 files changed, 621 insertions, 399 deletions
diff --git a/mesalib/src/mapi/glapi/gen/.gitignore b/mesalib/src/mapi/glapi/gen/.gitignore new file mode 100644 index 000000000..343198fd0 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/.gitignore @@ -0,0 +1,18 @@ +dispatch.h +enums.c +indirect.c +indirect.h +indirect_dispatch.c +indirect_dispatch.h +indirect_dispatch_swap.c +indirect_init.c +indirect_reqsize.c +indirect_reqsize.h +indirect_size.c +indirect_size.h +indirect_size_get.c +indirect_size_get.h +indirect_table.c +mapi_abi.py +remap_helper.h +glfunctions.h diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml index 5078f7b6d..11c5a186c 100644 --- a/mesalib/src/mapi/glapi/gen/GL3x.xml +++ b/mesalib/src/mapi/glapi/gen/GL3x.xml @@ -30,8 +30,12 @@ <enum name="RGB16F" value="0x881B"/> <enum name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD"/> <enum name="MAX_ARRAY_TEXTURE_LAYERS" value="0x88FF"/> - <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904"/> - <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905"/> + <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904"> + <size name="Get" mode="get"/> + </enum> + <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905"> + <size name="Get" mode="get"/> + </enum> <enum name="CLAMP_VERTEX_COLOR" value="0x891A"/> <enum name="CLAMP_FRAGMENT_COLOR" value="0x891B"/> <enum name="CLAMP_READ_COLOR" value="0x891C"/> diff --git a/mesalib/src/mapi/glapi/gen/gen.bat b/mesalib/src/mapi/glapi/gen/gen.bat new file mode 100644 index 000000000..aec698a80 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.bat @@ -0,0 +1,26 @@ +echo on +glx_server_table.py -f gl_and_glX_API.xml > indirect_table.c +glx_proto_size.py -m size_h --only-set -h _INDIRECT_SIZE_H_ > indirect_size.h +glx_proto_size.py -m size_c --only-set > indirect_size.c +glx_proto_size.py -m size_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_size_get.h +glx_proto_size.py -m size_c --only-get > indirect_size_get.c +glx_proto_size.py -m reqsize_c > indirect_reqsize.c +glx_proto_size.py -m reqsize_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_reqsize.h +glx_proto_recv.py -m dispatch_c > indirect_dispatch.c +glx_proto_recv.py -m dispatch_c -s > indirect_dispatch_swap.c +glx_proto_recv.py -m dispatch_h -f gl_and_glX_API.xml -s > indirect_dispatch.h +gl_table.py -f gl_and_es_API.xml > glapitable.h +gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c +gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h +rem gl_offsets.py > glapioffsets.h +gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h +gl_procs.py -f gl_and_es_API.xml > glprocs.h + +glX_proto_send.py -m proto > indirect.c +glX_proto_send.py -m init_h > indirect.h +glX_proto_send.py -m init_c > indirect_init.c + +gl_enums.py -f gl_and_es_API.xml > enums.c +remap_helper.py -f gl_and_es_API.xml > remap_helper.h +copy ..\..\mapi_abi.py +mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h diff --git a/mesalib/src/mapi/glapi/gen/gen.sh b/mesalib/src/mapi/glapi/gen/gen.sh new file mode 100755 index 000000000..0b72cdf62 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.sh @@ -0,0 +1,27 @@ +./glX_server_table.py -f gl_and_glX_API.xml > indirect_table.c +./glX_proto_size.py -m size_h --only-set -h _INDIRECT_SIZE_H_ > indirect_size.h +./glX_proto_size.py -m size_c --only-set > indirect_size.c +./glX_proto_size.py -m size_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_size_get.h +./glX_proto_size.py -m size_c --only-get > indirect_size_get.c +./glX_proto_size.py -m reqsize_c > indirect_reqsize.c +./glX_proto_size.py -m reqsize_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_reqsize.h +./glX_proto_recv.py -m dispatch_c > indirect_dispatch.c +./glX_proto_recv.py -m dispatch_c -s > indirect_dispatch_swap.c +./glX_proto_recv.py -m dispatch_h -f gl_and_glX_API.xml -s > indirect_dispatch.h +./gl_table.py -f gl_and_es_API.xml > glapitable.h +./gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c +./gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h +./gl_functions.py -f gl_and_es_API.xml > glfunctions.h +# ./gl_offsets.py > glapioffsets.h +./gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h +./gl_procs.py -f gl_and_es_API.xml > glprocs.h + +./glX_proto_send.py -m proto > indirect.c +./glX_proto_send.py -m init_h > indirect.h +./glX_proto_send.py -m init_c > indirect_init.c + +./gl_enums.py -f gl_and_es_API.xml > enums.c +./remap_helper.py -f gl_and_es_API.xml > remap_helper.h +cp ../../mapi_abi.py . +./mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h + diff --git a/mesalib/src/mapi/glapi/gen/glX_API.xml b/mesalib/src/mapi/glapi/gen/glX_API.xml index 926d8791b..62ad9ebbd 100644 --- a/mesalib/src/mapi/glapi/gen/glX_API.xml +++ b/mesalib/src/mapi/glapi/gen/glX_API.xml @@ -217,18 +217,4 @@ </function> </category> -<category name="GLX_ARB_create_context" number="56" window_system="glX"> - <function name="SetClientInfoARB"> - <glx sop="33"/> - </function> - - <function name="CreateContextAttribsARB"> - <glx sop="34"/> - </function> - - <function name="SetClientInfo2ARB"> - <glx sop="35"/> - </function> -</category> - </OpenGLAPI> diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py index d076409c2..84a404ce3 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py @@ -78,6 +78,11 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): def printRealHeader(self): + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#endif' + print '#include "glheader.h"' + print '' print '#include <X11/Xmd.h>' print '#include <GL/gl.h>' print '#include <GL/glxproto.h>' @@ -277,7 +282,10 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): if param.is_image(): offset = f.offset_of( param.name ) - print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset) + if cond: + print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset) + else: + print '%s %s const %s = (%s) (pc + %s);' % (indent, type_string, param.name, type_string, offset) if param.depth: print '%s __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);' % (indent) @@ -364,8 +372,9 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): else: for param in f.parameterIterateGlxSend(): if param.count_parameter_list: - print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset) - need_blank = 1 + if param.size() != 1 or self.do_swap: + print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset) + need_blank = 1 if need_blank: @@ -440,6 +449,8 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto): elif param.counter: print ' %s answerBuffer[200];' % (answer_type) print ' %s %s = __glXGetAnswerBuffer(cl, %s%s, answerBuffer, sizeof(answerBuffer), %u);' % (param.type_string(), param.name, param.counter, size_scale, type_size) + print ' if (%s == NULL)' % (param.name) + print ' return BadAlloc;' answer_string = param.name answer_count = param.counter elif c >= 1: diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_send.py b/mesalib/src/mapi/glapi/gen/glX_proto_send.py index 1419a7cc1..1419a7cc1 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_send.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_send.py diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py index fdb355d4d..26a2fdf36 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py @@ -289,7 +289,7 @@ class glx_server_enum_function(glx_enum_function): print '' print ' compsize = __gl%s_size(%s);' % (f.name, string.join(f.count_parameter_list, ",")) p = f.variable_length_parameter() - print ' return __GLX_PAD(%s);' % (p.size_string()) + print ' return safe_pad(%s);' % (p.size_arg_string()) print '}' print '' @@ -313,7 +313,14 @@ class PrintGlxSizeStubs_common(gl_XML.gl_print_base): class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common): def printRealHeader(self): print '' - print '#include <X11/Xfuncproto.h>' + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#else' + print '' + print '#include "glheader.h"' + print '' + print '#endif' + print '' print '#include <GL/gl.h>' if self.emit_get: print '#include "indirect_size_get.h"' @@ -426,7 +433,7 @@ class PrintGlxReqSize_h(PrintGlxReqSize_common): def printBody(self, api): for func in api.functionIterateGlx(): if not func.ignore and func.has_variable_size_request(): - print 'extern PURE _X_HIDDEN int __glX%sReqSize(const GLbyte *pc, Bool swap);' % (func.name) + print 'extern PURE _X_HIDDEN int __glX%sReqSize(const GLbyte *pc, Bool swap, int reqlen);' % (func.name) class PrintGlxReqSize_c(PrintGlxReqSize_common): @@ -444,26 +451,32 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): def printRealHeader(self): print '' + print '#ifdef HAVE_DIX_CONFIG_H' + print '#include <dix-config.h>' + print '#else' + print '' + print '#include "glheader.h"' + print '' + print '#endif' + print '' print '#include <GL/gl.h>' print '#include "glxserver.h"' print '#include "glxbyteorder.h"' print '#include "indirect_size.h"' print '#include "indirect_reqsize.h"' print '' - print '#define __GLX_PAD(x) (((x) + 3) & ~3)' - print '' print '#if defined(__CYGWIN__) || defined(__MINGW32__)' print '# undef HAVE_ALIAS' print '#endif' print '#ifdef HAVE_ALIAS' print '# define ALIAS2(from,to) \\' - print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \\' + print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\' print ' __attribute__ ((alias( # to )));' print '# define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )' print '#else' print '# define ALIAS(from,to) \\' - print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \\' - print ' { return __glX ## to ## ReqSize( pc, swap ); }' + print ' GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap, int reqlen ) \\' + print ' { return __glX ## to ## ReqSize( pc, swap, reqlen ); }' print '#endif' print '' print '' @@ -545,7 +558,7 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): def common_func_print_just_header(self, f): print 'int' - print '__glX%sReqSize( const GLbyte * pc, Bool swap )' % (f.name) + print '__glX%sReqSize( const GLbyte * pc, Bool swap, int reqlen )' % (f.name) print '{' @@ -603,6 +616,7 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): plus = '' size = '' param_offsets = {} + plusAdded=0 # Calculate the offset of each counter parameter and the # size string for the variable length parameter(s). While @@ -618,8 +632,10 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): if s == 0: s = 1 sig += "(%u,%u)" % (f.offset_of(p.counter), s) - size += '%s%s' % (plus, p.size_string()) - plus = ' + ' + if len(plus)!=0: + plusAdded=1 + size += '%s%s' % (plus, p.size_arg_string()) + plus = ', ' # If the calculated signature matches a function that has @@ -643,7 +659,10 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common): self.common_emit_fixups(fixup) print '' - print ' return __GLX_PAD(%s);' % (size) + if plusAdded: + print ' return safe_pad(safe_add(%s));' % (size) + else: + print ' return safe_pad(%s);' % (size) print '}' print '' diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py index 47aa11116..fa2036ffa 100644..100755 --- a/mesalib/src/mapi/glapi/gen/glX_server_table.py +++ b/mesalib/src/mapi/glapi/gen/glX_server_table.py @@ -357,6 +357,10 @@ class PrintGlxDispatchTables(glX_proto_common.glx_print_proto): def printRealHeader(self): + print '#ifndef HAVE_DIX_CONFIG_H' + print '#include "glheader.h"' + print '#endif' + print '' print '#include <inttypes.h>' print '#include "glxserver.h"' print '#include "glxext.h"' diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml index 1ceb60a0f..a640241e9 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_API.xml +++ b/mesalib/src/mapi/glapi/gen/gl_API.xml @@ -183,18 +183,18 @@ <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_LOCAL_VIEWER" count="1" value="0x0B51"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_TWO_SIDE" count="1" value="0x0B52"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="LIGHT_MODEL_AMBIENT" count="4" value="0x0B53"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="SHADE_MODEL" count="1" value="0x0B54"> @@ -213,33 +213,33 @@ <size name="Get" mode="get"/> </enum> <enum name="FOG_INDEX" count="1" value="0x0B61"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_DENSITY" count="1" value="0x0B62"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_START" count="1" value="0x0B63"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_END" count="1" value="0x0B64"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_MODE" count="1" value="0x0B65"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="FOG_COLOR" count="4" value="0x0B66"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="DEPTH_RANGE" count="2" value="0x0B70"> @@ -531,8 +531,8 @@ <size name="Get" mode="get"/> </enum> <enum name="ALPHA_SCALE" count="1" value="0x0D1C"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="Get" mode="get"/> @@ -625,93 +625,93 @@ <size name="Get" mode="get"/> </enum> <enum name="MAP1_COLOR_4" count="4" value="0x0D90"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_INDEX" count="1" value="0x0D91"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_NORMAL" count="3" value="0x0D92"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_1" count="1" value="0x0D93"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_2" count="2" value="0x0D94"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_3" count="3" value="0x0D95"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_TEXTURE_COORD_4" count="4" value="0x0D96"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_VERTEX_3" count="3" value="0x0D97"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_VERTEX_4" count="4" value="0x0D98"> - <size name="Map1d"/> - <size name="Map1f"/> + <size name="Map1d" mode="get"/> + <size name="Map1f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_COLOR_4" count="4" value="0x0DB0"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_INDEX" count="1" value="0x0DB1"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_NORMAL" count="3" value="0x0DB2"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_1" count="1" value="0x0DB3"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_2" count="2" value="0x0DB4"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_3" count="3" value="0x0DB5"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_TEXTURE_COORD_4" count="4" value="0x0DB6"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_VERTEX_3" count="3" value="0x0DB7"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP2_VERTEX_4" count="4" value="0x0DB8"> - <size name="Map2d"/> - <size name="Map2f"/> + <size name="Map2d" mode="get"/> + <size name="Map2f" mode="get"/> <size name="Get" count="1" mode="get"/> </enum> <enum name="MAP1_GRID_DOMAIN" count="2" value="0x0DD0"> @@ -754,8 +754,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="TEXTURE_BORDER_COLOR" count="4" value="0x1004"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -763,111 +763,111 @@ <enum name="FASTEST" value="0x1101"/> <enum name="NICEST" value="0x1102"/> <enum name="AMBIENT" count="4" value="0x1200"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="DIFFUSE" count="4" value="0x1201"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPECULAR" count="4" value="0x1202"> - <size name="Materialfv"/> - <size name="Materialiv"/> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="POSITION" count="4" value="0x1203"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_DIRECTION" count="3" value="0x1204"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_EXPONENT" count="1" value="0x1205"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="SPOT_CUTOFF" count="1" value="0x1206"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="CONSTANT_ATTENUATION" count="1" value="0x1207"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="LINEAR_ATTENUATION" count="1" value="0x1208"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="QUADRATIC_ATTENUATION" count="1" value="0x1209"> - <size name="Lightfv"/> - <size name="Lightiv"/> + <size name="Lightfv" mode="get"/> + <size name="Lightiv" mode="get"/> <size name="GetLightfv" mode="get"/> <size name="GetLightiv" mode="get"/> </enum> <enum name="COMPILE" value="0x1300"/> <enum name="COMPILE_AND_EXECUTE" value="0x1301"/> <enum name="BYTE" count="1" value="0x1400"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_BYTE" count="1" value="0x1401"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="SHORT" count="2" value="0x1402"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_SHORT" count="2" value="0x1403"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="INT" count="4" value="0x1404"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="UNSIGNED_INT" count="4" value="0x1405"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="FLOAT" count="4" value="0x1406"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="2_BYTES" count="2" value="0x1407"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="3_BYTES" count="3" value="0x1408"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="4_BYTES" count="4" value="0x1409"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="HALF_FLOAT" count="2" value="0x140B"> - <size name="CallLists"/> + <size name="CallLists" mode="get"/> </enum> <enum name="CLEAR" value="0x1500"/> <enum name="AND" value="0x1501"/> @@ -886,26 +886,26 @@ <enum name="NAND" value="0x150E"/> <enum name="SET" value="0x150F"/> <enum name="EMISSION" count="4" value="0x1600"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="SHININESS" count="1" value="0x1601"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="AMBIENT_AND_DIFFUSE" count="4" value="0x1602"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> <enum name="COLOR_INDEXES" count="3" value="0x1603"> - <size name="Materialfv"/> - <size name="Materialiv"/> + <size name="Materialfv" mode="get"/> + <size name="Materialiv" mode="get"/> <size name="GetMaterialfv" mode="get"/> <size name="GetMaterialiv" mode="get"/> </enum> @@ -950,14 +950,14 @@ <enum name="MODULATE" value="0x2100"/> <enum name="DECAL" value="0x2101"/> <enum name="TEXTURE_ENV_MODE" count="1" value="0x2200"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="TEXTURE_ENV_COLOR" count="4" value="0x2201"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -966,25 +966,25 @@ <enum name="OBJECT_LINEAR" value="0x2401"/> <enum name="SPHERE_MAP" value="0x2402"/> <enum name="TEXTURE_GEN_MODE" count="1" value="0x2500"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> </enum> <enum name="OBJECT_PLANE" count="4" value="0x2501"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> </enum> <enum name="EYE_PLANE" count="4" value="0x2502"> - <size name="TexGendv"/> - <size name="TexGenfv"/> - <size name="TexGeniv"/> + <size name="TexGendv" mode="get"/> + <size name="TexGenfv" mode="get"/> + <size name="TexGeniv" mode="get"/> <size name="GetTexGendv" mode="get"/> <size name="GetTexGenfv" mode="get"/> <size name="GetTexGeniv" mode="get"/> @@ -996,26 +996,26 @@ <enum name="NEAREST_MIPMAP_LINEAR" value="0x2702"/> <enum name="LINEAR_MIPMAP_LINEAR" value="0x2703"/> <enum name="TEXTURE_MAG_FILTER" count="1" value="0x2800"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MIN_FILTER" count="1" value="0x2801"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_S" count="1" value="0x2802"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_T" count="1" value="0x2803"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3121,8 +3121,8 @@ <enum name="PROXY_TEXTURE_1D" value="0x8063"/> <enum name="PROXY_TEXTURE_2D" value="0x8064"/> <enum name="TEXTURE_PRIORITY" count="1" value="0x8066"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3467,8 +3467,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="TEXTURE_WRAP_R" count="1" value="0x8072"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -3492,32 +3492,32 @@ </enum> <enum name="CLAMP_TO_EDGE" value="0x812F"/> <enum name="TEXTURE_MIN_LOD" count="1" value="0x813A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_LOD" count="1" value="0x813B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_BASE_LEVEL" count="1" value="0x813C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_LEVEL" count="1" value="0x813D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="LIGHT_MODEL_COLOR_CONTROL" count="1" value="0x81F8"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="SINGLE_COLOR" value="0x81F9"/> @@ -3569,26 +3569,26 @@ </enum> <enum name="CONVOLUTION_BORDER_MODE" count="1" value="0x8013"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_BORDER_COLOR" count="4" value="0x8154"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_SCALE" count="4" value="0x8014"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_BIAS" count="4" value="0x8015"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -3736,14 +3736,14 @@ <enum name="PROXY_POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D5"/> <enum name="COLOR_TABLE_SCALE" count="4" value="0x80D6"> - <size name="ColorTableParameterfv"/> - <size name="ColorTableParameteriv"/> + <size name="ColorTableParameterfv" mode="get"/> + <size name="ColorTableParameteriv" mode="get"/> <size name="GetColorTableParameterfv" mode="get"/> <size name="GetColorTableParameteriv" mode="get"/> </enum> <enum name="COLOR_TABLE_BIAS" count="4" value="0x80D7"> - <size name="ColorTableParameterfv"/> - <size name="ColorTableParameteriv"/> + <size name="ColorTableParameterfv" mode="get"/> + <size name="ColorTableParameteriv" mode="get"/> <size name="GetColorTableParameterfv" mode="get"/> <size name="GetColorTableParameteriv" mode="get"/> </enum> @@ -4221,92 +4221,92 @@ <enum name="CLAMP_TO_BORDER" value="0x812D"/> <enum name="COMBINE" value="0x8570"/> <enum name="COMBINE_RGB" count="1" value="0x8571"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="COMBINE_ALPHA" count="1" value="0x8572"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE0_RGB" count="1" value="0x8580"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE1_RGB" count="1" value="0x8581"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE2_RGB" count="1" value="0x8582"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE0_ALPHA" count="1" value="0x8588"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE1_ALPHA" count="1" value="0x8589"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE2_ALPHA" count="1" value="0x858A"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND0_RGB" count="1" value="0x8590"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND1_RGB" count="1" value="0x8591"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND2_RGB" count="1" value="0x8592"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND0_ALPHA" count="1" value="0x8598"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND1_ALPHA" count="1" value="0x8599"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND2_ALPHA" count="1" value="0x859A"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="RGB_SCALE" count="1" value="0x8573"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -4689,24 +4689,24 @@ <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MIN" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_SIZE_MAX" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="GENERATE_MIPMAP" count="1" value="0x8191"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -4755,10 +4755,10 @@ </enum> <enum name="TEXTURE_FILTER_CONTROL" value="0x8500"/> <enum name="TEXTURE_LOD_BIAS" count="1" value="0x8501"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> @@ -4771,20 +4771,20 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="DEPTH_TEXTURE_MODE" count="1" value="0x884B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_MODE" count="1" value="0x884C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_FUNC" count="1" value="0x884D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -5347,8 +5347,8 @@ <enum name="SHADING_LANGUAGE_VERSION" value="0x8B8C"/> <enum name="CURRENT_PROGRAM" value="0x8B8D"/> <enum name="POINT_SPRITE_COORD_ORIGIN" count="1" value="0x8CA0"> - <size name="PointParameterfv"/> - <size name="PointParameteriv"/> + <size name="PointParameterfv" mode="get"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="LOWER_LEFT" value="0x8CA1"/> <enum name="UPPER_LEFT" value="0x8CA2"/> @@ -6476,16 +6476,16 @@ <category name="GL_ARB_point_parameters" number="14"> <enum name="POINT_SIZE_MIN_ARB" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_ARB" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfARB" alias="PointParameterf"> @@ -6791,8 +6791,8 @@ <size name="GetTexLevelParameteriv" mode="get"/> </enum> <enum name="DEPTH_TEXTURE_MODE_ARB" count="1" value="0x884B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -6800,14 +6800,14 @@ <category name="GL_ARB_shadow" number="23"> <enum name="TEXTURE_COMPARE_MODE_ARB" count="1" value="0x884C"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_FUNC_ARB" count="1" value="0x884D"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -6816,8 +6816,8 @@ <category name="GL_ARB_shadow_ambient" number="24"> <enum name="TEXTURE_COMPARE_FAIL_VALUE_ARB" count="1" value="0x80BF"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -8068,8 +8068,8 @@ <size name="Get" mode="get"/> </enum> <enum name="COORD_REPLACE_ARB" count="1" value="0x8862"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -8735,20 +8735,20 @@ <category name="GL_EXT_convolution" number="12"> <enum name="CONVOLUTION_BORDER_MODE_EXT" count="1" value="0x8013"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_SCALE_EXT" count="4" value="0x8014"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> <enum name="CONVOLUTION_FILTER_BIAS_EXT" count="4" value="0x8015"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -9269,8 +9269,8 @@ <category name="GL_SGIS_generate_mipmap" number="32"> <enum name="GENERATE_MIPMAP_SGIS" count="1" value="0x8191"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9280,26 +9280,26 @@ <category name="GL_SGIX_clipmap" number="33"> <enum name="LINEAR_CLIPMAP_LINEAR_SGIX" value="0x8170"/> <enum name="TEXTURE_CLIPMAP_CENTER_SGIX" count="2" value="0x8171"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_FRAME_SGIX" count="1" value="0x8172"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_OFFSET_SGIX" count="2" value="0x8173"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" count="3" value="0x8174"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9314,14 +9314,14 @@ <category name="GL_SGIX_shadow" number="34"> <enum name="TEXTURE_COMPARE_SGIX" count="1" value="0x819A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_COMPARE_OPERATOR_SGIX" count="1" value="0x819B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9398,16 +9398,16 @@ <category name="GL_EXT_point_parameters" number="54"> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfEXT" alias="PointParameterf"> @@ -9456,14 +9456,14 @@ <category name="GL_SGIX_texture_scale_bias" number="56"> <enum name="POST_TEXTURE_FILTER_BIAS_SGIX" count="4" value="0x8179"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="POST_TEXTURE_FILTER_SCALE_SGIX" count="4" value="0x817A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9523,8 +9523,8 @@ <category name="GL_SGIX_fog_offset" number="65"> <enum name="FOG_OFFSET_SGIX" value="0x8198"/> <enum name="FOG_OFFSET_VALUE_SGIX" count="1" value="0x8199"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> </enum> </category> @@ -9571,8 +9571,8 @@ <enum name="CONSTANT_BORDER_HP" value="0x8151"/> <enum name="REPLICATE_BORDER_HP" value="0x8153"/> <enum name="CONVOLUTION_BORDER_COLOR_HP" count="4" value="0x8154"> - <size name="ConvolutionParameterfv"/> - <size name="ConvolutionParameteriv"/> + <size name="ConvolutionParameterfv" mode="get"/> + <size name="ConvolutionParameteriv" mode="get"/> <size name="GetConvolutionParameterfv" mode="get"/> <size name="GetConvolutionParameteriv" mode="get"/> </enum> @@ -9738,20 +9738,20 @@ <category name="GL_SGIX_texture_lod_bias" number="84"> <enum name="TEXTURE_LOD_BIAS_S_SGIX" count="1" value="0x818E"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_LOD_BIAS_T_SGIX" count="1" value="0x818F"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_LOD_BIAS_R_SGIX" count="1" value="0x8190"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -9766,8 +9766,8 @@ <category name="GL_SGIX_shadow_ambient" number="90"> <enum name="SHADOW_AMBIENT_SGIX" count="1" value="0x80BF"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -10114,8 +10114,8 @@ <category name="GL_EXT_separate_specular_color" number="144"> <enum name="LIGHT_MODEL_COLOR_CONTROL_EXT" count="1" value="0x81F8"> - <size name="LightModelfv"/> - <size name="LightModeliv"/> + <size name="LightModelfv" mode="get"/> + <size name="LightModeliv" mode="get"/> </enum> <enum name="SINGLE_COLOR_EXT" value="0x81F9"/> <enum name="SEPARATE_SPECULAR_COLOR_EXT" value="0x81FA"/> @@ -10891,8 +10891,8 @@ <category name="GL_EXT_texture_lod_bias" number="186"> <enum name="TEXTURE_LOD_BIAS_EXT" count="1" value="0x8501"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -10900,8 +10900,8 @@ <category name="GL_EXT_texture_filter_anisotropic" number="187"> <enum name="TEXTURE_MAX_ANISOTROPY_EXT" count="1" value="0x84FE"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -11060,8 +11060,8 @@ <category name="GL_NV_fog_distance" number="192"> <enum name="FOG_DISTANCE_MODE_NV" count="1" value="0x855A"> - <size name="Fogfv"/> - <size name="Fogiv"/> + <size name="Fogfv" mode="get"/> + <size name="Fogiv" mode="get"/> <size name="Get" mode="get"/> </enum> <enum name="EYE_RADIAL_NV" value="0x855B"/> @@ -11075,26 +11075,26 @@ <category name="GL_NV_texture_env_combine4" number="195"> <enum name="COMBINE4_NV" value="0x8503"/> <enum name="SOURCE3_RGB_NV" count="1" value="0x8583"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="SOURCE3_ALPHA_NV" count="1" value="0x858B"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND3_RGB_NV" count="1" value="0x8593"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="OPERAND3_ALPHA_NV" count="1" value="0x859B"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> @@ -12132,20 +12132,20 @@ <category name="GL_SGIX_texture_coordinate_clamp" number="235"> <enum name="TEXTURE_MAX_CLAMP_S_SGIX" count="1" value="0x8369"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_CLAMP_T_SGIX" count="1" value="0x836A"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> <enum name="TEXTURE_MAX_CLAMP_R_SGIX" count="1" value="0x836B"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -12184,8 +12184,8 @@ <enum name="DU8DV8_ATI" value="0x877A"/> <enum name="BUMP_ENVMAP_ATI" value="0x877B"/> <enum name="BUMP_TARGET_ATI" count="1" value="0x877C"> - <size name="TexEnviv"/> - <size name="TexEnvfv"/> + <size name="TexEnviv" mode="get"/> + <size name="TexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> </enum> @@ -12490,30 +12490,30 @@ added for this extension. --> <enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> - <size name="PointParameteriv"/> + <size name="PointParameteriv" mode="get"/> </enum> <enum name="POINT_SPRITE_NV" count="1" value="0x8861"> <size name="Get" mode="get"/> </enum> <enum name="COORD_REPLACE_NV" count="1" value="0x8862"> - <size name="TexEnvfv"/> - <size name="TexEnviv"/> + <size name="TexEnvfv" mode="get"/> + <size name="TexEnviv" mode="get"/> <size name="GetTexEnvfv" mode="get"/> <size name="GetTexEnviv" mode="get"/> </enum> <enum name="POINT_SPRITE_R_MODE_NV" count="1" value="0x8863"> - <size name="PointParameterfv"/> - <size name="PointParameteriv"/> + <size name="PointParameterfv" mode="get"/> + <size name="PointParameteriv" mode="get"/> <size name="Get" mode="get"/> </enum> @@ -12647,8 +12647,8 @@ <category name="GL_NV_texture_expand_normal" number="286"> <enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F"> - <size name="TexParameterfv"/> - <size name="TexParameteriv"/> + <size name="TexParameterfv" mode="get"/> + <size name="TexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> </enum> @@ -12816,22 +12816,22 @@ <category name="GL_APPLE_texture_range" number="367"> <enum name="TEXTURE_STORAGE_HINT_APPLE" count="1" value="0x85BC"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> <size name="GetTexParameteriv" mode="get"/> <size name="GetTexParameterfv" mode="get"/> </enum> <enum name="STORAGE_PRIVATE_APPLE" count="1" value="0x85BD"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="STORAGE_CACHED_APPLE" count="1" value="0x85BE"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="STORAGE_SHARED_APPLE" count="1" value="0x85BF"> - <size name="TexParameteriv"/> - <size name="TexParameterfv"/> + <size name="TexParameteriv" mode="get"/> + <size name="TexParameterfv" mode="get"/> </enum> <enum name="TEXTURE_RANGE_LENGTH_APPLE" count="1" value="0x85B7"> <size name="GetTexParameteriv" mode="get"/> @@ -12968,16 +12968,16 @@ <category name="GL_SGIS_point_parameters"> <enum name="POINT_SIZE_MIN_SGIS" count="1" value="0x8126"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_SIZE_MAX_SGIS" count="1" value="0x8127"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129"> - <size name="PointParameterfv"/> + <size name="PointParameterfv" mode="get"/> </enum> <function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false"> diff --git a/mesalib/src/mapi/glapi/gen/gl_XML.py b/mesalib/src/mapi/glapi/gen/gl_XML.py index 1a2bc2b91..c7b208907 100644 --- a/mesalib/src/mapi/glapi/gen/gl_XML.py +++ b/mesalib/src/mapi/glapi/gen/gl_XML.py @@ -584,6 +584,29 @@ class gl_parameter(object): else: return str(s) + def size_arg_string(self, use_parens = 1): + s = self.size() + if self.counter or self.count_parameter_list: + list = [ "compsize" ] + + if 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 len(list) > 1 and use_parens : + return "safe_mul(%s)" % (string.join(list, " , ")) + else: + return string.join(list, " , ") + + elif self.is_image(): + return "compsize" + else: + return str(s) + def format_string(self): if self.type_expr.original_string == "GLenum": diff --git a/mesalib/src/mapi/glapi/gen/gl_apitemp.py b/mesalib/src/mapi/glapi/gen/gl_apitemp.py index 4157032c5..4157032c5 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_apitemp.py +++ b/mesalib/src/mapi/glapi/gen/gl_apitemp.py diff --git a/mesalib/src/mapi/glapi/gen/gl_enums.py b/mesalib/src/mapi/glapi/gen/gl_enums.py index 35919d68a..3262bab0f 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_enums.py +++ b/mesalib/src/mapi/glapi/gen/gl_enums.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/env python # -*- Mode: Python; py-indent-offset: 8 -*- # (C) Copyright Zack Rusin 2005 diff --git a/mesalib/src/mapi/glapi/gen/gl_functions.py b/mesalib/src/mapi/glapi/gen/gl_functions.py new file mode 100755 index 000000000..cd408ade2 --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gl_functions.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python + +# (C) Copyright IBM Corporation 2004 +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +# +# Authors: +# Ian Romanick <idr@us.ibm.com> + +import gl_XML +import license +import sys, getopt + +class PrintFunctionTable(gl_XML.gl_print_base): + def __init__(self): + gl_XML.gl_print_base.__init__(self) + + self.header_tag = '__GLFUNCTIONS_H__' + self.name = "gl_functions.py" + self.license = license.bsd_license_template % ("(C) Copyright IBM Corporation 2005", "IBM") + return + + + def printRealHeader(self): + print """ +#include "glapitable.h" +#include "glapi.h" +#include "u_thread.h" +#include "dispatch.h" +""" + return + + def printBody(self, api): + + functions = [] + abi_functions = [] + alias_functions = [] + count = 0 + for f in api.functionIterateByOffset(): + if not f.is_abi(): + functions.append( [f, count] ) + count += 1 + else: + abi_functions.append( [f, -1] ) + + for f, index in abi_functions + functions: + arg_string="" + nrParams=0 + comma="" + + for p in f.parameters: + if not p.is_padding: + nrParams+=1 + arg_string+=comma + comma=", " + arg_string+="a%d"%nrParams + + print '#define gl%s(%s) CALL_%s(GET_DISPATCH(), (%s))' % (f.name, arg_string, f.name, arg_string) + + return + + +def show_usage(): + print "Usage: %s [-f input_file_name]" % sys.argv[0] + sys.exit(1) + +if __name__ == '__main__': + file_name = "gl_API.xml" + + try: + (args, trail) = getopt.getopt(sys.argv[1:], "f:") + except Exception,e: + show_usage() + + for (arg,val) in args: + if arg == "-f": + file_name = val + + printer = PrintFunctionTable() + + api = gl_XML.parse_GL_API( file_name ) + + printer.Print( api ) diff --git a/mesalib/src/mapi/glapi/gen/gl_gentable.py b/mesalib/src/mapi/glapi/gen/gl_gentable.py index 06a5ebf04..efac46eaa 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_gentable.py +++ b/mesalib/src/mapi/glapi/gen/gl_gentable.py @@ -56,7 +56,7 @@ header = """/* GLXEXT is the define used in the xserver when the GLX extension i #include <stdlib.h> #include <stdio.h> -#include "main/glheader.h" +#include "glheader.h" #include "glapi.h" #include "glapitable.h" diff --git a/mesalib/src/mapi/glapi/gen/gl_procs.py b/mesalib/src/mapi/glapi/gen/gl_procs.py index b1fffc4ca..b1fffc4ca 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_procs.py +++ b/mesalib/src/mapi/glapi/gen/gl_procs.py diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py index fd384689f..0c9c0b8a1 100644..100755 --- a/mesalib/src/mapi/glapi/gen/gl_table.py +++ b/mesalib/src/mapi/glapi/gen/gl_table.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/env python # (C) Copyright IBM Corporation 2004 # All Rights Reserved. @@ -87,6 +87,7 @@ class PrintRemapTable(gl_XML.gl_print_base): def printRealHeader(self): print """ +#include "glapitable.h" /** * \\file main/dispatch.h * Macros for handling GL dispatch tables. @@ -101,6 +102,11 @@ class PrintRemapTable(gl_XML.gl_print_base): return def printBody(self, api): + print '#ifdef _MSC_VER' + print '#ifndef INLINE' + print '#define INLINE __inline' + print '#endif' + print '#endif' print '#define CALL_by_offset(disp, cast, offset, parameters) \\' print ' (*(cast (GET_by_offset(disp, offset)))) parameters' print '#define GET_by_offset(disp, offset) \\' @@ -151,7 +157,7 @@ class PrintRemapTable(gl_XML.gl_print_base): remap_table = "driDispatchRemapTable" print '#define %s_size %u' % (remap_table, count) - print 'extern int %s[ %s_size ];' % (remap_table, remap_table) + print 'SERVEXTERN int %s[ %s_size ];' % (remap_table, remap_table) print '' for f, index in functions: @@ -170,11 +176,11 @@ class PrintRemapTable(gl_XML.gl_print_base): print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string) print '#define CALL_%s(disp, parameters) \\' % (f.name) print ' (* GET_%s(disp)) parameters' % (f.name) - print 'static inline _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name) + print 'static INLINE _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name) print ' return (_glptr_%s) (GET_by_offset(disp, _gloffset_%s));' % (f.name, f.name) print '}' print - print 'static inline void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string) + print 'static INLINE void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string) print ' SET_by_offset(disp, _gloffset_%s, fn);' % (f.name) print '}' print diff --git a/mesalib/src/mapi/glapi/gen/remap_helper.py b/mesalib/src/mapi/glapi/gen/remap_helper.py index e1a13d0b3..8ac047ccc 100644..100755 --- a/mesalib/src/mapi/glapi/gen/remap_helper.py +++ b/mesalib/src/mapi/glapi/gen/remap_helper.py @@ -64,8 +64,8 @@ class PrintGlRemap(gl_XML.gl_print_base): def printRealHeader(self): - print '#include "main/dispatch.h"' - print '#include "main/remap.h"' + print '#include "dispatch.h"' + print '#include "remap.h"' print '' return diff --git a/mesalib/src/mapi/glapi/glapi.h b/mesalib/src/mapi/glapi/glapi.h index e2fa9252f..67bf1f42e 100644..100755 --- a/mesalib/src/mapi/glapi/glapi.h +++ b/mesalib/src/mapi/glapi/glapi.h @@ -68,9 +68,18 @@ extern "C" { # endif #endif /* _GLAPI_NO_EXPORTS */ +#include "GL/gl.h" +#include "GL/glext.h" -/* Is this needed? It is incomplete anyway. */ -#ifdef USE_MGL_NAMESPACE + +struct _glapi_table; + +typedef void (*_glapi_proc)(void); /* generic function pointer */ + +typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...); + + +#if defined(USE_MGL_NAMESPACE) #define _glapi_set_dispatch _mglapi_set_dispatch #define _glapi_get_dispatch _mglapi_get_dispatch #define _glapi_set_context _mglapi_set_context @@ -79,17 +88,23 @@ extern "C" { #define _glapi_Context _mglapi_Context #endif -typedef void (*_glapi_proc)(void); -struct _glapi_table; +/* + * Number of extension functions which we can dynamically add at runtime. + */ +#define MAX_EXTENSION_FUNCS 300 +/** + ** Define the GET_CURRENT_CONTEXT() macro. + ** \param C local variable which will hold the current context. + **/ #if defined (GLX_USE_TLS) _GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch - __attribute__((tls_model("initial-exec"))); + ; _GLAPI_EXPORT extern __thread void * _glapi_tls_Context - __attribute__((tls_model("initial-exec"))); + ; _GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch; _GLAPI_EXPORT extern const void *_glapi_Context; @@ -99,8 +114,14 @@ _GLAPI_EXPORT extern const void *_glapi_Context; #else -_GLAPI_EXPORT extern struct _glapi_table *_glapi_Dispatch; -_GLAPI_EXPORT extern void *_glapi_Context; +#ifdef INSERVER +#define SERVEXTERN _declspec(dllimport) +#else +#define SERVEXTERN _declspec(dllexport) +#endif + +SERVEXTERN struct _glapi_table *_glapi_Dispatch; +SERVEXTERN void *_glapi_Context; # ifdef THREADS @@ -120,69 +141,53 @@ _GLAPI_EXPORT extern void *_glapi_Context; #endif /* defined (GLX_USE_TLS) */ -void -_glapi_destroy_multithread(void); - +/** + ** GL API public functions + **/ -_GLAPI_EXPORT void +SERVEXTERN void _glapi_check_multithread(void); -_GLAPI_EXPORT void +SERVEXTERN void _glapi_set_context(void *context); -_GLAPI_EXPORT void * +SERVEXTERN void * _glapi_get_context(void); -_GLAPI_EXPORT void +SERVEXTERN void _glapi_set_dispatch(struct _glapi_table *dispatch); -_GLAPI_EXPORT struct _glapi_table * +SERVEXTERN struct _glapi_table * _glapi_get_dispatch(void); +SERVEXTERN int +_glapi_begin_dispatch_override(struct _glapi_table *override); -_GLAPI_EXPORT unsigned int +SERVEXTERN void +_glapi_end_dispatch_override(int layer); + +struct _glapi_table * +_glapi_get_override_dispatch(int layer); + +SERVEXTERN GLuint _glapi_get_dispatch_table_size(void); -_GLAPI_EXPORT int +SERVEXTERN int _glapi_add_dispatch( const char * const * function_names, const char * parameter_signature ); -_GLAPI_EXPORT int -_glapi_get_proc_offset(const char *funcName); - - _GLAPI_EXPORT _glapi_proc _glapi_get_proc_address(const char *funcName); - -_GLAPI_EXPORT const char * -_glapi_get_proc_name(unsigned int offset); - - -_GLAPI_EXPORT struct _glapi_table * +extern struct _glapi_table * _glapi_create_table_from_handle(void *handle, const char *symbol_prefix); -/** Deprecated function */ -_GLAPI_EXPORT unsigned long -_glthread_GetID(void); - - -/* - * These stubs are kept so that the old DRI drivers still load. - */ -_GLAPI_EXPORT void -_glapi_noop_enable_warnings(unsigned char enable); - - -_GLAPI_EXPORT void -_glapi_set_warning_func(_glapi_proc func); - #ifdef __cplusplus } diff --git a/mesalib/src/mapi/glapi/glapi_getproc.c b/mesalib/src/mapi/glapi/glapi_getproc.c index bfde92cf2..d52b26450 100644 --- a/mesalib/src/mapi/glapi/glapi_getproc.c +++ b/mesalib/src/mapi/glapi/glapi_getproc.c @@ -369,6 +369,7 @@ set_entry_info( struct _glapi_function * entry, const char * signature, unsigned * the parameter signature of a static function. */ +#ifndef INSERVER int _glapi_add_dispatch( const char * const * function_names, const char * parameter_signature ) @@ -478,12 +479,12 @@ _glapi_add_dispatch( const char * const * function_names, return offset; } - +#endif /** * Return offset of entrypoint for named function within dispatch table. */ -GLint +GLint _GLAPI_EXPORT _glapi_get_proc_offset(const char *funcName) { GLint offset; @@ -504,7 +505,7 @@ _glapi_get_proc_offset(const char *funcName) * in the name of static functions, try generating a new API entrypoint on * the fly with assembly language. */ -_glapi_proc +_glapi_proc _GLAPI_EXPORT _glapi_get_proc_address(const char *funcName) { _glapi_proc func; @@ -545,7 +546,7 @@ _glapi_get_proc_address(const char *funcName) * Return the name of the function at the given dispatch offset. * This is only intended for debugging. */ -const char * +const char * _GLAPI_EXPORT _glapi_get_proc_name(GLuint offset) { const char * n; @@ -571,7 +572,7 @@ _glapi_get_proc_name(GLuint offset) * Return size of dispatch table struct as number of functions (or * slots). */ -GLuint +GLuint _GLAPI_EXPORT _glapi_get_dispatch_table_size(void) { /* diff --git a/mesalib/src/mapi/glapi/glapi_nop.c b/mesalib/src/mapi/glapi/glapi_nop.c index 628276e93..cbfbd2433 100644 --- a/mesalib/src/mapi/glapi/glapi_nop.c +++ b/mesalib/src/mapi/glapi/glapi_nop.c @@ -40,13 +40,15 @@ #include "glapi/glapi_priv.h" +#undef _GLAPI_EXPORT +#define _GLAPI_EXPORT -void +void _GLAPI_EXPORT _glapi_noop_enable_warnings(unsigned char enable) { } -void +void _GLAPI_EXPORT _glapi_set_warning_func(_glapi_proc func) { } @@ -116,4 +118,4 @@ NoOpGeneric(void) #define DISPATCH_TABLE_NAME __glapi_noop_table #define UNUSED_TABLE_NAME __unused_noop_functions -#include "glapi/glapitemp.h" +#include "glapi/gen/glapitemp.h" diff --git a/mesalib/src/mapi/glapi/glapi_priv.h b/mesalib/src/mapi/glapi/glapi_priv.h index 92925faac..5b894d8f6 100644 --- a/mesalib/src/mapi/glapi/glapi_priv.h +++ b/mesalib/src/mapi/glapi/glapi_priv.h @@ -100,15 +100,4 @@ get_entrypoint_address(unsigned int functionOffset); #endif -/** - * Number of extension functions which we can dynamically add at runtime. - * - * Number of extension functions is also subject to the size of backing exec - * mem we allocate. For the common case of dispatch stubs with size 16 bytes, - * the two limits will be hit simultaneously. For larger dispatch function - * sizes, MAX_EXTENSION_FUNCS is effectively reduced. - */ -#define MAX_EXTENSION_FUNCS 256 - - #endif |