diff options
| author | Chia-I Wu <olvaffe@gmail.com> | 2009-09-02 12:04:56 +0800 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2009-11-05 20:04:20 -0700 | 
| commit | f68bf0621d1f865033b078191c1f4ec1fa0bbc5c (patch) | |
| tree | 2bbce637a23080e452339066ef3a7a34e4d3f14c /src | |
| parent | 7cdf8ab0967b1a80c16d317ed5b0e3b810312ad1 (diff) | |
mesa/es: Add OpenGL ES XMLs.
These XMLs define OpenGL ES 1.x and 2.x APIs.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/es/glapi/Makefile | 90 | ||||
| -rw-r--r-- | src/mesa/es/glapi/base1_API.xml | 744 | ||||
| -rw-r--r-- | src/mesa/es/glapi/base2_API.xml | 533 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es1_API.xml | 1100 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es1_COMPAT.xml | 135 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es1_EXT.xml | 693 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es2_API.xml | 294 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es2_COMPAT.xml | 368 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es2_EXT.xml | 122 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es_COMPAT.xml | 2646 | ||||
| -rw-r--r-- | src/mesa/es/glapi/es_EXT.xml | 83 | ||||
| -rw-r--r-- | src/mesa/es/glapi/gl_compare.py | 354 | ||||
| -rw-r--r-- | src/mesa/es/glapi/gl_parse_header.py | 450 | 
13 files changed, 7612 insertions, 0 deletions
| diff --git a/src/mesa/es/glapi/Makefile b/src/mesa/es/glapi/Makefile new file mode 100644 index 0000000000..5f2aa8225b --- /dev/null +++ b/src/mesa/es/glapi/Makefile @@ -0,0 +1,90 @@ +TOP = ../../../.. +GLAPI = ../../glapi +include $(TOP)/configs/current + +OUTPUTS :=			\ +	glapi/glapidispatch.h	\ +	glapi/glapioffsets.h	\ +	glapi/glapitable.h	\ +	glapi/glapitemp.h	\ +	glapi/glprocs.h		\ +	sparc/glapi_sparc.S	\ +	x86-64/glapi_x86-64.S	\ +	x86/glapi_x86.S		\ +	main/enums.c		\ +	main/remap_helper.h + +COMMON = gl_XML.py glX_XML.py license.py typeexpr.py +COMMON := $(addprefix $(GLAPI)/, $(COMMON)) + +ES1_APIXML := es1_API.xml +ES2_APIXML := es2_API.xml +ES1_OUTPUT_DIR := glapi-es1 +ES2_OUTPUT_DIR := glapi-es2 + +ES1_DEPS = $(ES1_APIXML) base1_API.xml es1_EXT.xml es_EXT.xml \ +	   es1_COMPAT.xml es_COMPAT.xml +ES2_DEPS = $(ES2_APIXML) base2_API.xml es2_EXT.xml es_EXT.xml \ +	   es2_COMPAT.xml es_COMPAT.xml + +ES1_OUTPUTS := $(addprefix $(ES1_OUTPUT_DIR)/, $(OUTPUTS)) +ES2_OUTPUTS := $(addprefix $(ES2_OUTPUT_DIR)/, $(OUTPUTS)) + +all: $(ES1_OUTPUTS) $(ES2_OUTPUTS) + +$(ES1_OUTPUTS): APIXML := $(ES1_APIXML) +$(ES2_OUTPUTS): APIXML := $(ES2_APIXML) +$(ES1_OUTPUTS): $(ES1_DEPS) +$(ES2_OUTPUTS): $(ES2_DEPS) + +define gen-glapi +	@mkdir -p $(dir $@) +	$(PYTHON2) $(PYTHON_FLAGS) $< -f $(APIXML) $(1) > $@ +endef + +%/glapidispatch.h: $(GLAPI)/gl_table.py $(COMMON) +	$(call gen-glapi,-c -m remap_table) + +%/glapioffsets.h: $(GLAPI)/gl_offsets.py $(COMMON) +	$(call gen-glapi,-c) + +%/glapitable.h: $(GLAPI)/gl_table.py $(COMMON) +	$(call gen-glapi,-c) + +%/glapitemp.h: $(GLAPI)/gl_apitemp.py $(COMMON) +	$(call gen-glapi) + +%/glprocs.h: $(GLAPI)/gl_procs.py $(COMMON) +	$(call gen-glapi,-c) + +%/sparc/glapi_sparc.S: $(GLAPI)/gl_SPARC_asm.py $(COMMON) +	$(call gen-glapi) + +%/x86-64/glapi_x86-64.S: $(GLAPI)/gl_x86-64_asm.py $(COMMON) +	$(call gen-glapi) + +%/x86/glapi_x86.S: $(GLAPI)/gl_x86_asm.py $(COMMON) +	$(call gen-glapi) + +%/main/enums.c: $(GLAPI)/gl_enums.py $(COMMON) +	$(call gen-glapi) + +%/main/remap_helper.h: $(GLAPI)/remap_helper.py $(COMMON) +	$(call gen-glapi) + +verify_xml: +	@if [ ! -f gl.h ]; then \ +		echo "Please copy gl.h and gl2.h to this directory"; \ +		exit 1; \ +	fi +	@echo "Verifying that es1_API.xml covers OpenGL ES 1.1..." +	@$(PYTHON2) $(PYTHON_FLAGS) gl_parse_header.py gl.h > tmp.xml +	@$(PYTHON2) $(PYTHON_FLAGS) gl_compare.py difference tmp.xml es1_API.xml +	@echo "Verifying that es2_API.xml covers OpenGL ES 2.0..." +	@$(PYTHON2) $(PYTHON_FLAGS) gl_parse_header.py gl2.h > tmp.xml +	@$(PYTHON2) $(PYTHON_FLAGS) gl_compare.py difference tmp.xml es2_API.xml +	@rm -f tmp.xml + +clean: +	-rm -rf $(ES1_OUTPUT_DIR) $(ES2_OUTPUT_DIR) +	-rm -f *~ *.pyc *.pyo diff --git a/src/mesa/es/glapi/base1_API.xml b/src/mesa/es/glapi/base1_API.xml new file mode 100644 index 0000000000..f5d136ccef --- /dev/null +++ b/src/mesa/es/glapi/base1_API.xml @@ -0,0 +1,744 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL and OpenGL ES 1.x APIs +     This file defines the base categories that can be shared by all APIs. +     They are defined in an incremental fashion. +--> + +<OpenGLAPI> + +<!-- base subset of OpenGL 1.0 --> +<category name="base1.0"> +    <enum name="FALSE"                                    value="0x0"/> +    <enum name="TRUE"                                     value="0x1"/> +    <enum name="ZERO"                                     value="0x0"/> +    <enum name="ONE"                                      value="0x1"/> +    <enum name="NO_ERROR"                                 value="0x0"/> + +    <enum name="POINTS"                                   value="0x0000"/> +    <enum name="LINES"                                    value="0x0001"/> +    <enum name="LINE_LOOP"                                value="0x0002"/> +    <enum name="LINE_STRIP"                               value="0x0003"/> +    <enum name="TRIANGLES"                                value="0x0004"/> +    <enum name="TRIANGLE_STRIP"                           value="0x0005"/> +    <enum name="TRIANGLE_FAN"                             value="0x0006"/> +    <enum name="NEVER"                                    value="0x0200"/> +    <enum name="LESS"                                     value="0x0201"/> +    <enum name="EQUAL"                                    value="0x0202"/> +    <enum name="LEQUAL"                                   value="0x0203"/> +    <enum name="GREATER"                                  value="0x0204"/> +    <enum name="NOTEQUAL"                                 value="0x0205"/> +    <enum name="GEQUAL"                                   value="0x0206"/> +    <enum name="ALWAYS"                                   value="0x0207"/> +    <enum name="SRC_COLOR"                                value="0x0300"/> +    <enum name="ONE_MINUS_SRC_COLOR"                      value="0x0301"/> +    <enum name="SRC_ALPHA"                                value="0x0302"/> +    <enum name="ONE_MINUS_SRC_ALPHA"                      value="0x0303"/> +    <enum name="DST_ALPHA"                                value="0x0304"/> +    <enum name="ONE_MINUS_DST_ALPHA"                      value="0x0305"/> +    <enum name="DST_COLOR"                                value="0x0306"/> +    <enum name="ONE_MINUS_DST_COLOR"                      value="0x0307"/> +    <enum name="SRC_ALPHA_SATURATE"                       value="0x0308"/> +    <enum name="FRONT"                                    value="0x0404"/> +    <enum name="BACK"                                     value="0x0405"/> +    <enum name="FRONT_AND_BACK"                           value="0x0408"/> +    <enum name="INVALID_ENUM"                             value="0x0500"/> +    <enum name="INVALID_VALUE"                            value="0x0501"/> +    <enum name="INVALID_OPERATION"                        value="0x0502"/> +    <enum name="OUT_OF_MEMORY"                            value="0x0505"/> +    <enum name="CW"                                       value="0x0900"/> +    <enum name="CCW"                                      value="0x0901"/> +    <enum name="CULL_FACE"                     count="1"  value="0x0B44"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_TEST"                    count="1"  value="0x0B71"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_TEST"                  count="1"  value="0x0B90"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DITHER"                        count="1"  value="0x0BD0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND"                         count="1"  value="0x0BE2"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SCISSOR_TEST"                  count="1"  value="0x0C11"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="UNPACK_ALIGNMENT"              count="1"  value="0x0CF5"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="PACK_ALIGNMENT"                count="1"  value="0x0D05"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_TEXTURE_SIZE"              count="1"  value="0x0D33"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_VIEWPORT_DIMS"             count="2"  value="0x0D3A"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SUBPIXEL_BITS"                 count="1"  value="0x0D50"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="RED_BITS"                      count="1"  value="0x0D52"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="GREEN_BITS"                    count="1"  value="0x0D53"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLUE_BITS"                     count="1"  value="0x0D54"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALPHA_BITS"                    count="1"  value="0x0D55"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_BITS"                    count="1"  value="0x0D56"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_BITS"                  count="1"  value="0x0D57"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_2D"                    count="1"  value="0x0DE1"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DONT_CARE"                                value="0x1100"/> +    <enum name="FASTEST"                                  value="0x1101"/> +    <enum name="NICEST"                                   value="0x1102"/> +    <enum name="BYTE"                          count="1"  value="0x1400"> +        <size name="CallLists"/> +    </enum> +    <enum name="UNSIGNED_BYTE"                 count="1"  value="0x1401"> +        <size name="CallLists"/> +    </enum> +    <enum name="SHORT"                         count="2"  value="0x1402"> +        <size name="CallLists"/> +    </enum> +    <enum name="UNSIGNED_SHORT"                count="2"  value="0x1403"> +        <size name="CallLists"/> +    </enum> +    <enum name="FLOAT"                         count="4"  value="0x1406"> +        <size name="CallLists"/> +    </enum> +    <enum name="INVERT"                                   value="0x150A"/> +    <enum name="TEXTURE"                                  value="0x1702"/> +    <enum name="ALPHA"                                    value="0x1906"/> +    <enum name="RGB"                                      value="0x1907"/> +    <enum name="RGBA"                                     value="0x1908"/> +    <enum name="LUMINANCE"                                value="0x1909"/> +    <enum name="LUMINANCE_ALPHA"                          value="0x190A"/> +    <enum name="KEEP"                                     value="0x1E00"/> +    <enum name="REPLACE"                                  value="0x1E01"/> +    <enum name="INCR"                                     value="0x1E02"/> +    <enum name="DECR"                                     value="0x1E03"/> +    <enum name="VENDOR"                                   value="0x1F00"/> +    <enum name="RENDERER"                                 value="0x1F01"/> +    <enum name="VERSION"                                  value="0x1F02"/> +    <enum name="EXTENSIONS"                               value="0x1F03"/> +    <enum name="NEAREST"                                  value="0x2600"/> +    <enum name="LINEAR"                                   value="0x2601"/> +    <enum name="NEAREST_MIPMAP_NEAREST"                   value="0x2700"/> +    <enum name="LINEAR_MIPMAP_NEAREST"                    value="0x2701"/> +    <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="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="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="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="GetTexParameterfv" mode="get"/> +        <size name="GetTexParameteriv" mode="get"/> +    </enum> +    <enum name="REPEAT"                                   value="0x2901"/> + +    <enum name="DEPTH_BUFFER_BIT"                         value="0x00000100"/> +    <enum name="STENCIL_BUFFER_BIT"                       value="0x00000400"/> +    <enum name="COLOR_BUFFER_BIT"                         value="0x00004000"/> + +    <type name="float"   size="4"  float="true"    glx_name="FLOAT32"/> +    <type name="clampf"  size="4"  float="true"    glx_name="FLOAT32"/> + +    <type name="int"     size="4"                  glx_name="CARD32"/> +    <type name="uint"    size="4"  unsigned="true" glx_name="CARD32"/> +    <type name="sizei"   size="4"                  glx_name="CARD32"/> +    <type name="enum"    size="4"  unsigned="true" glx_name="ENUM"/> +    <type name="bitfield" size="4" unsigned="true" glx_name="CARD32"/> + +    <type name="short"   size="2"                  glx_name="CARD16"/> +    <type name="ushort"  size="2"  unsigned="true" glx_name="CARD16"/> + +    <type name="byte"    size="1"                  glx_name="CARD8"/> +    <type name="ubyte"   size="1"  unsigned="true" glx_name="CARD8"/> +    <type name="boolean" size="1"  unsigned="true" glx_name="CARD8"/> + +    <type name="void"    size="1"/> + +    <function name="BlendFunc" offset="241"> +        <param name="sfactor" type="GLenum"/> +        <param name="dfactor" type="GLenum"/> +        <glx rop="160"/> +    </function> + +    <function name="Clear" offset="203"> +        <param name="mask" type="GLbitfield"/> +        <glx rop="127"/> +    </function> + +    <function name="ClearColor" offset="206"> +        <param name="red" type="GLclampf"/> +        <param name="green" type="GLclampf"/> +        <param name="blue" type="GLclampf"/> +        <param name="alpha" type="GLclampf"/> +        <glx rop="130"/> +    </function> + +    <function name="ClearStencil" offset="207"> +        <param name="s" type="GLint"/> +        <glx rop="131"/> +    </function> + +    <function name="ColorMask" offset="210"> +        <param name="red" type="GLboolean"/> +        <param name="green" type="GLboolean"/> +        <param name="blue" type="GLboolean"/> +        <param name="alpha" type="GLboolean"/> +        <glx rop="134"/> +    </function> + +    <function name="CullFace" offset="152"> +        <param name="mode" type="GLenum"/> +        <glx rop="79"/> +    </function> + +    <function name="DepthFunc" offset="245"> +        <param name="func" type="GLenum"/> +        <glx rop="164"/> +    </function> + +    <function name="DepthMask" offset="211"> +        <param name="flag" type="GLboolean"/> +        <glx rop="135"/> +    </function> + +    <function name="Disable" offset="214"> +        <param name="cap" type="GLenum"/> +        <glx rop="138" handcode="client"/> +    </function> + +    <function name="Enable" offset="215"> +        <param name="cap" type="GLenum"/> +        <glx rop="139" handcode="client"/> +    </function> + +    <function name="Finish" offset="216"> +        <glx sop="108" handcode="true"/> +    </function> + +    <function name="Flush" offset="217"> +        <glx sop="142" handcode="true"/> +    </function> + +    <function name="FrontFace" offset="157"> +        <param name="mode" type="GLenum"/> +        <glx rop="84"/> +    </function> + +    <function name="GetError" offset="261"> +        <return type="GLenum"/> +        <glx sop="115" handcode="client"/> +    </function> + +    <function name="GetIntegerv" offset="263"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="117" handcode="client"/> +    </function> + +    <function name="GetString" offset="275"> +        <param name="name" type="GLenum"/> +        <return type="const GLubyte *"/> +        <glx sop="129" handcode="true"/> +    </function> + +    <function name="Hint" offset="158"> +        <param name="target" type="GLenum"/> +        <param name="mode" type="GLenum"/> +        <glx rop="85"/> +    </function> + +    <function name="LineWidth" offset="168"> +        <param name="width" type="GLfloat"/> +        <glx rop="95"/> +    </function> + +    <function name="PixelStorei" offset="250"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx sop="110" handcode="client"/> +    </function> + +    <function name="ReadPixels" offset="256"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="GLvoid *" output="true"  img_width="width" img_height="height" img_format="format" img_type="type" img_target="0"/> +        <glx sop="111"/> +    </function> + +    <function name="Scissor" offset="176"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="103"/> +    </function> + +    <function name="StencilFunc" offset="243"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLint"/> +        <param name="mask" type="GLuint"/> +        <glx rop="162"/> +    </function> + +    <function name="StencilMask" offset="209"> +        <param name="mask" type="GLuint"/> +        <glx rop="133"/> +    </function> + +    <function name="StencilOp" offset="244"> +        <param name="fail" type="GLenum"/> +        <param name="zfail" type="GLenum"/> +        <param name="zpass" type="GLenum"/> +        <glx rop="163"/> +    </function> + +    <function name="TexParameterf" offset="178"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="105"/> +    </function> + +    <function name="Viewport" offset="305"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="191"/> +    </function> + +    <!-- these are not in OpenGL ES 1.0 --> +    <enum name="LINE_WIDTH"                    count="1"  value="0x0B21"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CULL_FACE_MODE"                count="1"  value="0x0B45"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FRONT_FACE"                    count="1"  value="0x0B46"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_RANGE"                   count="2"  value="0x0B70"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_WRITEMASK"               count="1"  value="0x0B72"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_CLEAR_VALUE"             count="1"  value="0x0B73"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_FUNC"                    count="1"  value="0x0B74"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_CLEAR_VALUE"           count="1"  value="0x0B91"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_FUNC"                  count="1"  value="0x0B92"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_VALUE_MASK"            count="1"  value="0x0B93"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_FAIL"                  count="1"  value="0x0B94"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_PASS_DEPTH_FAIL"       count="1"  value="0x0B95"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_PASS_DEPTH_PASS"       count="1"  value="0x0B96"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_REF"                   count="1"  value="0x0B97"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_WRITEMASK"             count="1"  value="0x0B98"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VIEWPORT"                      count="4"  value="0x0BA2"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SCISSOR_BOX"                   count="4"  value="0x0C10"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_CLEAR_VALUE"             count="4"  value="0x0C22"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_WRITEMASK"               count="4"  value="0x0C23"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="TexParameterfv" offset="179"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="106"/> +    </function> + +    <function name="TexParameteri" offset="180"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="107"/> +    </function> + +    <function name="TexParameteriv" offset="181"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="108"/> +    </function> + +    <function name="GetBooleanv" offset="258"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLboolean *" output="true" variable_param="pname"/> +        <glx sop="112" handcode="client"/> +    </function> + +    <function name="GetFloatv" offset="262"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="116" handcode="client"/> +    </function> + +    <function name="GetTexParameterfv" offset="282"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="136"/> +    </function> + +    <function name="GetTexParameteriv" offset="283"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="137"/> +    </function> + +    <function name="IsEnabled" offset="286"> +        <param name="cap" type="GLenum"/> +        <return type="GLboolean"/> +        <glx sop="140" handcode="client"/> +    </function> +</category> + +<!-- base subset of OpenGL 1.1 --> +<category name="base1.1"> +    <enum name="POLYGON_OFFSET_FILL"                      value="0x8037"/> + +    <function name="BindTexture" offset="307"> +        <param name="target" type="GLenum"/> +        <param name="texture" type="GLuint"/> +        <glx rop="4117"/> +    </function> + +    <function name="CopyTexImage2D" offset="324"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <glx rop="4120"/> +    </function> + +    <function name="CopyTexSubImage2D" offset="326"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4122"/> +    </function> + +    <function name="DeleteTextures" offset="327"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="const GLuint *" count="n"/> +        <glx sop="144"/> +    </function> + +    <function name="DrawArrays" offset="310"> +        <param name="mode" type="GLenum"/> +        <param name="first" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <glx rop="193" handcode="true"/> +    </function> + +    <function name="DrawElements" offset="311"> +        <param name="mode" type="GLenum"/> +        <param name="count" type="GLsizei"/> +        <param name="type" type="GLenum"/> +        <param name="indices" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="GenTextures" offset="328"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="GLuint *" output="true" count="n"/> +        <glx sop="145" always_array="true"/> +    </function> + +    <function name="PolygonOffset" offset="319"> +        <param name="factor" type="GLfloat"/> +        <param name="units" type="GLfloat"/> +        <glx rop="192"/> +    </function> + +    <function name="TexSubImage2D" offset="333"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_xoff="xoffset" img_yoff="yoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4100" large="true"/> +    </function> + +    <!-- these are not in OpenGL ES 1.0 --> +    <enum name="POLYGON_OFFSET_UNITS"          count="1"  value="0x2A00"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POLYGON_OFFSET_FACTOR"         count="1"  value="0x8038"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_BINDING_2D"            count="1"  value="0x8069"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="IsTexture" offset="330"> +        <param name="texture" type="GLuint"/> +        <return type="GLboolean"/> +        <glx sop="146"/> +    </function> +</category> + +<!-- base subset of OpenGL 1.2 --> +<category name="base1.2"> +    <enum name="UNSIGNED_SHORT_4_4_4_4"                   value="0x8033"/> +    <enum name="UNSIGNED_SHORT_5_5_5_1"                   value="0x8034"/> +    <enum name="CLAMP_TO_EDGE"                            value="0x812F"/> +    <enum name="UNSIGNED_SHORT_5_6_5"                     value="0x8363"/> +    <enum name="ALIASED_POINT_SIZE_RANGE"      count="2"  value="0x846D"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALIASED_LINE_WIDTH_RANGE"      count="2"  value="0x846E"> +        <size name="Get" mode="get"/> +    </enum> +</category> + +<!-- base subset of OpenGL 1.3 --> +<category name="base1.3"> +    <enum name="SAMPLE_ALPHA_TO_COVERAGE"      count="1"  value="0x809E"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SAMPLE_COVERAGE"               count="1"  value="0x80A0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE0"                                 value="0x84C0"/> +    <enum name="TEXTURE1"                                 value="0x84C1"/> +    <enum name="TEXTURE2"                                 value="0x84C2"/> +    <enum name="TEXTURE3"                                 value="0x84C3"/> +    <enum name="TEXTURE4"                                 value="0x84C4"/> +    <enum name="TEXTURE5"                                 value="0x84C5"/> +    <enum name="TEXTURE6"                                 value="0x84C6"/> +    <enum name="TEXTURE7"                                 value="0x84C7"/> +    <enum name="TEXTURE8"                                 value="0x84C8"/> +    <enum name="TEXTURE9"                                 value="0x84C9"/> +    <enum name="TEXTURE10"                                value="0x84CA"/> +    <enum name="TEXTURE11"                                value="0x84CB"/> +    <enum name="TEXTURE12"                                value="0x84CC"/> +    <enum name="TEXTURE13"                                value="0x84CD"/> +    <enum name="TEXTURE14"                                value="0x84CE"/> +    <enum name="TEXTURE15"                                value="0x84CF"/> +    <enum name="TEXTURE16"                                value="0x84D0"/> +    <enum name="TEXTURE17"                                value="0x84D1"/> +    <enum name="TEXTURE18"                                value="0x84D2"/> +    <enum name="TEXTURE19"                                value="0x84D3"/> +    <enum name="TEXTURE20"                                value="0x84D4"/> +    <enum name="TEXTURE21"                                value="0x84D5"/> +    <enum name="TEXTURE22"                                value="0x84D6"/> +    <enum name="TEXTURE23"                                value="0x84D7"/> +    <enum name="TEXTURE24"                                value="0x84D8"/> +    <enum name="TEXTURE25"                                value="0x84D9"/> +    <enum name="TEXTURE26"                                value="0x84DA"/> +    <enum name="TEXTURE27"                                value="0x84DB"/> +    <enum name="TEXTURE28"                                value="0x84DC"/> +    <enum name="TEXTURE29"                                value="0x84DD"/> +    <enum name="TEXTURE30"                                value="0x84DE"/> +    <enum name="TEXTURE31"                                value="0x84DF"/> +    <enum name="NUM_COMPRESSED_TEXTURE_FORMATS" count="1" value="0x86A2"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COMPRESSED_TEXTURE_FORMATS"    count="-1"  value="0x86A3"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="ActiveTexture" offset="374"> +        <param name="texture" type="GLenum"/> +        <glx rop="197"/> +    </function> + +    <function name="CompressedTexImage2D" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="imageSize" type="GLsizei" counter="true"/> +        <param name="data" type="const GLvoid *" count="imageSize"/> +        <glx rop="215" handcode="client"/> +    </function> + +    <function name="CompressedTexSubImage2D" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="imageSize" type="GLsizei" counter="true"/> +        <param name="data" type="const GLvoid *" count="imageSize"/> +        <glx rop="218" handcode="client"/> +    </function> + +    <function name="SampleCoverage" offset="assign"> +        <param name="value" type="GLclampf"/> +        <param name="invert" type="GLboolean"/> +        <glx rop="229"/> +    </function> + +    <!-- these are not in OpenGL ES 1.0 --> +    <enum name="SAMPLE_BUFFERS"                count="1"  value="0x80A8"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SAMPLES"                       count="1"  value="0x80A9"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SAMPLE_COVERAGE_VALUE"         count="1"  value="0x80AA"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SAMPLE_COVERAGE_INVERT"        count="1"  value="0x80AB"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ACTIVE_TEXTURE"                count="1"  value="0x84E0"> +        <size name="Get" mode="get"/> +    </enum> +</category> + +<!-- base subset of OpenGL 1.4 --> +<category name="base1.4"> +    <enum name="GENERATE_MIPMAP_HINT"                     value="0x8192"/> +</category> + +<!-- base subset of OpenGL 1.5 --> +<category name="base1.5"> +    <enum name="BUFFER_SIZE"                              value="0x8764"/> +    <enum name="BUFFER_USAGE"                             value="0x8765"/> +    <enum name="ARRAY_BUFFER"                             value="0x8892"/> +    <enum name="ELEMENT_ARRAY_BUFFER"                     value="0x8893"/> +    <enum name="ARRAY_BUFFER_BINDING"                     value="0x8894"/> +    <enum name="ELEMENT_ARRAY_BUFFER_BINDING"             value="0x8895"/> +    <enum name="STATIC_DRAW"                              value="0x88E4"/> +    <enum name="DYNAMIC_DRAW"                             value="0x88E8"/> + +    <type name="intptr"   size="4"                  glx_name="CARD32"/> +    <type name="sizeiptr" size="4"                  glx_name="CARD32"/> + +    <function name="BindBuffer" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="buffer" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="BufferData" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="size" type="GLsizeiptr" counter="true"/> +        <param name="data" type="const GLvoid *" count="size" img_null_flag="true"/> +        <param name="usage" type="GLenum"/> +        <glx ignore="true"/> +    </function> + +    <function name="BufferSubData" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="offset" type="GLintptr"/> +        <param name="size" type="GLsizeiptr" counter="true"/> +        <param name="data" type="const GLvoid *" count="size"/> +        <glx ignore="true"/> +    </function> + +    <function name="DeleteBuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="buffer" type="const GLuint *" count="n"/> +        <glx ignore="true"/> +    </function> + +    <function name="GenBuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="buffer" type="GLuint *" output="true" count="n"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetBufferParameteriv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx ignore="true"/> +    </function> + +    <function name="IsBuffer" offset="assign"> +        <param name="buffer" type="GLuint"/> +        <return type="GLboolean"/> +        <glx ignore="true"/> +    </function> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/base2_API.xml b/src/mesa/es/glapi/base2_API.xml new file mode 100644 index 0000000000..6aa43b728a --- /dev/null +++ b/src/mesa/es/glapi/base2_API.xml @@ -0,0 +1,533 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL and OpenGL ES 2.x APIs --> + +<OpenGLAPI> + +<xi:include href="base1_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- base subset of OpenGL 2.0 --> +<category name="base2.0"> +    <enum name="BLEND_EQUATION_RGB"            count="1"  value="0x8009"> <!-- same as BLEND_EQUATION --> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_ENABLED"   count="1"  value="0x8622"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_SIZE"      count="1"  value="0x8623"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_STRIDE"     count="1" value="0x8624"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_TYPE"      count="1"  value="0x8625"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="CURRENT_VERTEX_ATTRIB"         count="1"  value="0x8626"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_POINTER"              value="0x8645"/> +    <enum name="STENCIL_BACK_FUNC"             count="1"  value="0x8800"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_BACK_FAIL"             count="1"  value="0x8801"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_BACK_PASS_DEPTH_FAIL"  count="1"  value="0x8802"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="STENCIL_BACK_PASS_DEPTH_PASS"  count="1"  value="0x8803"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_EQUATION_ALPHA"          count="1"  value="0x883D"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_VERTEX_ATTRIBS"            count="1"  value="0x8869"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VERTEX_ATTRIB_ARRAY_NORMALIZED"           value="0x886A"/> +    <enum name="MAX_TEXTURE_IMAGE_UNITS"       count="1"  value="0x8872"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FRAGMENT_SHADER"                          value="0x8B30"/> +    <enum name="VERTEX_SHADER"                            value="0x8B31"/> +    <enum name="MAX_VERTEX_TEXTURE_IMAGE_UNITS"           value="0x8B4C"/> +    <enum name="MAX_COMBINED_TEXTURE_IMAGE_UNITS"         value="0x8B4D"/> +    <enum name="SHADER_TYPE"                              value="0x8B4F"/> +    <enum name="FLOAT_VEC2"                               value="0x8B50"/> +    <enum name="FLOAT_VEC3"                               value="0x8B51"/> +    <enum name="FLOAT_VEC4"                               value="0x8B52"/> +    <enum name="INT_VEC2"                                 value="0x8B53"/> +    <enum name="INT_VEC3"                                 value="0x8B54"/> +    <enum name="INT_VEC4"                                 value="0x8B55"/> +    <enum name="BOOL"                                     value="0x8B56"/> +    <enum name="BOOL_VEC2"                                value="0x8B57"/> +    <enum name="BOOL_VEC3"                                value="0x8B58"/> +    <enum name="BOOL_VEC4"                                value="0x8B59"/> +    <enum name="FLOAT_MAT2"                               value="0x8B5A"/> +    <enum name="FLOAT_MAT3"                               value="0x8B5B"/> +    <enum name="FLOAT_MAT4"                               value="0x8B5C"/> +    <enum name="SAMPLER_2D"                               value="0x8B5E"/> +    <enum name="SAMPLER_CUBE"                             value="0x8B60"/> +    <enum name="DELETE_STATUS"                            value="0x8B80"/> +    <enum name="COMPILE_STATUS"                           value="0x8B81"/> +    <enum name="LINK_STATUS"                              value="0x8B82"/> +    <enum name="VALIDATE_STATUS"                          value="0x8B83"/> +    <enum name="INFO_LOG_LENGTH"                          value="0x8B84"/> +    <enum name="ATTACHED_SHADERS"                         value="0x8B85"/> +    <enum name="ACTIVE_UNIFORMS"                          value="0x8B86"/> +    <enum name="ACTIVE_UNIFORM_MAX_LENGTH"                value="0x8B87"/> +    <enum name="SHADER_SOURCE_LENGTH"                     value="0x8B88"/> +    <enum name="ACTIVE_ATTRIBUTES"                        value="0x8B89"/> +    <enum name="ACTIVE_ATTRIBUTE_MAX_LENGTH"              value="0x8B8A"/> +    <enum name="SHADING_LANGUAGE_VERSION"                 value="0x8B8C"/> +    <enum name="CURRENT_PROGRAM"                          value="0x8B8D"/> +    <enum name="STENCIL_BACK_REF"                         value="0x8CA3"/> +    <enum name="STENCIL_BACK_VALUE_MASK"                  value="0x8CA4"/> +    <enum name="STENCIL_BACK_WRITEMASK"                   value="0x8CA5"/> + +    <type name="char"    size="1"                  glx_name="CARD8"/> + +    <function name="AttachShader" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="shader" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="BindAttribLocation" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="index" type="GLuint"/> +        <param name="name" type="const GLchar *"/> +        <glx ignore="true"/> +    </function> + +    <function name="BlendEquationSeparate" offset="assign"> +        <param name="modeRGB" type="GLenum"/> +        <param name="modeA" type="GLenum"/> +        <glx rop="4228"/> +    </function> + +    <function name="CompileShader" offset="assign"> +        <param name="shader" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="CreateProgram" offset="assign"> +        <return type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="CreateShader" offset="assign"> +        <param name="type" type="GLenum"/> +        <return type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="DeleteProgram" offset="assign"> +        <param name="program" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="DeleteShader" offset="assign"> +        <param name="program" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="DetachShader" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="shader" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="DisableVertexAttribArray" offset="assign"> +        <param name="index" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="EnableVertexAttribArray" offset="assign"> +        <param name="index" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetActiveAttrib" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="index" type="GLuint"/> +        <param name="bufSize" type="GLsizei "/> +        <param name="length" type="GLsizei *" output="true"/> +        <param name="size" type="GLint *" output="true"/> +        <param name="type" type="GLenum *" output="true"/> +        <param name="name" type="GLchar *" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetActiveUniform" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="index" type="GLuint"/> +        <param name="bufSize" type="GLsizei"/> +        <param name="length" type="GLsizei *" output="true"/> +        <param name="size" type="GLint *" output="true"/> +        <param name="type" type="GLenum *" output="true"/> +        <param name="name" type="GLchar *" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetAttachedShaders" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="maxCount" type="GLsizei"/> +        <param name="count" type="GLsizei *" output="true"/> +        <param name="obj" type="GLuint *" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetAttribLocation" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="name" type="const GLchar *"/> +        <return type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetProgramiv" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetProgramInfoLog" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="bufSize" type="GLsizei"/> +        <param name="length" type="GLsizei *"/> +        <param name="infoLog" type="GLchar *"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetShaderiv" offset="assign"> +        <param name="shader" type="GLuint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetShaderInfoLog" offset="assign"> +        <param name="shader" type="GLuint"/> +        <param name="bufSize" type="GLsizei"/> +        <param name="length" type="GLsizei *"/> +        <param name="infoLog" type="GLchar *"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetShaderSource" offset="assign"> +        <param name="shader" type="GLuint"/> +        <param name="bufSize" type="GLsizei"/> +        <param name="length" type="GLsizei *" output="true"/> +        <param name="source" type="GLchar *" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetUniformfv" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="location" type="GLint"/> +        <param name="params" type="GLfloat *" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetUniformiv" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="location" type="GLint"/> +        <param name="params" type="GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetUniformLocation" offset="assign"> +        <param name="program" type="GLuint"/> +        <param name="name" type="const GLchar *"/> +        <return type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetVertexAttribfv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetVertexAttribiv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx ignore="true"/> +    </function> + +    <function name="GetVertexAttribPointerv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="pname" type="GLenum"/> +        <param name="pointer" type="GLvoid **" output="true"/> +        <glx ignore="true"/> +    </function> + +    <function name="IsProgram" offset="assign"> +        <param name="program" type="GLuint"/> +        <return type="GLboolean"/> +        <glx ignore="true"/> +    </function> + +    <function name="IsShader" offset="assign"> +        <param name="shader" type="GLuint"/> +        <return type="GLboolean"/> +        <glx ignore="true"/> +    </function> + +    <function name="LinkProgram" offset="assign"> +        <param name="program" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="ShaderSource" offset="assign"> +        <param name="shader" type="GLuint"/> +        <param name="count" type="GLsizei"/> +        <param name="string" type="const GLchar **"/> +        <param name="length" type="const GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="StencilFuncSeparate" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLint"/> +        <param name="mask" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="StencilOpSeparate" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="sfail" type="GLenum"/> +        <param name="zfail" type="GLenum"/> +        <param name="zpass" type="GLenum"/> +        <glx ignore="true"/> +    </function> + +    <function name="StencilMaskSeparate" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="mask" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform1f" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLfloat"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform1fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform1i" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform1iv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform2f" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLfloat"/> +        <param name="v1" type="GLfloat"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform2fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform2i" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLint"/> +        <param name="v1" type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform2iv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform3f" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLfloat"/> +        <param name="v1" type="GLfloat"/> +        <param name="v2" type="GLfloat"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform3fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform3i" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLint"/> +        <param name="v1" type="GLint"/> +        <param name="v2" type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform3iv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform4f" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLfloat"/> +        <param name="v1" type="GLfloat"/> +        <param name="v2" type="GLfloat"/> +        <param name="v3" type="GLfloat"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform4fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform4i" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="v0" type="GLint"/> +        <param name="v1" type="GLint"/> +        <param name="v2" type="GLint"/> +        <param name="v3" type="GLint"/> +        <glx ignore="true"/> +    </function> + +    <function name="Uniform4iv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="value" type="const GLint *"/> +        <glx ignore="true"/> +    </function> + +    <function name="UniformMatrix2fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="transpose" type="GLboolean"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="UniformMatrix3fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="transpose" type="GLboolean"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="UniformMatrix4fv" offset="assign"> +        <param name="location" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <param name="transpose" type="GLboolean"/> +        <param name="value" type="const GLfloat *"/> +        <glx ignore="true"/> +    </function> + +    <function name="UseProgram" offset="assign"> +        <param name="program" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="ValidateProgram" offset="assign"> +        <param name="program" type="GLuint"/> +        <glx ignore="true"/> +    </function> + +    <function name="VertexAttrib1f" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="x" type="GLfloat"/> +    </function> + +    <function name="VertexAttrib1fv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="v" type="const GLfloat *"/> +    </function> + +    <function name="VertexAttrib2f" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +    </function> + +    <function name="VertexAttrib2fv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="v" type="const GLfloat *"/> +    </function> + +    <function name="VertexAttrib3f" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +    </function> + +    <function name="VertexAttrib3fv" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="v" type="const GLfloat *"/> +    </function> + +    <function name="VertexAttrib4f" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <param name="w" type="GLfloat"/> +    </function> + +    <function name="VertexAttrib4fv" offset="assign"> +	<param name="index" type="GLuint"/> +        <param name="v" type="const GLfloat *"/> +    </function> + +    <function name="VertexAttribPointer" offset="assign"> +        <param name="index" type="GLuint"/> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="normalized" type="GLboolean"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +    </function> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es1_API.xml b/src/mesa/es/glapi/es1_API.xml new file mode 100644 index 0000000000..7ee5515f19 --- /dev/null +++ b/src/mesa/es/glapi/es1_API.xml @@ -0,0 +1,1100 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL ES 1.x API --> + +<OpenGLAPI> + +<xi:include href="base1_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- core subset of OpenGL 1.3 defined in OpenGL ES 1.0 --> +<category name="core1.0"> +    <!-- addition to base1.0 --> +    <enum name="ADD"                                      value="0x0104"/> +    <enum name="STACK_OVERFLOW"                           value="0x0503"/> +    <enum name="STACK_UNDERFLOW"                          value="0x0504"/> +    <enum name="EXP"                                      value="0x0800"/> +    <enum name="EXP2"                                     value="0x0801"/> +    <enum name="POINT_SMOOTH"                  count="1"  value="0x0B10"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LINE_SMOOTH"                   count="1"  value="0x0B20"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHTING"                      count="1"  value="0x0B50"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT_MODEL_TWO_SIDE"          count="1"  value="0x0B52"> +        <size name="LightModelfv"/> +        <size name="LightModeliv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT_MODEL_AMBIENT"           count="4"  value="0x0B53"> +        <size name="LightModelfv"/> +        <size name="LightModeliv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_MATERIAL"                count="1"  value="0x0B57"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG"                           count="1"  value="0x0B60"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_DENSITY"                   count="1"  value="0x0B62"> +        <size name="Fogfv"/> +        <size name="Fogiv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_START"                     count="1"  value="0x0B63"> +        <size name="Fogfv"/> +        <size name="Fogiv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_END"                       count="1"  value="0x0B64"> +        <size name="Fogfv"/> +        <size name="Fogiv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_MODE"                      count="1"  value="0x0B65"> +        <size name="Fogfv"/> +        <size name="Fogiv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_COLOR"                     count="4"  value="0x0B66"> +        <size name="Fogfv"/> +        <size name="Fogiv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="NORMALIZE"                     count="1"  value="0x0BA1"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALPHA_TEST"                    count="1"  value="0x0BC0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="PERSPECTIVE_CORRECTION_HINT"   count="1"  value="0x0C50"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POINT_SMOOTH_HINT"             count="1"  value="0x0C51"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LINE_SMOOTH_HINT"              count="1"  value="0x0C52"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POLYGON_SMOOTH_HINT"           count="1"  value="0x0C53"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FOG_HINT"                      count="1"  value="0x0C54"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_LIGHTS"                    count="1"  value="0x0D31"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_MODELVIEW_STACK_DEPTH"     count="1"  value="0x0D36"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_PROJECTION_STACK_DEPTH"    count="1"  value="0x0D38"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_TEXTURE_STACK_DEPTH"       count="1"  value="0x0D39"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="AMBIENT"                       count="4"  value="0x1200"> +        <size name="Materialfv"/> +        <size name="Materialiv"/> +        <size name="Lightfv"/> +        <size name="Lightiv"/> +        <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="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="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="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="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="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="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="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="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="GetLightfv" mode="get"/> +        <size name="GetLightiv" mode="get"/> +    </enum> +    <enum name="CLEAR"                                    value="0x1500"/> +    <enum name="AND"                                      value="0x1501"/> +    <enum name="AND_REVERSE"                              value="0x1502"/> +    <enum name="COPY"                                     value="0x1503"/> +    <enum name="AND_INVERTED"                             value="0x1504"/> +    <enum name="NOOP"                                     value="0x1505"/> +    <enum name="XOR"                                      value="0x1506"/> +    <enum name="OR"                                       value="0x1507"/> +    <enum name="NOR"                                      value="0x1508"/> +    <enum name="EQUIV"                                    value="0x1509"/> +    <enum name="OR_REVERSE"                               value="0x150B"/> +    <enum name="COPY_INVERTED"                            value="0x150C"/> +    <enum name="OR_INVERTED"                              value="0x150D"/> +    <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="GetMaterialfv" mode="get"/> +        <size name="GetMaterialiv" mode="get"/> +    </enum> +    <enum name="SHININESS"                     count="1"  value="0x1601"> +        <size name="Materialfv"/> +        <size name="Materialiv"/> +        <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="GetMaterialfv" mode="get"/> +        <size name="GetMaterialiv" mode="get"/> +    </enum> +    <enum name="MODELVIEW"                                value="0x1700"/> +    <enum name="PROJECTION"                               value="0x1701"/> +    <enum name="FLAT"                                     value="0x1D00"/> +    <enum name="SMOOTH"                                   value="0x1D01"/> +    <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="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="GetTexEnvfv" mode="get"/> +        <size name="GetTexEnviv" mode="get"/> +    </enum> +    <enum name="TEXTURE_ENV"                              value="0x2300"/> +    <enum name="LIGHT0"                        count="1"  value="0x4000"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT1"                        count="1"  value="0x4001"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT2"                        count="1"  value="0x4002"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT3"                        count="1"  value="0x4003"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT4"                        count="1"  value="0x4004"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT5"                        count="1"  value="0x4005"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT6"                        count="1"  value="0x4006"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LIGHT7"                        count="1"  value="0x4007"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="AlphaFunc" offset="240"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLclampf"/> +        <glx rop="159"/> +    </function> + +    <function name="Color4f" offset="29" vectorequiv="Color4fv"> +        <param name="red" type="GLfloat"/> +        <param name="green" type="GLfloat"/> +        <param name="blue" type="GLfloat"/> +        <param name="alpha" type="GLfloat"/> +    </function> + +    <function name="Fogf" offset="153"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="80"/> +    </function> + +    <function name="Fogfv" offset="154"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="81"/> +    </function> + +    <function name="Lightf" offset="159"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="86"/> +    </function> + +    <function name="Lightfv" offset="160"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="87"/> +    </function> + +    <function name="LightModelf" offset="163"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="90"/> +    </function> + +    <function name="LightModelfv" offset="164"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="91"/> +    </function> + +    <function name="LoadIdentity" offset="290"> +        <glx rop="176"/> +    </function> + +    <function name="LoadMatrixf" offset="291"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="177"/> +    </function> + +    <function name="LogicOp" offset="242"> +        <param name="opcode" type="GLenum"/> +        <glx rop="161"/> +    </function> + +    <function name="Materialf" offset="169"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="96"/> +    </function> + +    <function name="Materialfv" offset="170"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="97"/> +    </function> + +    <function name="MatrixMode" offset="293"> +        <param name="mode" type="GLenum"/> +        <glx rop="179"/> +    </function> + +    <function name="MultMatrixf" offset="294"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="180"/> +    </function> + +    <function name="Normal3f" offset="56" vectorequiv="Normal3fv"> +        <param name="nx" type="GLfloat"/> +        <param name="ny" type="GLfloat"/> +        <param name="nz" type="GLfloat"/> +    </function> + +    <function name="PointSize" offset="173"> +        <param name="size" type="GLfloat"/> +        <glx rop="100"/> +    </function> + +    <function name="PopMatrix" offset="297"> +        <glx rop="183"/> +    </function> + +    <function name="PushMatrix" offset="298"> +        <glx rop="184"/> +    </function> + +    <function name="Rotatef" offset="300"> +        <param name="angle" type="GLfloat"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="186"/> +    </function> + +    <function name="Scalef" offset="302"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="188"/> +    </function> + +    <function name="ShadeModel" offset="177"> +        <param name="mode" type="GLenum"/> +        <glx rop="104"/> +    </function> + +    <function name="TexEnvf" offset="184"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="111"/> +    </function> + +    <function name="TexEnvfv" offset="185"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="112"/> +    </function> + +    <function name="TexImage2D" offset="183"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/> +        <glx rop="110" large="true"/> +    </function> + +    <function name="Translatef" offset="304"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="190"/> +    </function> + +    <!-- addition to base1.1 --> +    <enum name="COLOR_LOGIC_OP"                           value="0x0BF2"/> +    <enum name="VERTEX_ARRAY"                  count="1"  value="0x8074"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="NORMAL_ARRAY"                  count="1"  value="0x8075"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_ARRAY"                   count="1"  value="0x8076"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_COORD_ARRAY"           count="1"  value="0x8078"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="ColorPointer" offset="308"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="DisableClientState" offset="309"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="EnableClientState" offset="313"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="NormalPointer" offset="318"> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="TexCoordPointer" offset="320"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="VertexPointer" offset="321"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <!-- addition to base1.2 --> +    <enum name="SMOOTH_POINT_SIZE_RANGE"       count="2"  value="0x0B12"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SMOOTH_LINE_WIDTH_RANGE"       count="2"  value="0x0B22"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="RESCALE_NORMAL"                count="1"  value="0x803A"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_ELEMENTS_VERTICES"         count="1"  value="0x80E8"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_ELEMENTS_INDICES"          count="1"  value="0x80E9"> +        <size name="Get" mode="get"/> +    </enum> + +    <!-- addition to base1.3 --> +    <enum name="MULTISAMPLE"                   count="1"  value="0x809D"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SAMPLE_ALPHA_TO_ONE"           count="1"  value="0x809F"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_TEXTURE_UNITS"             count="1"  value="0x84E2"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="ClientActiveTexture" offset="375"> +        <param name="texture" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="MultiTexCoord4f" offset="402" vectorequiv="MultiTexCoord4fv"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +        <param name="q" type="GLfloat"/> +    </function> +</category> + +<!-- core subset of OpenGL 1.5 defined in OpenGL ES 1.1 --> +<category name="core1.1"> +    <!-- addition to base1.0 --> +    <enum name="CURRENT_COLOR"                 count="4"  value="0x0B00"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CURRENT_NORMAL"                count="3"  value="0x0B02"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CURRENT_TEXTURE_COORDS"        count="4"  value="0x0B03"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POINT_SIZE"                    count="1"  value="0x0B11"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SHADE_MODEL"                   count="1"  value="0x0B54"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MATRIX_MODE"                   count="1"  value="0x0BA0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MODELVIEW_STACK_DEPTH"         count="1"  value="0x0BA3"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="PROJECTION_STACK_DEPTH"        count="1"  value="0x0BA4"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_STACK_DEPTH"           count="1"  value="0x0BA5"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MODELVIEW_MATRIX"              count="16" value="0x0BA6"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="PROJECTION_MATRIX"             count="16" value="0x0BA7"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_MATRIX"                count="16" value="0x0BA8"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALPHA_TEST_FUNC"               count="1"  value="0x0BC1"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALPHA_TEST_REF"                count="1"  value="0x0BC2"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_DST"                     count="1"  value="0x0BE0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_SRC"                     count="1"  value="0x0BE1"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="LOGIC_OP_MODE"                 count="1"  value="0x0BF0"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="ALPHA_SCALE"                   count="1"  value="0x0D1C"> +        <size name="TexEnvfv"/> +        <size name="TexEnviv"/> +        <size name="GetTexEnvfv" mode="get"/> +        <size name="GetTexEnviv" mode="get"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="MAX_CLIP_PLANES"               count="1"  value="0x0D32"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE0"                   count="1"  value="0x3000"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE1"                   count="1"  value="0x3001"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE2"                   count="1"  value="0x3002"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE3"                   count="1"  value="0x3003"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE4"                   count="1"  value="0x3004"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="CLIP_PLANE5"                   count="1"  value="0x3005"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="Color4ub" offset="35" vectorequiv="Color4ubv"> +        <param name="red" type="GLubyte"/> +        <param name="green" type="GLubyte"/> +        <param name="blue" type="GLubyte"/> +        <param name="alpha" type="GLubyte"/> +    </function> + +    <function name="GetLightfv" offset="264"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="118"/> +    </function> + +    <function name="GetMaterialfv" offset="269"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="123"/> +    </function> + +    <function name="GetTexEnvfv" offset="276"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="130"/> +    </function> + +    <function name="GetTexEnviv" offset="277"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="131"/> +    </function> + +    <function name="TexEnvi" offset="186"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="113"/> +    </function> + +    <function name="TexEnviv" offset="187"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="114"/> +    </function> + +    <!-- addition to base1.1 --> +    <enum name="VERTEX_ARRAY_SIZE"             count="1"  value="0x807A"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VERTEX_ARRAY_TYPE"             count="1"  value="0x807B"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VERTEX_ARRAY_STRIDE"           count="1"  value="0x807C"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="NORMAL_ARRAY_TYPE"             count="1"  value="0x807E"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="NORMAL_ARRAY_STRIDE"           count="1"  value="0x807F"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_ARRAY_SIZE"              count="1"  value="0x8081"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_ARRAY_TYPE"              count="1"  value="0x8082"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_ARRAY_STRIDE"            count="1"  value="0x8083"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_COORD_ARRAY_SIZE"      count="1"  value="0x8088"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_COORD_ARRAY_TYPE"      count="1"  value="0x8089"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_COORD_ARRAY_STRIDE"    count="1"  value="0x808A"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="VERTEX_ARRAY_POINTER"                     value="0x808E"/> +    <enum name="NORMAL_ARRAY_POINTER"                     value="0x808F"/> +    <enum name="COLOR_ARRAY_POINTER"                      value="0x8090"/> +    <enum name="TEXTURE_COORD_ARRAY_POINTER"              value="0x8092"/> + +    <function name="GetPointerv" offset="329"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLvoid **" output="true"/> +        <glx handcode="true"/> +    </function> + +    <!-- addition to base1.2 --> + +    <!-- addition to base1.3 --> +    <enum name="CLIENT_ACTIVE_TEXTURE"         count="1"  value="0x84E1"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="SUBTRACT"                                 value="0x84E7"/> +    <enum name="COMBINE"                                  value="0x8570"/> +    <enum name="COMBINE_RGB"                   count="1"  value="0x8571"> +        <size name="TexEnvfv"/> +        <size name="TexEnviv"/> +        <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="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="GetTexEnvfv" mode="get"/> +        <size name="GetTexEnviv" mode="get"/> +    </enum> +    <enum name="ADD_SIGNED"                               value="0x8574"/> +    <enum name="INTERPOLATE"                              value="0x8575"/> +    <enum name="CONSTANT"                                 value="0x8576"/> +    <enum name="PRIMARY_COLOR"                            value="0x8577"/> +    <enum name="PREVIOUS"                                 value="0x8578"/> +    <enum name="OPERAND0_RGB"                  count="1"  value="0x8590"> +        <size name="TexEnvfv"/> +        <size name="TexEnviv"/> +        <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="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="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="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="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="GetTexEnvfv" mode="get"/> +        <size name="GetTexEnviv" mode="get"/> +    </enum> +    <enum name="DOT3_RGB"                                 value="0x86AE"/> +    <enum name="DOT3_RGBA"                                value="0x86AF"/> + +    <!-- addition to base1.4 --> +    <enum name="POINT_SIZE_MIN"                count="1"  value="0x8126"> +        <size name="PointParameterfv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POINT_SIZE_MAX"                count="1"  value="0x8127"> +        <size name="PointParameterfv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POINT_FADE_THRESHOLD_SIZE"     count="1"  value="0x8128"> +        <size name="PointParameterfv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="POINT_DISTANCE_ATTENUATION"    count="3"  value="0x8129"> +        <size name="PointParameterfv"/> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="GENERATE_MIPMAP"               count="1"  value="0x8191"> +        <size name="TexParameterfv"/> +        <size name="TexParameteriv"/> +        <size name="GetTexParameterfv" mode="get"/> +        <size name="GetTexParameteriv" mode="get"/> +    </enum> + +    <function name="PointParameterf" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="2065"/> +    </function> + +    <function name="PointParameterfv" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="2066"/> +    </function> + +    <!-- addition to base1.5 --> +    <enum name="SRC0_RGB"                                 value="0x8580"/> +    <enum name="SRC1_RGB"                                 value="0x8581"/> +    <enum name="SRC2_RGB"                                 value="0x8582"/> +    <enum name="SRC0_ALPHA"                               value="0x8588"/> +    <enum name="SRC1_ALPHA"                               value="0x8589"/> +    <enum name="SRC2_ALPHA"                               value="0x858A"/> +    <enum name="VERTEX_ARRAY_BUFFER_BINDING"   count="1"  value="0x8896"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="NORMAL_ARRAY_BUFFER_BINDING"   count="1"  value="0x8897"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="COLOR_ARRAY_BUFFER_BINDING"    count="1"  value="0x8898"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_COORD_ARRAY_BUFFER_BINDING" count="1" value="0x889A"> +        <size name="Get" mode="get"/> +    </enum> +</category> + +<!-- OpenGL ES 1.0 --> +<category name="es1.0"> +    <!-- addition to core1.0 --> + +    <!-- from GL_OES_fixed_point --> +    <enum name="FIXED"                                    value="0x140C"/> + +    <type name="fixed"   size="4"                                    /> +    <type name="clampx"  size="4"                                    /> + +    <function name="AlphaFuncx" offset="assign"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLclampx"/> +    </function> + +    <function name="ClearColorx" offset="assign"> +        <param name="red" type="GLclampx"/> +        <param name="green" type="GLclampx"/> +        <param name="blue" type="GLclampx"/> +        <param name="alpha" type="GLclampx"/> +    </function> + +    <function name="ClearDepthx" offset="assign"> +        <param name="depth" type="GLclampx"/> +    </function> + +    <function name="Color4x" offset="assign"> +        <param name="red" type="GLfixed"/> +        <param name="green" type="GLfixed"/> +        <param name="blue" type="GLfixed"/> +        <param name="alpha" type="GLfixed"/> +    </function> + +    <function name="DepthRangex" offset="assign"> +        <param name="zNear" type="GLclampx"/> +        <param name="zFar" type="GLclampx"/> +    </function> + +    <function name="Fogx" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="Fogxv" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="Frustumx" offset="assign"> +        <param name="left" type="GLfixed"/> +        <param name="right" type="GLfixed"/> +        <param name="bottom" type="GLfixed"/> +        <param name="top" type="GLfixed"/> +        <param name="zNear" type="GLfixed"/> +        <param name="zFar" type="GLfixed"/> +    </function> + +    <function name="LightModelx" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="LightModelxv" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="Lightx" offset="assign"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="Lightxv" offset="assign"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="LineWidthx" offset="assign"> +        <param name="width" type="GLfixed"/> +    </function> + +    <function name="LoadMatrixx" offset="assign"> +        <param name="m" type="const GLfixed *" count="16"/> +    </function> + +    <function name="Materialx" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="Materialxv" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="MultMatrixx" offset="assign"> +        <param name="m" type="const GLfixed *" count="16"/> +    </function> + +    <function name="MultiTexCoord4x" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfixed"/> +        <param name="t" type="GLfixed"/> +        <param name="r" type="GLfixed"/> +        <param name="q" type="GLfixed"/> +    </function> + +    <function name="Normal3x" offset="assign"> +        <param name="nx" type="GLfixed"/> +        <param name="ny" type="GLfixed"/> +        <param name="nz" type="GLfixed"/> +    </function> + +    <function name="Orthox" offset="assign"> +        <param name="left" type="GLfixed"/> +        <param name="right" type="GLfixed"/> +        <param name="bottom" type="GLfixed"/> +        <param name="top" type="GLfixed"/> +        <param name="zNear" type="GLfixed"/> +        <param name="zFar" type="GLfixed"/> +    </function> + +    <function name="PointSizex" offset="assign"> +        <param name="size" type="GLfixed"/> +    </function> + +    <function name="PolygonOffsetx" offset="assign"> +        <param name="factor" type="GLfixed"/> +        <param name="units" type="GLfixed"/> +    </function> + +    <function name="Rotatex" offset="assign"> +        <param name="angle" type="GLfixed"/> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <function name="SampleCoveragex" offset="assign"> +        <param name="value" type="GLclampx"/> +        <param name="invert" type="GLboolean"/> +    </function> + +    <function name="Scalex" offset="assign"> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <function name="TexEnvx" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="TexEnvxv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="TexParameterx" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="Translatex" offset="assign"> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <!-- from GL_OES_single_precision --> +    <function name="ClearDepthf" offset="assign"> +        <param name="depth" type="GLclampf"/> +    </function> + +    <function name="DepthRangef" offset="assign"> +        <param name="zNear" type="GLclampf"/> +        <param name="zFar" type="GLclampf"/> +    </function> + +    <function name="Frustumf" offset="assign"> +        <param name="left" type="GLfloat"/> +        <param name="right" type="GLfloat"/> +        <param name="bottom" type="GLfloat"/> +        <param name="top" type="GLfloat"/> +        <param name="zNear" type="GLfloat"/> +        <param name="zFar" type="GLfloat"/> +    </function> + +    <function name="Orthof" offset="assign"> +        <param name="left" type="GLfloat"/> +        <param name="right" type="GLfloat"/> +        <param name="bottom" type="GLfloat"/> +        <param name="top" type="GLfloat"/> +        <param name="zNear" type="GLfloat"/> +        <param name="zFar" type="GLfloat"/> +    </function> +</category> + +<!-- OpenGL ES 1.1 --> +<category name="es1.1"> +    <!-- addition to core1.1 --> + +    <!-- from GL_OES_fixed_point --> +    <function name="ClipPlanex" offset="assign"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="const GLfixed *" count="4"/> +    </function> + +    <function name="GetClipPlanex" offset="assign"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="GLfixed *" output="true" count="4"/> +    </function> + +    <function name="GetFixedv" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetLightxv" offset="assign"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetMaterialxv" offset="assign"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetTexEnvxv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetTexParameterxv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="PointParameterx" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="PointParameterxv" offset="assign"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *"/> +    </function> + +    <function name="TexParameterxv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <!-- from GL_OES_matrix_get --> +    <enum name="MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"   value="0x898D"/> +    <enum name="PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"  value="0x898E"/> +    <enum name="TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"	  value="0x898F"/> + +    <!-- from GL_OES_single_precision --> +    <function name="ClipPlanef" offset="assign"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="const GLfloat *" count="4"/> +    </function> + +    <function name="GetClipPlanef" offset="assign"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="GLfloat *" output="true" count="4"/> +    </function> +</category> + +<xi:include href="es1_EXT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> +<xi:include href="es1_COMPAT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es1_COMPAT.xml b/src/mesa/es/glapi/es1_COMPAT.xml new file mode 100644 index 0000000000..4fc9223cc0 --- /dev/null +++ b/src/mesa/es/glapi/es1_COMPAT.xml @@ -0,0 +1,135 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<OpenGLAPI> + +<!-- This file defines the functions that are needed by Mesa.  It +     makes sure the generated glapi headers are compatible with Mesa. +     It mainly consists of missing functions and aliases in OpenGL ES. +--> + +<xi:include href="es_COMPAT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- except for those defined by es_COMPAT.xml, these are also needed --> +<category name="compat"> +    <!-- OpenGL 1.0 --> +    <function name="TexGenf" alias="TexGenfOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="117"/> +    </function> + +    <function name="TexGenfv" alias="TexGenfvOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="118"/> +    </function> + +    <function name="TexGeni" alias="TexGeniOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="119"/> +    </function> + +    <function name="TexGeniv" alias="TexGenivOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="120"/> +    </function> + +    <function name="GetTexGenfv" alias="GetTexGenfvOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="133"/> +    </function> + +    <function name="GetTexGeniv" alias="GetTexGenivOES" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="134"/> +    </function> + +    <!-- OpenGL 1.2 --> +    <function name="BlendColor" offset="336" static_dispatch="false"> +        <param name="red" type="GLclampf"/> +        <param name="green" type="GLclampf"/> +        <param name="blue" type="GLclampf"/> +        <param name="alpha" type="GLclampf"/> +        <glx rop="4096"/> +    </function> + +    <function name="BlendEquation" alias="BlendEquationOES" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="4097"/> +    </function> + +    <function name="TexImage3D" offset="371" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/> +        <glx rop="4114" large="true"/> +    </function> + +    <function name="TexSubImage3D" offset="372" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4115" large="true"/> +    </function> + +    <function name="CopyTexSubImage3D" offset="373" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4123"/> +    </function> + +    <!-- GL_ARB_multitexture --> +    <function name="ActiveTextureARB" alias="ActiveTexture" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx rop="197"/> +    </function> + +    <function name="ClientActiveTextureARB" alias="ClientActiveTexture" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="MultiTexCoord4fARB" alias="MultiTexCoord4f" vectorequiv="MultiTexCoord4fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +        <param name="q" type="GLfloat"/> +    </function> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es1_EXT.xml b/src/mesa/es/glapi/es1_EXT.xml new file mode 100644 index 0000000000..7c7c585736 --- /dev/null +++ b/src/mesa/es/glapi/es1_EXT.xml @@ -0,0 +1,693 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL ES 1.x extensions --> + +<OpenGLAPI> + +<xi:include href="es_EXT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- part of es1.1 extension pack --> +<category name="GL_OES_blend_equation_separate" number="1"> +    <enum name="BLEND_EQUATION_RGB_OES"        count="1"  value="0x8009"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_EQUATION_ALPHA_OES"      count="1"  value="0x883D"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="BlendEquationSeparateOES" offset="assign"> +        <param name="modeRGB" type="GLenum"/> +        <param name="modeA" type="GLenum"/> +        <glx rop="4228"/> +    </function> +</category> + +<!-- part of es1.1 extension pack --> +<category name="GL_OES_blend_func_separate" number="2"> +    <enum name="BLEND_DST_RGB_OES"             count="1"  value="0x80C8"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_SRC_RGB_OES"             count="1"  value="0x80C9"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_DST_ALPHA_OES"           count="1"  value="0x80CA"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_SRC_ALPHA_OES"           count="1"  value="0x80CB"> +        <size name="Get" mode="get"/> +    </enum> + +    <function name="BlendFuncSeparateOES" offset="assign"> +        <param name="sfactorRGB" type="GLenum"/> +        <param name="dfactorRGB" type="GLenum"/> +        <param name="sfactorAlpha" type="GLenum"/> +        <param name="dfactorAlpha" type="GLenum"/> +        <glx rop="4134"/> +    </function> +</category> + +<!-- part of es1.1 extension pack --> +<category name="GL_OES_blend_subtract" number="3"> +    <enum name="FUNC_ADD_OES"                             value="0x8006"/> +    <enum name="BLEND_EQUATION_OES"            count="1"  value="0x8009"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FUNC_SUBTRACT_OES"                        value="0x800A"/> +    <enum name="FUNC_REVERSE_SUBTRACT_OES"                value="0x800B"/> + +    <function name="BlendEquationOES" offset="337"> +        <param name="mode" type="GLenum"/> +        <glx rop="4097"/> +    </function> +</category> + +<!-- core addition to es1.0 and later --> +<category name="GL_OES_byte_coordinates" number="4"> +    <enum name="BYTE"                                     value="0x1400"/> +</category> + +<!-- optional for es1.1 --> +<category name="GL_OES_draw_texture" number="7"> +    <enum name="TEXTURE_CROP_RECT_OES"                    value="0x8B9D"/> + +    <function name="DrawTexiOES" offset="assign"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="z" type="GLint"/> +        <param name="width" type="GLint"/> +        <param name="height" type="GLint"/> +    </function> + +    <function name="DrawTexivOES" offset="assign"> +        <param name="coords" type="const GLint *" count="5"/> +    </function> + +    <function name="DrawTexfOES" offset="assign"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <param name="width" type="GLfloat"/> +        <param name="height" type="GLfloat"/> +    </function> + +    <function name="DrawTexfvOES" offset="assign"> +        <param name="coords" type="const GLfloat *" count="5"/> +    </function> + +    <function name="DrawTexsOES" offset="assign"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +        <param name="z" type="GLshort"/> +        <param name="width" type="GLshort"/> +        <param name="height" type="GLshort"/> +    </function> + +    <function name="DrawTexsvOES" offset="assign"> +        <param name="coords" type="const GLshort *" count="5"/> +    </function> + +    <function name="DrawTexxOES" offset="assign"> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +        <param name="width" type="GLfixed"/> +        <param name="height" type="GLfixed"/> +    </function> + +    <function name="DrawTexxvOES" offset="assign"> +        <param name="coords" type="const GLfixed *" count="5"/> +    </function> + +    <!-- TexParameter{ifx}v is skipped here --> +</category> + +<!-- core addition to es1.0 and later --> +<category name="GL_OES_fixed_point" number="9"> +    <enum name="FIXED_OES"                                value="0x140C"/> + +    <!-- additon to es1.0 --> +    <function name="AlphaFuncxOES" alias="AlphaFuncx"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLclampx"/> +    </function> + +    <function name="ClearColorxOES" alias="ClearColorx"> +        <param name="red" type="GLclampx"/> +        <param name="green" type="GLclampx"/> +        <param name="blue" type="GLclampx"/> +        <param name="alpha" type="GLclampx"/> +    </function> + +    <function name="ClearDepthxOES" alias="ClearDepthx"> +        <param name="depth" type="GLclampx"/> +    </function> + +    <function name="Color4xOES" alias="Color4x"> +        <param name="red" type="GLfixed"/> +        <param name="green" type="GLfixed"/> +        <param name="blue" type="GLfixed"/> +        <param name="alpha" type="GLfixed"/> +    </function> + +    <function name="DepthRangexOES" alias="DepthRangex"> +        <param name="zNear" type="GLclampx"/> +        <param name="zFar" type="GLclampx"/> +    </function> + +    <function name="FogxOES" alias="Fogx"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="FogxvOES" alias="Fogxv"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="FrustumxOES" alias="Frustumx"> +        <param name="left" type="GLfixed"/> +        <param name="right" type="GLfixed"/> +        <param name="bottom" type="GLfixed"/> +        <param name="top" type="GLfixed"/> +        <param name="zNear" type="GLfixed"/> +        <param name="zFar" type="GLfixed"/> +    </function> + +    <function name="LightModelxOES" alias="LightModelx"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="LightModelxvOES" alias="LightModelxv"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="LightxOES" alias="Lightx"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="LightxvOES" alias="Lightxv"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="LineWidthxOES" alias="LineWidthx"> +        <param name="width" type="GLfixed"/> +    </function> + +    <function name="LoadMatrixxOES" alias="LoadMatrixx"> +        <param name="m" type="const GLfixed *" count="16"/> +    </function> + +    <function name="MaterialxOES" alias="Materialx"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="MaterialxvOES" alias="Materialxv"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="MultiTexCoord4xOES" alias="MultiTexCoord4x"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfixed"/> +        <param name="t" type="GLfixed"/> +        <param name="r" type="GLfixed"/> +        <param name="q" type="GLfixed"/> +    </function> + +    <function name="MultMatrixxOES" alias="MultMatrixx"> +        <param name="m" type="const GLfixed *" count="16"/> +    </function> + +    <function name="Normal3xOES" alias="Normal3x"> +        <param name="nx" type="GLfixed"/> +        <param name="ny" type="GLfixed"/> +        <param name="nz" type="GLfixed"/> +    </function> + +    <function name="OrthoxOES" alias="Orthox"> +        <param name="left" type="GLfixed"/> +        <param name="right" type="GLfixed"/> +        <param name="bottom" type="GLfixed"/> +        <param name="top" type="GLfixed"/> +        <param name="zNear" type="GLfixed"/> +        <param name="zFar" type="GLfixed"/> +    </function> + +    <function name="PointSizexOES" alias="PointSizex"> +        <param name="size" type="GLfixed"/> +    </function> + +    <function name="PolygonOffsetxOES" alias="PolygonOffsetx"> +        <param name="factor" type="GLfixed"/> +        <param name="units" type="GLfixed"/> +    </function> + +    <function name="RotatexOES" alias="Rotatex"> +        <param name="angle" type="GLfixed"/> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <function name="SampleCoveragexOES" alias="SampleCoveragex"> +        <param name="value" type="GLclampx"/> +        <param name="invert" type="GLboolean"/> +    </function> + +    <function name="ScalexOES" alias="Scalex"> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <function name="TexEnvxOES" alias="TexEnvx"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="TexEnvxvOES" alias="TexEnvxv"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> + +    <function name="TexParameterxOES" alias="TexParameterx"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="TranslatexOES" alias="Translatex"> +        <param name="x" type="GLfixed"/> +        <param name="y" type="GLfixed"/> +        <param name="z" type="GLfixed"/> +    </function> + +    <!-- additon to es1.1 --> +    <function name="ClipPlanexOES" alias="ClipPlanex"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="const GLfixed *" count="4"/> +    </function> + +    <function name="GetClipPlanexOES" alias="GetClipPlanex"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="GLfixed *" output="true" count="4"/> +    </function> + +    <function name="GetFixedvOES" alias="GetFixedv"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetLightxvOES" alias="GetLightxv"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetMaterialxvOES" alias="GetMaterialxv"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetTexEnvxvOES" alias="GetTexEnvxv"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="GetTexParameterxvOES" alias="GetTexParameterxv"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="PointParameterxOES" alias="PointParameterx"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfixed"/> +    </function> + +    <function name="PointParameterxvOES" alias="PointParameterxv"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *"/> +    </function> + +    <function name="TexParameterxvOES" alias="TexParameterxv"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> +</category> + +<!-- part of es1.1 extension pack --> +<category name="GL_OES_framebuffer_object" number="10"> +    <enum name="NONE_OES"                                 value="0"/> +    <enum name="INVALID_FRAMEBUFFER_OPERATION_OES"        value="0x0506"/> +    <enum name="RGBA4_OES"                                value="0x8056"/> +    <enum name="RGB5_A1_OES"                              value="0x8057"/> +    <enum name="DEPTH_COMPONENT16_OES"                    value="0x81A5"/> + +    <enum name="MAX_RENDERBUFFER_SIZE_OES"                value="0x84E8"/> +    <enum name="FRAMEBUFFER_BINDING_OES"                  value="0x8CA6"/> +    <enum name="RENDERBUFFER_BINDING_OES"                 value="0x8CA7"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"   value="0x8CD0"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"   value="0x8CD1"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" value="0x8CD2"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" value="0x8CD3"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" value="0x8CD4"/> +    <enum name="FRAMEBUFFER_COMPLETE_OES"                 value="0x8CD5"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"    value="0x8CD6"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES" value="0x8CD7"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"    value="0x8CD9"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_FORMATS_OES"       value="0x8CDA"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES"   value="0x8CDB"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES"   value="0x8CDC"/> +    <enum name="FRAMEBUFFER_UNSUPPORTED_OES"              value="0x8CDD"/> +    <enum name="COLOR_ATTACHMENT0_OES"                    value="0x8CE0"/> +    <enum name="DEPTH_ATTACHMENT_OES"                     value="0x8D00"/> +    <enum name="STENCIL_ATTACHMENT_OES"                   value="0x8D20"/> +    <enum name="FRAMEBUFFER_OES"                          value="0x8D40"/> +    <enum name="RENDERBUFFER_OES"                         value="0x8D41"/> +    <enum name="RENDERBUFFER_WIDTH_OES"                   value="0x8D42"/> +    <enum name="RENDERBUFFER_HEIGHT_OES"                  value="0x8D43"/> +    <enum name="RENDERBUFFER_INTERNAL_FORMAT_OES"         value="0x8D44"/> +    <enum name="STENCIL_INDEX1_OES"                       value="0x8D46"/> +    <enum name="STENCIL_INDEX4_OES"                       value="0x8D47"/> +    <enum name="STENCIL_INDEX8_OES"                       value="0x8D48"/> +    <enum name="RENDERBUFFER_RED_SIZE_OES"                value="0x8D50"/> +    <enum name="RENDERBUFFER_GREEN_SIZE_OES"              value="0x8D51"/> +    <enum name="RENDERBUFFER_BLUE_SIZE_OES"               value="0x8D52"/> +    <enum name="RENDERBUFFER_ALPHA_SIZE_OES"              value="0x8D53"/> +    <enum name="RENDERBUFFER_DEPTH_SIZE_OES"              value="0x8D54"/> +    <enum name="RENDERBUFFER_STENCIL_SIZE_OES"            value="0x8D55"/> +    <enum name="RGB565_OES"                               value="0x8D62"/> + +    <function name="BindFramebufferOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="framebuffer" type="GLuint"/> +    </function> + +    <function name="BindRenderbufferOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="renderbuffer" type="GLuint"/> +    </function> + +    <function name="CheckFramebufferStatusOES" offset="assign"> +        <param name="target" type="GLenum"/> +	<return type="GLenum"/> +    </function> + +    <function name="DeleteFramebuffersOES" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="framebuffers" type="const GLuint *" count="n"/> +    </function> + +    <function name="DeleteRenderbuffersOES" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="renderbuffers" type="const GLuint *" count="n"/> +    </function> + +    <function name="FramebufferRenderbufferOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="renderbuffertarget" type="GLenum"/> +        <param name="renderbuffer" type="GLuint"/> +    </function> + +    <function name="FramebufferTexture2DOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="textarget" type="GLenum"/> +        <param name="texture" type="GLuint"/> +        <param name="level" type="GLint"/> +    </function> + +    <function name="GenerateMipmapOES" offset="assign"> +        <param name="target" type="GLenum"/> +    </function> + +    <function name="GenFramebuffersOES" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="framebuffers" type="GLuint *" count="n" output="true"/> +    </function> + +    <function name="GenRenderbuffersOES" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="renderbuffers" type="GLuint *" count="n" output="true"/> +    </function> + +    <function name="GetFramebufferAttachmentParameterivOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true"/> +    </function> + +    <function name="GetRenderbufferParameterivOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true"/> +    </function> + +    <function name="IsFramebufferOES" offset="assign"> +        <param name="framebuffer" type="GLuint"/> +	<return type="GLboolean"/> +    </function> + +    <function name="IsRenderbufferOES" offset="assign"> +        <param name="renderbuffer" type="GLuint"/> +	<return type="GLboolean"/> +    </function> + +    <function name="RenderbufferStorageOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +    </function> +</category> + +<!-- core addition to es1.1 --> +<category name="GL_OES_matrix_get" number="11"> +    <enum name="MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"   value="0x898D"/> +    <enum name="PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"  value="0x898E"/> +    <enum name="TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"	  value="0x898F"/> +</category> + +<!-- optional for es1.1 --> +<category name="GL_OES_matrix_palette" number="12"> +    <enum name="MAX_VERTEX_UNITS_OES"                     value="0x86A4"/> +    <enum name="WEIGHT_ARRAY_TYPE_OES"                    value="0x86A9"/> +    <enum name="WEIGHT_ARRAY_STRIDE_OES"                  value="0x86AA"/> +    <enum name="WEIGHT_ARRAY_SIZE_OES"                    value="0x86AB"/> +    <enum name="WEIGHT_ARRAY_POINTER_OES"                 value="0x86AC"/> +    <enum name="WEIGHT_ARRAY_OES"                         value="0x86AD"/> +    <enum name="MATRIX_PALETTE_OES"                       value="0x8840"/> +    <enum name="MAX_PALETTE_MATRICES_OES"                 value="0x8842"/> +    <enum name="CURRENT_PALETTE_MATRIX_OES"               value="0x8843"/> +    <enum name="MATRIX_INDEX_ARRAY_OES"                   value="0x8844"/> +    <enum name="MATRIX_INDEX_ARRAY_SIZE_OES"              value="0x8846"/> +    <enum name="MATRIX_INDEX_ARRAY_TYPE_OES"              value="0x8847"/> +    <enum name="MATRIX_INDEX_ARRAY_STRIDE_OES"            value="0x8848"/> +    <enum name="MATRIX_INDEX_ARRAY_POINTER_OES"           value="0x8849"/> +    <enum name="WEIGHT_ARRAY_BUFFER_BINDING_OES"          value="0x889E"/> +    <enum name="MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"    value="0x8B9E"/> + +    <function name="CurrentPaletteMatrixOES"> +        <param name="matrixpaletteindex" type="GLuint"/> +    </function> + +    <function name="LoadPaletteFromModelViewMatrixOES"> +    </function> + +    <function name="MatrixIndexPointerOES"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +    </function> + +    <function name="WeightPointerOES"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +    </function> +</category> + +<!-- required for es1.1 --> +<category name="GL_OES_point_size_array" number="14"> +    <enum name="POINT_SIZE_ARRAY_TYPE_OES"                value="0x898A"/> +    <enum name="POINT_SIZE_ARRAY_STRIDE_OES"	          value="0x898B"/> +    <enum name="POINT_SIZE_ARRAY_POINTER_OES"	          value="0x898C"/> +    <enum name="POINT_SIZE_ARRAY_OES"                     value="0x8B9C"/> +    <enum name="POINT_SIZE_ARRAY_BUFFER_BINDING_OES"	  value="0x8B9F"/> + +    <function name="PointSizePointerOES" offset="assign"> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +    </function> +</category> + +<!-- required for es1.1 --> +<category name="GL_OES_point_sprite" number="15"> +    <enum name="POINT_SPRITE_OES"                         value="0x8861"/> +    <enum name="COORD_REPLACE_OES"	                  value="0x8862"/> +</category> + +<!-- optional for es1.0 --> +<category name="GL_OES_query_matrix" number="16"> +    <function name="QueryMatrixxOES" offset="assign"> +        <param name="mantissa" type="GLfixed *" count="16" /> +        <param name="exponent" type="GLint *" count="16" /> +	<return type="GLbitfield"/> +    </function> +</category> + +<!-- required for es1.0 and later --> +<category name="GL_OES_read_format" number="17"> +    <enum name="IMPLEMENTATION_COLOR_READ_TYPE_OES"       value="0x8B9A"/> +    <enum name="IMPLEMENTATION_COLOR_READ_FORMAT_OES"     value="0x8B9B"/> +</category> + +<!-- core addition to es1.0 and later --> +<category name="GL_OES_single_precision" number="18"> +    <!-- additon to es1.0 --> +    <function name="ClearDepthfOES" alias="ClearDepthf"> +        <param name="depth" type="GLclampf"/> +    </function> + +    <function name="DepthRangefOES" alias="DepthRangef"> +        <param name="zNear" type="GLclampf"/> +        <param name="zFar" type="GLclampf"/> +    </function> + +    <function name="FrustumfOES" alias="Frustumf"> +        <param name="left" type="GLfloat"/> +        <param name="right" type="GLfloat"/> +        <param name="bottom" type="GLfloat"/> +        <param name="top" type="GLfloat"/> +        <param name="zNear" type="GLfloat"/> +        <param name="zFar" type="GLfloat"/> +    </function> + +    <function name="OrthofOES" alias="Orthof"> +        <param name="left" type="GLfloat"/> +        <param name="right" type="GLfloat"/> +        <param name="bottom" type="GLfloat"/> +        <param name="top" type="GLfloat"/> +        <param name="zNear" type="GLfloat"/> +        <param name="zFar" type="GLfloat"/> +    </function> + +    <!-- additon to es1.1 --> +    <function name="ClipPlanefOES" alias="ClipPlanef"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="const GLfloat *" count="4"/> +    </function> + +    <function name="GetClipPlanefOES" alias="GetClipPlanef"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="GLfloat *" output="true" count="4"/> +    </function> +</category> + +<!-- part of es1.1 extension pack --> +<category name="GL_OES_texture_cube_map" number="20"> +    <enum name="GL_TEXTURE_GEN_MODE_OES"                  value="0x2500"/> +    <enum name="GL_NORMAL_MAP_OES"                        value="0x8511"/> +    <enum name="GL_REFLECTION_MAP_OES"                    value="0x8512"/> +    <enum name="GL_TEXTURE_CUBE_MAP_OES"                  value="0x8513"/> +    <enum name="GL_TEXTURE_BINDING_CUBE_MAP_OES"          value="0x8514"/> +    <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"       value="0x8515"/> +    <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"       value="0x8516"/> +    <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"       value="0x8517"/> +    <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"       value="0x8518"/> +    <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"       value="0x8519"/> +    <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"       value="0x851A"/> +    <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"         value="0x851C"/> +    <enum name="GL_TEXTURE_GEN_STR_OES"                   value="0x8D60"/> + +    <function name="GetTexGenfvOES" offset="279"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="133"/> +    </function> + +    <function name="GetTexGenivOES" offset="280"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="134"/> +    </function> + +    <function name="GetTexGenxvOES" offset="assign"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfixed *" output="true" variable_param="pname"/> +    </function> + +    <function name="TexGenfOES" offset="190"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="117"/> +    </function> + +    <function name="TexGenfvOES" offset="191"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="118"/> +    </function> + +    <function name="TexGeniOES" offset="192"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="119"/> +    </function> + +    <function name="TexGenivOES" offset="193"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="120"/> +    </function> + +    <function name="TexGenxOES" offset="assign"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +    </function> + +    <function name="TexGenxvOES" offset="assign"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfixed *" variable_param="pname"/> +    </function> +</category> + +<category name="GL_OES_texture_env_crossbar" number="21"> +    <!-- No new functions, types, enums. --> +</category> + +<category name="GL_OES_texture_mirrored_repeat" number="22"> +    <!-- No new functions, types, enums. --> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es2_API.xml b/src/mesa/es/glapi/es2_API.xml new file mode 100644 index 0000000000..266c07613c --- /dev/null +++ b/src/mesa/es/glapi/es2_API.xml @@ -0,0 +1,294 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL ES 2.x API --> + +<OpenGLAPI> + +<xi:include href="base2_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- core subset of OpenGL 2.0 defined in OpenGL ES 2.0 --> +<category name="core2.0"> +    <!-- addition to base1.0 --> +    <enum name="NONE"                                     value="0x0"/> +    <enum name="INT"                           count="4"  value="0x1404"> +        <size name="CallLists"/> +    </enum> +    <enum name="UNSIGNED_INT"                  count="4"  value="0x1405"> +        <size name="CallLists"/> +    </enum> +    <enum name="STENCIL_INDEX"                            value="0x1901"/> +    <enum name="DEPTH_COMPONENT"                          value="0x1902"/> + +    <function name="TexImage2D" offset="183"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> <!-- XXX the actual type is GLenum... --> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/> +        <glx rop="110" large="true"/> +    </function> + +    <!-- addition to base1.1 --> +    <enum name="RGBA4"                                    value="0x8056"/> +    <enum name="RGB5_A1"                                  value="0x8057"/> + +    <!-- addition to base1.2 --> +    <enum name="CONSTANT_COLOR"                           value="0x8001"/> +    <enum name="ONE_MINUS_CONSTANT_COLOR"                 value="0x8002"/> +    <enum name="CONSTANT_ALPHA"                           value="0x8003"/> +    <enum name="ONE_MINUS_CONSTANT_ALPHA"                 value="0x8004"/> +    <enum name="BLEND_COLOR"                   count="4"  value="0x8005"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FUNC_ADD"                                 value="0x8006"/> +    <enum name="BLEND_EQUATION"                count="1"  value="0x8009"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="FUNC_SUBTRACT"                            value="0x800A"/> +    <enum name="FUNC_REVERSE_SUBTRACT"                    value="0x800B"/> + +    <function name="BlendColor" offset="336"> +        <param name="red" type="GLclampf"/> +        <param name="green" type="GLclampf"/> +        <param name="blue" type="GLclampf"/> +        <param name="alpha" type="GLclampf"/> +        <glx rop="4096"/> +    </function> + +    <function name="BlendEquation" offset="337"> +        <param name="mode" type="GLenum"/> +        <glx rop="4097"/> +    </function> + +    <!-- addition to base1.3 --> +    <enum name="TEXTURE_CUBE_MAP"              count="1"  value="0x8513"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_BINDING_CUBE_MAP"      count="1"  value="0x8514"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="TEXTURE_CUBE_MAP_POSITIVE_X"              value="0x8515"/> +    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_X"              value="0x8516"/> +    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Y"              value="0x8517"/> +    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Y"              value="0x8518"/> +    <enum name="TEXTURE_CUBE_MAP_POSITIVE_Z"              value="0x8519"/> +    <enum name="TEXTURE_CUBE_MAP_NEGATIVE_Z"              value="0x851A"/> +    <enum name="MAX_CUBE_MAP_TEXTURE_SIZE"     count="1"  value="0x851C"> +        <size name="Get" mode="get"/> +    </enum> + +    <!-- addition to base1.4 --> +    <enum name="BLEND_DST_RGB"                 count="1"  value="0x80C8"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_SRC_RGB"                 count="1"  value="0x80C9"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_DST_ALPHA"               count="1"  value="0x80CA"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="BLEND_SRC_ALPHA"               count="1"  value="0x80CB"> +        <size name="Get" mode="get"/> +    </enum> +    <enum name="DEPTH_COMPONENT16"                        value="0x81A5"/> +    <enum name="MIRRORED_REPEAT"                          value="0x8370"/> +    <enum name="INCR_WRAP"                                value="0x8507"/> +    <enum name="DECR_WRAP"                                value="0x8508"/> + +    <function name="BlendFuncSeparate" offset="assign"> +        <param name="sfactorRGB" type="GLenum"/> +        <param name="dfactorRGB" type="GLenum"/> +        <param name="sfactorAlpha" type="GLenum"/> +        <param name="dfactorAlpha" type="GLenum"/> +        <glx rop="4134"/> +    </function> + +    <!-- addition to base1.5 --> +    <enum name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" count="1" value="0x889F"> +        <size name="GetVertexAttribdv" mode="get"/> +        <size name="GetVertexAttribfv" mode="get"/> +        <size name="GetVertexAttribiv" mode="get"/> +    </enum> +    <enum name="STREAM_DRAW"                              value="0x88E0"/> + +    <!-- addition to base2.0 --> +    <!-- base2.0 should have everything defined --> +</category> + +<!-- OpenGL ES 2.0 --> +<category name="es2.0"> +    <!-- addition to core2.0 --> +    <enum name="LOW_FLOAT"                                    value="0x8DF0"/> +    <enum name="MEDIUM_FLOAT"                                 value="0x8DF1"/> +    <enum name="HIGH_FLOAT"                                   value="0x8DF2"/> +    <enum name="LOW_INT"                                      value="0x8DF3"/> +    <enum name="MEDIUM_INT"                                   value="0x8DF4"/> +    <enum name="HIGH_INT"                                     value="0x8DF5"/> +    <enum name="SHADER_BINARY_FORMATS"                        value="0x8DF8"/> +    <enum name="NUM_SHADER_BINARY_FORMATS"                    value="0x8DF9"/> +    <enum name="SHADER_COMPILER"                              value="0x8DFA"/> +    <enum name="MAX_VERTEX_UNIFORM_VECTORS"                   value="0x8DFB"/> +    <enum name="MAX_VARYING_VECTORS"                          value="0x8DFC"/> +    <enum name="MAX_FRAGMENT_UNIFORM_VECTORS"                 value="0x8DFD"/> + +    <function name="GetShaderPrecisionFormat" offset="assign"> +        <param name="shadertype" type="GLenum"/> +        <param name="precisiontype" type="GLenum"/> +        <param name="range" type="GLint *"/> +        <param name="precision" type="GLint *"/> +    </function> + +    <function name="ReleaseShaderCompiler" offset="assign"> +    </function> + +    <function name="ShaderBinary" offset="assign"> +        <param name="n" type="GLsizei"/> +        <param name="shaders" type="const GLuint *"/> +        <param name="binaryformat" type="GLenum"/> +        <param name="binary" type="const GLvoid *"/> +        <param name="length" type="GLsizei"/> +    </function> + +    <!-- from GL_OES_fixed_point --> +    <enum name="FIXED"                                    value="0x140C"/> +    <type name="fixed"   size="4"                                    /> + +    <!-- from GL_OES_framebuffer_object --> +    <enum name="INVALID_FRAMEBUFFER_OPERATION"                value="0x0506"/> +    <enum name="MAX_RENDERBUFFER_SIZE"                        value="0x84E8"/> +    <enum name="FRAMEBUFFER_BINDING"                          value="0x8CA6"/> +    <enum name="RENDERBUFFER_BINDING"                         value="0x8CA7"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"           value="0x8CD0"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"           value="0x8CD1"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"         value="0x8CD2"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" value="0x8CD3"/> +    <enum name="FRAMEBUFFER_COMPLETE"                         value="0x8CD5"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT"            value="0x8CD6"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"    value="0x8CD7"/> +    <enum name="FRAMEBUFFER_INCOMPLETE_DIMENSIONS"            value="0x8CD9"/> +    <enum name="FRAMEBUFFER_UNSUPPORTED"                      value="0x8CDD"/> +    <enum name="COLOR_ATTACHMENT0"                            value="0x8CE0"/> +    <enum name="DEPTH_ATTACHMENT"                             value="0x8D00"/> +    <enum name="STENCIL_ATTACHMENT"                           value="0x8D20"/> +    <enum name="FRAMEBUFFER"                                  value="0x8D40"/> +    <enum name="RENDERBUFFER"                                 value="0x8D41"/> +    <enum name="RENDERBUFFER_WIDTH"                           value="0x8D42"/> +    <enum name="RENDERBUFFER_HEIGHT"                          value="0x8D43"/> +    <enum name="RENDERBUFFER_INTERNAL_FORMAT"                 value="0x8D44"/> +    <enum name="STENCIL_INDEX8"                               value="0x8D48"/> +    <enum name="RENDERBUFFER_RED_SIZE"                        value="0x8D50"/> +    <enum name="RENDERBUFFER_GREEN_SIZE"                      value="0x8D51"/> +    <enum name="RENDERBUFFER_BLUE_SIZE"                       value="0x8D52"/> +    <enum name="RENDERBUFFER_ALPHA_SIZE"                      value="0x8D53"/> +    <enum name="RENDERBUFFER_DEPTH_SIZE"                      value="0x8D54"/> +    <enum name="RENDERBUFFER_STENCIL_SIZE"                    value="0x8D55"/> +    <enum name="RGB565"                                       value="0x8D62"/> + +    <function name="BindFramebuffer" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="framebuffer" type="GLuint"/> +    </function> + +    <function name="BindRenderbuffer" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="renderbuffer" type="GLuint"/> +    </function> + +    <function name="CheckFramebufferStatus" offset="assign"> +        <param name="target" type="GLenum"/> +	<return type="GLenum"/> +    </function> + +    <function name="DeleteFramebuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="framebuffers" type="const GLuint *" count="n"/> +    </function> + +    <function name="DeleteRenderbuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="renderbuffers" type="const GLuint *" count="n"/> +    </function> + +    <function name="FramebufferRenderbuffer" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="renderbuffertarget" type="GLenum"/> +        <param name="renderbuffer" type="GLuint"/> +    </function> + +    <function name="FramebufferTexture2D" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="textarget" type="GLenum"/> +        <param name="texture" type="GLuint"/> +        <param name="level" type="GLint"/> +    </function> + +    <function name="GenerateMipmap" offset="assign"> +        <param name="target" type="GLenum"/> +    </function> + +    <function name="GenFramebuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="framebuffers" type="GLuint *" count="n" output="true"/> +    </function> + +    <function name="GenRenderbuffers" offset="assign"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="renderbuffers" type="GLuint *" count="n" output="true"/> +    </function> + +    <function name="GetFramebufferAttachmentParameteriv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true"/> +    </function> + +    <function name="GetRenderbufferParameteriv" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true"/> +    </function> + +    <function name="IsFramebuffer" offset="assign"> +        <param name="framebuffer" type="GLuint"/> +	<return type="GLboolean"/> +    </function> + +    <function name="IsRenderbuffer" offset="assign"> +        <param name="renderbuffer" type="GLuint"/> +	<return type="GLboolean"/> +    </function> + +    <function name="RenderbufferStorage" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +    </function> + +    <!-- from GL_OES_read_format --> +    <enum name="IMPLEMENTATION_COLOR_READ_TYPE"           value="0x8B9A"/> +    <enum name="IMPLEMENTATION_COLOR_READ_FORMAT"         value="0x8B9B"/> + +    <!-- from GL_OES_single_precision --> +    <function name="ClearDepthf" offset="assign"> +        <param name="depth" type="GLclampf"/> +    </function> + +    <function name="DepthRangef" offset="assign"> +        <param name="zNear" type="GLclampf"/> +        <param name="zFar" type="GLclampf"/> +    </function> +</category> + +<xi:include href="es2_EXT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> +<xi:include href="es2_COMPAT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es2_COMPAT.xml b/src/mesa/es/glapi/es2_COMPAT.xml new file mode 100644 index 0000000000..61f11a604e --- /dev/null +++ b/src/mesa/es/glapi/es2_COMPAT.xml @@ -0,0 +1,368 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<OpenGLAPI> + +<!-- This file defines the functions that are needed by Mesa.  It +     makes sure the generated glapi headers are compatible with Mesa. +     It mainly consists of missing functions and aliases in OpenGL ES. +--> + +<xi:include href="es_COMPAT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<!-- except for those defined by es_COMPAT.xml, these are also needed --> +<category name="compat"> +    <!-- OpenGL 1.0 --> +    <function name="Color4f" offset="29" vectorequiv="Color4fv" static_dispatch="false"> +        <param name="red" type="GLfloat"/> +        <param name="green" type="GLfloat"/> +        <param name="blue" type="GLfloat"/> +        <param name="alpha" type="GLfloat"/> +    </function> + +    <function name="Color4ub" offset="35" vectorequiv="Color4ubv" static_dispatch="false"> +        <param name="red" type="GLubyte"/> +        <param name="green" type="GLubyte"/> +        <param name="blue" type="GLubyte"/> +        <param name="alpha" type="GLubyte"/> +    </function> + +    <function name="Normal3f" offset="56" vectorequiv="Normal3fv" static_dispatch="false"> +        <param name="nx" type="GLfloat"/> +        <param name="ny" type="GLfloat"/> +        <param name="nz" type="GLfloat"/> +    </function> + +    <function name="Fogf" offset="153" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="80"/> +    </function> + +    <function name="Fogfv" offset="154" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="81"/> +    </function> + +    <function name="Lightf" offset="159" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="86"/> +    </function> + +    <function name="Lightfv" offset="160" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="87"/> +    </function> + +    <function name="LightModelf" offset="163" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="90"/> +    </function> + +    <function name="LightModelfv" offset="164" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="91"/> +    </function> + +    <function name="Materialf" offset="169" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="96"/> +    </function> + +    <function name="Materialfv" offset="170" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="97"/> +    </function> + +    <function name="PointSize" offset="173" static_dispatch="false"> +        <param name="size" type="GLfloat"/> +        <glx rop="100"/> +    </function> + +    <function name="ShadeModel" offset="177" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="104"/> +    </function> + +    <function name="TexEnvf" offset="184" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="111"/> +    </function> + +    <function name="TexEnvfv" offset="185" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="112"/> +    </function> + +    <function name="TexEnvi" offset="186" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="113"/> +    </function> + +    <function name="TexEnviv" offset="187" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="114"/> +    </function> + +    <function name="TexGenf" offset="190" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="117"/> +    </function> + +    <function name="TexGenfv" offset="191" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="118"/> +    </function> + +    <function name="TexGeni" offset="192" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="119"/> +    </function> + +    <function name="TexGeniv" offset="193" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="120"/> +    </function> + +    <function name="AlphaFunc" offset="240" static_dispatch="false"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLclampf"/> +        <glx rop="159"/> +    </function> + +    <function name="LogicOp" offset="242" static_dispatch="false"> +        <param name="opcode" type="GLenum"/> +        <glx rop="161"/> +    </function> + +    <function name="GetLightfv" offset="264" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="118"/> +    </function> + +    <function name="GetMaterialfv" offset="269" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="123"/> +    </function> + +    <function name="GetTexEnvfv" offset="276" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="130"/> +    </function> + +    <function name="GetTexEnviv" offset="277" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="131"/> +    </function> + +    <function name="GetTexGenfv" offset="279" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="133"/> +    </function> + +    <function name="GetTexGeniv" offset="280" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="134"/> +    </function> + +    <function name="LoadIdentity" offset="290" static_dispatch="false"> +        <glx rop="176"/> +    </function> + +    <function name="LoadMatrixf" offset="291" static_dispatch="false"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="177"/> +    </function> + +    <function name="MatrixMode" offset="293" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="179"/> +    </function> + +    <function name="MultMatrixf" offset="294" static_dispatch="false"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="180"/> +    </function> + +    <function name="PopMatrix" offset="297" static_dispatch="false"> +        <glx rop="183"/> +    </function> + +    <function name="PushMatrix" offset="298" static_dispatch="false"> +        <glx rop="184"/> +    </function> + +    <function name="Rotatef" offset="300" static_dispatch="false"> +        <param name="angle" type="GLfloat"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="186"/> +    </function> + +    <function name="Scalef" offset="302" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="188"/> +    </function> + +    <function name="Translatef" offset="304" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="190"/> +    </function> + +    <!-- OpenGL 1.1 --> +    <function name="ColorPointer" offset="308" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="DisableClientState" offset="309" static_dispatch="false"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="EnableClientState" offset="313" static_dispatch="false"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="NormalPointer" offset="318" static_dispatch="false"> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="TexCoordPointer" offset="320" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="VertexPointer" offset="321" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="GetPointerv" offset="329" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLvoid **" output="true"/> +        <glx handcode="true"/> +    </function> + +    <!-- OpenGL 1.2 --> +    <function name="TexImage3D" alias="TexImage3DOES" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/> +        <glx rop="4114" large="true"/> +    </function> + +    <function name="TexSubImage3D" alias="TexSubImage3DOES" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4115" large="true"/> +    </function> + +    <function name="CopyTexSubImage3D" alias="CopyTexSubImage3DOES" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4123"/> +    </function> + +    <!-- GL_ARB_multitexture --> +    <function name="ActiveTextureARB" alias="ActiveTexture" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx rop="197"/> +    </function> + +    <function name="ClientActiveTextureARB" offset="375" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="MultiTexCoord4fARB" offset="402" vectorequiv="MultiTexCoord4fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +        <param name="q" type="GLfloat"/> +    </function> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es2_EXT.xml b/src/mesa/es/glapi/es2_EXT.xml new file mode 100644 index 0000000000..fef6368022 --- /dev/null +++ b/src/mesa/es/glapi/es2_EXT.xml @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL ES 2.x extensions --> + +<OpenGLAPI> + +<xi:include href="es_EXT.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +<category name="GL_OES_texture_3D" number="34"> +    <enum name="TEXTURE_BINDING_3D_OES"                   value="0x806A"/> +    <enum name="TEXTURE_3D_OES"                           value="0x806F"/> +    <enum name="TEXTURE_WRAP_R_OES"                       value="0x8072"/> +    <enum name="MAX_3D_TEXTURE_SIZE_OES"                  value="0x8073"/> +    <enum name="SAMPLER_3D_OES"                           value="0x8B5F"/> +    <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" value="0x8CD4"/> + +    <function name="CompressedTexImage3DOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="imageSize" type="GLsizei" counter="true"/> +        <param name="data" type="const GLvoid *" count="imageSize"/> +        <glx rop="216" handcode="client"/> +    </function> + +    <function name="CompressedTexSubImage3DOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="imageSize" type="GLsizei" counter="true"/> +        <param name="data" type="const GLvoid *" count="imageSize"/> +        <glx rop="219" handcode="client"/> +    </function> + +    <function name="CopyTexSubImage3DOES" offset="373"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4123"/> +    </function> + +    <function name="FramebufferTexture3DOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="attachment" type="GLenum"/> +        <param name="textarget" type="GLenum"/> +        <param name="texture" type="GLuint"/> +        <param name="level" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <glx rop="4323"/> +    </function> + +    <function name="TexImage3DOES" offset="371"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/> +        <glx rop="4114" large="true"/> +    </function> + +    <function name="TexSubImage3DOES" offset="372"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4115" large="true"/> +    </function> +</category> + +<category name="GL_OES_texture_npot" number="37"> +    <!-- No new functions, types, enums. --> +</category> + +<category name="GL_EXT_texture_type_2_10_10_10_REV" number="42"> +    <enum name="UNSIGNED_INT_2_10_10_10_REV_EXT"          value="0x8368"/> +</category> + +<category name="GL_OES_packed_depth_stencil" number="43"> +    <enum name="DEPTH_STENCIL_OES"                        value="0x84F9"/> +    <enum name="UNSIGNED_INT_24_8_OES"                    value="0x84FA"/> +    <enum name="DEPTH24_STENCIL8_OES"                     value="0x88F0"/> +</category> + +<category name="GL_OES_depth_texture" number="44"> +    <!-- No new functions, types, enums. --> +</category> + +<category name="GL_OES_standard_derivatives" number="45"> +    <enum name="FRAGMENT_SHADER_DERIVATIVE_HINT_OES"      value="0x8B8B"/> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es_COMPAT.xml b/src/mesa/es/glapi/es_COMPAT.xml new file mode 100644 index 0000000000..bb6d28db83 --- /dev/null +++ b/src/mesa/es/glapi/es_COMPAT.xml @@ -0,0 +1,2646 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<OpenGLAPI> + +<!-- This file defines the following categories + +         a subset of 1.0 +         a subset of 1.1 +         a subset of 1.2 +         a subset of GL_ARB_multitexture +         GL_APPLE_vertex_array_object + +     to make sure the generated glapi headers are compatible with Mesa. +     It is included by es1_COMPAT.xml and es2_COMPAT.xml. +--> + +<category name="1.0"> +    <type name="double"  size="8"  float="true"    glx_name="FLOAT64"/> +    <type name="clampd"  size="8"  float="true"    glx_name="FLOAT64"/> + +    <type name="float"   size="4"  float="true"    glx_name="FLOAT32"/> +    <type name="clampf"  size="4"  float="true"    glx_name="FLOAT32"/> + +    <type name="int"     size="4"                  glx_name="CARD32"/> +    <type name="uint"    size="4"  unsigned="true" glx_name="CARD32"/> +    <type name="sizei"   size="4"  unsigned="true" glx_name="CARD32"/> +    <type name="enum"    size="4"  unsigned="true" glx_name="ENUM"/> +    <type name="bitfield" size="4" unsigned="true" glx_name="CARD32"/> + +    <type name="short"   size="2"                  glx_name="CARD16"/> +    <type name="ushort"  size="2"  unsigned="true" glx_name="CARD16"/> + +    <type name="byte"    size="1"                  glx_name="CARD8"/> +    <type name="ubyte"   size="1"  unsigned="true" glx_name="CARD8"/> +    <type name="boolean" size="1"  unsigned="true" glx_name="CARD8"/> + +    <type name="void"    size="1"/> + +    <function name="NewList" offset="0" static_dispatch="false"> +        <param name="list" type="GLuint"/> +        <param name="mode" type="GLenum"/> +        <glx sop="101"/> +    </function> + +    <function name="EndList" offset="1" static_dispatch="false"> +        <glx sop="102"/> +    </function> + +    <function name="CallList" offset="2" static_dispatch="false"> +        <param name="list" type="GLuint"/> +        <glx rop="1"/> +    </function> + +    <function name="CallLists" offset="3" static_dispatch="false"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="type" type="GLenum"/> +        <param name="lists" type="const GLvoid *" variable_param="type" count="n"/> +        <glx rop="2" large="true"/> +    </function> + +    <function name="DeleteLists" offset="4" static_dispatch="false"> +        <param name="list" type="GLuint"/> +        <param name="range" type="GLsizei"/> +        <glx sop="103"/> +    </function> + +    <function name="GenLists" offset="5" static_dispatch="false"> +        <param name="range" type="GLsizei"/> +        <return type="GLuint"/> +        <glx sop="104"/> +    </function> + +    <function name="ListBase" offset="6" static_dispatch="false"> +        <param name="base" type="GLuint"/> +        <glx rop="3"/> +    </function> + +    <function name="Begin" offset="7" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="4"/> +    </function> + +    <function name="Bitmap" offset="8" static_dispatch="false"> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="xorig" type="GLfloat"/> +        <param name="yorig" type="GLfloat"/> +        <param name="xmove" type="GLfloat"/> +        <param name="ymove" type="GLfloat"/> +        <param name="bitmap" type="const GLubyte *" img_width="width" img_height="height" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/> +        <glx rop="5" large="true"/> +    </function> + +    <function name="Color3b" offset="9" vectorequiv="Color3bv" static_dispatch="false"> +        <param name="red" type="GLbyte"/> +        <param name="green" type="GLbyte"/> +        <param name="blue" type="GLbyte"/> +    </function> + +    <function name="Color3bv" offset="10" static_dispatch="false"> +        <param name="v" type="const GLbyte *" count="3"/> +        <glx rop="6"/> +    </function> + +    <function name="Color3d" offset="11" vectorequiv="Color3dv" static_dispatch="false"> +        <param name="red" type="GLdouble"/> +        <param name="green" type="GLdouble"/> +        <param name="blue" type="GLdouble"/> +    </function> + +    <function name="Color3dv" offset="12" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="7"/> +    </function> + +    <function name="Color3f" offset="13" vectorequiv="Color3fv" static_dispatch="false"> +        <param name="red" type="GLfloat"/> +        <param name="green" type="GLfloat"/> +        <param name="blue" type="GLfloat"/> +    </function> + +    <function name="Color3fv" offset="14" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="8"/> +    </function> + +    <function name="Color3i" offset="15" vectorequiv="Color3iv" static_dispatch="false"> +        <param name="red" type="GLint"/> +        <param name="green" type="GLint"/> +        <param name="blue" type="GLint"/> +    </function> + +    <function name="Color3iv" offset="16" static_dispatch="false"> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="9"/> +    </function> + +    <function name="Color3s" offset="17" vectorequiv="Color3sv" static_dispatch="false"> +        <param name="red" type="GLshort"/> +        <param name="green" type="GLshort"/> +        <param name="blue" type="GLshort"/> +    </function> + +    <function name="Color3sv" offset="18" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="10"/> +    </function> + +    <function name="Color3ub" offset="19" vectorequiv="Color3ubv" static_dispatch="false"> +        <param name="red" type="GLubyte"/> +        <param name="green" type="GLubyte"/> +        <param name="blue" type="GLubyte"/> +    </function> + +    <function name="Color3ubv" offset="20" static_dispatch="false"> +        <param name="v" type="const GLubyte *" count="3"/> +        <glx rop="11"/> +    </function> + +    <function name="Color3ui" offset="21" vectorequiv="Color3uiv" static_dispatch="false"> +        <param name="red" type="GLuint"/> +        <param name="green" type="GLuint"/> +        <param name="blue" type="GLuint"/> +    </function> + +    <function name="Color3uiv" offset="22" static_dispatch="false"> +        <param name="v" type="const GLuint *" count="3"/> +        <glx rop="12"/> +    </function> + +    <function name="Color3us" offset="23" vectorequiv="Color3usv" static_dispatch="false"> +        <param name="red" type="GLushort"/> +        <param name="green" type="GLushort"/> +        <param name="blue" type="GLushort"/> +    </function> + +    <function name="Color3usv" offset="24" static_dispatch="false"> +        <param name="v" type="const GLushort *" count="3"/> +        <glx rop="13"/> +    </function> + +    <function name="Color4b" offset="25" vectorequiv="Color4bv" static_dispatch="false"> +        <param name="red" type="GLbyte"/> +        <param name="green" type="GLbyte"/> +        <param name="blue" type="GLbyte"/> +        <param name="alpha" type="GLbyte"/> +    </function> + +    <function name="Color4bv" offset="26" static_dispatch="false"> +        <param name="v" type="const GLbyte *" count="4"/> +        <glx rop="14"/> +    </function> + +    <function name="Color4d" offset="27" vectorequiv="Color4dv" static_dispatch="false"> +        <param name="red" type="GLdouble"/> +        <param name="green" type="GLdouble"/> +        <param name="blue" type="GLdouble"/> +        <param name="alpha" type="GLdouble"/> +    </function> + +    <function name="Color4dv" offset="28" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="4"/> +        <glx rop="15"/> +    </function> + +    <!--function name="Color4f" offset="29" vectorequiv="Color4fv" static_dispatch="false"> +        <param name="red" type="GLfloat"/> +        <param name="green" type="GLfloat"/> +        <param name="blue" type="GLfloat"/> +        <param name="alpha" type="GLfloat"/> +    </function--> + +    <function name="Color4fv" offset="30" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="4"/> +        <glx rop="16"/> +    </function> + +    <function name="Color4i" offset="31" vectorequiv="Color4iv" static_dispatch="false"> +        <param name="red" type="GLint"/> +        <param name="green" type="GLint"/> +        <param name="blue" type="GLint"/> +        <param name="alpha" type="GLint"/> +    </function> + +    <function name="Color4iv" offset="32" static_dispatch="false"> +        <param name="v" type="const GLint *" count="4"/> +        <glx rop="17"/> +    </function> + +    <function name="Color4s" offset="33" vectorequiv="Color4sv" static_dispatch="false"> +        <param name="red" type="GLshort"/> +        <param name="green" type="GLshort"/> +        <param name="blue" type="GLshort"/> +        <param name="alpha" type="GLshort"/> +    </function> + +    <function name="Color4sv" offset="34" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="4"/> +        <glx rop="18"/> +    </function> + +    <!--function name="Color4ub" offset="35" vectorequiv="Color4ubv" static_dispatch="false"> +        <param name="red" type="GLubyte"/> +        <param name="green" type="GLubyte"/> +        <param name="blue" type="GLubyte"/> +        <param name="alpha" type="GLubyte"/> +    </function--> + +    <function name="Color4ubv" offset="36" static_dispatch="false"> +        <param name="v" type="const GLubyte *" count="4"/> +        <glx rop="19"/> +    </function> + +    <function name="Color4ui" offset="37" vectorequiv="Color4uiv" static_dispatch="false"> +        <param name="red" type="GLuint"/> +        <param name="green" type="GLuint"/> +        <param name="blue" type="GLuint"/> +        <param name="alpha" type="GLuint"/> +    </function> + +    <function name="Color4uiv" offset="38" static_dispatch="false"> +        <param name="v" type="const GLuint *" count="4"/> +        <glx rop="20"/> +    </function> + +    <function name="Color4us" offset="39" vectorequiv="Color4usv" static_dispatch="false"> +        <param name="red" type="GLushort"/> +        <param name="green" type="GLushort"/> +        <param name="blue" type="GLushort"/> +        <param name="alpha" type="GLushort"/> +    </function> + +    <function name="Color4usv" offset="40" static_dispatch="false"> +        <param name="v" type="const GLushort *" count="4"/> +        <glx rop="21"/> +    </function> + +    <function name="EdgeFlag" offset="41" vectorequiv="EdgeFlagv" static_dispatch="false"> +        <param name="flag" type="GLboolean"/> +    </function> + +    <function name="EdgeFlagv" offset="42" static_dispatch="false"> +        <param name="flag" type="const GLboolean *" count="1"/> +        <glx rop="22"/> +    </function> + +    <function name="End" offset="43" static_dispatch="false"> +        <glx rop="23"/> +    </function> + +    <function name="Indexd" offset="44" vectorequiv="Indexdv" static_dispatch="false"> +        <param name="c" type="GLdouble"/> +    </function> + +    <function name="Indexdv" offset="45" static_dispatch="false"> +        <param name="c" type="const GLdouble *" count="1"/> +        <glx rop="24"/> +    </function> + +    <function name="Indexf" offset="46" vectorequiv="Indexfv" static_dispatch="false"> +        <param name="c" type="GLfloat"/> +    </function> + +    <function name="Indexfv" offset="47" static_dispatch="false"> +        <param name="c" type="const GLfloat *" count="1"/> +        <glx rop="25"/> +    </function> + +    <function name="Indexi" offset="48" vectorequiv="Indexiv" static_dispatch="false"> +        <param name="c" type="GLint"/> +    </function> + +    <function name="Indexiv" offset="49" static_dispatch="false"> +        <param name="c" type="const GLint *" count="1"/> +        <glx rop="26"/> +    </function> + +    <function name="Indexs" offset="50" vectorequiv="Indexsv" static_dispatch="false"> +        <param name="c" type="GLshort"/> +    </function> + +    <function name="Indexsv" offset="51" static_dispatch="false"> +        <param name="c" type="const GLshort *" count="1"/> +        <glx rop="27"/> +    </function> + +    <function name="Normal3b" offset="52" vectorequiv="Normal3bv" static_dispatch="false"> +        <param name="nx" type="GLbyte"/> +        <param name="ny" type="GLbyte"/> +        <param name="nz" type="GLbyte"/> +    </function> + +    <function name="Normal3bv" offset="53" static_dispatch="false"> +        <param name="v" type="const GLbyte *" count="3"/> +        <glx rop="28"/> +    </function> + +    <function name="Normal3d" offset="54" vectorequiv="Normal3dv" static_dispatch="false"> +        <param name="nx" type="GLdouble"/> +        <param name="ny" type="GLdouble"/> +        <param name="nz" type="GLdouble"/> +    </function> + +    <function name="Normal3dv" offset="55" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="29"/> +    </function> + +    <!--function name="Normal3f" offset="56" vectorequiv="Normal3fv" static_dispatch="false"> +        <param name="nx" type="GLfloat"/> +        <param name="ny" type="GLfloat"/> +        <param name="nz" type="GLfloat"/> +    </function--> + +    <function name="Normal3fv" offset="57" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="30"/> +    </function> + +    <function name="Normal3i" offset="58" vectorequiv="Normal3iv" static_dispatch="false"> +        <param name="nx" type="GLint"/> +        <param name="ny" type="GLint"/> +        <param name="nz" type="GLint"/> +    </function> + +    <function name="Normal3iv" offset="59" static_dispatch="false"> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="31"/> +    </function> + +    <function name="Normal3s" offset="60" vectorequiv="Normal3sv" static_dispatch="false"> +        <param name="nx" type="GLshort"/> +        <param name="ny" type="GLshort"/> +        <param name="nz" type="GLshort"/> +    </function> + +    <function name="Normal3sv" offset="61" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="32"/> +    </function> + +    <function name="RasterPos2d" offset="62" vectorequiv="RasterPos2dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +    </function> + +    <function name="RasterPos2dv" offset="63" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="2"/> +        <glx rop="33"/> +    </function> + +    <function name="RasterPos2f" offset="64" vectorequiv="RasterPos2fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +    </function> + +    <function name="RasterPos2fv" offset="65" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="2"/> +        <glx rop="34"/> +    </function> + +    <function name="RasterPos2i" offset="66" vectorequiv="RasterPos2iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +    </function> + +    <function name="RasterPos2iv" offset="67" static_dispatch="false"> +        <param name="v" type="const GLint *" count="2"/> +        <glx rop="35"/> +    </function> + +    <function name="RasterPos2s" offset="68" vectorequiv="RasterPos2sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +    </function> + +    <function name="RasterPos2sv" offset="69" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="2"/> +        <glx rop="36"/> +    </function> + +    <function name="RasterPos3d" offset="70" vectorequiv="RasterPos3dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +    </function> + +    <function name="RasterPos3dv" offset="71" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="37"/> +    </function> + +    <function name="RasterPos3f" offset="72" vectorequiv="RasterPos3fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +    </function> + +    <function name="RasterPos3fv" offset="73" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="38"/> +    </function> + +    <function name="RasterPos3i" offset="74" vectorequiv="RasterPos3iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="z" type="GLint"/> +    </function> + +    <function name="RasterPos3iv" offset="75" static_dispatch="false"> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="39"/> +    </function> + +    <function name="RasterPos3s" offset="76" vectorequiv="RasterPos3sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +        <param name="z" type="GLshort"/> +    </function> + +    <function name="RasterPos3sv" offset="77" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="40"/> +    </function> + +    <function name="RasterPos4d" offset="78" vectorequiv="RasterPos4dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +        <param name="w" type="GLdouble"/> +    </function> + +    <function name="RasterPos4dv" offset="79" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="4"/> +        <glx rop="41"/> +    </function> + +    <function name="RasterPos4f" offset="80" vectorequiv="RasterPos4fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <param name="w" type="GLfloat"/> +    </function> + +    <function name="RasterPos4fv" offset="81" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="4"/> +        <glx rop="42"/> +    </function> + +    <function name="RasterPos4i" offset="82" vectorequiv="RasterPos4iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="z" type="GLint"/> +        <param name="w" type="GLint"/> +    </function> + +    <function name="RasterPos4iv" offset="83" static_dispatch="false"> +        <param name="v" type="const GLint *" count="4"/> +        <glx rop="43"/> +    </function> + +    <function name="RasterPos4s" offset="84" vectorequiv="RasterPos4sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +        <param name="z" type="GLshort"/> +        <param name="w" type="GLshort"/> +    </function> + +    <function name="RasterPos4sv" offset="85" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="4"/> +        <glx rop="44"/> +    </function> + +    <function name="Rectd" offset="86" vectorequiv="Rectdv" static_dispatch="false"> +        <param name="x1" type="GLdouble"/> +        <param name="y1" type="GLdouble"/> +        <param name="x2" type="GLdouble"/> +        <param name="y2" type="GLdouble"/> +    </function> + +    <function name="Rectdv" offset="87" static_dispatch="false"> +        <param name="v1" type="const GLdouble *" count="2"/> +        <param name="v2" type="const GLdouble *" count="2"/> +        <glx rop="45"/> +    </function> + +    <function name="Rectf" offset="88" vectorequiv="Rectfv" static_dispatch="false"> +        <param name="x1" type="GLfloat"/> +        <param name="y1" type="GLfloat"/> +        <param name="x2" type="GLfloat"/> +        <param name="y2" type="GLfloat"/> +    </function> + +    <function name="Rectfv" offset="89" static_dispatch="false"> +        <param name="v1" type="const GLfloat *" count="2"/> +        <param name="v2" type="const GLfloat *" count="2"/> +        <glx rop="46"/> +    </function> + +    <function name="Recti" offset="90" vectorequiv="Rectiv" static_dispatch="false"> +        <param name="x1" type="GLint"/> +        <param name="y1" type="GLint"/> +        <param name="x2" type="GLint"/> +        <param name="y2" type="GLint"/> +    </function> + +    <function name="Rectiv" offset="91" static_dispatch="false"> +        <param name="v1" type="const GLint *" count="2"/> +        <param name="v2" type="const GLint *" count="2"/> +        <glx rop="47"/> +    </function> + +    <function name="Rects" offset="92" vectorequiv="Rectsv" static_dispatch="false"> +        <param name="x1" type="GLshort"/> +        <param name="y1" type="GLshort"/> +        <param name="x2" type="GLshort"/> +        <param name="y2" type="GLshort"/> +    </function> + +    <function name="Rectsv" offset="93" static_dispatch="false"> +        <param name="v1" type="const GLshort *" count="2"/> +        <param name="v2" type="const GLshort *" count="2"/> +        <glx rop="48"/> +    </function> + +    <function name="TexCoord1d" offset="94" vectorequiv="TexCoord1dv" static_dispatch="false"> +        <param name="s" type="GLdouble"/> +    </function> + +    <function name="TexCoord1dv" offset="95" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="1"/> +        <glx rop="49"/> +    </function> + +    <function name="TexCoord1f" offset="96" vectorequiv="TexCoord1fv" static_dispatch="false"> +        <param name="s" type="GLfloat"/> +    </function> + +    <function name="TexCoord1fv" offset="97" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="1"/> +        <glx rop="50"/> +    </function> + +    <function name="TexCoord1i" offset="98" vectorequiv="TexCoord1iv" static_dispatch="false"> +        <param name="s" type="GLint"/> +    </function> + +    <function name="TexCoord1iv" offset="99" static_dispatch="false"> +        <param name="v" type="const GLint *" count="1"/> +        <glx rop="51"/> +    </function> + +    <function name="TexCoord1s" offset="100" vectorequiv="TexCoord1sv" static_dispatch="false"> +        <param name="s" type="GLshort"/> +    </function> + +    <function name="TexCoord1sv" offset="101" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="1"/> +        <glx rop="52"/> +    </function> + +    <function name="TexCoord2d" offset="102" vectorequiv="TexCoord2dv" static_dispatch="false"> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +    </function> + +    <function name="TexCoord2dv" offset="103" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="2"/> +        <glx rop="53"/> +    </function> + +    <function name="TexCoord2f" offset="104" vectorequiv="TexCoord2fv" static_dispatch="false"> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +    </function> + +    <function name="TexCoord2fv" offset="105" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="2"/> +        <glx rop="54"/> +    </function> + +    <function name="TexCoord2i" offset="106" vectorequiv="TexCoord2iv" static_dispatch="false"> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +    </function> + +    <function name="TexCoord2iv" offset="107" static_dispatch="false"> +        <param name="v" type="const GLint *" count="2"/> +        <glx rop="55"/> +    </function> + +    <function name="TexCoord2s" offset="108" vectorequiv="TexCoord2sv" static_dispatch="false"> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +    </function> + +    <function name="TexCoord2sv" offset="109" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="2"/> +        <glx rop="56"/> +    </function> + +    <function name="TexCoord3d" offset="110" vectorequiv="TexCoord3dv" static_dispatch="false"> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +        <param name="r" type="GLdouble"/> +    </function> + +    <function name="TexCoord3dv" offset="111" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="57"/> +    </function> + +    <function name="TexCoord3f" offset="112" vectorequiv="TexCoord3fv" static_dispatch="false"> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +    </function> + +    <function name="TexCoord3fv" offset="113" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="58"/> +    </function> + +    <function name="TexCoord3i" offset="114" vectorequiv="TexCoord3iv" static_dispatch="false"> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +        <param name="r" type="GLint"/> +    </function> + +    <function name="TexCoord3iv" offset="115" static_dispatch="false"> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="59"/> +    </function> + +    <function name="TexCoord3s" offset="116" vectorequiv="TexCoord3sv" static_dispatch="false"> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +        <param name="r" type="GLshort"/> +    </function> + +    <function name="TexCoord3sv" offset="117" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="60"/> +    </function> + +    <function name="TexCoord4d" offset="118" vectorequiv="TexCoord4dv" static_dispatch="false"> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +        <param name="r" type="GLdouble"/> +        <param name="q" type="GLdouble"/> +    </function> + +    <function name="TexCoord4dv" offset="119" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="4"/> +        <glx rop="61"/> +    </function> + +    <function name="TexCoord4f" offset="120" vectorequiv="TexCoord4fv" static_dispatch="false"> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +        <param name="q" type="GLfloat"/> +    </function> + +    <function name="TexCoord4fv" offset="121" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="4"/> +        <glx rop="62"/> +    </function> + +    <function name="TexCoord4i" offset="122" vectorequiv="TexCoord4iv" static_dispatch="false"> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +        <param name="r" type="GLint"/> +        <param name="q" type="GLint"/> +    </function> + +    <function name="TexCoord4iv" offset="123" static_dispatch="false"> +        <param name="v" type="const GLint *" count="4"/> +        <glx rop="63"/> +    </function> + +    <function name="TexCoord4s" offset="124" vectorequiv="TexCoord4sv" static_dispatch="false"> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +        <param name="r" type="GLshort"/> +        <param name="q" type="GLshort"/> +    </function> + +    <function name="TexCoord4sv" offset="125" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="4"/> +        <glx rop="64"/> +    </function> + +    <function name="Vertex2d" offset="126" vectorequiv="Vertex2dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +    </function> + +    <function name="Vertex2dv" offset="127" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="2"/> +        <glx rop="65"/> +    </function> + +    <function name="Vertex2f" offset="128" vectorequiv="Vertex2fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +    </function> + +    <function name="Vertex2fv" offset="129" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="2"/> +        <glx rop="66"/> +    </function> + +    <function name="Vertex2i" offset="130" vectorequiv="Vertex2iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +    </function> + +    <function name="Vertex2iv" offset="131" static_dispatch="false"> +        <param name="v" type="const GLint *" count="2"/> +        <glx rop="67"/> +    </function> + +    <function name="Vertex2s" offset="132" vectorequiv="Vertex2sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +    </function> + +    <function name="Vertex2sv" offset="133" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="2"/> +        <glx rop="68"/> +    </function> + +    <function name="Vertex3d" offset="134" vectorequiv="Vertex3dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +    </function> + +    <function name="Vertex3dv" offset="135" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="69"/> +    </function> + +    <function name="Vertex3f" offset="136" vectorequiv="Vertex3fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +    </function> + +    <function name="Vertex3fv" offset="137" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="70"/> +    </function> + +    <function name="Vertex3i" offset="138" vectorequiv="Vertex3iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="z" type="GLint"/> +    </function> + +    <function name="Vertex3iv" offset="139" static_dispatch="false"> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="71"/> +    </function> + +    <function name="Vertex3s" offset="140" vectorequiv="Vertex3sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +        <param name="z" type="GLshort"/> +    </function> + +    <function name="Vertex3sv" offset="141" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="72"/> +    </function> + +    <function name="Vertex4d" offset="142" vectorequiv="Vertex4dv" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +        <param name="w" type="GLdouble"/> +    </function> + +    <function name="Vertex4dv" offset="143" static_dispatch="false"> +        <param name="v" type="const GLdouble *" count="4"/> +        <glx rop="73"/> +    </function> + +    <function name="Vertex4f" offset="144" vectorequiv="Vertex4fv" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <param name="w" type="GLfloat"/> +    </function> + +    <function name="Vertex4fv" offset="145" static_dispatch="false"> +        <param name="v" type="const GLfloat *" count="4"/> +        <glx rop="74"/> +    </function> + +    <function name="Vertex4i" offset="146" vectorequiv="Vertex4iv" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="z" type="GLint"/> +        <param name="w" type="GLint"/> +    </function> + +    <function name="Vertex4iv" offset="147" static_dispatch="false"> +        <param name="v" type="const GLint *" count="4"/> +        <glx rop="75"/> +    </function> + +    <function name="Vertex4s" offset="148" vectorequiv="Vertex4sv" static_dispatch="false"> +        <param name="x" type="GLshort"/> +        <param name="y" type="GLshort"/> +        <param name="z" type="GLshort"/> +        <param name="w" type="GLshort"/> +    </function> + +    <function name="Vertex4sv" offset="149" static_dispatch="false"> +        <param name="v" type="const GLshort *" count="4"/> +        <glx rop="76"/> +    </function> + +    <function name="ClipPlane" offset="150" static_dispatch="false"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="const GLdouble *" count="4"/> +        <glx rop="77"/> +    </function> + +    <function name="ColorMaterial" offset="151" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="mode" type="GLenum"/> +        <glx rop="78"/> +    </function> + +    <!--function name="CullFace" offset="152" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="79"/> +    </function> + +    <function name="Fogf" offset="153" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="80"/> +    </function> + +    <function name="Fogfv" offset="154" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="81"/> +    </function--> + +    <function name="Fogi" offset="155" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="82"/> +    </function> + +    <function name="Fogiv" offset="156" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="83"/> +    </function> + +    <!--function name="FrontFace" offset="157" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="84"/> +    </function> + +    <function name="Hint" offset="158" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="mode" type="GLenum"/> +        <glx rop="85"/> +    </function> + +    <function name="Lightf" offset="159" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="86"/> +    </function> + +    <function name="Lightfv" offset="160" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="87"/> +    </function--> + +    <function name="Lighti" offset="161" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="88"/> +    </function> + +    <function name="Lightiv" offset="162" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="89"/> +    </function> + +    <!--function name="LightModelf" offset="163" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="90"/> +    </function> + +    <function name="LightModelfv" offset="164" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="91"/> +    </function--> + +    <function name="LightModeli" offset="165" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="92"/> +    </function> + +    <function name="LightModeliv" offset="166" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="93"/> +    </function> + +    <function name="LineStipple" offset="167" static_dispatch="false"> +        <param name="factor" type="GLint"/> +        <param name="pattern" type="GLushort"/> +        <glx rop="94"/> +    </function> + +    <!--function name="LineWidth" offset="168" static_dispatch="false"> +        <param name="width" type="GLfloat"/> +        <glx rop="95"/> +    </function> + +    <function name="Materialf" offset="169" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="96"/> +    </function> + +    <function name="Materialfv" offset="170" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="97"/> +    </function--> + +    <function name="Materiali" offset="171" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="98"/> +    </function> + +    <function name="Materialiv" offset="172" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="99"/> +    </function> + +    <!--function name="PointSize" offset="173" static_dispatch="false"> +        <param name="size" type="GLfloat"/> +        <glx rop="100"/> +    </function--> + +    <function name="PolygonMode" offset="174" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="mode" type="GLenum"/> +        <glx rop="101"/> +    </function> + +    <function name="PolygonStipple" offset="175" static_dispatch="false"> +        <param name="mask" type="const GLubyte *" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP" img_target="0" img_pad_dimensions="false"/> +        <glx rop="102"/> +    </function> + +    <!--function name="Scissor" offset="176" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="103"/> +    </function> + +    <function name="ShadeModel" offset="177" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="104"/> +    </function> + +    <function name="TexParameterf" offset="178" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="105"/> +    </function> + +    <function name="TexParameterfv" offset="179" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="106"/> +    </function> + +    <function name="TexParameteri" offset="180" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="107"/> +    </function> + +    <function name="TexParameteriv" offset="181" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="108"/> +    </function--> + +    <function name="TexImage1D" offset="182" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/> +        <glx rop="109" large="true"/> +    </function> + +    <!--function name="TexImage2D" offset="183" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_send_null="true" img_pad_dimensions="true"/> +        <glx rop="110" large="true"/> +    </function> + +    <function name="TexEnvf" offset="184" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="111"/> +    </function> + +    <function name="TexEnvfv" offset="185" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="112"/> +    </function> + +    <function name="TexEnvi" offset="186" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="113"/> +    </function> + +    <function name="TexEnviv" offset="187" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="114"/> +    </function--> + +    <function name="TexGend" offset="188" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLdouble"/> +        <glx rop="115"/> +    </function> + +    <function name="TexGendv" offset="189" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLdouble *" variable_param="pname"/> +        <glx rop="116"/> +    </function> + +    <!--function name="TexGenf" offset="190" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="117"/> +    </function> + +    <function name="TexGenfv" offset="191" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="118"/> +    </function> + +    <function name="TexGeni" offset="192" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="119"/> +    </function> + +    <function name="TexGeniv" offset="193" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="120"/> +    </function--> + +    <function name="FeedbackBuffer" offset="194" static_dispatch="false"> +        <param name="size" type="GLsizei"/> +        <param name="type" type="GLenum"/> +        <param name="buffer" type="GLfloat *" output="true"/> +        <glx sop="105" handcode="true"/> +    </function> + +    <function name="SelectBuffer" offset="195" static_dispatch="false"> +        <param name="size" type="GLsizei"/> +        <param name="buffer" type="GLuint *" output="true"/> +        <glx sop="106" handcode="true"/> +    </function> + +    <function name="RenderMode" offset="196" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <return type="GLint"/> +        <glx sop="107" handcode="true"/> +    </function> + +    <function name="InitNames" offset="197" static_dispatch="false"> +        <glx rop="121"/> +    </function> + +    <function name="LoadName" offset="198" static_dispatch="false"> +        <param name="name" type="GLuint"/> +        <glx rop="122"/> +    </function> + +    <function name="PassThrough" offset="199" static_dispatch="false"> +        <param name="token" type="GLfloat"/> +        <glx rop="123"/> +    </function> + +    <function name="PopName" offset="200" static_dispatch="false"> +        <glx rop="124"/> +    </function> + +    <function name="PushName" offset="201" static_dispatch="false"> +        <param name="name" type="GLuint"/> +        <glx rop="125"/> +    </function> + +    <function name="DrawBuffer" offset="202" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="126"/> +    </function> + +    <!--function name="Clear" offset="203" static_dispatch="false"> +        <param name="mask" type="GLbitfield"/> +        <glx rop="127"/> +    </function--> + +    <function name="ClearAccum" offset="204" static_dispatch="false"> +        <param name="red" type="GLfloat"/> +        <param name="green" type="GLfloat"/> +        <param name="blue" type="GLfloat"/> +        <param name="alpha" type="GLfloat"/> +        <glx rop="128"/> +    </function> + +    <function name="ClearIndex" offset="205" static_dispatch="false"> +        <param name="c" type="GLfloat"/> +        <glx rop="129"/> +    </function> + +    <!--function name="ClearColor" offset="206" static_dispatch="false"> +        <param name="red" type="GLclampf"/> +        <param name="green" type="GLclampf"/> +        <param name="blue" type="GLclampf"/> +        <param name="alpha" type="GLclampf"/> +        <glx rop="130"/> +    </function> + +    <function name="ClearStencil" offset="207" static_dispatch="false"> +        <param name="s" type="GLint"/> +        <glx rop="131"/> +    </function--> + +    <function name="ClearDepth" offset="208" static_dispatch="false"> +        <param name="depth" type="GLclampd"/> +        <glx rop="132"/> +    </function> + +    <!--function name="StencilMask" offset="209" static_dispatch="false"> +        <param name="mask" type="GLuint"/> +        <glx rop="133"/> +    </function> + +    <function name="ColorMask" offset="210" static_dispatch="false"> +        <param name="red" type="GLboolean"/> +        <param name="green" type="GLboolean"/> +        <param name="blue" type="GLboolean"/> +        <param name="alpha" type="GLboolean"/> +        <glx rop="134"/> +    </function> + +    <function name="DepthMask" offset="211" static_dispatch="false"> +        <param name="flag" type="GLboolean"/> +        <glx rop="135"/> +    </function--> + +    <function name="IndexMask" offset="212" static_dispatch="false"> +        <param name="mask" type="GLuint"/> +        <glx rop="136"/> +    </function> + +    <function name="Accum" offset="213" static_dispatch="false"> +        <param name="op" type="GLenum"/> +        <param name="value" type="GLfloat"/> +        <glx rop="137"/> +    </function> + +    <!--function name="Disable" offset="214" static_dispatch="false"> +        <param name="cap" type="GLenum"/> +        <glx rop="138" handcode="client"/> +    </function> + +    <function name="Enable" offset="215" static_dispatch="false"> +        <param name="cap" type="GLenum"/> +        <glx rop="139" handcode="client"/> +    </function> + +    <function name="Finish" offset="216" static_dispatch="false"> +        <glx sop="108" handcode="true"/> +    </function> + +    <function name="Flush" offset="217" static_dispatch="false"> +        <glx sop="142" handcode="true"/> +    </function--> + +    <function name="PopAttrib" offset="218" static_dispatch="false"> +        <glx rop="141"/> +    </function> + +    <function name="PushAttrib" offset="219" static_dispatch="false"> +        <param name="mask" type="GLbitfield"/> +        <glx rop="142"/> +    </function> + +    <function name="Map1d" offset="220" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="u1" type="GLdouble"/> +        <param name="u2" type="GLdouble"/> +        <param name="stride" type="GLint" client_only="true"/> +        <param name="order" type="GLint"/> +        <param name="points" type="const GLdouble *" variable_param="order"/> +        <glx rop="143" handcode="true"/> +    </function> + +    <function name="Map1f" offset="221" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="u1" type="GLfloat"/> +        <param name="u2" type="GLfloat"/> +        <param name="stride" type="GLint" client_only="true"/> +        <param name="order" type="GLint"/> +        <param name="points" type="const GLfloat *" variable_param="order"/> +        <glx rop="144" handcode="true"/> +    </function> + +    <function name="Map2d" offset="222" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="u1" type="GLdouble"/> +        <param name="u2" type="GLdouble"/> +        <param name="ustride" type="GLint" client_only="true"/> +        <param name="uorder" type="GLint"/> +        <param name="v1" type="GLdouble"/> +        <param name="v2" type="GLdouble"/> +        <param name="vstride" type="GLint" client_only="true"/> +        <param name="vorder" type="GLint"/> +        <param name="points" type="const GLdouble *" variable_param="uorder"/> +        <glx rop="145" handcode="true"/> +    </function> + +    <function name="Map2f" offset="223" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="u1" type="GLfloat"/> +        <param name="u2" type="GLfloat"/> +        <param name="ustride" type="GLint" client_only="true"/> +        <param name="uorder" type="GLint"/> +        <param name="v1" type="GLfloat"/> +        <param name="v2" type="GLfloat"/> +        <param name="vstride" type="GLint" client_only="true"/> +        <param name="vorder" type="GLint"/> +        <param name="points" type="const GLfloat *" variable_param="uorder"/> +        <glx rop="146" handcode="true"/> +    </function> + +    <function name="MapGrid1d" offset="224" static_dispatch="false"> +        <param name="un" type="GLint"/> +        <param name="u1" type="GLdouble"/> +        <param name="u2" type="GLdouble"/> +        <glx rop="147"/> +    </function> + +    <function name="MapGrid1f" offset="225" static_dispatch="false"> +        <param name="un" type="GLint"/> +        <param name="u1" type="GLfloat"/> +        <param name="u2" type="GLfloat"/> +        <glx rop="148"/> +    </function> + +    <function name="MapGrid2d" offset="226" static_dispatch="false"> +        <param name="un" type="GLint"/> +        <param name="u1" type="GLdouble"/> +        <param name="u2" type="GLdouble"/> +        <param name="vn" type="GLint"/> +        <param name="v1" type="GLdouble"/> +        <param name="v2" type="GLdouble"/> +        <glx rop="149"/> +    </function> + +    <function name="MapGrid2f" offset="227" static_dispatch="false"> +        <param name="un" type="GLint"/> +        <param name="u1" type="GLfloat"/> +        <param name="u2" type="GLfloat"/> +        <param name="vn" type="GLint"/> +        <param name="v1" type="GLfloat"/> +        <param name="v2" type="GLfloat"/> +        <glx rop="150"/> +    </function> + +    <function name="EvalCoord1d" offset="228" vectorequiv="EvalCoord1dv" static_dispatch="false"> +        <param name="u" type="GLdouble"/> +    </function> + +    <function name="EvalCoord1dv" offset="229" static_dispatch="false"> +        <param name="u" type="const GLdouble *" count="1"/> +        <glx rop="151"/> +    </function> + +    <function name="EvalCoord1f" offset="230" vectorequiv="EvalCoord1fv" static_dispatch="false"> +        <param name="u" type="GLfloat"/> +    </function> + +    <function name="EvalCoord1fv" offset="231" static_dispatch="false"> +        <param name="u" type="const GLfloat *" count="1"/> +        <glx rop="152"/> +    </function> + +    <function name="EvalCoord2d" offset="232" vectorequiv="EvalCoord2dv" static_dispatch="false"> +        <param name="u" type="GLdouble"/> +        <param name="v" type="GLdouble"/> +    </function> + +    <function name="EvalCoord2dv" offset="233" static_dispatch="false"> +        <param name="u" type="const GLdouble *" count="2"/> +        <glx rop="153"/> +    </function> + +    <function name="EvalCoord2f" offset="234" vectorequiv="EvalCoord2fv" static_dispatch="false"> +        <param name="u" type="GLfloat"/> +        <param name="v" type="GLfloat"/> +    </function> + +    <function name="EvalCoord2fv" offset="235" static_dispatch="false"> +        <param name="u" type="const GLfloat *" count="2"/> +        <glx rop="154"/> +    </function> + +    <function name="EvalMesh1" offset="236" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <param name="i1" type="GLint"/> +        <param name="i2" type="GLint"/> +        <glx rop="155"/> +    </function> + +    <function name="EvalPoint1" offset="237" static_dispatch="false"> +        <param name="i" type="GLint"/> +        <glx rop="156"/> +    </function> + +    <function name="EvalMesh2" offset="238" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <param name="i1" type="GLint"/> +        <param name="i2" type="GLint"/> +        <param name="j1" type="GLint"/> +        <param name="j2" type="GLint"/> +        <glx rop="157"/> +    </function> + +    <function name="EvalPoint2" offset="239" static_dispatch="false"> +        <param name="i" type="GLint"/> +        <param name="j" type="GLint"/> +        <glx rop="158"/> +    </function> + +    <!--function name="AlphaFunc" offset="240" static_dispatch="false"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLclampf"/> +        <glx rop="159"/> +    </function> + +    <function name="BlendFunc" offset="241" static_dispatch="false"> +        <param name="sfactor" type="GLenum"/> +        <param name="dfactor" type="GLenum"/> +        <glx rop="160"/> +    </function> + +    <function name="LogicOp" offset="242" static_dispatch="false"> +        <param name="opcode" type="GLenum"/> +        <glx rop="161"/> +    </function> + +    <function name="StencilFunc" offset="243" static_dispatch="false"> +        <param name="func" type="GLenum"/> +        <param name="ref" type="GLint"/> +        <param name="mask" type="GLuint"/> +        <glx rop="162"/> +    </function> + +    <function name="StencilOp" offset="244" static_dispatch="false"> +        <param name="fail" type="GLenum"/> +        <param name="zfail" type="GLenum"/> +        <param name="zpass" type="GLenum"/> +        <glx rop="163"/> +    </function> + +    <function name="DepthFunc" offset="245" static_dispatch="false"> +        <param name="func" type="GLenum"/> +        <glx rop="164"/> +    </function--> + +    <function name="PixelZoom" offset="246" static_dispatch="false"> +        <param name="xfactor" type="GLfloat"/> +        <param name="yfactor" type="GLfloat"/> +        <glx rop="165"/> +    </function> + +    <function name="PixelTransferf" offset="247" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx rop="166"/> +    </function> + +    <function name="PixelTransferi" offset="248" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx rop="167"/> +    </function> + +    <function name="PixelStoref" offset="249" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLfloat"/> +        <glx sop="109" handcode="client"/> +    </function> + +    <!--function name="PixelStorei" offset="250" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="param" type="GLint"/> +        <glx sop="110" handcode="client"/> +    </function--> + +    <function name="PixelMapfv" offset="251" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="mapsize" type="GLsizei" counter="true"/> +        <param name="values" type="const GLfloat *" count="mapsize"/> +        <glx rop="168" large="true"/> +    </function> + +    <function name="PixelMapuiv" offset="252" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="mapsize" type="GLsizei" counter="true"/> +        <param name="values" type="const GLuint *" count="mapsize"/> +        <glx rop="169" large="true"/> +    </function> + +    <function name="PixelMapusv" offset="253" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="mapsize" type="GLsizei" counter="true"/> +        <param name="values" type="const GLushort *" count="mapsize"/> +        <glx rop="170" large="true"/> +    </function> + +    <function name="ReadBuffer" offset="254" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="171"/> +    </function> + +    <function name="CopyPixels" offset="255" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="type" type="GLenum"/> +        <glx rop="172"/> +    </function> + +    <!--function name="ReadPixels" offset="256" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="GLvoid *" output="true"  img_width="width" img_height="height" img_format="format" img_type="type" img_target="0"/> +        <glx sop="111"/> +    </function--> + +    <function name="DrawPixels" offset="257" static_dispatch="false"> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="0" img_pad_dimensions="false"/> +        <glx rop="173" large="true"/> +    </function> + +    <!--function name="GetBooleanv" offset="258" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLboolean *" output="true" variable_param="pname"/> +        <glx sop="112" handcode="client"/> +    </function--> + +    <function name="GetClipPlane" offset="259" static_dispatch="false"> +        <param name="plane" type="GLenum"/> +        <param name="equation" type="GLdouble *" output="true" count="4"/> +        <glx sop="113" always_array="true"/> +    </function> + +    <function name="GetDoublev" offset="260" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLdouble *" output="true" variable_param="pname"/> +        <glx sop="114" handcode="client"/> +    </function> + +    <!--function name="GetError" offset="261" static_dispatch="false"> +        <return type="GLenum"/> +        <glx sop="115" handcode="client"/> +    </function> + +    <function name="GetFloatv" offset="262" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="116" handcode="client"/> +    </function> + +    <function name="GetIntegerv" offset="263" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="117" handcode="client"/> +    </function> + +    <function name="GetLightfv" offset="264" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="118"/> +    </function--> + +    <function name="GetLightiv" offset="265" static_dispatch="false"> +        <param name="light" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="119"/> +    </function> + +    <function name="GetMapdv" offset="266" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="query" type="GLenum"/> +        <param name="v" type="GLdouble *" output="true" variable_param="target query"/> +        <glx sop="120"/> +    </function> + +    <function name="GetMapfv" offset="267" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="query" type="GLenum"/> +        <param name="v" type="GLfloat *" output="true" variable_param="target query"/> +        <glx sop="121"/> +    </function> + +    <function name="GetMapiv" offset="268" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="query" type="GLenum"/> +        <param name="v" type="GLint *" output="true" variable_param="target query"/> +        <glx sop="122"/> +    </function> + +    <!--function name="GetMaterialfv" offset="269" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="123"/> +    </function--> + +    <function name="GetMaterialiv" offset="270" static_dispatch="false"> +        <param name="face" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="124"/> +    </function> + +    <function name="GetPixelMapfv" offset="271" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="values" type="GLfloat *" output="true" variable_param="map"/> +        <glx sop="125"/> +    </function> + +    <function name="GetPixelMapuiv" offset="272" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="values" type="GLuint *" output="true" variable_param="map"/> +        <glx sop="126"/> +    </function> + +    <function name="GetPixelMapusv" offset="273" static_dispatch="false"> +        <param name="map" type="GLenum"/> +        <param name="values" type="GLushort *" output="true" variable_param="map"/> +        <glx sop="127"/> +    </function> + +    <function name="GetPolygonStipple" offset="274" static_dispatch="false"> +        <param name="mask" type="GLubyte *" output="true" img_width="32" img_height="32" img_format="GL_COLOR_INDEX" img_type="GL_BITMAP"/> +        <glx sop="128"/> +    </function> + +    <!--function name="GetString" offset="275" static_dispatch="false"> +        <param name="name" type="GLenum"/> +        <return type="const GLubyte *"/> +        <glx sop="129" handcode="true"/> +    </function> + +    <function name="GetTexEnvfv" offset="276" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="130"/> +    </function> + +    <function name="GetTexEnviv" offset="277" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="131"/> +    </function--> + +    <function name="GetTexGendv" offset="278" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLdouble *" output="true" variable_param="pname"/> +        <glx sop="132"/> +    </function> + +    <!--function name="GetTexGenfv" offset="279" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="133"/> +    </function> + +    <function name="GetTexGeniv" offset="280" static_dispatch="false"> +        <param name="coord" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="134"/> +    </function--> + +    <function name="GetTexImage" offset="281" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="GLvoid *" output="true" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type"/> +        <glx sop="135" dimensions_in_reply="true"/> +    </function> + +    <!--function name="GetTexParameterfv" offset="282" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="136"/> +    </function> + +    <function name="GetTexParameteriv" offset="283" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="137"/> +    </function--> + +    <function name="GetTexLevelParameterfv" offset="284" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="138"/> +    </function> + +    <function name="GetTexLevelParameteriv" offset="285" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="139"/> +    </function> + +    <!--function name="IsEnabled" offset="286" static_dispatch="false"> +        <param name="cap" type="GLenum"/> +        <return type="GLboolean"/> +        <glx sop="140" handcode="client"/> +    </function--> + +    <function name="IsList" offset="287" static_dispatch="false"> +        <param name="list" type="GLuint"/> +        <return type="GLboolean"/> +        <glx sop="141"/> +    </function> + +    <function name="DepthRange" offset="288" static_dispatch="false"> +        <param name="zNear" type="GLclampd"/> +        <param name="zFar" type="GLclampd"/> +        <glx rop="174"/> +    </function> + +    <function name="Frustum" offset="289" static_dispatch="false"> +        <param name="left" type="GLdouble"/> +        <param name="right" type="GLdouble"/> +        <param name="bottom" type="GLdouble"/> +        <param name="top" type="GLdouble"/> +        <param name="zNear" type="GLdouble"/> +        <param name="zFar" type="GLdouble"/> +        <glx rop="175"/> +    </function> + +    <!--function name="LoadIdentity" offset="290" static_dispatch="false"> +        <glx rop="176"/> +    </function> + +    <function name="LoadMatrixf" offset="291" static_dispatch="false"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="177"/> +    </function--> + +    <function name="LoadMatrixd" offset="292" static_dispatch="false"> +        <param name="m" type="const GLdouble *" count="16"/> +        <glx rop="178"/> +    </function> + +    <!--function name="MatrixMode" offset="293" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="179"/> +    </function> + +    <function name="MultMatrixf" offset="294" static_dispatch="false"> +        <param name="m" type="const GLfloat *" count="16"/> +        <glx rop="180"/> +    </function--> + +    <function name="MultMatrixd" offset="295" static_dispatch="false"> +        <param name="m" type="const GLdouble *" count="16"/> +        <glx rop="181"/> +    </function> + +    <function name="Ortho" offset="296" static_dispatch="false"> +        <param name="left" type="GLdouble"/> +        <param name="right" type="GLdouble"/> +        <param name="bottom" type="GLdouble"/> +        <param name="top" type="GLdouble"/> +        <param name="zNear" type="GLdouble"/> +        <param name="zFar" type="GLdouble"/> +        <glx rop="182"/> +    </function> + +    <!--function name="PopMatrix" offset="297" static_dispatch="false"> +        <glx rop="183"/> +    </function> + +    <function name="PushMatrix" offset="298" static_dispatch="false"> +        <glx rop="184"/> +    </function--> + +    <function name="Rotated" offset="299" static_dispatch="false"> +        <param name="angle" type="GLdouble"/> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +        <glx rop="185"/> +    </function> + +    <!--function name="Rotatef" offset="300" static_dispatch="false"> +        <param name="angle" type="GLfloat"/> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="186"/> +    </function--> + +    <function name="Scaled" offset="301" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +        <glx rop="187"/> +    </function> + +    <!--function name="Scalef" offset="302" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="188"/> +    </function--> + +    <function name="Translated" offset="303" static_dispatch="false"> +        <param name="x" type="GLdouble"/> +        <param name="y" type="GLdouble"/> +        <param name="z" type="GLdouble"/> +        <glx rop="189"/> +    </function> + +    <!--function name="Translatef" offset="304" static_dispatch="false"> +        <param name="x" type="GLfloat"/> +        <param name="y" type="GLfloat"/> +        <param name="z" type="GLfloat"/> +        <glx rop="190"/> +    </function> + +    <function name="Viewport" offset="305" static_dispatch="false"> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="191"/> +    </function--> +</category> + +<category name="1.1"> +    <function name="ArrayElement" offset="306" static_dispatch="false"> +        <param name="i" type="GLint"/> +        <glx handcode="true"/> +    </function> + +    <!--function name="ColorPointer" offset="308" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="DisableClientState" offset="309" static_dispatch="false"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="DrawArrays" offset="310" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <param name="first" type="GLint"/> +        <param name="count" type="GLsizei"/> +        <glx rop="193" handcode="true"/> +    </function> + +    <function name="DrawElements" offset="311" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <param name="count" type="GLsizei"/> +        <param name="type" type="GLenum"/> +        <param name="indices" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function--> + +    <function name="EdgeFlagPointer" offset="312" static_dispatch="false"> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <!--function name="EnableClientState" offset="313" static_dispatch="false"> +        <param name="array" type="GLenum"/> +        <glx handcode="true"/> +    </function> + +    <function name="GetPointerv" offset="329" static_dispatch="false"> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLvoid **" output="true"/> +        <glx handcode="true"/> +    </function--> + +    <function name="IndexPointer" offset="314" static_dispatch="false"> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="InterleavedArrays" offset="317" static_dispatch="false"> +        <param name="format" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <!--function name="NormalPointer" offset="318" static_dispatch="false"> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="TexCoordPointer" offset="320" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="VertexPointer" offset="321" static_dispatch="false"> +        <param name="size" type="GLint"/> +        <param name="type" type="GLenum"/> +        <param name="stride" type="GLsizei"/> +        <param name="pointer" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="PolygonOffset" offset="319" static_dispatch="false"> +        <param name="factor" type="GLfloat"/> +        <param name="units" type="GLfloat"/> +        <glx rop="192"/> +    </function--> + +    <function name="CopyTexImage1D" offset="323" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <glx rop="4119"/> +    </function> + +    <!--function name="CopyTexImage2D" offset="324" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <glx rop="4120"/> +    </function--> + +    <function name="CopyTexSubImage1D" offset="325" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <glx rop="4121"/> +    </function> + +    <!--function name="CopyTexSubImage2D" offset="326" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4122"/> +    </function--> + +    <function name="TexSubImage1D" offset="332" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_xoff="xoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4099" large="true"/> +    </function> + +    <!--function name="TexSubImage2D" offset="333" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_xoff="xoffset" img_yoff="yoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4100" large="true"/> +    </function--> + +    <function name="AreTexturesResident" offset="322" static_dispatch="false"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="const GLuint *" count="n"/> +        <param name="residences" type="GLboolean *" output="true" count="n"/> +        <return type="GLboolean"/> +        <glx sop="143" handcode="client" always_array="true"/> +    </function> + +    <!--function name="BindTexture" offset="307" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="texture" type="GLuint"/> +        <glx rop="4117"/> +    </function> + +    <function name="DeleteTextures" offset="327" static_dispatch="false"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="const GLuint *" count="n"/> +        <glx sop="144"/> +    </function> + +    <function name="GenTextures" offset="328" static_dispatch="false"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="GLuint *" output="true" count="n"/> +        <glx sop="145" always_array="true"/> +    </function> + +    <function name="IsTexture" offset="330" static_dispatch="false"> +        <param name="texture" type="GLuint"/> +        <return type="GLboolean"/> +        <glx sop="146"/> +    </function--> + +    <function name="PrioritizeTextures" offset="331" static_dispatch="false"> +        <param name="n" type="GLsizei" counter="true"/> +        <param name="textures" type="const GLuint *" count="n"/> +        <param name="priorities" type="const GLclampf *" count="n"/> +        <glx rop="4118"/> +    </function> + +    <function name="Indexub" offset="315" vectorequiv="Indexubv" static_dispatch="false"> +        <param name="c" type="GLubyte"/> +    </function> + +    <function name="Indexubv" offset="316" static_dispatch="false"> +        <param name="c" type="const GLubyte *" count="1"/> +        <glx rop="194"/> +    </function> + +    <function name="PopClientAttrib" offset="334" static_dispatch="false"> +        <glx handcode="true"/> +    </function> + +    <function name="PushClientAttrib" offset="335" static_dispatch="false"> +        <param name="mask" type="GLbitfield"/> +        <glx handcode="true"/> +    </function> +</category> + +<category name="1.2"> +    <!--function name="BlendColor" offset="336" static_dispatch="false"> +        <param name="red" type="GLclampf"/> +        <param name="green" type="GLclampf"/> +        <param name="blue" type="GLclampf"/> +        <param name="alpha" type="GLclampf"/> +        <glx rop="4096"/> +    </function> + +    <function name="BlendEquation" offset="337" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <glx rop="4097"/> +    </function--> + +    <function name="DrawRangeElements" offset="338" static_dispatch="false"> +        <param name="mode" type="GLenum"/> +        <param name="start" type="GLuint"/> +        <param name="end" type="GLuint"/> +        <param name="count" type="GLsizei"/> +        <param name="type" type="GLenum"/> +        <param name="indices" type="const GLvoid *"/> +        <glx handcode="true"/> +    </function> + +    <function name="ColorTable" offset="339" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="table" type="const GLvoid *" img_width="width" img_pad_dimensions="false" img_format="format" img_type="type" img_target="target"/> +        <glx rop="2053" large="true"/> +    </function> + +    <function name="ColorTableParameterfv" offset="340" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="2054"/> +    </function> + +    <function name="ColorTableParameteriv" offset="341" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="2055"/> +    </function> + +    <function name="CopyColorTable" offset="342" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <glx rop="2056"/> +    </function> + +    <function name="GetColorTable" offset="343" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="table" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/> +        <glx sop="147" dimensions_in_reply="true"/> +    </function> + +    <function name="GetColorTableParameterfv" offset="344" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="148"/> +    </function> + +    <function name="GetColorTableParameteriv" offset="345" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="149"/> +    </function> + +    <function name="ColorSubTable" offset="346" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="start" type="GLsizei"/> +        <param name="count" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="data" type="const GLvoid *" img_width="count" img_pad_dimensions="false" img_format="format" img_type="type" img_target="target"/> +        <glx rop="195" large="true"/> +    </function> + +    <function name="CopyColorSubTable" offset="347" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="start" type="GLsizei"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <glx rop="196"/> +    </function> + +    <function name="ConvolutionFilter1D" offset="348" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="image" type="const GLvoid *" img_width="width" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4101" large="true"/> +    </function> + +    <function name="ConvolutionFilter2D" offset="349" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="image" type="const GLvoid *" img_width="width" img_height="height" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4102" large="true"/> +    </function> + +    <function name="ConvolutionParameterf" offset="350" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat"/> +        <glx rop="4103"/> +    </function> + +    <function name="ConvolutionParameterfv" offset="351" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLfloat *" variable_param="pname"/> +        <glx rop="4104"/> +    </function> + +    <function name="ConvolutionParameteri" offset="352" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint"/> +        <glx rop="4105"/> +    </function> + +    <function name="ConvolutionParameteriv" offset="353" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="const GLint *" variable_param="pname"/> +        <glx rop="4106"/> +    </function> + +    <function name="CopyConvolutionFilter1D" offset="354" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <glx rop="4107"/> +    </function> + +    <function name="CopyConvolutionFilter2D" offset="355" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4108"/> +    </function> + +    <function name="GetConvolutionFilter" offset="356" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="image" type="GLvoid *" output="true" img_width="width" img_height="height" img_format="format" img_type="type"/> +        <glx sop="150" dimensions_in_reply="true"/> +    </function> + +    <function name="GetConvolutionParameterfv" offset="357" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="151"/> +    </function> + +    <function name="GetConvolutionParameteriv" offset="358" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="152"/> +    </function> + +    <function name="GetSeparableFilter" offset="359" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="row" type="GLvoid *" output="true"/> +        <param name="column" type="GLvoid *" output="true"/> +        <param name="span" type="GLvoid *" output="true"/> +        <glx sop="153" handcode="true"/> +    </function> + +    <function name="SeparableFilter2D" offset="360" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="row" type="const GLvoid *"/> +        <param name="column" type="const GLvoid *"/> +        <glx rop="4109" handcode="true"/> +    </function> + +    <function name="GetHistogram" offset="361" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="reset" type="GLboolean"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="values" type="GLvoid *" output="true" img_width="width" img_format="format" img_type="type"/> +        <glx sop="154" dimensions_in_reply="true" img_reset="reset"/> +    </function> + +    <function name="GetHistogramParameterfv" offset="362" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="155"/> +    </function> + +    <function name="GetHistogramParameteriv" offset="363" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="156"/> +    </function> + +    <function name="GetMinmax" offset="364" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="reset" type="GLboolean"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="values" type="GLvoid *" output="true" img_width="2" img_format="format" img_type="type"/> +        <glx sop="157" img_reset="reset"/> +    </function> + +    <function name="GetMinmaxParameterfv" offset="365" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLfloat *" output="true" variable_param="pname"/> +        <glx sop="158"/> +    </function> + +    <function name="GetMinmaxParameteriv" offset="366" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLint *" output="true" variable_param="pname"/> +        <glx sop="159"/> +    </function> + +    <function name="Histogram" offset="367" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="width" type="GLsizei"/> +        <param name="internalformat" type="GLenum"/> +        <param name="sink" type="GLboolean"/> +        <glx rop="4110"/> +    </function> + +    <function name="Minmax" offset="368" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="internalformat" type="GLenum"/> +        <param name="sink" type="GLboolean"/> +        <glx rop="4111"/> +    </function> + +    <function name="ResetHistogram" offset="369" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <glx rop="4112"/> +    </function> + +    <function name="ResetMinmax" offset="370" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <glx rop="4113"/> +    </function> + +    <!--function name="TexImage3D" offset="371" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="internalformat" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="border" type="GLint"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_format="format" img_type="type" img_target="target" img_null_flag="true" img_pad_dimensions="true"/> +        <glx rop="4114" large="true"/> +    </function> + +    <function name="TexSubImage3D" offset="372" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <param name="depth" type="GLsizei"/> +        <param name="format" type="GLenum"/> +        <param name="type" type="GLenum"/> +        <param name="UNUSED" type="GLuint" padding="true"/> +        <param name="pixels" type="const GLvoid *" img_width="width" img_height="height" img_depth="depth" img_xoff="xoffset" img_yoff="yoffset" img_zoff="zoffset" img_format="format" img_type="type" img_target="target" img_pad_dimensions="true"/> +        <glx rop="4115" large="true"/> +    </function> + +    <function name="CopyTexSubImage3D" offset="373" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="level" type="GLint"/> +        <param name="xoffset" type="GLint"/> +        <param name="yoffset" type="GLint"/> +        <param name="zoffset" type="GLint"/> +        <param name="x" type="GLint"/> +        <param name="y" type="GLint"/> +        <param name="width" type="GLsizei"/> +        <param name="height" type="GLsizei"/> +        <glx rop="4123"/> +    </function--> +</category> + +<category name="GL_ARB_multitexture" number="1"> +    <!--function name="ActiveTextureARB" offset="374" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx rop="197"/> +    </function> + +    <function name="ClientActiveTextureARB" offset="375" static_dispatch="false"> +        <param name="texture" type="GLenum"/> +        <glx handcode="true"/> +    </function--> + +    <function name="MultiTexCoord1dARB" offset="376" vectorequiv="MultiTexCoord1dvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLdouble"/> +    </function> + +    <function name="MultiTexCoord1dvARB" offset="377" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLdouble *" count="1"/> +        <glx rop="198"/> +    </function> + +    <function name="MultiTexCoord1fARB" offset="378" vectorequiv="MultiTexCoord1fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +    </function> + +    <function name="MultiTexCoord1fvARB" offset="379" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLfloat *" count="1"/> +        <glx rop="199"/> +    </function> + +    <function name="MultiTexCoord1iARB" offset="380" vectorequiv="MultiTexCoord1ivARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLint"/> +    </function> + +    <function name="MultiTexCoord1ivARB" offset="381" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLint *" count="1"/> +        <glx rop="200"/> +    </function> + +    <function name="MultiTexCoord1sARB" offset="382" vectorequiv="MultiTexCoord1svARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLshort"/> +    </function> + +    <function name="MultiTexCoord1svARB" offset="383" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLshort *" count="1"/> +        <glx rop="201"/> +    </function> + +    <function name="MultiTexCoord2dARB" offset="384" vectorequiv="MultiTexCoord2dvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +    </function> + +    <function name="MultiTexCoord2dvARB" offset="385" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLdouble *" count="2"/> +        <glx rop="202"/> +    </function> + +    <function name="MultiTexCoord2fARB" offset="386" vectorequiv="MultiTexCoord2fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +    </function> + +    <function name="MultiTexCoord2fvARB" offset="387" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLfloat *" count="2"/> +        <glx rop="203"/> +    </function> + +    <function name="MultiTexCoord2iARB" offset="388" vectorequiv="MultiTexCoord2ivARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +    </function> + +    <function name="MultiTexCoord2ivARB" offset="389" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLint *" count="2"/> +        <glx rop="204"/> +    </function> + +    <function name="MultiTexCoord2sARB" offset="390" vectorequiv="MultiTexCoord2svARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +    </function> + +    <function name="MultiTexCoord2svARB" offset="391" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLshort *" count="2"/> +        <glx rop="205"/> +    </function> + +    <function name="MultiTexCoord3dARB" offset="392" vectorequiv="MultiTexCoord3dvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +        <param name="r" type="GLdouble"/> +    </function> + +    <function name="MultiTexCoord3dvARB" offset="393" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLdouble *" count="3"/> +        <glx rop="206"/> +    </function> + +    <function name="MultiTexCoord3fARB" offset="394" vectorequiv="MultiTexCoord3fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +    </function> + +    <function name="MultiTexCoord3fvARB" offset="395" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLfloat *" count="3"/> +        <glx rop="207"/> +    </function> + +    <function name="MultiTexCoord3iARB" offset="396" vectorequiv="MultiTexCoord3ivARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +        <param name="r" type="GLint"/> +    </function> + +    <function name="MultiTexCoord3ivARB" offset="397" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLint *" count="3"/> +        <glx rop="208"/> +    </function> + +    <function name="MultiTexCoord3sARB" offset="398" vectorequiv="MultiTexCoord3svARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +        <param name="r" type="GLshort"/> +    </function> + +    <function name="MultiTexCoord3svARB" offset="399" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLshort *" count="3"/> +        <glx rop="209"/> +    </function> + +    <function name="MultiTexCoord4dARB" offset="400" vectorequiv="MultiTexCoord4dvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLdouble"/> +        <param name="t" type="GLdouble"/> +        <param name="r" type="GLdouble"/> +        <param name="q" type="GLdouble"/> +    </function> + +    <function name="MultiTexCoord4dvARB" offset="401" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLdouble *" count="4"/> +        <glx rop="210"/> +    </function> + +    <!--function name="MultiTexCoord4fARB" offset="402" vectorequiv="MultiTexCoord4fvARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLfloat"/> +        <param name="t" type="GLfloat"/> +        <param name="r" type="GLfloat"/> +        <param name="q" type="GLfloat"/> +    </function--> + +    <function name="MultiTexCoord4fvARB" offset="403" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLfloat *" count="4"/> +        <glx rop="211"/> +    </function> + +    <function name="MultiTexCoord4iARB" offset="404" vectorequiv="MultiTexCoord4ivARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLint"/> +        <param name="t" type="GLint"/> +        <param name="r" type="GLint"/> +        <param name="q" type="GLint"/> +    </function> + +    <function name="MultiTexCoord4ivARB" offset="405" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLint *" count="4"/> +        <glx rop="212"/> +    </function> + +    <function name="MultiTexCoord4sARB" offset="406" vectorequiv="MultiTexCoord4svARB" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="s" type="GLshort"/> +        <param name="t" type="GLshort"/> +        <param name="r" type="GLshort"/> +        <param name="q" type="GLshort"/> +    </function> + +    <function name="MultiTexCoord4svARB" offset="407" static_dispatch="false"> +        <param name="target" type="GLenum"/> +        <param name="v" type="const GLshort *" count="4"/> +        <glx rop="213"/> +    </function> +</category> + +<xi:include href="../../glapi/APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/es_EXT.xml b/src/mesa/es/glapi/es_EXT.xml new file mode 100644 index 0000000000..28f41ae09a --- /dev/null +++ b/src/mesa/es/glapi/es_EXT.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gl_API.dtd"> + +<!-- OpenGL ES extensions --> + +<OpenGLAPI> + +<category name="GL_OES_compressed_paletted_texture" number="6"> +    <enum name="PALETTE4_RGB8_OES"                        value="0x8B90"/> +    <enum name="PALETTE4_RGBA8_OES"                       value="0x8B91"/> +    <enum name="PALETTE4_R5_G6_B5_OES"                    value="0x8B92"/> +    <enum name="PALETTE4_RGBA4_OES"                       value="0x8B93"/> +    <enum name="PALETTE4_RGB5_A1_OES"                     value="0x8B94"/> +    <enum name="PALETTE8_RGB8_OES"                        value="0x8B95"/> +    <enum name="PALETTE8_RGBA8_OES"                       value="0x8B96"/> +    <enum name="PALETTE8_R5_G6_B5_OES"                    value="0x8B97"/> +    <enum name="PALETTE8_RGBA4_OES"                       value="0x8B98"/> +    <enum name="PALETTE8_RGB5_A1_OES"                     value="0x8B99"/> +</category> + +<category name="GL_OES_depth24" number="24"> +    <enum name="DEPTH_COMPONENT24_OES"                    value="0x81A6"/> +</category> + +<category name="GL_OES_depth32" number="25"> +    <enum name="DEPTH_COMPONENT32_OES"                    value="0x81A7"/> +</category> + +<category name="GL_OES_element_index_uint" number="26"> +    <!-- No new functions, types, enums. --> +</category> + +<category name="GL_OES_fbo_render_mipmap" number="27"> +    <!-- No new functions, types, enums. --> +</category> + +<category name="GL_OES_mapbuffer" number="29"> +    <enum name="WRITE_ONLY_OES"                           value="0x88B9"/> +    <enum name="BUFFER_ACCESS_OES"                        value="0x88BB"/> +    <enum name="BUFFER_MAPPED_OES"                        value="0x88BC"/> +    <enum name="BUFFER_MAP_POINTER_OES"                   value="0x88BD"/> + +    <function name="GetBufferPointervOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="pname" type="GLenum"/> +        <param name="params" type="GLvoid **"/> +    </function> + +    <function name="MapBufferOES" offset="assign"> +        <param name="target" type="GLenum"/> +        <param name="access" type="GLenum"/> +	<return type="GLvoid *"/> +    </function> + +    <function name="UnmapBufferOES" offset="assign"> +        <param name="target" type="GLenum"/> +	<return type="GLboolean"/> +    </function> +</category> + +<category name="GL_OES_rgb8_rgba8" number="30"> +    <enum name="RGB8_OES"                                 value="0x8051"/> +    <enum name="RGBA8_OES"                                value="0x8058"/> +</category> + +<category name="GL_OES_stencil1" number="31"> +    <enum name="STENCIL_INDEX1_OES"                       value="0x8D46"/> +</category> + +<category name="GL_OES_stencil4" number="32"> +    <enum name="STENCIL_INDEX4_OES"                       value="0x8D47"/> +</category> + +<category name="GL_OES_stencil8" number="33"> +    <enum name="STENCIL_INDEX8_OES"                       value="0x8D48"/> +</category> + +<category name="GL_EXT_texture_filter_anisotropic" number="41"> +    <enum name="TEXTURE_MAX_ANISOTROPY_EXT"               value="0x84FE"/> +    <enum name="MAX_TEXTURE_MAX_ANISOTROPY_EXT"           value="0x84FF"/> +</category> + +</OpenGLAPI> diff --git a/src/mesa/es/glapi/gl_compare.py b/src/mesa/es/glapi/gl_compare.py new file mode 100644 index 0000000000..7a2148cb1f --- /dev/null +++ b/src/mesa/es/glapi/gl_compare.py @@ -0,0 +1,354 @@ +#!/usr/bin/python +# +# Copyright (C) 2009 Chia-I Wu <olv@0xlab.org> +# +# 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. + +import sys +import os.path +import getopt + +GLAPI = "../../glapi" +sys.path.append(GLAPI) + +import gl_XML +import glX_XML + +class ApiSet(object): +    def __init__(self, api, elts=["enum", "type", "function"]): +        self.api = api +        self.elts = elts + +    def _check_enum(self, e1, e2, strict=True): +        if e1.name != e2.name: +            raise ValueError("%s: name mismatch" % e1.name) +        if e1.value != e2.value: +            raise ValueError("%s: value 0x%04x != 0x%04x" +                    % (e1.name, e1.value, e2.value)) + +    def _check_type(self, t1, t2, strict=True): +        if t1.name != t2.name: +            raise ValueError("%s: name mismatch" % t1.name) +        if t1.type_expr.string() != t2.type_expr.string(): +            raise ValueError("%s: type %s != %s" +                    % (t1.name, t1.type_expr.string(), t2.type_expr.string())) + +    def _check_function(self, f1, f2, strict=True): +        if f1.name != f2.name: +            raise ValueError("%s: name mismatch" % f1.name) +        if f1.return_type != f2.return_type: +            raise ValueError("%s: return type %s != %s" +                    % (f1.name, f1.return_type, f2.return_type)) +        # there might be padded parameters +        if strict and len(f1.parameters) != len(f2.parameters): +            raise ValueError("%s: parameter length %d != %d" +                    % (f1.name, len(f1.parameters), len(f2.parameters))) +        if f1.assign_offset != f2.assign_offset: +            if ((f1.assign_offset and f2.offset < 0) or +                (f2.assign_offset and f1.offset < 0)): +                raise ValueError("%s: assign offset %d != %d" +                        % (f1.name, f1.assign_offset, f2.assign_offset)) +        elif not f1.assign_offset: +            if f1.offset != f2.offset: +                raise ValueError("%s: offset %d != %d" +                        % (f1.name, f1.offset, f2.offset)) + +        if strict: +            l1 = f1.entry_points +            l2 = f2.entry_points +            l1.sort() +            l2.sort() +            if l1 != l2: +                raise ValueError("%s: entry points %s != %s" +                        % (f1.name, l1, l2)) + +            l1 = f1.static_entry_points +            l2 = f2.static_entry_points +            l1.sort() +            l2.sort() +            if l1 != l2: +                raise ValueError("%s: static entry points %s != %s" +                        % (f1.name, l1, l2)) + +        pad = 0 +        for i in xrange(len(f1.parameters)): +            p1 = f1.parameters[i] +            p2 = f2.parameters[i + pad] + +            if not strict and p1.is_padding != p2.is_padding: +                if p1.is_padding: +                    pad -= 1 +                    continue +                else: +                    pad += 1 +                    p2 = f2.parameters[i + pad] + +            if strict and p1.name != p2.name: +                raise ValueError("%s: parameter %d name %s != %s" +                        % (f1.name, i, p1.name, p2.name)) +            if p1.type_expr.string() != p2.type_expr.string(): +                if (strict or +                    # special case +                    f1.name == "TexImage2D" and p1.name != "internalformat"): +                    raise ValueError("%s: parameter %s type %s != %s" +                            % (f1.name, p1.name, p1.type_expr.string(), +                               p2.type_expr.string())) + +    def union(self, other): +        union = gl_XML.gl_api(None) + +        if "enum" in self.elts: +            union.enums_by_name = other.enums_by_name.copy() +            for key, val in self.api.enums_by_name.iteritems(): +                if key not in union.enums_by_name: +                    union.enums_by_name[key] = val +                else: +                    self._check_enum(val, other.enums_by_name[key]) + +        if "type" in self.elts: +            union.types_by_name = other.types_by_name.copy() +            for key, val in self.api.types_by_name.iteritems(): +                if key not in union.types_by_name: +                    union.types_by_name[key] = val +                else: +                    self._check_type(val, other.types_by_name[key]) + +        if "function" in self.elts: +            union.functions_by_name = other.functions_by_name.copy() +            for key, val in self.api.functions_by_name.iteritems(): +                if key not in union.functions_by_name: +                    union.functions_by_name[key] = val +                else: +                    self._check_function(val, other.functions_by_name[key]) + +        return union + +    def intersection(self, other): +        intersection = gl_XML.gl_api(None) + +        if "enum" in self.elts: +            for key, val in self.api.enums_by_name.iteritems(): +                if key in other.enums_by_name: +                    self._check_enum(val, other.enums_by_name[key]) +                    intersection.enums_by_name[key] = val + +        if "type" in self.elts: +            for key, val in self.api.types_by_name.iteritems(): +                if key in other.types_by_name: +                    self._check_type(val, other.types_by_name[key]) +                    intersection.types_by_name[key] = val + +        if "function" in self.elts: +            for key, val in self.api.functions_by_name.iteritems(): +                if key in other.functions_by_name: +                    self._check_function(val, other.functions_by_name[key]) +                    intersection.functions_by_name[key] = val + +        return intersection + +    def difference(self, other): +        difference = gl_XML.gl_api(None) + +        if "enum" in self.elts: +            for key, val in self.api.enums_by_name.iteritems(): +                if key not in other.enums_by_name: +                    difference.enums_by_name[key] = val +                else: +                    self._check_enum(val, other.enums_by_name[key]) + +        if "type" in self.elts: +            for key, val in self.api.types_by_name.iteritems(): +                if key not in other.types_by_name: +                    difference.types_by_name[key] = val +                else: +                    self._check_type(val, other.types_by_name[key]) + +        if "function" in self.elts: +            for key, val in self.api.functions_by_name.iteritems(): +                if key not in other.functions_by_name: +                    difference.functions_by_name[key] = val +                else: +                    self._check_function(val, other.functions_by_name[key], False) + +        return difference + +def cmp_enum(e1, e2): +    if e1.value < e2.value: +        return -1 +    elif e1.value > e2.value: +        return 1 +    else: +        return 0 + +def cmp_type(t1, t2): +    return t1.size - t2.size + +def cmp_function(f1, f2): +    if f1.name > f2.name: +        return 1 +    elif f1.name < f2.name: +        return -1 +    else: +        return 0 + +def spaces(n, str=""): +    spaces = n - len(str) +    if spaces < 1: +        spaces = 1 +    return " " * spaces + +def output_enum(e, indent=0): +    attrs = 'name="%s"' % e.name +    if e.default_count > 0: +        tab = spaces(37, attrs) +        attrs += '%scount="%d"' % (tab, e.default_count) +    tab = spaces(48, attrs) +    val = "%04x" % e.value +    val = "0x" + val.upper() +    attrs += '%svalue="%s"' % (tab, val) + +    # no child +    if not e.functions: +        print '%s<enum %s/>' % (spaces(indent), attrs) +        return + +    print '%s<enum %s>' % (spaces(indent), attrs) +    for key, val in e.functions.iteritems(): +        attrs = 'name="%s"' % key +        if val[0] != e.default_count: +            attrs += ' count="%d"' % val[0] +        if not val[1]: +            attrs += ' mode="get"' + +        print '%s<size %s/>' % (spaces(indent * 2), attrs) + +    print '%s</enum>' % spaces(indent) + +def output_type(t, indent=0): +    tab = spaces(16, t.name) +    attrs = 'name="%s"%ssize="%d"' % (t.name, tab, t.size) +    ctype = t.type_expr.string() +    if ctype.find("unsigned") != -1: +        attrs += ' unsigned="true"' +    elif ctype.find("signed") == -1: +        attrs += ' float="true"' +    print '%s<type %s/>' % (spaces(indent), attrs) + +def output_function(f, indent=0): +    attrs = 'name="%s"' % f.name +    if f.offset > 0: +        if f.assign_offset: +            attrs += ' offset="assign"' +        else: +            attrs += ' offset="%d"' % f.offset +    print '%s<function %s>' % (spaces(indent), attrs) + +    for p in f.parameters: +        attrs = 'name="%s" type="%s"' \ +                % (p.name, p.type_expr.original_string) +        print '%s<param %s/>' % (spaces(indent * 2), attrs) +    if f.return_type != "void": +        attrs = 'type="%s"' % f.return_type +        print '%s<return %s/>' % (spaces(indent * 2), attrs) + +    print '%s</function>' % spaces(indent) + +def output_category(api, indent=0): +    enums = api.enums_by_name.values() +    enums.sort(cmp_enum) +    types = api.types_by_name.values() +    types.sort(cmp_type) +    functions = api.functions_by_name.values() +    functions.sort(cmp_function) + +    for e in enums: +        output_enum(e, indent) +    if enums and types: +        print +    for t in types: +        output_type(t, indent) +    if enums or types: +        print +    for f in functions: +        output_function(f, indent) +        if f != functions[-1]: +            print + +def is_api_empty(api): +    return bool(not api.enums_by_name and +                not api.types_by_name and +                not api.functions_by_name) + +def show_usage(ops): +    print "Usage: %s [-k elts] <%s> <file1> <file2>" % (sys.argv[0], "|".join(ops)) +    print "    -k elts   A comma separated string of types of elements to" +    print "              skip.  Possible types are enum, type, and function." +    sys.exit(1) + +def main(): +    ops = ["union", "intersection", "difference"] +    elts = ["enum", "type", "function"] + +    try: +        options, args = getopt.getopt(sys.argv[1:], "k:") +    except Exception, e: +        show_usage(ops) + +    if len(args) != 3: +        show_usage(ops) +    op, file1, file2 = args +    if op not in ops: +        show_usage(ops) + +    skips = [] +    for opt, val in options: +        if opt == "-k": +            skips = val.split(",") + +    for elt in skips: +        try: +            elts.remove(elt) +        except ValueError: +            show_usage(ops) + +    api1 = gl_XML.parse_GL_API(file1, glX_XML.glx_item_factory()) +    api2 = gl_XML.parse_GL_API(file2, glX_XML.glx_item_factory()) + +    set = ApiSet(api1, elts) +    func = getattr(set, op) +    result = func(api2) + +    if not is_api_empty(result): +        cat_name = "%s_of_%s_and_%s" \ +                % (op, os.path.basename(file1), os.path.basename(file2)) + +        print '<?xml version="1.0"?>' +        print '<!DOCTYPE OpenGLAPI SYSTEM "%s/gl_API.dtd">' % GLAPI +        print +        print '<OpenGLAPI>' +        print +        print '<category name="%s">' % (cat_name) +        output_category(result, 4) +        print '</category>' +        print +        print '</OpenGLAPI>' + +if __name__ == "__main__": +    main() diff --git a/src/mesa/es/glapi/gl_parse_header.py b/src/mesa/es/glapi/gl_parse_header.py new file mode 100644 index 0000000000..8b8d16b395 --- /dev/null +++ b/src/mesa/es/glapi/gl_parse_header.py @@ -0,0 +1,450 @@ +#!/usr/bin/python +# +# Copyright (C) 2009 Chia-I Wu <olv@0xlab.org> +# +# 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. + +import sys +import os.path +import getopt +import re + +GLAPI = "../../glapi" +sys.path.append(GLAPI) + +class HeaderParser(object): +    """Parser for GL header files.""" + +    def __init__(self, verbose=0): +        # match #if and #ifdef +        self.IFDEF = re.compile('#\s*if(n?def\s+(?P<ifdef>\w+)|\s+(?P<if>.+))') +        # match #endif +        self.ENDIF = re.compile('#\s*endif') +        # match typedef abc def; +        self.TYPEDEF = re.compile('typedef\s+(?P<from>[\w ]+)\s+(?P<to>\w+);') +        # match #define XYZ VAL +        self.DEFINE = re.compile('#\s*define\s+(?P<key>\w+)(?P<value>\s+[\w"]*)?') +        # match GLAPI +        self.GLAPI = re.compile('^GL_?API(CALL)?\s+(?P<return>[\w\s*]+[\w*])\s+(GL)?_?APIENTRY\s+(?P<name>\w+)\s*\((?P<params>[\w\s(,*\[\])]+)\)\s*;') + +        self.split_params = re.compile('\s*,\s*') +        self.split_ctype = re.compile('(\W)') +        # ignore GL_VERSION_X_Y +        self.ignore_enum = re.compile('GL(_ES)?_VERSION(_ES_C[ML])?_\d_\d') + +        self.verbose = verbose +        self._reset() + +    def _reset(self): +        """Reset to initial state.""" +        self.ifdef_levels = [] +        self.need_char = False + +    # use typeexpr? +    def _format_ctype(self, ctype, fix=True): +        """Format a ctype string, optionally fix it.""" +        # split the type string +        tmp = self.split_ctype.split(ctype) +        tmp = [s for s in tmp if s and s != " "] + +        pretty = "" +        for i in xrange(len(tmp)): +            # add missing GL prefix +            if (fix and tmp[i] != "const" and tmp[i] != "*" and +                not tmp[i].startswith("GL")): +                tmp[i] = "GL" + tmp[i] + +            if i == 0: +                pretty = tmp[i] +            else: +                sep = " " +                if tmp[i - 1] == "*": +                    sep = "" +                pretty += sep + tmp[i] +        return pretty + +    # use typeexpr? +    def _get_ctype_attrs(self, ctype): +        """Get the attributes of a ctype.""" +        is_float = (ctype.find("float") != -1 or ctype.find("double") != -1) +        is_signed = not (ctype.find("unsigned")  != -1) + +        size = 0 +        if ctype.find("char") != -1: +            size = 1 +        elif ctype.find("short") != -1: +            size = 2 +        elif ctype.find("int") != -1: +            size = 4 +        elif is_float: +            if ctype.find("float") != -1: +                size = 4 +            else: +                size = 8 + +        return (size, is_float, is_signed) + +    def _parse_define(self, line): +        """Parse a #define line for an <enum>.""" +        m = self.DEFINE.search(line) +        if not m: +            if self.verbose and line.find("#define") >= 0: +                print "ignore %s" % (line) +            return None + +        key = m.group("key").strip() +        val = m.group("value").strip() + +        # enum must begin with GL_ and be all uppercase +        if ((not (key.startswith("GL_") and key.isupper())) or +            (self.ignore_enum.match(key) and val == "1")): +            if self.verbose: +                print "ignore enum %s" % (key) +            return None + +        return (key, val) + +    def _parse_typedef(self, line): +        """Parse a typedef line for a <type>.""" +        m = self.TYPEDEF.search(line) +        if not m: +            if self.verbose and line.find("typedef") >= 0: +                print "ignore %s" % (line) +            return None + +        f = m.group("from").strip() +        t = m.group("to").strip() +        if not t.startswith("GL"): +            if self.verbose: +                print "ignore type %s" % (t) +            return None +        attrs = self._get_ctype_attrs(f) + +        return (f, t, attrs) + +    def _parse_gl_api(self, line): +        """Parse a GLAPI line for a <function>.""" +        m = self.GLAPI.search(line) +        if not m: +            if self.verbose and line.find("APIENTRY") >= 0: +                print "ignore %s" % (line) +            return None + +        rettype = m.group("return") +        rettype = self._format_ctype(rettype) +        if rettype == "GLvoid": +            rettype = "" + +        name = m.group("name") + +        param_str = m.group("params") +        chunks = self.split_params.split(param_str) +        chunks = [s.strip() for s in chunks] +        if len(chunks) == 1 and (chunks[0] == "void" or chunks[0] == "GLvoid"): +            chunks = [] + +        params = [] +        for c in chunks: +            # split type and variable name +            idx = c.rfind("*") +            if idx < 0: +                idx = c.rfind(" ") +            if idx >= 0: +                idx += 1 +                ctype = c[:idx] +                var = c[idx:] +            else: +                ctype = c +                var = "unnamed" + +            # convert array to pointer +            idx = var.find("[") +            if idx >= 0: +                var = var[:idx] +                ctype += "*" + +            ctype = self._format_ctype(ctype) +            var = var.strip() + +            if not self.need_char and ctype.find("GLchar") >= 0: +                self.need_char = True + +            params.append((ctype, var)) + +        return (rettype, name, params) + +    def _change_level(self, line): +        """Parse a #ifdef line and change level.""" +        m = self.IFDEF.search(line) +        if m: +            ifdef = m.group("ifdef") +            if not ifdef: +                ifdef = m.group("if") +            self.ifdef_levels.append(ifdef) +            return True +        m = self.ENDIF.search(line) +        if m: +            self.ifdef_levels.pop() +            return True +        return False + +    def _read_header(self, header): +        """Open a header file and read its contents.""" +        lines = [] +        try: +            fp = open(header, "rb") +            lines = fp.readlines() +            fp.close() +        except IOError, e: +            print "failed to read %s: %s" % (header, e) +        return lines + +    def _cmp_enum(self, enum1, enum2): +        """Compare two enums.""" +        # sort by length of the values as strings +        val1 = enum1[1] +        val2 = enum2[1] +        ret = len(val1) - len(val2) +        # sort by the values +        if not ret: +            val1 = int(val1, 16) +            val2 = int(val2, 16) +            ret = val1 - val2 +            # in case int cannot hold the result +            if ret > 0: +                ret = 1 +            elif ret < 0: +                ret = -1 +        # sort by the names +        if not ret: +            if enum1[0] < enum2[0]: +                ret = -1 +            elif enum1[0] > enum2[0]: +                ret = 1 +        return ret + +    def _cmp_type(self, type1, type2): +        """Compare two types.""" +        attrs1 = type1[2] +        attrs2 = type2[2] +        # sort by type size +        ret = attrs1[0] - attrs2[0] +        # float is larger +        if not ret: +            ret = attrs1[1] - attrs2[1] +        # signed is larger +        if not ret: +            ret = attrs1[2] - attrs2[2] +        # reverse +        ret = -ret +        return ret + +    def _cmp_function(self, func1, func2): +        """Compare two functions.""" +        name1 = func1[1] +        name2 = func2[1] +        ret = 0 +        # sort by the names +        if name1 < name2: +            ret = -1 +        elif name1 > name2: +            ret = 1 +        return ret + +    def _postprocess_dict(self, hdict): +        """Post-process a header dict and return an ordered list.""" +        hlist = [] +        largest = 0 +        for key, cat in hdict.iteritems(): +            size = len(cat["enums"]) + len(cat["types"]) + len(cat["functions"]) +            # ignore empty category +            if not size: +                continue + +            cat["enums"].sort(self._cmp_enum) +            # remove duplicates +            dup = [] +            for i in xrange(1, len(cat["enums"])): +                if cat["enums"][i] == cat["enums"][i - 1]: +                    dup.insert(0, i) +            for i in dup: +                e = cat["enums"].pop(i) +                if self.verbose: +                    print "remove duplicate enum %s" % e[0] + +            cat["types"].sort(self._cmp_type) +            cat["functions"].sort(self._cmp_function) + +            # largest category comes first +            if size > largest: +                hlist.insert(0, (key, cat)) +                largest = size +            else: +                hlist.append((key, cat)) +        return hlist + +    def parse(self, header): +        """Parse a header file.""" +        self._reset() + +        if self.verbose: +            print "Parsing %s" % (header) + +        hdict = {} +        lines = self._read_header(header) +        for line in lines: +            if self._change_level(line): +                continue + +            # skip until the first ifdef (i.e. __gl_h_) +            if not self.ifdef_levels: +                continue + +            cat_name = os.path.basename(header) +            # check if we are in an extension +            if (len(self.ifdef_levels) > 1 and +                self.ifdef_levels[-1].startswith("GL_")): +                cat_name = self.ifdef_levels[-1] + +            try: +                cat = hdict[cat_name] +            except KeyError: +                cat = { +                        "enums": [], +                        "types": [], +                        "functions": [] +                } +                hdict[cat_name] = cat + +            key = "enums" +            elem = self._parse_define(line) +            if not elem: +                key = "types" +                elem = self._parse_typedef(line) +            if not elem: +                key = "functions" +                elem = self._parse_gl_api(line) + +            if elem: +                cat[key].append(elem) + +        if self.need_char: +            if self.verbose: +                print "define GLchar" +            elem = self._parse_typedef("typedef char GLchar;") +            cat["types"].append(elem) +        return self._postprocess_dict(hdict) + +def spaces(n, str=""): +    spaces = n - len(str) +    if spaces < 1: +        spaces = 1 +    return " " * spaces + +def output_xml(name, hlist): +    """Output a parsed header in OpenGLAPI XML.""" + +    for i in xrange(len(hlist)): +        cat_name, cat = hlist[i] + +        print '<category name="%s">' % (cat_name) +        indent = 4 + +        for enum in cat["enums"]: +            name = enum[0][3:] +            value = enum[1] +            tab = spaces(41, name) +            attrs = 'name="%s"%svalue="%s"' % (name, tab, value) +            print '%s<enum %s/>' % (spaces(indent), attrs) + +        if cat["enums"] and cat["types"]: +            print + +        for type in cat["types"]: +            ctype = type[0] +            size, is_float, is_signed = type[2] + +            attrs = 'name="%s"' % (type[1][2:]) +            attrs += spaces(16, attrs) + 'size="%d"' % (size) +            if is_float: +                attrs += ' float="true"' +            elif not is_signed: +                attrs += ' unsigned="true"' + +            print '%s<type %s/>' % (spaces(indent), attrs) + +        for func in cat["functions"]: +            print +            ret = func[0] +            name = func[1][2:] +            params = func[2] + +            attrs = 'name="%s" offset="assign"' % name +            print '%s<function %s>' % (spaces(indent), attrs) + +            for param in params: +                attrs = 'name="%s" type="%s"' % (param[1], param[0]) +                print '%s<param %s/>' % (spaces(indent * 2), attrs) +            if ret: +                attrs = 'type="%s"' % ret +                print '%s<return %s/>' % (spaces(indent * 2), attrs) + +            print '%s</function>' % spaces(indent) + +        print '</category>' +        print + +def show_usage(): +    print "Usage: %s [-v] <header> ..." % sys.argv[0] +    sys.exit(1) + +def main(): +    try: +        args, headers = getopt.getopt(sys.argv[1:], "v") +    except Exception, e: +        show_usage() +    if not headers: +        show_usage() + +    verbose = 0 +    for arg in args: +        if arg[0] == "-v": +            verbose += 1 + +    need_xml_header = True +    parser = HeaderParser(verbose) +    for h in headers: +        h = os.path.abspath(h) +        hlist = parser.parse(h) + +        if need_xml_header: +            print '<?xml version="1.0"?>' +            print '<!DOCTYPE OpenGLAPI SYSTEM "%s/gl_API.dtd">' % GLAPI +            need_xml_header = False + +        print +        print '<!-- %s -->' % (h) +        print '<OpenGLAPI>' +        print +        output_xml(h, hlist) +        print '</OpenGLAPI>' + +if __name__ == '__main__': +    main() | 
