diff options
Diffstat (limited to 'mesalib/src/mapi')
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/.gitignore | 18 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/GL3x.xml | 8 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/gen.bat | 21 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/glX_API.xml | 14 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/glX_proto_recv.py | 18 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/glX_proto_size.py | 17 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/glX_server_table.py | 4 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/gl_API.xml | 596 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/gen/gl_table.py | 8 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/glapi.h | 110 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/glapi_getproc.c | 11 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/glapi_nop.c | 4 | ||||
| -rw-r--r-- | mesalib/src/mapi/glapi/glthread.c | 2 | 
13 files changed, 448 insertions, 383 deletions
| diff --git a/mesalib/src/mapi/glapi/gen/.gitignore b/mesalib/src/mapi/glapi/gen/.gitignore new file mode 100644 index 000000000..41681f8ae --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/.gitignore @@ -0,0 +1,18 @@ +dispatch.h
 +glapitable.h
 +glapitemp.h
 +glprocs.h
 +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
 +glapi_gentable.c
 diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml index cec9c916e..6c7b14bf3 100644 --- a/mesalib/src/mapi/glapi/gen/GL3x.xml +++ b/mesalib/src/mapi/glapi/gen/GL3x.xml @@ -32,8 +32,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_READ_COLOR"                 value="0x891C"/>    <enum name="FIXED_ONLY"                       value="0x891D"/>    <enum name="MAX_VARYING_COMPONENTS"           value="0x8B4B"/> diff --git a/mesalib/src/mapi/glapi/gen/gen.bat b/mesalib/src/mapi/glapi/gen/gen.bat new file mode 100644 index 000000000..29410731c --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gen.bat @@ -0,0 +1,21 @@ +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 > glapitable.h +gl_gentable.py > glapi_gentable.c +gl_table.py -m remap_table > dispatch.h +rem gl_offsets.py > glapioffsets.h +gl_apitemp.py > glapitemp.h +gl_procs.py > 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 diff --git a/mesalib/src/mapi/glapi/gen/glX_API.xml b/mesalib/src/mapi/glapi/gen/glX_API.xml index 7e6a06685..ac2f4ace1 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">
 -    <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 b577bb6bd..65674dab7 100644 --- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py @@ -78,6 +78,14 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):  	def printRealHeader(self): +		print '#ifdef HAVE_DIX_CONFIG_H' +		print '#include <dix-config.h>' +		print '#else' +		print '' +		print '#include "glheader.h"' +		print '' +		print '#endif' +		print ''  		print '#include <X11/Xmd.h>'  		print '#include <GL/gl.h>'  		print '#include <GL/glxproto.h>' @@ -278,7 +286,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) @@ -365,8 +376,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: diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py index b31d1c650..3b182daea 100644 --- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py +++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py @@ -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"' @@ -444,6 +451,14 @@ 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"' diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py index 15397533f..95ecc8ea3 100644 --- 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 9f8635611..b6d4a1d59 100644 --- 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> @@ -3041,8 +3041,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> @@ -3382,8 +3382,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> @@ -3407,32 +3407,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"/> @@ -3484,26 +3484,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> @@ -3651,14 +3651,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> @@ -4135,92 +4135,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> @@ -4536,24 +4536,24 @@          <size name="Get" mode="get"/>      </enum>      <enum name="POINT_SIZE_MIN"                count="1"  value="0x8126"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>          <size name="Get" mode="get"/>      </enum>      <enum name="POINT_SIZE_MAX"                count="1"  value="0x8127"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>          <size name="Get" mode="get"/>      </enum>      <enum name="POINT_FADE_THRESHOLD_SIZE"     count="1"  value="0x8128"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>          <size name="Get" mode="get"/>      </enum>      <enum name="POINT_DISTANCE_ATTENUATION"    count="3"  value="0x8129"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" 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> @@ -4602,10 +4602,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"/> @@ -4618,20 +4618,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> @@ -5123,8 +5123,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="PointParameterfvEXT"/> -        <size name="PointParameterivNV"/> +        <size name="PointParameterfvEXT" mode="get"/> +        <size name="PointParameterivNV" mode="get"/>      </enum>      <enum name="LOWER_LEFT"                       value="0x8CA1"/>      <enum name="UPPER_LEFT"                       value="0x8CA2"/> @@ -6228,16 +6228,16 @@  <category name="GL_ARB_point_parameters" number="14">      <enum name="POINT_SIZE_MIN_ARB"            count="1"  value="0x8126"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_SIZE_MAX_ARB"            count="1"  value="0x8127"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1"  value="0x8128"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <function name="PointParameterfARB" alias="PointParameterfEXT"> @@ -6543,8 +6543,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> @@ -6552,14 +6552,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> @@ -6568,8 +6568,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> @@ -7867,8 +7867,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> @@ -8270,20 +8270,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> @@ -8793,8 +8793,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> @@ -8804,26 +8804,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> @@ -8838,14 +8838,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> @@ -8922,16 +8922,16 @@  <category name="GL_EXT_point_parameters" number="54">      <enum name="POINT_SIZE_MIN_EXT"            count="1"  value="0x8126"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_SIZE_MAX_EXT"            count="1"  value="0x8127"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1"  value="0x8128"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <function name="PointParameterfEXT" offset="assign"> @@ -8982,14 +8982,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> @@ -9049,8 +9049,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> @@ -9097,8 +9097,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> @@ -9264,20 +9264,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> @@ -9292,8 +9292,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> @@ -9637,8 +9637,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"/> @@ -10411,8 +10411,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> @@ -10420,8 +10420,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> @@ -10579,8 +10579,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"/> @@ -10594,26 +10594,26 @@  <category name="GL_NV_texture_env_combine4" number="195">      <enum name="COMBINE4"                                 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> @@ -11634,20 +11634,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> @@ -11686,8 +11686,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> @@ -11880,30 +11880,30 @@           added for this extension. -->      <enum name="POINT_SIZE_MIN_EXT"            count="1"  value="0x8126"> -        <size name="PointParameterivNV"/> +        <size name="PointParameterivNV" mode="get"/>      </enum>      <enum name="POINT_SIZE_MAX_EXT"            count="1"  value="0x8127"> -        <size name="PointParameterivNV"/> +        <size name="PointParameterivNV" mode="get"/>      </enum>      <enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1"  value="0x8128"> -        <size name="PointParameterivNV"/> +        <size name="PointParameterivNV" mode="get"/>      </enum>      <enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129"> -        <size name="PointParameterivNV"/> +        <size name="PointParameterivNV" 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="PointParameterfvEXT"/> -        <size name="PointParameterivNV"/> +        <size name="PointParameterfvEXT" mode="get"/> +        <size name="PointParameterivNV"  mode="get"/>          <size name="Get" mode="get"/>      </enum> @@ -12023,8 +12023,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> @@ -12178,22 +12178,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"/> @@ -12336,16 +12336,16 @@  <category name="GL_SGIS_point_parameters">      <enum name="POINT_SIZE_MIN_SGIS"           count="1"  value="0x8126"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_SIZE_MAX_SGIS"           count="1"  value="0x8127"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129"> -        <size name="PointParameterfvEXT"/> +        <size name="PointParameterfvEXT" mode="get"/>      </enum>      <function name="PointParameterfSGIS" alias="PointParameterfEXT" static_dispatch="false"> diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py index 7f3b91513..67ee5e813 100644 --- a/mesalib/src/mapi/glapi/gen/gl_table.py +++ b/mesalib/src/mapi/glapi/gen/gl_table.py @@ -81,6 +81,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,9 @@ class PrintRemapTable(gl_XML.gl_print_base):  		return  	def printBody(self, api): +		print '#ifdef _MSC_VER' +		print '#define INLINE __inline' +		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) \\' @@ -183,11 +187,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/glapi.h b/mesalib/src/mapi/glapi/glapi.h index f6854754b..5edec8ebd 100644 --- a/mesalib/src/mapi/glapi/glapi.h +++ b/mesalib/src/mapi/glapi/glapi.h @@ -44,14 +44,13 @@  #ifndef _GLAPI_H  #define _GLAPI_H -#include "glapi/glthread.h" +#include "glthread.h"  #ifdef __cplusplus  extern "C" {  #endif -  #ifdef _GLAPI_NO_EXPORTS  #  define _GLAPI_EXPORT  #else /* _GLAPI_NO_EXPORTS */ @@ -68,123 +67,124 @@ extern "C" {  #  endif  #endif /* _GLAPI_NO_EXPORTS */ +#include "GL/gl.h" +#include "GL/glext.h" +#include "glthread.h" + + +struct _glapi_table; + +typedef void (*_glapi_proc)(void); /* generic function pointer */ + +typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...); -/* Is this needed?  It is incomplete anyway. */ -#ifdef USE_MGL_NAMESPACE + +#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  #define _glapi_get_context _mglapi_get_context -#define _glapi_Dispatch _mglapi_Dispatch  #define _glapi_Context _mglapi_Context +#define _glapi_Dispatch _mglapi_Dispatch  #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 __thread struct _glapi_table * _glapi_tls_Dispatch; -_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;  _GLAPI_EXPORT extern const void *_glapi_Context; +_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch; + +_GLAPI_EXPORT extern __thread void * _glapi_tls_Context;  # define GET_DISPATCH() _glapi_tls_Dispatch  # define GET_CURRENT_CONTEXT(C)  struct gl_context *C = (struct gl_context *) _glapi_tls_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 void *_glapi_Context; +SERVEXTERN struct _glapi_table *_glapi_Dispatch;  # ifdef THREADS  #  define GET_DISPATCH() \       (likely(_glapi_Dispatch) ? _glapi_Dispatch : _glapi_get_dispatch()) +  #  define GET_CURRENT_CONTEXT(C)  struct gl_context *C = (struct gl_context *) \       (likely(_glapi_Context) ? _glapi_Context : _glapi_get_context()) -  # else -  #  define GET_DISPATCH() _glapi_Dispatch  #  define GET_CURRENT_CONTEXT(C)  struct gl_context *C = (struct gl_context *) _glapi_Context -  # endif  #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); + +SERVEXTERN void +_glapi_end_dispatch_override(int layer); + +struct _glapi_table * +_glapi_get_override_dispatch(int layer); -_GLAPI_EXPORT unsigned int +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); - -_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); - +#endif  #ifdef __cplusplus  }  #endif - -#endif /* _GLAPI_H */ diff --git a/mesalib/src/mapi/glapi/glapi_getproc.c b/mesalib/src/mapi/glapi/glapi_getproc.c index 21380ea41..d5c72f29b 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 69b1ae6dd..f34075e70 100644 --- a/mesalib/src/mapi/glapi/glapi_nop.c +++ b/mesalib/src/mapi/glapi/glapi_nop.c @@ -41,12 +41,12 @@  #include "glapi/glapi_priv.h" -void +void _GLAPI_EXPORT  _glapi_noop_enable_warnings(unsigned char enable)  {  } -void +void _GLAPI_EXPORT  _glapi_set_warning_func(_glapi_proc func)  {  } diff --git a/mesalib/src/mapi/glapi/glthread.c b/mesalib/src/mapi/glapi/glthread.c index 00915380f..239090ecf 100644 --- a/mesalib/src/mapi/glapi/glthread.c +++ b/mesalib/src/mapi/glapi/glthread.c @@ -1,6 +1,6 @@  #include "glapi/glapi.h" -unsigned long +unsigned long _GLAPI_EXPORT  _glthread_GetID(void)  {     return u_thread_self(); | 
