summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2010-05-04 15:58:29 +0200
committerRoland Scheidegger <sroland@vmware.com>2010-05-04 15:58:29 +0200
commit0ae2f59c0287f4baec6c7de5f2f0fdf736fba26d (patch)
treeee14bf3e8bba80649541c4e13fc07c60baf6c248 /src/mesa/main
parent7662e3519bef3802024da3050b886068281e02b1 (diff)
parent1c920c61764b17fd9fb4a89d2db7355fbe1d7565 (diff)
Merge commit 'origin/master' into gallium-msaa
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/APIspec.dtd52
-rw-r--r--src/mesa/main/APIspec.py617
-rw-r--r--src/mesa/main/APIspec.xml4336
-rw-r--r--src/mesa/main/APIspecutil.py272
-rw-r--r--src/mesa/main/api_exec.c50
-rw-r--r--src/mesa/main/api_exec.h12
-rw-r--r--src/mesa/main/config.h2
-rw-r--r--src/mesa/main/context.c170
-rw-r--r--src/mesa/main/context.h16
-rw-r--r--src/mesa/main/debug.c4
-rw-r--r--src/mesa/main/dlist.c15
-rw-r--r--src/mesa/main/dlist.h2
-rw-r--r--src/mesa/main/drawtex.c133
-rw-r--r--src/mesa/main/drawtex.h69
-rw-r--r--src/mesa/main/enable.c28
-rw-r--r--src/mesa/main/enums.c6598
-rw-r--r--src/mesa/main/es_generator.py730
-rw-r--r--src/mesa/main/extensions.c205
-rw-r--r--src/mesa/main/fbobject.c15
-rw-r--r--src/mesa/main/fbobject.h4
-rw-r--r--src/mesa/main/get.h23
-rw-r--r--src/mesa/main/get_gen_es.py807
-rw-r--r--src/mesa/main/getstring.c37
-rw-r--r--src/mesa/main/glheader.h21
-rw-r--r--src/mesa/main/mtypes.h10
-rw-r--r--src/mesa/main/querymatrix.c199
-rw-r--r--src/mesa/main/remap.c53
-rw-r--r--src/mesa/main/remap.h65
-rw-r--r--src/mesa/main/remap_helper.h11
-rw-r--r--src/mesa/main/shaders.c30
-rw-r--r--src/mesa/main/shaders.h11
-rw-r--r--src/mesa/main/texgen.c32
-rw-r--r--src/mesa/main/texgen.h11
-rw-r--r--src/mesa/main/teximage.c30
-rw-r--r--src/mesa/main/texobj.c4
-rw-r--r--src/mesa/main/texpal.c204
-rw-r--r--src/mesa/main/texpal.h38
-rw-r--r--src/mesa/main/version.c128
38 files changed, 11746 insertions, 3298 deletions
diff --git a/src/mesa/main/APIspec.dtd b/src/mesa/main/APIspec.dtd
new file mode 100644
index 0000000000..efcfa31f10
--- /dev/null
+++ b/src/mesa/main/APIspec.dtd
@@ -0,0 +1,52 @@
+<!ELEMENT apispec (template|api)+>
+
+<!ELEMENT api (category*, function*)>
+<!ELEMENT category EMPTY>
+<!ELEMENT function EMPTY>
+
+<!ELEMENT template (proto, desc*)>
+<!ELEMENT proto (return, (param|vector)*)>
+<!ELEMENT return EMPTY>
+<!ELEMENT param EMPTY>
+<!ELEMENT vector (param*)>
+<!ELEMENT desc ((value|range)*, desc*)>
+<!ELEMENT value EMPTY>
+<!ELEMENT range EMPTY>
+
+<!ATTLIST api name NMTOKEN #REQUIRED
+ implementation (true | false) "false">
+<!ATTLIST category name NMTOKEN #REQUIRED>
+<!ATTLIST function name NMTOKEN #REQUIRED
+ default_prefix NMTOKEN "_mesa_"
+ external (true | false) "false"
+ template NMTOKEN #REQUIRED
+ gltype CDATA #IMPLIED
+ vector_size NMTOKEN #IMPLIED
+ expand_vector (true | false) "false"
+ skip_desc (true | false) "false">
+
+<!ATTLIST template name NMTOKEN #REQUIRED
+ direction (set | get) "set">
+
+<!ATTLIST return type CDATA #REQUIRED>
+<!ATTLIST param name NMTOKEN #REQUIRED
+ type CDATA #REQUIRED
+ hide_if_expanded (true | false) "false"
+ category NMTOKEN #IMPLIED>
+<!ATTLIST vector name NMTOKEN #REQUIRED
+ type CDATA #REQUIRED
+ size NMTOKEN #REQUIRED
+ category NMTOKEN #IMPLIED>
+
+<!ATTLIST desc name NMTOKEN #REQUIRED
+ vector_size CDATA #IMPLIED
+ convert (true | false) #IMPLIED
+ error NMTOKEN "GL_INVALID_ENUM"
+ category NMTOKEN #IMPLIED>
+
+<!ATTLIST value name CDATA #REQUIRED
+ category NMTOKEN #IMPLIED>
+<!ATTLIST range from NMTOKEN #REQUIRED
+ to NMTOKEN #REQUIRED
+ base NMTOKEN #IMPLIED
+ category NMTOKEN #IMPLIED>
diff --git a/src/mesa/main/APIspec.py b/src/mesa/main/APIspec.py
new file mode 100644
index 0000000000..6947f7301c
--- /dev/null
+++ b/src/mesa/main/APIspec.py
@@ -0,0 +1,617 @@
+#!/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.
+"""
+A parser for APIspec.
+"""
+
+class SpecError(Exception):
+ """Error in the spec file."""
+
+
+class Spec(object):
+ """A Spec is an abstraction of the API spec."""
+
+ def __init__(self, doc):
+ self.doc = doc
+
+ self.spec_node = doc.getRootElement()
+ self.tmpl_nodes = {}
+ self.api_nodes = {}
+ self.impl_node = None
+
+ # parse <apispec>
+ node = self.spec_node.children
+ while node:
+ if node.type == "element":
+ if node.name == "template":
+ self.tmpl_nodes[node.prop("name")] = node
+ elif node.name == "api":
+ self.api_nodes[node.prop("name")] = node
+ else:
+ raise SpecError("unexpected node %s in apispec" %
+ node.name)
+ node = node.next
+
+ # find an implementation
+ for name, node in self.api_nodes.iteritems():
+ if node.prop("implementation") == "true":
+ self.impl_node = node
+ break
+ if not self.impl_node:
+ raise SpecError("unable to find an implementation")
+
+ def get_impl(self):
+ """Return the implementation."""
+ return API(self, self.impl_node)
+
+ def get_api(self, name):
+ """Return an API."""
+ return API(self, self.api_nodes[name])
+
+
+class API(object):
+ """An API consists of categories and functions."""
+
+ def __init__(self, spec, api_node):
+ self.name = api_node.prop("name")
+ self.is_impl = (api_node.prop("implementation") == "true")
+
+ self.categories = []
+ self.functions = []
+
+ # parse <api>
+ func_nodes = []
+ node = api_node.children
+ while node:
+ if node.type == "element":
+ if node.name == "category":
+ cat = node.prop("name")
+ self.categories.append(cat)
+ elif node.name == "function":
+ func_nodes.append(node)
+ else:
+ raise SpecError("unexpected node %s in api" % node.name)
+ node = node.next
+
+ # realize functions
+ for func_node in func_nodes:
+ tmpl_node = spec.tmpl_nodes[func_node.prop("template")]
+ try:
+ func = Function(tmpl_node, func_node, self.is_impl,
+ self.categories)
+ except SpecError, e:
+ func_name = func_node.prop("name")
+ raise SpecError("failed to parse %s: %s" % (func_name, e))
+ self.functions.append(func)
+
+ def match(self, func, conversions={}):
+ """Find a matching function in the API."""
+ match = None
+ need_conv = False
+ for f in self.functions:
+ matched, conv = f.match(func, conversions)
+ if matched:
+ match = f
+ need_conv = conv
+ # exact match
+ if not need_conv:
+ break
+ return (match, need_conv)
+
+
+class Function(object):
+ """Parse and realize a <template> node."""
+
+ def __init__(self, tmpl_node, func_node, force_skip_desc=False, categories=[]):
+ self.tmpl_name = tmpl_node.prop("name")
+ self.direction = tmpl_node.prop("direction")
+
+ self.name = func_node.prop("name")
+ self.prefix = func_node.prop("default_prefix")
+ self.is_external = (func_node.prop("external") == "true")
+
+ if force_skip_desc:
+ self._skip_desc = True
+ else:
+ self._skip_desc = (func_node.prop("skip_desc") == "true")
+
+ self._categories = categories
+
+ # these attributes decide how the template is realized
+ self._gltype = func_node.prop("gltype")
+ if func_node.hasProp("vector_size"):
+ self._vector_size = int(func_node.prop("vector_size"))
+ else:
+ self._vector_size = 0
+ self._expand_vector = (func_node.prop("expand_vector") == "true")
+
+ self.return_type = "void"
+ param_nodes = []
+
+ # find <proto>
+ proto_node = tmpl_node.children
+ while proto_node:
+ if proto_node.type == "element" and proto_node.name == "proto":
+ break
+ proto_node = proto_node.next
+ if not proto_node:
+ raise SpecError("no proto")
+ # and parse it
+ node = proto_node.children
+ while node:
+ if node.type == "element":
+ if node.name == "return":
+ self.return_type = node.prop("type")
+ elif node.name == "param" or node.name == "vector":
+ if self.support_node(node):
+ # make sure the node is not hidden
+ if not (self._expand_vector and
+ (node.prop("hide_if_expanded") == "true")):
+ param_nodes.append(node)
+ else:
+ raise SpecError("unexpected node %s in proto" % node.name)
+ node = node.next
+
+ self._init_params(param_nodes)
+ self._init_descs(tmpl_node, param_nodes)
+
+ def __str__(self):
+ return "%s %s%s(%s)" % (self.return_type, self.prefix, self.name,
+ self.param_string(True))
+
+ def _init_params(self, param_nodes):
+ """Parse and initialize parameters."""
+ self.params = []
+
+ for param_node in param_nodes:
+ size = self.param_node_size(param_node)
+ # when no expansion, vector is just like param
+ if param_node.name == "param" or not self._expand_vector:
+ param = Parameter(param_node, self._gltype, size)
+ self.params.append(param)
+ continue
+
+ if not size or size > param_node.lsCountNode():
+ raise SpecError("could not expand %s with unknown or "
+ "mismatch sizes" % param.name)
+
+ # expand the vector
+ expanded_params = []
+ child = param_node.children
+ while child:
+ if (child.type == "element" and child.name == "param" and
+ self.support_node(child)):
+ expanded_params.append(Parameter(child, self._gltype))
+ if len(expanded_params) == size:
+ break
+ child = child.next
+ # just in case that lsCountNode counts unknown nodes
+ if len(expanded_params) < size:
+ raise SpecError("not enough named parameters")
+
+ self.params.extend(expanded_params)
+
+ def _init_descs(self, tmpl_node, param_nodes):
+ """Parse and initialize parameter descriptions."""
+ self.checker = Checker()
+ if self._skip_desc:
+ return
+
+ node = tmpl_node.children
+ while node:
+ if node.type == "element" and node.name == "desc":
+ if self.support_node(node):
+ # parse <desc>
+ desc = Description(node, self._categories)
+ self.checker.add_desc(desc)
+ node = node.next
+
+ self.checker.validate(self, param_nodes)
+
+ def support_node(self, node):
+ """Return true if a node is in the supported category."""
+ return (not node.hasProp("category") or
+ node.prop("category") in self._categories)
+
+ def get_param(self, name):
+ """Return the named parameter."""
+ for param in self.params:
+ if param.name == name:
+ return param
+ return None
+
+ def param_node_size(self, param):
+ """Return the size of a vector."""
+ if param.name != "vector":
+ return 0
+
+ size = param.prop("size")
+ if size.isdigit():
+ size = int(size)
+ else:
+ size = 0
+ if not size:
+ size = self._vector_size
+ if not size and self._expand_vector:
+ # return the number of named parameters
+ size = param.lsCountNode()
+ return size
+
+ def param_string(self, declaration):
+ """Return the C code of the parameters."""
+ args = []
+ if declaration:
+ for param in self.params:
+ sep = "" if param.type.endswith("*") else " "
+ args.append("%s%s%s" % (param.type, sep, param.name))
+ if not args:
+ args.append("void")
+ else:
+ for param in self.params:
+ args.append(param.name)
+ return ", ".join(args)
+
+ def match(self, other, conversions={}):
+ """Return true if the functions match, probably with a conversion."""
+ if (self.tmpl_name != other.tmpl_name or
+ self.return_type != other.return_type or
+ len(self.params) != len(other.params)):
+ return (False, False)
+
+ need_conv = False
+ for i in xrange(len(self.params)):
+ src = other.params[i]
+ dst = self.params[i]
+ if (src.is_vector != dst.is_vector or src.size != dst.size):
+ return (False, False)
+ if src.type != dst.type:
+ if dst.base_type() in conversions.get(src.base_type(), []):
+ need_conv = True
+ else:
+ # unable to convert
+ return (False, False)
+
+ return (True, need_conv)
+
+
+class Parameter(object):
+ """A parameter of a function."""
+
+ def __init__(self, param_node, gltype=None, size=0):
+ self.is_vector = (param_node.name == "vector")
+
+ self.name = param_node.prop("name")
+ self.size = size
+
+ type = param_node.prop("type")
+ if gltype:
+ type = type.replace("GLtype", gltype)
+ elif type.find("GLtype") != -1:
+ raise SpecError("parameter %s has unresolved type" % self.name)
+
+ self.type = type
+
+ def base_type(self):
+ """Return the base GL type by stripping qualifiers."""
+ return [t for t in self.type.split(" ") if t.startswith("GL")][0]
+
+
+class Checker(object):
+ """A checker is the collection of all descriptions on the same level.
+ Descriptions of the same parameter are concatenated.
+ """
+
+ def __init__(self):
+ self.switches = {}
+ self.switch_constants = {}
+
+ def add_desc(self, desc):
+ """Add a description."""
+ # TODO allow index to vary
+ const_attrs = ["index", "error", "convert", "size_str"]
+ if desc.name not in self.switches:
+ self.switches[desc.name] = []
+ self.switch_constants[desc.name] = {}
+ for attr in const_attrs:
+ self.switch_constants[desc.name][attr] = None
+
+ # some attributes, like error code, should be the same for all descs
+ consts = self.switch_constants[desc.name]
+ for attr in const_attrs:
+ if getattr(desc, attr) is not None:
+ if (consts[attr] is not None and
+ consts[attr] != getattr(desc, attr)):
+ raise SpecError("mismatch %s for %s" % (attr, desc.name))
+ consts[attr] = getattr(desc, attr)
+
+ self.switches[desc.name].append(desc)
+
+ def validate(self, func, param_nodes):
+ """Validate the checker against a function."""
+ tmp = Checker()
+
+ for switch in self.switches.itervalues():
+ valid_descs = []
+ for desc in switch:
+ if desc.validate(func, param_nodes):
+ valid_descs.append(desc)
+ # no possible values
+ if not valid_descs:
+ return False
+ for desc in valid_descs:
+ if not desc._is_noop:
+ tmp.add_desc(desc)
+
+ self.switches = tmp.switches
+ self.switch_constants = tmp.switch_constants
+ return True
+
+ def flatten(self, name=None):
+ """Return a flat list of all descriptions of the named parameter."""
+ flat_list = []
+ for switch in self.switches.itervalues():
+ for desc in switch:
+ if not name or desc.name == name:
+ flat_list.append(desc)
+ flat_list.extend(desc.checker.flatten(name))
+ return flat_list
+
+ def always_check(self, name):
+ """Return true if the parameter is checked in all possible pathes."""
+ if name in self.switches:
+ return True
+
+ # a param is always checked if any of the switch always checks it
+ for switch in self.switches.itervalues():
+ # a switch always checks it if all of the descs always check it
+ always = True
+ for desc in switch:
+ if not desc.checker.always_check(name):
+ always = False
+ break
+ if always:
+ return True
+ return False
+
+ def _c_switch(self, name, indent="\t"):
+ """Output C switch-statement for the named parameter, for debug."""
+ switch = self.switches.get(name, [])
+ # make sure there are valid values
+ need_switch = False
+ for desc in switch:
+ if desc.values:
+ need_switch = True
+ if not need_switch:
+ return []
+
+ stmts = []
+ var = switch[0].name
+ if switch[0].index >= 0:
+ var += "[%d]" % switch[0].index
+ stmts.append("switch (%s) { /* assume GLenum */" % var)
+
+ for desc in switch:
+ if desc.values:
+ for val in desc.values:
+ stmts.append("case %s:" % val)
+ for dep_name in desc.checker.switches.iterkeys():
+ dep_stmts = [indent + s for s in desc.checker._c_switch(dep_name, indent)]
+ stmts.extend(dep_stmts)
+ stmts.append(indent + "break;")
+
+ stmts.append("default:")
+ stmts.append(indent + "ON_ERROR(%s);" % switch[0].error);
+ stmts.append(indent + "break;")
+ stmts.append("}")
+
+ return stmts
+
+ def dump(self, indent="\t"):
+ """Dump the descriptions in C code."""
+ stmts = []
+ for name in self.switches.iterkeys():
+ c_switch = self._c_switch(name)
+ print "\n".join(c_switch)
+
+
+class Description(object):
+ """A description desribes a parameter and its relationship with other
+ parameters.
+ """
+
+ def __init__(self, desc_node, categories=[]):
+ self._categories = categories
+ self._is_noop = False
+
+ self.name = desc_node.prop("name")
+ self.index = -1
+
+ self.error = desc_node.prop("error") or "GL_INVALID_ENUM"
+ # vector_size may be C code
+ self.size_str = desc_node.prop("vector_size")
+
+ self._has_enum = False
+ self.values = []
+ dep_nodes = []
+
+ # parse <desc>
+ valid_names = ["value", "range", "desc"]
+ node = desc_node.children
+ while node:
+ if node.type == "element":
+ if node.name in valid_names:
+ # ignore nodes that require unsupported categories
+ if (node.prop("category") and
+ node.prop("category") not in self._categories):
+ node = node.next
+ continue
+ else:
+ raise SpecError("unexpected node %s in desc" % node.name)
+
+ if node.name == "value":
+ val = node.prop("name")
+ if not self._has_enum and val.startswith("GL_"):
+ self._has_enum = True
+ self.values.append(val)
+ elif node.name == "range":
+ first = int(node.prop("from"))
+ last = int(node.prop("to"))
+ base = node.prop("base") or ""
+ if not self._has_enum and base.startswith("GL_"):
+ self._has_enum = True
+ # expand range
+ for i in xrange(first, last + 1):
+ self.values.append("%s%d" % (base, i))
+ else: # dependent desc
+ dep_nodes.append(node)
+ node = node.next
+
+ # default to convert if there is no enum
+ self.convert = not self._has_enum
+ if desc_node.hasProp("convert"):
+ self.convert = (desc_node.prop("convert") == "true")
+
+ self._init_deps(dep_nodes)
+
+ def _init_deps(self, dep_nodes):
+ """Parse and initialize dependents."""
+ self.checker = Checker()
+
+ for dep_node in dep_nodes:
+ # recursion!
+ dep = Description(dep_node, self._categories)
+ self.checker.add_desc(dep)
+
+ def _search_param_node(self, param_nodes, name=None):
+ """Search the template parameters for the named node."""
+ param_node = None
+ param_index = -1
+
+ if not name:
+ name = self.name
+ for node in param_nodes:
+ if name == node.prop("name"):
+ param_node = node
+ elif node.name == "vector":
+ child = node.children
+ idx = 0
+ while child:
+ if child.type == "element" and child.name == "param":
+ if name == child.prop("name"):
+ param_node = node
+ param_index = idx
+ break
+ idx += 1
+ child = child.next
+ if param_node:
+ break
+ return (param_node, param_index)
+
+ def _find_final(self, func, param_nodes):
+ """Find the final parameter."""
+ param = func.get_param(self.name)
+ param_index = -1
+
+ # the described param is not in the final function
+ if not param:
+ # search the template parameters
+ node, index = self._search_param_node(param_nodes)
+ if not node:
+ raise SpecError("invalid desc %s in %s" %
+ (self.name, func.name))
+
+ # a named parameter of a vector
+ if index >= 0:
+ param = func.get_param(node.prop("name"))
+ param_index = index
+ elif node.name == "vector":
+ # must be an expanded vector, check its size
+ if self.size_str and self.size_str.isdigit():
+ size = int(self.size_str)
+ expanded_size = func.param_node_size(node)
+ if size != expanded_size:
+ return (False, None, -1)
+ # otherwise, it is a valid, but no-op, description
+
+ return (True, param, param_index)
+
+ def validate(self, func, param_nodes):
+ """Validate a description against certain function."""
+ if self.checker.switches and not self.values:
+ raise SpecError("no valid values for %s" % self.name)
+
+ valid, param, param_index = self._find_final(func, param_nodes)
+ if not valid:
+ return False
+
+ # the description is valid, but the param is gone
+ # mark it no-op so that it will be skipped
+ if not param:
+ self._is_noop = True
+ return True
+
+ if param.is_vector:
+ # if param was known, this should have been done in __init__
+ if self._has_enum:
+ self.size_str = "1"
+ # size mismatch
+ if (param.size and self.size_str and self.size_str.isdigit() and
+ param.size != int(self.size_str)):
+ return False
+ elif self.size_str:
+ # only vector accepts vector_size
+ raise SpecError("vector_size is invalid for %s" % param.name)
+
+ if not self.checker.validate(func, param_nodes):
+ return False
+
+ # update the description
+ self.name = param.name
+ self.index = param_index
+
+ return True
+
+
+def main():
+ import libxml2
+
+ filename = "APIspec.xml"
+ apinames = ["GLES1.1", "GLES2.0"]
+
+ doc = libxml2.readFile(filename, None,
+ libxml2.XML_PARSE_DTDLOAD +
+ libxml2.XML_PARSE_DTDVALID +
+ libxml2.XML_PARSE_NOBLANKS)
+
+ spec = Spec(doc)
+ impl = spec.get_impl()
+ for apiname in apinames:
+ spec.get_api(apiname)
+
+ doc.freeDoc()
+
+ print "%s is successfully parsed" % filename
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
new file mode 100644
index 0000000000..268bd5d3db
--- /dev/null
+++ b/src/mesa/main/APIspec.xml
@@ -0,0 +1,4336 @@
+<?xml version="1.0"?>
+<!DOCTYPE apispec SYSTEM "APIspec.dtd">
+
+<!-- A function is generated from a template. Multiple functions can be
+ generated from a single template with different arguments. For example,
+ glColor3f can be generated from
+
+ <function name="Color3f" template="Color" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+
+ and glColor4iv can be generated from
+
+ <function name="Color4iv" template="Color" gltype="GLint" vector_size="4"/>
+
+ In a template, there are <desc>s that describe the properties of
+ parameters. A <desc> can enumerate the valid values of a parameter. It
+ can also specify the error code when an invalid value is given, and etc.
+ By nesting <desc>s, they can create dependency between parameters.
+
+ A function can be marked as external. It means that the function cannot
+ be dispatched to the corresponding mesa function, if one exists, directly,
+ and requires an external implementation.
+-->
+
+<apispec>
+
+<template name="Color">
+ <proto>
+ <return type="void"/>
+ <vector name="v" type="const GLtype *" size="dynamic">
+ <param name="red" type="GLtype"/>
+ <param name="green" type="GLtype"/>
+ <param name="blue" type="GLtype"/>
+ <param name="alpha" type="GLtype"/>
+ </vector>
+ </proto>
+</template>
+
+<template name="ClipPlane">
+ <proto>
+ <return type="void"/>
+ <param name="plane" type="GLenum"/>
+ <vector name="equation" type="const GLtype *" size="4"/>
+ </proto>
+
+ <desc name="plane">
+ <range base="GL_CLIP_PLANE" from="0" to="5"/>
+ </desc>
+</template>
+
+<template name="CullFace">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_FRONT"/>
+ <value name="GL_BACK"/>
+ <value name="GL_FRONT_AND_BACK"/>
+ </desc>
+</template>
+
+<template name="Fog">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_FOG_MODE"/>
+ <desc name="param">
+ <value name="GL_EXP"/>
+ <value name="GL_EXP2"/>
+ <value name="GL_LINEAR"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_FOG_COLOR"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_FOG_DENSITY"/>
+ <value name="GL_FOG_START"/>
+ <value name="GL_FOG_END"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+</template>
+
+<template name="FrontFace">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_CW"/>
+ <value name="GL_CCW"/>
+ </desc>
+</template>
+
+<template name="Hint">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="target" category="GLES1.1">
+ <value name="GL_FOG_HINT"/>
+ <value name="GL_LINE_SMOOTH_HINT"/>
+ <value name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <value name="GL_POINT_SMOOTH_HINT"/>
+ </desc>
+ <desc name="target" category="OES_standard_derivatives">
+ <value name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ </desc>
+ <desc name="target">
+ <value name="GL_GENERATE_MIPMAP_HINT"/>
+ </desc>
+
+ <desc name="mode">
+ <value name="GL_FASTEST"/>
+ <value name="GL_NICEST"/>
+ <value name="GL_DONT_CARE"/>
+ </desc>
+</template>
+
+<template name="Light">
+ <proto>
+ <return type="void"/>
+ <param name="light" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="light">
+ <range base="GL_LIGHT" from="0" to="7"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_AMBIENT"/>
+ <value name="GL_DIFFUSE"/>
+ <value name="GL_SPECULAR"/>
+ <value name="GL_POSITION"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SPOT_DIRECTION"/>
+
+ <desc name="params" vector_size="3"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SPOT_EXPONENT"/>
+ <value name="GL_SPOT_CUTOFF"/>
+ <value name="GL_CONSTANT_ATTENUATION"/>
+ <value name="GL_LINEAR_ATTENUATION"/>
+ <value name="GL_QUADRATIC_ATTENUATION"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+</template>
+
+<template name="LightModel">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_LIGHT_MODEL_AMBIENT"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <desc name="param">
+ <value name="GL_TRUE"/>
+ <value name="GL_FALSE"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="LineWidth">
+ <proto>
+ <return type="void"/>
+ <param name="width" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="Material">
+ <proto>
+ <return type="void"/>
+ <param name="face" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="face">
+ <value name="GL_FRONT_AND_BACK"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_AMBIENT"/>
+ <value name="GL_DIFFUSE"/>
+ <value name="GL_AMBIENT_AND_DIFFUSE"/>
+ <value name="GL_SPECULAR"/>
+ <value name="GL_EMISSION"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SHININESS"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+</template>
+
+<template name="PointSize">
+ <proto>
+ <return type="void"/>
+ <param name="size" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="PointSizePointer">
+ <proto>
+ <return type="void"/>
+ <param name="type" type="GLenum"/>
+ <param name="stride" type="GLsizei"/>
+ <param name="pointer" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="type">
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ </desc>
+</template>
+
+<template name="Scissor">
+ <proto>
+ <return type="void"/>
+ <param name="x" type="GLint"/>
+ <param name="y" type="GLint"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ </proto>
+</template>
+
+<template name="ShadeModel">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_FLAT"/>
+ <value name="GL_SMOOTH"/>
+ </desc>
+</template>
+
+<template name="TexParameter">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_WRAP_S"/>
+ <value name="GL_TEXTURE_WRAP_T"/>
+ <value name="GL_TEXTURE_WRAP_R_OES" category="OES_texture_3D"/>
+
+ <desc name="param">
+ <value name="GL_CLAMP_TO_EDGE"/>
+ <value name="GL_REPEAT"/>
+ <value name="GL_MIRRORED_REPEAT" category="GLES2.0"/>
+ <value name="GL_MIRRORED_REPEAT_OES" category="OES_texture_mirrored_repeat"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_MIN_FILTER"/>
+
+ <desc name="param">
+ <value name="GL_NEAREST"/>
+ <value name="GL_LINEAR"/>
+ <value name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <value name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <value name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <value name="GL_LINEAR_MIPMAP_LINEAR"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_MAG_FILTER"/>
+
+ <desc name="param">
+ <value name="GL_NEAREST"/>
+ <value name="GL_LINEAR"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="GLES1.1">
+ <value name="GL_GENERATE_MIPMAP"/>
+
+ <desc name="param">
+ <value name="GL_TRUE"/>
+ <value name="GL_FALSE"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="EXT_texture_filter_anisotropic">
+ <value name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="pname" category="OES_draw_texture">
+ <value name="GL_TEXTURE_CROP_RECT_OES"/>
+ <desc name="params" vector_size="4"/>
+ </desc>
+</template>
+
+<template name="TexImage2D">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="level" type="GLint"/>
+ <param name="internalFormat" type="GLint"/> <!-- should be 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 *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="internalFormat" error="GL_INVALID_VALUE">
+ <value name="GL_ALPHA"/>
+ <value name="GL_RGB"/>
+ <value name="GL_RGBA"/>
+ <value name="GL_LUMINANCE"/>
+ <value name="GL_LUMINANCE_ALPHA"/>
+ <value name="GL_DEPTH_COMPONENT" category="OES_depth_texture"/>
+ <value name="GL_DEPTH_STENCIL_OES" category="OES_packed_depth_stencil"/>
+ </desc>
+
+ <desc name="border" error="GL_INVALID_VALUE">
+ <value name="0"/>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGB"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGBA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ <value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format" category="OES_depth_texture">
+ <value name="GL_DEPTH_COMPONENT"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_SHORT"/>
+ <value name="GL_UNSIGNED_INT"/>
+ </desc>
+ </desc>
+
+ <desc name="format" category="OES_packed_depth_stencil">
+ <value name="GL_DEPTH_STENCIL_OES"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_INT_24_8_OES"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="TexEnv">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="target" category="OES_point_sprite">
+ <value name="GL_POINT_SPRITE_OES"/>
+
+ <desc name="pname">
+ <value name="GL_COORD_REPLACE_OES"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="OES_point_sprite">
+ <value name="GL_COORD_REPLACE_OES"/>
+
+ <desc name="param">
+ <value name="GL_TRUE"/>
+ <value name="GL_FALSE"/>
+ </desc>
+ </desc>
+
+ <desc name="target" category="EXT_texture_lod_bias">
+ <value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="EXT_texture_lod_bias">
+ <value name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_ENV"/>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_MODE"/>
+ <value name="GL_COMBINE_RGB"/>
+ <value name="GL_COMBINE_ALPHA"/>
+ <value name="GL_RGB_SCALE"/>
+ <value name="GL_ALPHA_SCALE"/>
+ <value name="GL_SRC0_RGB"/>
+ <value name="GL_SRC1_RGB"/>
+ <value name="GL_SRC2_RGB"/>
+ <value name="GL_SRC0_ALPHA"/>
+ <value name="GL_SRC1_ALPHA"/>
+ <value name="GL_SRC2_ALPHA"/>
+ <value name="GL_OPERAND0_RGB"/>
+ <value name="GL_OPERAND1_RGB"/>
+ <value name="GL_OPERAND2_RGB"/>
+ <value name="GL_OPERAND0_ALPHA"/>
+ <value name="GL_OPERAND1_ALPHA"/>
+ <value name="GL_OPERAND2_ALPHA"/>
+ <value name="GL_TEXTURE_ENV_COLOR"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_MODE"/>
+
+ <desc name="param">
+ <value name="GL_REPLACE"/>
+ <value name="GL_MODULATE"/>
+ <value name="GL_DECAL"/>
+ <value name="GL_BLEND"/>
+ <value name="GL_ADD"/>
+ <value name="GL_COMBINE"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_COMBINE_RGB"/>
+
+ <desc name="param">
+ <value name="GL_REPLACE"/>
+ <value name="GL_MODULATE"/>
+ <value name="GL_ADD"/>
+ <value name="GL_ADD_SIGNED"/>
+ <value name="GL_INTERPOLATE"/>
+ <value name="GL_SUBTRACT"/>
+ <value name="GL_DOT3_RGB"/>
+ <value name="GL_DOT3_RGBA"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_COMBINE_ALPHA"/>
+
+ <desc name="param">
+ <value name="GL_REPLACE"/>
+ <value name="GL_MODULATE"/>
+ <value name="GL_ADD"/>
+ <value name="GL_ADD_SIGNED"/>
+ <value name="GL_INTERPOLATE"/>
+ <value name="GL_SUBTRACT"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_RGB_SCALE"/>
+ <value name="GL_ALPHA_SCALE"/>
+
+ <desc name="param" convert="true" error="GL_INVALID_VALUE">
+ <value name="1.0"/>
+ <value name="2.0"/>
+ <value name="4.0"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SRC0_RGB"/>
+ <value name="GL_SRC1_RGB"/>
+ <value name="GL_SRC2_RGB"/>
+ <value name="GL_SRC0_ALPHA"/>
+ <value name="GL_SRC1_ALPHA"/>
+ <value name="GL_SRC2_ALPHA"/>
+
+ <desc name="param">
+ <value name="GL_TEXTURE"/>
+ <value name="GL_CONSTANT"/>
+ <value name="GL_PRIMARY_COLOR"/>
+ <value name="GL_PREVIOUS"/>
+
+ <range base="GL_TEXTURE" from="0" to="31" category="OES_texture_env_crossbar"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_OPERAND0_RGB"/>
+ <value name="GL_OPERAND1_RGB"/>
+ <value name="GL_OPERAND2_RGB"/>
+
+ <desc name="param">
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_OPERAND0_ALPHA"/>
+ <value name="GL_OPERAND1_ALPHA"/>
+ <value name="GL_OPERAND2_ALPHA"/>
+
+ <desc name="param">
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_COLOR"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+</template>
+
+<template name="TexGen">
+ <proto>
+ <return type="void"/>
+ <param name="coord" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="coord" category="OES_texture_cube_map">
+ <value name="GL_TEXTURE_GEN_STR_OES"/>
+ </desc>
+
+ <desc name="pname" category="OES_texture_cube_map">
+ <value name="GL_TEXTURE_GEN_MODE_OES"/>
+
+ <desc name="param">
+ <value name="GL_NORMAL_MAP_OES"/>
+ <value name="GL_REFLECTION_MAP_OES"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="Clear">
+ <proto>
+ <return type="void"/>
+ <param name="mask" type="GLbitfield"/>
+ </proto>
+
+ <desc name="mask" error="GL_INVALID_VALUE">
+ <value name="0"/>
+ <value name="(GL_COLOR_BUFFER_BIT)"/>
+ <value name="(GL_DEPTH_BUFFER_BIT)"/>
+ <value name="(GL_STENCIL_BUFFER_BIT)"/>
+ <value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)"/>
+ <value name="(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
+ <value name="(GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
+ <value name="(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT)"/>
+ </desc>
+</template>
+
+<template name="ClearColor">
+ <proto>
+ <return type="void"/>
+ <param name="red" type="GLtype"/>
+ <param name="green" type="GLtype"/>
+ <param name="blue" type="GLtype"/>
+ <param name="alpha" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="ClearStencil">
+ <proto>
+ <return type="void"/>
+ <param name="s" type="GLint"/>
+ </proto>
+</template>
+
+<template name="ClearDepth">
+ <proto>
+ <return type="void"/>
+ <param name="depth" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="StencilMask">
+ <proto>
+ <return type="void"/>
+ <param name="mask" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="StencilMaskSeparate">
+ <proto>
+ <return type="void"/>
+ <param name="face" type="GLenum"/>
+ <param name="mask" type="GLuint"/>
+ </proto>
+
+ <desc name="face">
+ <value name="GL_FRONT"/>
+ <value name="GL_BACK"/>
+ <value name="GL_FRONT_AND_BACK"/>
+ </desc>
+</template>
+
+<template name="ColorMask">
+ <proto>
+ <return type="void"/>
+ <param name="red" type="GLboolean"/>
+ <param name="green" type="GLboolean"/>
+ <param name="blue" type="GLboolean"/>
+ <param name="alpha" type="GLboolean"/>
+ </proto>
+</template>
+
+<template name="DepthMask">
+ <proto>
+ <return type="void"/>
+ <param name="flag" type="GLboolean"/>
+ </proto>
+</template>
+
+<template name="Disable">
+ <proto>
+ <return type="void"/>
+ <param name="cap" type="GLenum"/>
+ </proto>
+
+ <desc name="cap" category="GLES1.1">
+ <value name="GL_NORMALIZE"/>
+ <value name="GL_RESCALE_NORMAL"/>
+
+ <range base="GL_CLIP_PLANE" from="0" to="5"/>
+
+ <value name="GL_FOG"/>
+ <value name="GL_LIGHTING"/>
+ <value name="GL_COLOR_MATERIAL"/>
+
+ <range base="GL_LIGHT" from="0" to="7"/>
+
+ <value name="GL_POINT_SMOOTH"/>
+ <value name="GL_LINE_SMOOTH"/>
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_MULTISAMPLE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_ALPHA_TEST"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_BLEND"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_COLOR_LOGIC_OP"/>
+
+ <value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
+ <value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="cap" category="GLES2.0">
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_BLEND"/>
+ </desc>
+</template>
+
+<!-- it is exactly the same as Disable -->
+<template name="Enable">
+ <proto>
+ <return type="void"/>
+ <param name="cap" type="GLenum"/>
+ </proto>
+
+ <desc name="cap" category="GLES1.1">
+ <value name="GL_NORMALIZE"/>
+ <value name="GL_RESCALE_NORMAL"/>
+
+ <range base="GL_CLIP_PLANE" from="0" to="5"/>
+
+ <value name="GL_FOG"/>
+ <value name="GL_LIGHTING"/>
+ <value name="GL_COLOR_MATERIAL"/>
+
+ <range base="GL_LIGHT" from="0" to="7"/>
+
+ <value name="GL_POINT_SMOOTH"/>
+ <value name="GL_LINE_SMOOTH"/>
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_MULTISAMPLE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_ALPHA_TEST"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_BLEND"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_COLOR_LOGIC_OP"/>
+
+ <value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
+ <value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="cap" category="GLES2.0">
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_BLEND"/>
+ </desc>
+</template>
+
+<template name="Finish">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="Flush">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="AlphaFunc">
+ <proto>
+ <return type="void"/>
+ <param name="func" type="GLenum"/>
+ <param name="ref" type="GLtype"/>
+ </proto>
+ <desc name="func">
+ <value name="GL_NEVER"/>
+ <value name="GL_LESS"/>
+ <value name="GL_EQUAL"/>
+ <value name="GL_LEQUAL"/>
+ <value name="GL_GREATER"/>
+ <value name="GL_NOTEQUAL"/>
+ <value name="GL_GEQUAL"/>
+ <value name="GL_ALWAYS"/>
+ </desc>
+</template>
+
+<template name="BlendFunc">
+ <proto>
+ <return type="void"/>
+ <param name="sfactor" type="GLenum"/>
+ <param name="dfactor" type="GLenum"/>
+ </proto>
+
+ <desc name="sfactor">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+ <value name="GL_SRC_ALPHA_SATURATE"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+
+ <desc name="dfactor">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="LogicOp">
+ <proto>
+ <return type="void"/>
+ <param name="opcode" type="GLenum"/>
+ </proto>
+
+ <desc name="opcode">
+ <value name="GL_CLEAR"/>
+ <value name="GL_SET"/>
+ <value name="GL_COPY"/>
+ <value name="GL_COPY_INVERTED"/>
+ <value name="GL_NOOP"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_AND"/>
+ <value name="GL_NAND"/>
+ <value name="GL_OR"/>
+ <value name="GL_NOR"/>
+ <value name="GL_XOR"/>
+ <value name="GL_EQUIV"/>
+ <value name="GL_AND_REVERSE"/>
+ <value name="GL_AND_INVERTED"/>
+ <value name="GL_OR_REVERSE"/>
+ <value name="GL_OR_INVERTED"/>
+ </desc>
+</template>
+
+<template name="StencilFunc">
+ <proto>
+ <return type="void"/>
+ <param name="func" type="GLenum"/>
+ <param name="ref" type="GLint"/>
+ <param name="mask" type="GLuint"/>
+ </proto>
+
+ <desc name="func">
+ <value name="GL_NEVER"/>
+ <value name="GL_LESS"/>
+ <value name="GL_LEQUAL"/>
+ <value name="GL_GREATER"/>
+ <value name="GL_GEQUAL"/>
+ <value name="GL_EQUAL"/>
+ <value name="GL_NOTEQUAL"/>
+ <value name="GL_ALWAYS"/>
+ </desc>
+</template>
+
+<template name="StencilFuncSeparate">
+ <proto>
+ <return type="void"/>
+ <param name="face" type="GLenum"/>
+ <param name="func" type="GLenum"/>
+ <param name="ref" type="GLint"/>
+ <param name="mask" type="GLuint"/>
+ </proto>
+
+ <desc name="face">
+ <value name="GL_FRONT"/>
+ <value name="GL_BACK"/>
+ <value name="GL_FRONT_AND_BACK"/>
+ </desc>
+
+ <desc name="func">
+ <value name="GL_NEVER"/>
+ <value name="GL_LESS"/>
+ <value name="GL_LEQUAL"/>
+ <value name="GL_GREATER"/>
+ <value name="GL_GEQUAL"/>
+ <value name="GL_EQUAL"/>
+ <value name="GL_NOTEQUAL"/>
+ <value name="GL_ALWAYS"/>
+ </desc>
+</template>
+
+<template name="StencilOp">
+ <proto>
+ <return type="void"/>
+ <param name="fail" type="GLenum"/>
+ <param name="zfail" type="GLenum"/>
+ <param name="zpass" type="GLenum"/>
+ </proto>
+
+ <desc name="fail">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP" category="GLES2.0"/>
+ <value name="GL_DECR_WRAP" category="GLES2.0"/>
+ <value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
+ <value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
+ </desc>
+
+ <desc name="zfail">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP" category="GLES2.0"/>
+ <value name="GL_DECR_WRAP" category="GLES2.0"/>
+ <value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
+ <value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
+ </desc>
+
+ <desc name="zpass">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP" category="GLES2.0"/>
+ <value name="GL_DECR_WRAP" category="GLES2.0"/>
+ <value name="GL_INCR_WRAP_OES" category="OES_stencil_wrap"/>
+ <value name="GL_DECR_WRAP_OES" category="OES_stencil_wrap"/>
+ </desc>
+</template>
+
+<template name="StencilOpSeparate">
+ <proto>
+ <return type="void"/>
+ <param name="face" type="GLenum"/>
+ <param name="fail" type="GLenum"/>
+ <param name="zfail" type="GLenum"/>
+ <param name="zpass" type="GLenum"/>
+ </proto>
+
+ <desc name="face">
+ <value name="GL_FRONT"/>
+ <value name="GL_BACK"/>
+ <value name="GL_FRONT_AND_BACK"/>
+ </desc>
+
+ <desc name="fail">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP"/>
+ <value name="GL_DECR_WRAP"/>
+ </desc>
+
+ <desc name="zfail">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP"/>
+ <value name="GL_DECR_WRAP"/>
+ </desc>
+
+ <desc name="zpass">
+ <value name="GL_KEEP"/>
+ <value name="GL_ZERO"/>
+ <value name="GL_REPLACE"/>
+ <value name="GL_INCR"/>
+ <value name="GL_DECR"/>
+ <value name="GL_INVERT"/>
+ <value name="GL_INCR_WRAP"/>
+ <value name="GL_DECR_WRAP"/>
+ </desc>
+</template>
+
+<template name="DepthFunc">
+ <proto>
+ <return type="void"/>
+ <param name="func" type="GLenum"/>
+ </proto>
+
+ <desc name="func">
+ <value name="GL_NEVER"/>
+ <value name="GL_LESS"/>
+ <value name="GL_EQUAL"/>
+ <value name="GL_LEQUAL"/>
+ <value name="GL_GREATER"/>
+ <value name="GL_NOTEQUAL"/>
+ <value name="GL_GEQUAL"/>
+ <value name="GL_ALWAYS"/>
+ </desc>
+</template>
+
+<template name="PixelStore">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <param name="param" type="GLtype"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_PACK_ALIGNMENT"/>
+ <value name="GL_UNPACK_ALIGNMENT"/>
+ </desc>
+
+ <desc name="param" error="GL_INVALID_VALUE">
+ <value name="1"/>
+ <value name="2"/>
+ <value name="4"/>
+ <value name="8"/>
+ </desc>
+</template>
+
+<template name="ReadPixels" direction="get">
+ <proto>
+ <return type="void"/>
+ <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 *"/>
+ </proto>
+
+ <!-- Technically, only two combinations are actually allowed:
+ GL_RGBA/GL_UNSIGNED_BYTE, and some implementation-specific
+ internal preferred combination. I don't know what that is, so I'm
+ allowing any valid combination for now; the underlying support
+ should fail when necessary.-->
+ <desc name="format">
+ <value name="GL_ALPHA"/>
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGB"/>
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_5_6_5"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGBA"/>
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE"/>
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE_ALPHA"/>
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ </desc>
+ </desc>
+
+ <desc name="format" category="EXT_read_format_bgra">
+ <value name="GL_BGRA_EXT"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <value name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="GetClipPlane" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="plane" type="GLenum"/>
+ <vector name="equation" type="GLtype *" size="4"/>
+ </proto>
+
+ <desc name="plane">
+ <range base="GL_CLIP_PLANE" from="0" to="5"/>
+ </desc>
+</template>
+
+<template name="GetError" direction="get">
+ <proto>
+ <return type="GLenum"/>
+ </proto>
+</template>
+
+<!-- template for GetFloatv, GetIntegerv, GetBoolean, and GetFixedv -->
+<template name="GetState" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+ <!-- param checking is done in mesa -->
+</template>
+
+<template name="GetLight" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="light" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="light">
+ <range base="GL_LIGHT" from="0" to="7"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_AMBIENT"/>
+ <value name="GL_DIFFUSE"/>
+ <value name="GL_SPECULAR"/>
+ <value name="GL_POSITION"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SPOT_DIRECTION"/>
+
+ <desc name="params" vector_size="3"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SPOT_EXPONENT"/>
+ <value name="GL_SPOT_CUTOFF"/>
+ <value name="GL_CONSTANT_ATTENUATION"/>
+ <value name="GL_LINEAR_ATTENUATION"/>
+ <value name="GL_QUADRATIC_ATTENUATION"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+</template>
+
+<template name="GetMaterial" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="face" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="face">
+ <value name="GL_FRONT"/>
+ <value name="GL_BACK"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_SHININESS"/>
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_AMBIENT"/>
+ <value name="GL_DIFFUSE"/>
+ <value name="GL_AMBIENT_AND_DIFFUSE"/>
+ <value name="GL_SPECULAR"/>
+ <value name="GL_EMISSION"/>
+
+ <desc name="params" vector_size="4"/>
+ </desc>
+</template>
+
+<template name="GetString" direction="get">
+ <proto>
+ <return type="const GLubyte *"/>
+ <param name="name" type="GLenum"/>
+ </proto>
+
+ <desc name="name">
+ <value name="GL_VENDOR"/>
+ <value name="GL_RENDERER"/>
+ <value name="GL_VERSION"/>
+ <value name="GL_EXTENSIONS"/>
+ <value name="GL_SHADING_LANGUAGE_VERSION" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="GetTexEnv" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="target" category="OES_point_sprite">
+ <value name="GL_POINT_SPRITE_OES"/>
+ <desc name="pname">
+ <value name="GL_COORD_REPLACE_OES"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="OES_point_sprite">
+ <value name="GL_COORD_REPLACE_OES"/>
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+
+ <desc name="target" category="EXT_texture_lod_bias">
+ <value name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ </desc>
+ </desc>
+
+ <desc name="pname" category="EXT_texture_lod_bias">
+ <value name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_ENV"/>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_COLOR"/>
+ <value name="GL_RGB_SCALE"/>
+ <value name="GL_ALPHA_SCALE"/>
+ <value name="GL_TEXTURE_ENV_MODE"/>
+ <value name="GL_COMBINE_RGB"/>
+ <value name="GL_COMBINE_ALPHA"/>
+ <value name="GL_SRC0_RGB"/>
+ <value name="GL_SRC1_RGB"/>
+ <value name="GL_SRC2_RGB"/>
+ <value name="GL_SRC0_ALPHA"/>
+ <value name="GL_SRC1_ALPHA"/>
+ <value name="GL_SRC2_ALPHA"/>
+ <value name="GL_OPERAND0_RGB"/>
+ <value name="GL_OPERAND1_RGB"/>
+ <value name="GL_OPERAND2_RGB"/>
+ <value name="GL_OPERAND0_ALPHA"/>
+ <value name="GL_OPERAND1_ALPHA"/>
+ <value name="GL_OPERAND2_ALPHA"/>
+ </desc>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_COLOR"/>
+ <desc name="params" vector_size="4"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_RGB_SCALE"/>
+ <value name="GL_ALPHA_SCALE"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_ENV_MODE"/>
+ <value name="GL_COMBINE_RGB"/>
+ <value name="GL_COMBINE_ALPHA"/>
+ <value name="GL_SRC0_RGB"/>
+ <value name="GL_SRC1_RGB"/>
+ <value name="GL_SRC2_RGB"/>
+ <value name="GL_SRC0_ALPHA"/>
+ <value name="GL_SRC1_ALPHA"/>
+ <value name="GL_SRC2_ALPHA"/>
+ <value name="GL_OPERAND0_RGB"/>
+ <value name="GL_OPERAND1_RGB"/>
+ <value name="GL_OPERAND2_RGB"/>
+ <value name="GL_OPERAND0_ALPHA"/>
+ <value name="GL_OPERAND1_ALPHA"/>
+ <value name="GL_OPERAND2_ALPHA"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+</template>
+
+<template name="GetTexGen" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="coord" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="coord">
+ <value name="GL_TEXTURE_GEN_STR_OES"/>
+ </desc>
+ <desc name="pname">
+ <value name="GL_TEXTURE_GEN_MODE_OES"/>
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+</template>
+
+<template name="GetTexParameter" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_TEXTURE_WRAP_S"/>
+ <value name="GL_TEXTURE_WRAP_T"/>
+ <value name="GL_TEXTURE_WRAP_R_OES" category="OES_texture_3D"/>
+ <value name="GL_TEXTURE_MIN_FILTER"/>
+ <value name="GL_TEXTURE_MAG_FILTER"/>
+ <value name="GL_GENERATE_MIPMAP" category="GLES1.1"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+
+ <desc name="pname" category="OES_draw_texture">
+ <value name="GL_TEXTURE_CROP_RECT_OES"/>
+ <desc name="params" vector_size="4"/>
+ </desc>
+</template>
+
+<template name="IsEnabled" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="cap" type="GLenum"/>
+ </proto>
+
+ <desc name="cap" category="GLES1.1">
+ <value name="GL_NORMALIZE"/>
+ <value name="GL_RESCALE_NORMAL"/>
+
+ <range base="GL_CLIP_PLANE" from="0" to="5"/>
+
+ <value name="GL_FOG"/>
+ <value name="GL_LIGHTING"/>
+ <value name="GL_COLOR_MATERIAL"/>
+
+ <range base="GL_LIGHT" from="0" to="7"/>
+
+ <value name="GL_POINT_SMOOTH"/>
+ <value name="GL_LINE_SMOOTH"/>
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_MULTISAMPLE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_ALPHA_TEST"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_BLEND"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_COLOR_LOGIC_OP"/>
+
+ <value name="GL_POINT_SPRITE_OES" category="OES_point_sprite"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_GEN_STR_OES" category="OES_texture_cube_map"/>
+
+ <value name="GL_VERTEX_ARRAY"/>
+ <value name="GL_NORMAL_ARRAY"/>
+ <value name="GL_COLOR_ARRAY"/>
+ <value name="GL_TEXTURE_COORD_ARRAY"/>
+ <value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
+ </desc>
+
+ <desc name="cap" category="GLES2.0">
+ <value name="GL_CULL_FACE"/>
+ <value name="GL_SCISSOR_TEST"/>
+ <value name="GL_POLYGON_OFFSET_FILL"/>
+ <value name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <value name="GL_SAMPLE_COVERAGE"/>
+ <value name="GL_STENCIL_TEST"/>
+ <value name="GL_DEPTH_TEST"/>
+ <value name="GL_DITHER"/>
+ <value name="GL_BLEND"/>
+ </desc>
+</template>
+
+<template name="DepthRange">
+ <proto>
+ <return type="void"/>
+ <param name="zNear" type="GLtype"/>
+ <param name="zFar" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="Frustum">
+ <proto>
+ <return type="void"/>
+ <param name="left" type="GLtype"/>
+ <param name="right" type="GLtype"/>
+ <param name="bottom" type="GLtype"/>
+ <param name="top" type="GLtype"/>
+ <param name="zNear" type="GLtype"/>
+ <param name="zFar" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="LoadIdentity">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="LoadMatrix">
+ <proto>
+ <return type="void"/>
+ <vector name="m" type="const GLtype *" size="16"/>
+ </proto>
+</template>
+
+<template name="MatrixMode">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_MODELVIEW"/>
+ <value name="GL_PROJECTION"/>
+ <value name="GL_TEXTURE"/>
+ <value name="GL_MATRIX_PALETTE_OES" category="OES_matrix_palette"/>
+ </desc>
+</template>
+
+<template name="MultMatrix">
+ <proto>
+ <return type="void"/>
+ <vector name="m" type="const GLtype *" size="16"/>
+ </proto>
+</template>
+
+<template name="Ortho">
+ <proto>
+ <return type="void"/>
+ <param name="left" type="GLtype"/>
+ <param name="right" type="GLtype"/>
+ <param name="bottom" type="GLtype"/>
+ <param name="top" type="GLtype"/>
+ <param name="zNear" type="GLtype"/>
+ <param name="zFar" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="PopMatrix">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="PushMatrix">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="Rotate">
+ <proto>
+ <return type="void"/>
+ <param name="angle" type="GLtype"/>
+ <param name="x" type="GLtype"/>
+ <param name="y" type="GLtype"/>
+ <param name="z" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="Scale">
+ <proto>
+ <return type="void"/>
+ <param name="x" type="GLtype"/>
+ <param name="y" type="GLtype"/>
+ <param name="z" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="Translate">
+ <proto>
+ <return type="void"/>
+ <param name="x" type="GLtype"/>
+ <param name="y" type="GLtype"/>
+ <param name="z" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="Viewport">
+ <proto>
+ <return type="void"/>
+ <param name="x" type="GLint"/>
+ <param name="y" type="GLint"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ </proto>
+</template>
+
+<template name="ColorPointer">
+ <proto>
+ <return type="void"/>
+ <param name="size" type="GLint"/>
+ <param name="type" type="GLenum"/>
+ <param name="stride" type="GLsizei"/>
+ <param name="pointer" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="size" error="GL_INVALID_VALUE">
+ <value name="4"/>
+ </desc>
+
+ <desc name="type">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
+ </desc>
+</template>
+
+<template name="DisableClientState">
+ <proto>
+ <return type="void"/>
+ <param name="array" type="GLenum"/>
+ </proto>
+
+ <desc name="array">
+ <value name="GL_VERTEX_ARRAY"/>
+ <value name="GL_NORMAL_ARRAY"/>
+ <value name="GL_COLOR_ARRAY"/>
+ <value name="GL_TEXTURE_COORD_ARRAY"/>
+ <value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
+ </desc>
+</template>
+
+<template name="DrawArrays">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ <param name="first" type="GLint"/>
+ <param name="count" type="GLsizei"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_POINTS"/>
+ <value name="GL_LINES"/>
+ <value name="GL_LINE_LOOP"/>
+ <value name="GL_LINE_STRIP"/>
+ <value name="GL_TRIANGLES"/>
+ <value name="GL_TRIANGLE_STRIP"/>
+ <value name="GL_TRIANGLE_FAN"/>
+ </desc>
+</template>
+
+<template name="DrawElements">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ <param name="count" type="GLsizei"/>
+ <param name="type" type="GLenum"/>
+ <param name="indices" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_POINTS"/>
+ <value name="GL_LINES"/>
+ <value name="GL_LINE_LOOP"/>
+ <value name="GL_LINE_STRIP"/>
+ <value name="GL_TRIANGLES"/>
+ <value name="GL_TRIANGLE_STRIP"/>
+ <value name="GL_TRIANGLE_FAN"/>
+ </desc>
+
+ <desc name="type">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT"/>
+ <!-- GL_UNSIGNED_INT is not defined in GLES1.1 headers -->
+ <value name="(0x1405 /* GL_UNSIGNED_INT */)" category="OES_element_index_uint"/>
+ </desc>
+</template>
+
+<template name="EnableClientState">
+ <proto>
+ <return type="void"/>
+ <param name="array" type="GLenum"/>
+ </proto>
+
+ <desc name="array">
+ <value name="GL_VERTEX_ARRAY"/>
+ <value name="GL_NORMAL_ARRAY"/>
+ <value name="GL_COLOR_ARRAY"/>
+ <value name="GL_TEXTURE_COORD_ARRAY"/>
+ <value name="GL_MATRIX_INDEX_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_WEIGHT_ARRAY_OES" category="OES_matrix_palette"/>
+ <value name="GL_POINT_SIZE_ARRAY_OES" category="OES_point_size_array"/>
+ </desc>
+</template>
+
+<template name="GetPointer" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLvoid **" size="dynamic"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_VERTEX_ARRAY_POINTER"/>
+ <value name="GL_NORMAL_ARRAY_POINTER"/>
+ <value name="GL_COLOR_ARRAY_POINTER"/>
+ <value name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <value name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
+ <value name="GL_WEIGHT_ARRAY_POINTER_OES" category="OES_matrix_palette"/>
+ <value name="GL_POINT_SIZE_ARRAY_POINTER_OES" category="OES_point_size_array"/>
+ </desc>
+</template>
+
+<template name="Normal">
+ <proto>
+ <return type="void"/>
+ <vector name="v" type="const GLtype *" size="3">
+ <param name="nx" type="GLtype"/>
+ <param name="ny" type="GLtype"/>
+ <param name="nz" type="GLtype"/>
+ </vector>
+ </proto>
+</template>
+
+<template name="NormalPointer">
+ <proto>
+ <return type="void"/>
+ <param name="type" type="GLenum"/>
+ <param name="stride" type="GLsizei"/>
+ <param name="pointer" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="type">
+ <value name="GL_BYTE"/>
+ <value name="GL_SHORT"/>
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
+ </desc>
+</template>
+
+<template name="TexCoordPointer">
+ <proto>
+ <return type="void"/>
+ <param name="size" type="GLint"/>
+ <param name="type" type="GLenum"/>
+ <param name="stride" type="GLsizei"/>
+ <param name="pointer" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="size" error="GL_INVALID_VALUE">
+ <value name="2"/>
+ <value name="3"/>
+ <value name="4"/>
+ </desc>
+
+ <desc name="type">
+ <value name="GL_BYTE"/>
+ <value name="GL_SHORT"/>
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
+ </desc>
+</template>
+
+<template name="VertexPointer">
+ <proto>
+ <return type="void"/>
+ <param name="size" type="GLint"/>
+ <param name="type" type="GLenum"/>
+ <param name="stride" type="GLsizei"/>
+ <param name="pointer" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="size" error="GL_INVALID_VALUE">
+ <value name="2"/>
+ <value name="3"/>
+ <value name="4"/>
+ </desc>
+
+ <desc name="type">
+ <value name="GL_BYTE"/>
+ <value name="GL_SHORT"/>
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
+ </desc>
+</template>
+
+<template name="PolygonOffset">
+ <proto>
+ <return type="void"/>
+ <param name="factor" type="GLtype"/>
+ <param name="units" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="CopyTexImage2D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="internalFormat" error="GL_INVALID_VALUE">
+ <value name="GL_ALPHA"/>
+ <value name="GL_RGB"/>
+ <value name="GL_RGBA"/>
+ <value name="GL_LUMINANCE"/>
+ <value name="GL_LUMINANCE_ALPHA"/>
+ </desc>
+
+ <desc name="border" error="GL_INVALID_VALUE">
+ <value name="0"/>
+ </desc>
+</template>
+
+<template name="CopyTexSubImage2D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+</template>
+
+<template name="TexSubImage2D">
+ <proto>
+ <return type="void"/>
+ <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="pixels" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGB"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGBA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ <value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format" category="OES_depth_texture">
+ <value name="GL_DEPTH_COMPONENT"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_SHORT"/>
+ <value name="GL_UNSIGNED_INT"/>
+ </desc>
+ </desc>
+
+ <desc name="format" category="OES_packed_depth_stencil">
+ <value name="GL_DEPTH_STENCIL_OES"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_INT_24_8_OES"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="BindTexture">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="texture" type="GLuint"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+ </desc>
+</template>
+
+<template name="DeleteTextures">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="textures" type="const GLuint *"/>
+ </proto>
+</template>
+
+<template name="GenTextures" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="textures" type="GLuint *"/>
+ </proto>
+</template>
+
+<template name="IsTexture" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="texture" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="BlendColor">
+ <proto>
+ <return type="void"/>
+ <param name="red" type="GLtype"/>
+ <param name="green" type="GLtype"/>
+ <param name="blue" type="GLtype"/>
+ <param name="alpha" type="GLtype"/>
+ </proto>
+</template>
+
+<template name="BlendEquation">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_FUNC_ADD" category="GLES2.0"/>
+ <value name="GL_FUNC_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_ADD_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_SUBTRACT_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT_OES" category="OES_blend_subtract"/>
+
+ <value name="GL_MIN_EXT" category="EXT_blend_minmax"/>
+ <value name="GL_MAX_EXT" category="EXT_blend_minmax"/>
+ </desc>
+</template>
+
+<template name="BlendEquationSeparate">
+ <proto>
+ <return type="void"/>
+ <param name="modeRGB" type="GLenum"/>
+ <param name="modeAlpha" type="GLenum"/>
+ </proto>
+
+ <desc name="modeRGB">
+ <value name="GL_FUNC_ADD" category="GLES2.0"/>
+ <value name="GL_FUNC_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_ADD_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_SUBTRACT_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT_OES" category="OES_blend_subtract"/>
+
+ <value name="GL_MIN_EXT" category="EXT_blend_minmax"/>
+ <value name="GL_MAX_EXT" category="EXT_blend_minmax"/>
+ </desc>
+
+ <desc name="modeAlpha">
+ <value name="GL_FUNC_ADD" category="GLES2.0"/>
+ <value name="GL_FUNC_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT" category="GLES2.0"/>
+ <value name="GL_FUNC_ADD_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_SUBTRACT_OES" category="OES_blend_subtract"/>
+ <value name="GL_FUNC_REVERSE_SUBTRACT_OES" category="OES_blend_subtract"/>
+
+ <value name="GL_MIN_EXT" category="EXT_blend_minmax"/>
+ <value name="GL_MAX_EXT" category="EXT_blend_minmax"/>
+ </desc>
+</template>
+
+<template name="TexImage3D">
+ <proto>
+ <return type="void"/>
+ <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 *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_3D_OES"/>
+ </desc>
+
+ <desc name="internalFormat">
+ <value name="GL_ALPHA"/>
+ <value name="GL_RGB"/>
+ <value name="GL_RGBA"/>
+ <value name="GL_LUMINANCE"/>
+ <value name="GL_LUMINANCE_ALPHA"/>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGB"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGBA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ <value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="TexSubImage3D">
+ <proto>
+ <return type="void"/>
+ <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="pixels" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_3D_OES"/>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGB"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_RGBA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <value name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ <value name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT" category="EXT_texture_type_2_10_10_10_REV"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_LUMINANCE_ALPHA"/>
+
+ <desc name="type" error="GL_INVALID_OPERATION">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_FLOAT" category="OES_texture_float"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_texture_half_float"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="CopyTexSubImage3D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_3D_OES"/>
+ </desc>
+</template>
+
+<template name="MultiTexCoord">
+ <proto>
+ <return type="void"/>
+ <param name="texture" type="GLenum"/>
+ <vector name="v" type="const GLtype *" size="dynamic">
+ <param name="s" type="GLtype"/>
+ <param name="t" type="GLtype"/>
+ <param name="r" type="GLtype"/>
+ <param name="q" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="texture">
+ <range base="GL_TEXTURE" from="0" to="31"/>
+ </desc>
+</template>
+
+<template name="CompressedTexImage3D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ <param name="data" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_3D_OES"/>
+ </desc>
+
+ <desc name="internalFormat">
+ <value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
+ <value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
+ <value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
+ <value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
+ <value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
+ </desc>
+</template>
+
+<template name="CompressedTexSubImage3D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ <param name="data" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_3D_OES"/>
+ </desc>
+</template>
+
+<template name="ActiveTexture">
+ <proto>
+ <return type="void"/>
+ <param name="texture" type="GLenum"/>
+ </proto>
+
+ <desc name="texture">
+ <range base="GL_TEXTURE" from="0" to="31"/>
+ </desc>
+</template>
+
+<template name="ClientActiveTexture">
+ <proto>
+ <return type="void"/>
+ <param name="texture" type="GLenum"/>
+ </proto>
+
+ <desc name="texture">
+ <range base="GL_TEXTURE" from="0" to="31"/>
+ </desc>
+</template>
+
+<template name="SampleCoverage">
+ <proto>
+ <return type="void"/>
+ <param name="value" type="GLtype"/>
+ <param name="invert" type="GLboolean"/>
+ </proto>
+</template>
+
+<template name="CompressedTexImage2D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ <param name="data" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="internalFormat">
+ <value name="GL_ETC1_RGB8_OES" category="OES_compressed_ETC1_RGB8_texture"/>
+
+ <value name="GL_PALETTE4_RGB8_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE4_RGBA8_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE4_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE4_RGBA4_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE4_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE8_RGB8_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE8_RGBA8_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE8_R5_G6_B5_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE8_RGBA4_OES" category="OES_compressed_paletted_texture"/>
+ <value name="GL_PALETTE8_RGB5_A1_OES" category="OES_compressed_paletted_texture"/>
+
+ <value name="GL_3DC_X_AMD" category="AMD_compressed_3DC_texture"/>
+ <value name="GL_3DC_XY_AMD" category="AMD_compressed_3DC_texture"/>
+
+ <value name="GL_ATC_RGB_AMD" category="AMD_compressed_ATC_texture"/>
+ <value name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
+ <value name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" category="AMD_compressed_ATC_texture"/>
+
+ <value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
+ <value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
+ </desc>
+
+ <desc name="border" error="GL_INVALID_VALUE">
+ <value name="0"/>
+ </desc>
+</template>
+
+<template name="CompressedTexSubImage2D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ <param name="data" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+
+ <desc name="format">
+ <value name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
+ <value name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" category="EXT_texture_compression_dxt1"/>
+ </desc>
+</template>
+
+<template name="BlendFuncSeparate">
+ <proto>
+ <return type="void"/>
+ <param name="srcRGB" type="GLenum"/>
+ <param name="dstRGB" type="GLenum"/>
+ <param name="srcAlpha" type="GLenum"/>
+ <param name="dstAlpha" type="GLenum"/>
+ </proto>
+
+ <desc name="srcRGB">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+ <value name="GL_SRC_ALPHA_SATURATE"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+
+ <desc name="dstRGB">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+
+ <desc name="srcAlpha">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+ <value name="GL_SRC_ALPHA_SATURATE"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+
+ <desc name="dstAlpha">
+ <value name="GL_ZERO"/>
+ <value name="GL_ONE"/>
+ <value name="GL_SRC_COLOR"/>
+ <value name="GL_ONE_MINUS_SRC_COLOR"/>
+ <value name="GL_SRC_ALPHA"/>
+ <value name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <value name="GL_DST_ALPHA"/>
+ <value name="GL_ONE_MINUS_DST_ALPHA"/>
+ <value name="GL_DST_COLOR"/>
+ <value name="GL_ONE_MINUS_DST_COLOR"/>
+
+ <value name="GL_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_COLOR" category="GLES2.0"/>
+ <value name="GL_CONSTANT_ALPHA" category="GLES2.0"/>
+ <value name="GL_ONE_MINUS_CONSTANT_ALPHA" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="PointParameter">
+ <proto>
+ <return type="void"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="const GLtype *" size="dynamic">
+ <param name="param" type="GLtype"/>
+ </vector>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_POINT_SIZE_MIN"/>
+ <value name="GL_POINT_SIZE_MAX"/>
+ <value name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+
+ <desc name="params" vector_size="1"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <desc name="params" vector_size="3"/>
+ </desc>
+</template>
+
+<template name="VertexAttrib">
+ <proto>
+ <return type="void"/>
+ <param name="index" type="GLuint"/>
+ <vector name="v" type="const GLtype *" size="dynamic">
+ <param name="x" type="GLtype"/>
+ <param name="y" type="GLtype"/>
+ <param name="z" type="GLtype"/>
+ <param name="w" type="GLtype"/>
+ </vector>
+ </proto>
+</template>
+
+<template name="VertexAttribPointer">
+ <proto>
+ <return type="void"/>
+ <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 *"/>
+ </proto>
+
+ <desc name="size" error="GL_INVALID_VALUE">
+ <value name="1"/>
+ <value name="2"/>
+ <value name="3"/>
+ <value name="4"/>
+ </desc>
+
+ <desc name="type" error="GL_INVALID_VALUE">
+ <value name="GL_BYTE"/>
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_SHORT"/>
+ <value name="GL_UNSIGNED_SHORT"/>
+ <value name="GL_FLOAT"/>
+ <value name="GL_FIXED"/>
+ <value name="GL_HALF_FLOAT_OES" category="OES_vertex_half_float"/>
+ <value name="GL_UNSIGNED_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
+ <value name="GL_INT_10_10_10_2_OES" category="OES_vertex_type_10_10_10_2"/>
+ </desc>
+
+ <desc name="type" category="OES_vertex_type_10_10_10_2">
+ <value name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <value name="GL_INT_10_10_10_2_OES"/>
+
+ <desc name="size">
+ <value name="3"/>
+ <value name="4"/>
+ </desc>
+ </desc>
+</template>
+
+<template name="EnableVertexAttribArray">
+ <proto>
+ <return type="void"/>
+ <param name="index" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="DisableVertexAttribArray">
+ <proto>
+ <return type="void"/>
+ <param name="index" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="IsProgram" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="program" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="GetProgram" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_DELETE_STATUS"/>
+ <value name="GL_LINK_STATUS"/>
+ <value name="GL_VALIDATE_STATUS"/>
+ <value name="GL_INFO_LOG_LENGTH"/>
+ <value name="GL_ATTACHED_SHADERS"/>
+ <value name="GL_ACTIVE_ATTRIBUTES"/>
+ <value name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <value name="GL_ACTIVE_UNIFORMS"/>
+ <value name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <value name="GL_PROGRAM_BINARY_LENGTH_OES" category="OES_get_program_binary"/>
+
+ <desc name="params" convert="false"/>
+ </desc>
+</template>
+
+<template name="GetVertexAttrib" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="index" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <value name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <value name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <value name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <value name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <value name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <desc name="params" vector_size="16?" convert="false"/>
+ </desc>
+</template>
+
+<template name="GetVertexAttribPointer" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="index" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="pointer" type="GLvoid **" size="dynamic"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ </desc>
+</template>
+
+<template name="GetBufferPointer" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLvoid **" size="dynamic"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_BUFFER_MAP_POINTER_OES"/>
+ </desc>
+</template>
+
+<template name="MapBuffer" direction="get">
+ <proto>
+ <return type="void *"/>
+ <param name="target" type="GLenum"/>
+ <param name="access" type="GLenum"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+
+ <desc name="access">
+ <value name="GL_WRITE_ONLY_OES"/>
+ </desc>
+</template>
+
+<template name="UnmapBuffer" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="target" type="GLenum"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+</template>
+
+<template name="BindBuffer">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="buffer" type="GLuint"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+</template>
+
+<template name="BufferData">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="size" type="GLsizeiptr"/>
+ <param name="data" type="const GLvoid *"/>
+ <param name="usage" type="GLenum"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+
+ <desc name="usage">
+ <value name="GL_STATIC_DRAW"/>
+ <value name="GL_DYNAMIC_DRAW"/>
+ <value name="GL_STREAM_DRAW" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="BufferSubData">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="offset" type="GLintptr"/>
+ <param name="size" type="GLsizeiptr"/>
+ <param name="data" type="const GLvoid *"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+</template>
+
+<template name="DeleteBuffers">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="buffer" type="const GLuint *"/>
+ </proto>
+</template>
+
+<template name="GenBuffers" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="buffer" type="GLuint *"/>
+ </proto>
+</template>
+
+<template name="GetBufferParameter" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_ARRAY_BUFFER"/>
+ <value name="GL_ELEMENT_ARRAY_BUFFER"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_BUFFER_SIZE"/>
+ <value name="GL_BUFFER_USAGE"/>
+ <value name="GL_BUFFER_ACCESS_OES" category="OES_mapbuffer"/>
+ <value name="GL_BUFFER_MAPPED_OES" category="OES_mapbuffer"/>
+ </desc>
+</template>
+
+<template name="IsBuffer" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="buffer" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="CreateShader">
+ <proto>
+ <return type="GLuint"/>
+ <param name="type" type="GLenum"/>
+ </proto>
+
+ <desc name="type">
+ <value name="GL_VERTEX_SHADER"/>
+ <value name="GL_FRAGMENT_SHADER"/>
+ </desc>
+</template>
+
+<template name="ShaderSource">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="string" type="const GLchar **"/>
+ <param name="length" type="const int *"/>
+ </proto>
+</template>
+
+<template name="CompileShader">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="ReleaseShaderCompiler">
+ <proto>
+ <return type="void"/>
+ </proto>
+</template>
+
+<template name="DeleteShader">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="ShaderBinary">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+</template>
+
+<template name="CreateProgram">
+ <proto>
+ <return type="GLuint"/>
+ </proto>
+</template>
+
+<template name="AttachShader">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="shader" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="DetachShader">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="shader" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="LinkProgram">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="UseProgram">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="DeleteProgram">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="GetActiveAttrib" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="index" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="size" type="GLint *"/>
+ <param name="type" type="GLenum *"/>
+ <param name="name" type="GLchar *"/>
+ </proto>
+</template>
+
+<template name="GetAttribLocation" direction="get">
+ <proto>
+ <return type="GLint"/>
+ <param name="program" type="GLuint"/>
+ <param name="name" type="const char *"/>
+ </proto>
+</template>
+
+<template name="BindAttribLocation">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="index" type="GLuint"/>
+ <param name="name" type="const char *"/>
+ </proto>
+</template>
+
+<template name="GetUniformLocation" direction="get">
+ <proto>
+ <return type="GLint"/>
+ <param name="program" type="GLuint"/>
+ <param name="name" type="const char *"/>
+ </proto>
+</template>
+
+<template name="GetActiveUniform" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="index" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="size" type="GLint *"/>
+ <param name="type" type="GLenum *"/>
+ <param name="name" type="GLchar *"/>
+ </proto>
+</template>
+
+<template name="Uniform">
+ <proto>
+ <return type="void"/>
+ <param name="location" type="GLint"/>
+ <param name="count" type="GLsizei" hide_if_expanded="true"/>
+ <vector name="values" type="const GLtype *" size="dynamic">
+ <param name="v0" type="GLtype"/>
+ <param name="v1" type="GLtype"/>
+ <param name="v2" type="GLtype"/>
+ <param name="v3" type="GLtype"/>
+ </vector>
+ </proto>
+</template>
+
+<template name="UniformMatrix">
+ <proto>
+ <return type="void"/>
+ <param name="location" type="GLint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="transpose" type="GLboolean"/>
+ <vector name="value" type="const GLtype *" size="dynamic"/>
+ </proto>
+</template>
+
+<template name="ValidateProgram">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="GenerateMipmap">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+ </desc>
+</template>
+
+<template name="BindFramebuffer">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="framebuffer" type="GLuint"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="DeleteFramebuffers">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="framebuffers" type="const GLuint *"/>
+ </proto>
+</template>
+
+<template name="GenFramebuffers">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="ids" type="GLuint *"/>
+ </proto>
+</template>
+
+<template name="BindRenderbuffer">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="renderbuffer" type="GLuint"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RENDERBUFFER" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="DeleteRenderbuffers">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="renderbuffers" type="const GLuint *"/>
+ </proto>
+</template>
+
+<template name="GenRenderbuffers">
+ <proto>
+ <return type="void"/>
+ <param name="n" type="GLsizei"/>
+ <param name="renderbuffers" type="GLuint *"/>
+ </proto>
+</template>
+
+<template name="RenderbufferStorage">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="internalFormat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RENDERBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="internalFormat">
+ <value name="GL_DEPTH_COMPONENT16_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RGBA4_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RGB5_A1_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RGB565_OES" category="OES_framebuffer_object"/>
+ <value name="GL_STENCIL_INDEX8_OES" category="OES_stencil8"/>
+
+ <value name="GL_DEPTH_COMPONENT16" category="GLES2.0"/>
+ <value name="GL_RGBA4" category="GLES2.0"/>
+ <value name="GL_RGB5_A1" category="GLES2.0"/>
+ <value name="GL_RGB565" category="GLES2.0"/>
+ <value name="GL_STENCIL_INDEX8" category="GLES2.0"/>
+
+ <value name="GL_DEPTH_COMPONENT24_OES" category="OES_depth24"/>
+ <value name="GL_DEPTH_COMPONENT32_OES" category="OES_depth32"/>
+ <value name="GL_RGB8_OES" category="OES_rgb8_rgba8"/>
+ <value name="GL_RGBA8_OES" category="OES_rgb8_rgba8"/>
+ <value name="GL_STENCIL_INDEX1_OES" category="OES_stencil1"/>
+ <value name="GL_STENCIL_INDEX4_OES" category="OES_stencil4"/>
+ <value name="GL_DEPTH24_STENCIL8_OES" category="OES_packed_depth_stencil"/>
+ </desc>
+</template>
+
+<template name="FramebufferRenderbuffer">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="attachment" type="GLenum"/>
+ <param name="renderbuffertarget" type="GLenum"/>
+ <param name="renderbuffer" type="GLuint"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="attachment">
+ <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
+ <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
+ <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
+ <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
+ </desc>
+
+ <desc name="renderbuffertarget">
+ <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RENDERBUFFER" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="FramebufferTexture2D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="attachment">
+ <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
+ <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
+ <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
+ <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
+ </desc>
+
+ <desc name="textarget" error="GL_INVALID_OPERATION">
+ <value name="GL_TEXTURE_2D"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" category="GLES2.0"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" category="OES_texture_cube_map"/>
+ <value name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" category="OES_texture_cube_map"/>
+ </desc>
+ <!-- According to the base specification, "level" must be 0. But
+ extension GL_OES_fbo_render_mipmap lifts that restriction,
+ so no restriction is placed here. -->
+</template>
+
+<template name="FramebufferTexture3D">
+ <proto>
+ <return type="void"/>
+ <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"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="attachment">
+ <value name="GL_COLOR_ATTACHMENT0_OES" category="OES_framebuffer_object"/>
+ <value name="GL_DEPTH_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_STENCIL_ATTACHMENT_OES" category="OES_framebuffer_object"/>
+ <value name="GL_COLOR_ATTACHMENT0" category="GLES2.0"/>
+ <value name="GL_DEPTH_ATTACHMENT" category="GLES2.0"/>
+ <value name="GL_STENCIL_ATTACHMENT" category="GLES2.0"/>
+ </desc>
+
+ <desc name="textarget" error="GL_INVALID_OPERATION">
+ <value name="GL_TEXTURE_3D_OES" category="OES_texture_3D"/>
+ </desc>
+</template>
+
+<template name="CheckFramebufferStatus" direction="get">
+ <proto>
+ <return type="GLenum"/>
+ <param name="target" type="GLenum"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+</template>
+
+<template name="GetFramebufferAttachmentParameter" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="attachment" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_FRAMEBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="pname">
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" category="OES_framebuffer_object"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" category="OES_framebuffer_object"/>
+
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" category="GLES2.0"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" category="GLES2.0"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" category="GLES2.0"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" category="GLES2.0"/>
+ <value name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" category="OES_texture_3D"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+</template>
+
+<template name="GetRenderbufferParameter" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RENDERBUFFER" category="GLES2.0"/>
+ </desc>
+
+ <desc name="pname" category="OES_framebuffer_object">
+ <value name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <value name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <value name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <value name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <value name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <value name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <value name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <value name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <value name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+
+ <desc name="pname" category="GLES2.0">
+ <value name="GL_RENDERBUFFER_WIDTH"/>
+ <value name="GL_RENDERBUFFER_HEIGHT"/>
+ <value name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <value name="GL_RENDERBUFFER_RED_SIZE"/>
+ <value name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <value name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <value name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <value name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <value name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+
+ <desc name="params" vector_size="1" convert="false"/>
+ </desc>
+</template>
+
+<template name="IsRenderbuffer" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="renderbuffer" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="IsFramebuffer" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="framebuffer" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="IsShader" direction="get">
+ <proto>
+ <return type="GLboolean"/>
+ <param name="shader" type="GLuint"/>
+ </proto>
+</template>
+
+<template name="GetShader" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+
+ <desc name="pname">
+ <value name="GL_SHADER_TYPE"/>
+ <value name="GL_COMPILE_STATUS"/>
+ <value name="GL_DELETE_STATUS"/>
+ <value name="GL_INFO_LOG_LENGTH"/>
+ <value name="GL_SHADER_SOURCE_LENGTH"/>
+ </desc>
+</template>
+
+<template name="GetAttachedShaders" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="maxCount" type="GLsizei"/>
+ <param name="count" type="GLsizei *"/>
+ <param name="shaders" type="GLuint *"/>
+ </proto>
+</template>
+
+<template name="GetShaderInfoLog" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="infoLog" type="GLchar *"/>
+ </proto>
+</template>
+
+<template name="GetProgramInfoLog" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="infoLog" type="GLchar *"/>
+ </proto>
+</template>
+
+<template name="GetShaderSource" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="shader" type="GLuint"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="length" type="GLsizei *"/>
+ <param name="source" type="GLchar *"/>
+ </proto>
+</template>
+
+<template name="GetShaderPrecisionFormat" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="shadertype" type="GLenum"/>
+ <param name="precisiontype" type="GLenum"/>
+ <param name="range" type="GLint *"/>
+ <param name="precision" type="GLint *"/>
+ </proto>
+
+ <desc name="shadertype">
+ <value name="GL_VERTEX_SHADER"/>
+ <value name="GL_FRAGMENT_SHADER"/>
+ </desc>
+
+ <desc name="precisiontype">
+ <value name="GL_LOW_FLOAT"/>
+ <value name="GL_MEDIUM_FLOAT"/>
+ <value name="GL_HIGH_FLOAT"/>
+ <value name="GL_LOW_INT"/>
+ <value name="GL_MEDIUM_INT"/>
+ <value name="GL_HIGH_INT"/>
+ </desc>
+</template>
+
+<template name="GetUniform" direction="get">
+ <proto>
+ <return type="void"/>
+ <param name="program" type="GLuint"/>
+ <param name="location" type="GLint"/>
+ <vector name="params" type="GLtype *" size="dynamic"/>
+ </proto>
+</template>
+
+<template name="QueryMatrix" direction="get">
+ <proto>
+ <return type="GLbitfield"/>
+ <vector name="mantissa" type="GLtype *" size="16"/>
+ <vector name="exponent" type="GLint *" size="16"/>
+ </proto>
+</template>
+
+<template name="DrawTex">
+ <proto>
+ <return type="void"/>
+ <vector name="coords" type="const GLtype *" size="5">
+ <param name="x" type="GLtype"/>
+ <param name="y" type="GLtype"/>
+ <param name="z" type="GLtype"/>
+ <param name="w" type="GLtype"/>
+ <param name="h" type="GLtype"/>
+ </vector>
+ </proto>
+</template>
+
+<template name="MultiDrawArrays">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ <param name="first" type="GLint *"/>
+ <param name="count" type="GLsizei *"/>
+ <param name="primcount" type="GLsizei"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_POINTS"/>
+ <value name="GL_LINES"/>
+ <value name="GL_LINE_LOOP"/>
+ <value name="GL_LINE_STRIP"/>
+ <value name="GL_TRIANGLES"/>
+ <value name="GL_TRIANGLE_STRIP"/>
+ <value name="GL_TRIANGLE_FAN"/>
+ </desc>
+</template>
+
+<template name="MultiDrawElements">
+ <proto>
+ <return type="void"/>
+ <param name="mode" type="GLenum"/>
+ <param name="count" type="const GLsizei *"/>
+ <param name="type" type="GLenum"/>
+ <param name="indices" type="const GLvoid **"/>
+ <param name="primcount" type="GLsizei"/>
+ </proto>
+
+ <desc name="mode">
+ <value name="GL_POINTS"/>
+ <value name="GL_LINES"/>
+ <value name="GL_LINE_LOOP"/>
+ <value name="GL_LINE_STRIP"/>
+ <value name="GL_TRIANGLES"/>
+ <value name="GL_TRIANGLE_STRIP"/>
+ <value name="GL_TRIANGLE_FAN"/>
+ </desc>
+
+ <desc name="type">
+ <value name="GL_UNSIGNED_BYTE"/>
+ <value name="GL_UNSIGNED_SHORT"/>
+ <!-- GL_UNSIGNED_INT is not defined in GLES1.1 headers -->
+ <value name="(0x1405 /* GL_UNSIGNED_INT */)" category="OES_element_index_uint"/>
+ </desc>
+</template>
+
+<template name="EGLImageTargetTexture2D">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="image" type="GLeglImageOES"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_TEXTURE_2D"/>
+ </desc>
+</template>
+
+<template name="EGLImageTargetRenderbufferStorage">
+ <proto>
+ <return type="void"/>
+ <param name="target" type="GLenum"/>
+ <param name="image" type="GLeglImageOES"/>
+ </proto>
+
+ <desc name="target">
+ <value name="GL_RENDERBUFFER_OES" category="OES_framebuffer_object"/>
+ <value name="GL_RENDERBUFFER" category="GLES2.0"/>
+ </desc>
+</template>
+
+<api name="mesa" implementation="true">
+ <category name="MESA"/>
+
+ <function name="Color4f" default_prefix="_vbo_" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="ClipPlane" template="ClipPlane" gltype="GLdouble"/>
+ <function name="CullFace" template="CullFace"/>
+
+ <function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
+ <function name="Fogfv" template="Fog" gltype="GLfloat"/>
+
+ <function name="FrontFace" template="FrontFace"/>
+ <function name="Hint" template="Hint"/>
+
+ <function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
+ <function name="Lightfv" template="Light" gltype="GLfloat"/>
+
+ <function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
+ <function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
+
+ <function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
+
+ <function name="Materialf" default_prefix="_vbo_" template="Material" gltype="GLfloat" expand_vector="true"/>
+ <function name="Materialfv" default_prefix="_vbo_" template="Material" gltype="GLfloat"/>
+
+ <function name="PointSize" template="PointSize" gltype="GLfloat"/>
+ <function name="PointSizePointer" template="PointSizePointer"/>
+
+ <function name="Scissor" template="Scissor"/>
+ <function name="ShadeModel" template="ShadeModel"/>
+
+ <function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
+ <function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
+ <function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
+
+ <function name="TexImage2D" template="TexImage2D"/>
+
+ <function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
+ <function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
+ <function name="TexEnviv" template="TexEnv" gltype="GLint"/>
+
+ <function name="TexGenf" template="TexGen" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexGenfv" template="TexGen" gltype="GLfloat"/>
+
+ <function name="Clear" template="Clear"/>
+ <function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
+ <function name="ClearStencil" template="ClearStencil"/>
+ <function name="ClearDepth" template="ClearDepth" gltype="GLclampd"/>
+
+ <function name="StencilMask" template="StencilMask"/>
+ <function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
+ <function name="ColorMask" template="ColorMask"/>
+ <function name="DepthMask" template="DepthMask"/>
+ <function name="Disable" template="Disable"/>
+ <function name="Enable" template="Enable"/>
+ <function name="Finish" template="Finish"/>
+ <function name="Flush" template="Flush"/>
+
+ <function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
+
+ <function name="BlendFunc" template="BlendFunc"/>
+ <function name="LogicOp" template="LogicOp"/>
+ <function name="StencilFunc" template="StencilFunc"/>
+ <function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
+ <function name="StencilOp" template="StencilOp"/>
+ <function name="StencilOpSeparate" template="StencilOpSeparate"/>
+ <function name="DepthFunc" template="DepthFunc"/>
+ <function name="PixelStorei" template="PixelStore" gltype="GLint"/>
+
+ <function name="ReadPixels" template="ReadPixels"/>
+ <function name="GetBooleanv" template="GetState" gltype="GLboolean"/>
+ <function name="GetClipPlane" template="GetClipPlane" gltype="GLdouble"/>
+ <function name="GetError" template="GetError"/>
+ <function name="GetFloatv" template="GetState" gltype="GLfloat"/>
+ <function name="GetFixedv" template="GetState" gltype="GLfixed"/>
+ <function name="GetIntegerv" template="GetState" gltype="GLint"/>
+
+ <function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
+ <function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
+ <function name="GetMaterialiv" template="GetMaterial" gltype="GLint"/>
+
+ <function name="GetString" template="GetString"/>
+
+ <function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
+ <function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
+ <function name="GetTexGenfv" template="GetTexGen" gltype="GLfloat"/>
+ <function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
+ <function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
+
+ <function name="IsEnabled" template="IsEnabled"/>
+
+ <function name="DepthRange" template="DepthRange" gltype="GLclampd"/>
+ <function name="Frustum" template="Frustum" gltype="GLdouble"/>
+
+ <function name="LoadIdentity" template="LoadIdentity"/>
+ <function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
+ <function name="MatrixMode" template="MatrixMode"/>
+
+ <function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
+ <function name="Ortho" template="Ortho" gltype="GLdouble"/>
+ <function name="PopMatrix" template="PopMatrix"/>
+ <function name="PushMatrix" template="PushMatrix"/>
+
+ <function name="Rotatef" template="Rotate" gltype="GLfloat"/>
+ <function name="Scalef" template="Scale" gltype="GLfloat"/>
+ <function name="Translatef" template="Translate" gltype="GLfloat"/>
+
+ <function name="Viewport" template="Viewport"/>
+
+ <function name="ColorPointer" template="ColorPointer"/>
+ <function name="DisableClientState" template="DisableClientState"/>
+ <function name="DrawArrays" template="DrawArrays"/>
+ <function name="DrawElements" template="DrawElements"/>
+ <function name="EnableClientState" template="EnableClientState"/>
+
+ <function name="GetPointerv" template="GetPointer"/>
+ <function name="Normal3f" default_prefix="_vbo_" template="Normal" gltype="GLfloat" expand_vector="true"/>
+ <function name="NormalPointer" template="NormalPointer"/>
+ <function name="TexCoordPointer" template="TexCoordPointer"/>
+ <function name="VertexPointer" template="VertexPointer"/>
+
+ <function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
+ <function name="CopyTexImage2D" template="CopyTexImage2D"/>
+ <function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
+ <function name="TexSubImage2D" template="TexSubImage2D"/>
+
+ <function name="BindTexture" template="BindTexture"/>
+ <function name="DeleteTextures" template="DeleteTextures"/>
+ <function name="GenTextures" template="GenTextures"/>
+ <function name="IsTexture" template="IsTexture"/>
+
+ <function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
+ <function name="BlendEquation" template="BlendEquation"/>
+ <function name="BlendEquationSeparateEXT" template="BlendEquationSeparate"/>
+
+ <function name="TexImage3D" template="TexImage3D"/>
+ <function name="TexSubImage3D" template="TexSubImage3D"/>
+ <function name="CopyTexSubImage3D" template="CopyTexSubImage3D"/>
+
+ <function name="CompressedTexImage3DARB" template="CompressedTexImage3D"/>
+ <function name="CompressedTexSubImage3DARB" template="CompressedTexSubImage3D"/>
+
+ <function name="ActiveTextureARB" template="ActiveTexture"/>
+ <function name="ClientActiveTextureARB" template="ClientActiveTexture"/>
+
+ <function name="MultiTexCoord4f" default_prefix="_vbo_" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+
+ <function name="SampleCoverageARB" template="SampleCoverage" gltype="GLclampf"/>
+
+ <function name="CompressedTexImage2DARB" template="CompressedTexImage2D"/>
+ <function name="CompressedTexSubImage2DARB" template="CompressedTexSubImage2D"/>
+
+ <function name="BlendFuncSeparateEXT" template="BlendFuncSeparate"/>
+
+ <function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
+ <function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
+
+ <function name="VertexAttrib1f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+ <function name="VertexAttrib2f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+ <function name="VertexAttrib3f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+ <function name="VertexAttrib4f" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="VertexAttrib1fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
+ <function name="VertexAttrib2fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
+ <function name="VertexAttrib3fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
+ <function name="VertexAttrib4fv" default_prefix="_vbo_" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
+
+ <function name="VertexAttribPointerARB" template="VertexAttribPointer"/>
+ <function name="EnableVertexAttribArrayARB" template="EnableVertexAttribArray"/>
+ <function name="DisableVertexAttribArrayARB" template="DisableVertexAttribArray"/>
+
+ <function name="IsProgram" template="IsProgram"/>
+ <function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
+
+ <function name="GetVertexAttribfvARB" template="GetVertexAttrib" gltype="GLfloat"/>
+ <function name="GetVertexAttribivARB" template="GetVertexAttrib" gltype="GLint"/>
+ <function name="GetVertexAttribPointervARB" template="GetVertexAttribPointer"/>
+
+ <function name="GetBufferPointervARB" template="GetBufferPointer"/>
+ <function name="MapBufferARB" template="MapBuffer"/>
+ <function name="UnmapBufferARB" template="UnmapBuffer"/>
+ <function name="BindBufferARB" template="BindBuffer"/>
+ <function name="BufferDataARB" template="BufferData"/>
+ <function name="BufferSubDataARB" template="BufferSubData"/>
+ <function name="DeleteBuffersARB" template="DeleteBuffers"/>
+ <function name="GenBuffersARB" template="GenBuffers"/>
+ <function name="GetBufferParameterivARB" template="GetBufferParameter" gltype="GLint"/>
+ <function name="IsBufferARB" template="IsBuffer"/>
+
+ <function name="CreateShader" template="CreateShader"/>
+ <function name="ShaderSourceARB" template="ShaderSource"/>
+ <function name="CompileShaderARB" template="CompileShader"/>
+ <function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
+ <function name="DeleteShader" template="DeleteShader"/>
+ <function name="ShaderBinary" template="ShaderBinary"/>
+ <function name="CreateProgram" template="CreateProgram"/>
+ <function name="AttachShader" template="AttachShader"/>
+ <function name="DetachShader" template="DetachShader"/>
+ <function name="LinkProgramARB" template="LinkProgram"/>
+ <function name="UseProgramObjectARB" template="UseProgram"/>
+ <function name="DeleteProgram" template="DeleteProgram"/>
+
+ <function name="GetActiveAttribARB" template="GetActiveAttrib"/>
+ <function name="GetAttribLocationARB" template="GetAttribLocation"/>
+ <function name="BindAttribLocationARB" template="BindAttribLocation"/>
+ <function name="GetUniformLocationARB" template="GetUniformLocation"/>
+ <function name="GetActiveUniformARB" template="GetActiveUniform"/>
+
+ <function name="Uniform1fARB" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+ <function name="Uniform2fARB" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+ <function name="Uniform3fARB" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+ <function name="Uniform4fARB" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="Uniform1iARB" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
+ <function name="Uniform2iARB" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
+ <function name="Uniform3iARB" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
+ <function name="Uniform4iARB" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
+ <function name="Uniform1fvARB" template="Uniform" gltype="GLfloat" vector_size="1"/>
+ <function name="Uniform2fvARB" template="Uniform" gltype="GLfloat" vector_size="2"/>
+ <function name="Uniform3fvARB" template="Uniform" gltype="GLfloat" vector_size="3"/>
+ <function name="Uniform4fvARB" template="Uniform" gltype="GLfloat" vector_size="4"/>
+ <function name="Uniform1ivARB" template="Uniform" gltype="GLint" vector_size="1"/>
+ <function name="Uniform2ivARB" template="Uniform" gltype="GLint" vector_size="2"/>
+ <function name="Uniform3ivARB" template="Uniform" gltype="GLint" vector_size="3"/>
+ <function name="Uniform4ivARB" template="Uniform" gltype="GLint" vector_size="4"/>
+
+ <function name="UniformMatrix2fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
+ <function name="UniformMatrix3fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
+ <function name="UniformMatrix4fvARB" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
+
+ <function name="ValidateProgramARB" template="ValidateProgram"/>
+
+ <function name="GenerateMipmapEXT" template="GenerateMipmap"/>
+ <function name="BindFramebufferEXT" template="BindFramebuffer"/>
+ <function name="DeleteFramebuffersEXT" template="DeleteFramebuffers"/>
+ <function name="GenFramebuffersEXT" template="GenFramebuffers"/>
+ <function name="BindRenderbufferEXT" template="BindRenderbuffer"/>
+ <function name="DeleteRenderbuffersEXT" template="DeleteRenderbuffers"/>
+ <function name="GenRenderbuffersEXT" template="GenRenderbuffers"/>
+ <function name="RenderbufferStorageEXT" template="RenderbufferStorage"/>
+ <function name="FramebufferRenderbufferEXT" template="FramebufferRenderbuffer"/>
+ <function name="FramebufferTexture2DEXT" template="FramebufferTexture2D"/>
+ <function name="FramebufferTexture3DEXT" template="FramebufferTexture3D"/>
+ <function name="CheckFramebufferStatusEXT" template="CheckFramebufferStatus"/>
+ <function name="GetFramebufferAttachmentParameterivEXT" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
+ <function name="GetRenderbufferParameterivEXT" template="GetRenderbufferParameter" gltype="GLint"/>
+ <function name="IsRenderbufferEXT" template="IsRenderbuffer"/>
+ <function name="IsFramebufferEXT" template="IsFramebuffer"/>
+
+ <function name="IsShader" template="IsShader"/>
+ <function name="GetShaderiv" template="GetShader" gltype="GLint"/>
+ <function name="GetAttachedShaders" template="GetAttachedShaders"/>
+ <function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
+ <function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
+ <function name="GetShaderSourceARB" template="GetShaderSource"/>
+ <function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
+ <function name="GetUniformfvARB" template="GetUniform" gltype="GLfloat"/>
+ <function name="GetUniformivARB" template="GetUniform" gltype="GLint"/>
+
+ <function name="DrawTexf" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
+ <function name="DrawTexfv" template="DrawTex" gltype="GLfloat"/>
+ <function name="DrawTexi" template="DrawTex" gltype="GLint" expand_vector="true"/>
+ <function name="DrawTexiv" template="DrawTex" gltype="GLint"/>
+ <function name="DrawTexs" template="DrawTex" gltype="GLshort" expand_vector="true"/>
+ <function name="DrawTexsv" template="DrawTex" gltype="GLshort"/>
+
+ <!-- EXT_multi_draw_arrays -->
+ <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
+ <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
+
+ <!-- OES_EGL_image -->
+ <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
+ <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
+</api>
+
+<api name="GLES1.1">
+ <category name="GLES1.1"/>
+
+ <category name="OES_byte_coordinates"/>
+ <category name="OES_fixed_point"/>
+ <category name="OES_single_precision"/>
+ <category name="OES_matrix_get"/>
+ <category name="OES_read_format"/>
+ <category name="OES_compressed_paletted_texture"/>
+ <category name="OES_point_size_array"/>
+ <category name="OES_point_sprite"/>
+ <category name="OES_query_matrix"/>
+ <category name="OES_draw_texture"/>
+ <category name="OES_blend_equation_separate"/>
+ <category name="OES_blend_func_separate"/>
+ <category name="OES_blend_subtract"/>
+ <category name="OES_stencil_wrap"/>
+ <category name="OES_texture_cube_map"/>
+ <category name="OES_texture_env_crossbar"/>
+ <category name="OES_texture_mirrored_repeat"/>
+ <category name="OES_framebuffer_object"/>
+ <category name="OES_depth24"/>
+ <category name="OES_depth32"/>
+ <category name="OES_fbo_render_mipmap"/>
+ <category name="OES_rgb8_rgba8"/>
+ <category name="OES_stencil1"/>
+ <category name="OES_stencil4"/>
+ <category name="OES_stencil8"/>
+ <category name="OES_element_index_uint"/>
+ <category name="OES_mapbuffer"/>
+ <category name="EXT_texture_filter_anisotropic"/>
+
+ <category name="ARB_texture_non_power_of_two"/>
+ <!-- disabled due to missing enums
+ <category name="EXT_texture_compression_dxt1"/>
+ <category name="EXT_texture_lod_bias"/>
+ <category name="EXT_blend_minmax"/>
+ -->
+ <category name="EXT_multi_draw_arrays"/>
+ <category name="OES_EGL_image"/>
+
+ <category name="OES_matrix_palette"/>
+
+ <function name="Color4f" template="Color" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="Color4ub" template="Color" gltype="GLubyte" vector_size="4" expand_vector="true"/>
+ <function name="Color4x" template="Color" gltype="GLfixed" vector_size="4" expand_vector="true"/>
+
+ <function name="ClipPlanef" template="ClipPlane" gltype="GLfloat"/>
+ <function name="ClipPlanex" template="ClipPlane" gltype="GLfixed"/>
+
+ <function name="CullFace" template="CullFace"/>
+
+ <function name="Fogf" template="Fog" gltype="GLfloat" expand_vector="true"/>
+ <function name="Fogx" template="Fog" gltype="GLfixed" expand_vector="true"/>
+ <function name="Fogfv" template="Fog" gltype="GLfloat"/>
+ <function name="Fogxv" template="Fog" gltype="GLfixed"/>
+
+ <function name="FrontFace" template="FrontFace"/>
+ <function name="Hint" template="Hint"/>
+
+ <function name="Lightf" template="Light" gltype="GLfloat" expand_vector="true"/>
+ <function name="Lightx" template="Light" gltype="GLfixed" expand_vector="true"/>
+ <function name="Lightfv" template="Light" gltype="GLfloat"/>
+ <function name="Lightxv" template="Light" gltype="GLfixed"/>
+
+ <function name="LightModelf" template="LightModel" gltype="GLfloat" expand_vector="true"/>
+ <function name="LightModelx" template="LightModel" gltype="GLfixed" expand_vector="true"/>
+ <function name="LightModelfv" template="LightModel" gltype="GLfloat"/>
+ <function name="LightModelxv" template="LightModel" gltype="GLfixed"/>
+
+ <function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
+ <function name="LineWidthx" template="LineWidth" gltype="GLfixed"/>
+
+ <function name="Materialf" template="Material" gltype="GLfloat" expand_vector="true"/>
+ <function name="Materialfv" template="Material" gltype="GLfloat"/>
+ <function name="Materialx" template="Material" gltype="GLfixed" expand_vector="true"/>
+ <function name="Materialxv" template="Material" gltype="GLfixed"/>
+
+ <function name="PointSize" template="PointSize" gltype="GLfloat"/>
+ <function name="PointSizex" template="PointSize" gltype="GLfixed"/>
+ <function name="PointSizePointerOES" template="PointSizePointer"/>
+
+ <function name="Scissor" template="Scissor"/>
+ <function name="ShadeModel" template="ShadeModel"/>
+
+ <function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
+ <function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
+ <function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
+ <function name="TexParameterx" template="TexParameter" gltype="GLfixed" expand_vector="true"/>
+ <function name="TexParameterxv" template="TexParameter" gltype="GLfixed"/>
+
+ <function name="TexImage2D" template="TexImage2D"/>
+
+ <function name="TexEnvf" template="TexEnv" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexEnvfv" template="TexEnv" gltype="GLfloat"/>
+ <function name="TexEnvi" template="TexEnv" gltype="GLint" expand_vector="true"/>
+ <function name="TexEnviv" template="TexEnv" gltype="GLint"/>
+ <function name="TexEnvx" template="TexEnv" gltype="GLfixed" expand_vector="true"/>
+ <function name="TexEnvxv" template="TexEnv" gltype="GLfixed"/>
+
+ <function name="TexGenfOES" external="true" template="TexGen" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexGenfvOES" external="true" template="TexGen" gltype="GLfloat"/>
+ <function name="TexGeniOES" external="true" template="TexGen" gltype="GLint" expand_vector="true"/>
+ <function name="TexGenivOES" external="true" template="TexGen" gltype="GLint"/>
+ <function name="TexGenxOES" external="true" template="TexGen" gltype="GLfixed" expand_vector="true"/>
+ <function name="TexGenxvOES" external="true" template="TexGen" gltype="GLfixed"/>
+
+ <function name="Clear" template="Clear"/>
+ <function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
+ <function name="ClearColorx" template="ClearColor" gltype="GLclampx"/>
+
+ <function name="ClearStencil" template="ClearStencil"/>
+ <function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
+ <function name="ClearDepthx" template="ClearDepth" gltype="GLclampx"/>
+
+ <function name="StencilMask" template="StencilMask"/>
+ <function name="ColorMask" template="ColorMask"/>
+ <function name="DepthMask" template="DepthMask"/>
+
+ <function name="Disable" template="Disable"/>
+ <function name="Enable" template="Enable"/>
+ <function name="Finish" template="Finish"/>
+ <function name="Flush" template="Flush"/>
+
+ <function name="AlphaFunc" template="AlphaFunc" gltype="GLclampf"/>
+ <function name="AlphaFuncx" template="AlphaFunc" gltype="GLclampx"/>
+
+ <function name="BlendFunc" template="BlendFunc"/>
+ <function name="LogicOp" template="LogicOp"/>
+ <function name="StencilFunc" template="StencilFunc"/>
+
+ <function name="StencilOp" template="StencilOp"/>
+ <function name="DepthFunc" template="DepthFunc"/>
+
+ <function name="PixelStorei" template="PixelStore" gltype="GLint"/>
+ <function name="ReadPixels" template="ReadPixels"/>
+
+ <function name="GetBooleanv" default_prefix="_es1_" template="GetState" gltype="GLboolean"/>
+
+ <function name="GetClipPlanef" template="GetClipPlane" gltype="GLfloat"/>
+ <function name="GetClipPlanex" template="GetClipPlane" gltype="GLfixed"/>
+
+ <function name="GetError" template="GetError"/>
+ <function name="GetFloatv" default_prefix="_es1_" template="GetState" gltype="GLfloat"/>
+ <function name="GetFixedv" default_prefix="_es1_" template="GetState" gltype="GLfixed"/>
+ <function name="GetIntegerv" default_prefix="_es1_" template="GetState" gltype="GLint"/>
+
+ <function name="GetLightfv" template="GetLight" gltype="GLfloat"/>
+ <function name="GetLightxv" template="GetLight" gltype="GLfixed"/>
+
+ <function name="GetMaterialfv" template="GetMaterial" gltype="GLfloat"/>
+ <function name="GetMaterialxv" template="GetMaterial" gltype="GLfixed"/>
+
+ <function name="GetString" template="GetString"/>
+
+ <function name="GetTexEnvfv" template="GetTexEnv" gltype="GLfloat"/>
+ <function name="GetTexEnviv" template="GetTexEnv" gltype="GLint"/>
+ <function name="GetTexEnvxv" template="GetTexEnv" gltype="GLfixed"/>
+
+ <function name="GetTexGenfvOES" external="true" template="GetTexGen" gltype="GLfloat"/>
+ <function name="GetTexGenivOES" external="true" template="GetTexGen" gltype="GLint"/>
+ <function name="GetTexGenxvOES" external="true" template="GetTexGen" gltype="GLfixed"/>
+
+ <function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
+ <function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
+ <function name="GetTexParameterxv" template="GetTexParameter" gltype="GLfixed"/>
+
+ <function name="IsEnabled" template="IsEnabled"/>
+
+ <function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
+ <function name="DepthRangex" template="DepthRange" gltype="GLclampx"/>
+
+ <function name="Frustumf" template="Frustum" gltype="GLfloat"/>
+ <function name="Frustumx" template="Frustum" gltype="GLfixed"/>
+
+ <function name="LoadIdentity" template="LoadIdentity"/>
+ <function name="LoadMatrixf" template="LoadMatrix" gltype="GLfloat"/>
+ <function name="LoadMatrixx" template="LoadMatrix" gltype="GLfixed"/>
+ <function name="MatrixMode" template="MatrixMode"/>
+
+ <function name="MultMatrixf" template="MultMatrix" gltype="GLfloat"/>
+ <function name="MultMatrixx" template="MultMatrix" gltype="GLfixed"/>
+ <function name="Orthof" template="Ortho" gltype="GLfloat"/>
+ <function name="Orthox" template="Ortho" gltype="GLfixed"/>
+
+ <function name="PopMatrix" template="PopMatrix"/>
+ <function name="PushMatrix" template="PushMatrix"/>
+
+ <function name="Rotatef" template="Rotate" gltype="GLfloat"/>
+ <function name="Rotatex" template="Rotate" gltype="GLfixed"/>
+ <function name="Scalef" template="Scale" gltype="GLfloat"/>
+ <function name="Scalex" template="Scale" gltype="GLfixed"/>
+ <function name="Translatef" template="Translate" gltype="GLfloat"/>
+ <function name="Translatex" template="Translate" gltype="GLfixed"/>
+
+ <function name="Viewport" template="Viewport"/>
+ <function name="ColorPointer" template="ColorPointer"/>
+ <function name="DisableClientState" template="DisableClientState"/>
+ <function name="DrawArrays" template="DrawArrays"/>
+ <function name="DrawElements" template="DrawElements"/>
+ <function name="EnableClientState" template="EnableClientState"/>
+
+ <function name="GetPointerv" template="GetPointer"/>
+
+ <function name="Normal3f" template="Normal" gltype="GLfloat" expand_vector="true"/>
+ <function name="Normal3x" template="Normal" gltype="GLfixed" expand_vector="true"/>
+ <function name="NormalPointer" template="NormalPointer"/>
+ <function name="TexCoordPointer" template="TexCoordPointer"/>
+ <function name="VertexPointer" template="VertexPointer"/>
+
+ <function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
+ <function name="PolygonOffsetx" template="PolygonOffset" gltype="GLfixed"/>
+
+ <function name="CopyTexImage2D" template="CopyTexImage2D"/>
+ <function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
+
+ <function name="TexSubImage2D" template="TexSubImage2D"/>
+
+ <function name="BindTexture" template="BindTexture"/>
+ <function name="DeleteTextures" template="DeleteTextures"/>
+ <function name="GenTextures" template="GenTextures"/>
+ <function name="IsTexture" template="IsTexture"/>
+
+ <function name="BlendEquationOES" template="BlendEquation"/>
+ <function name="BlendEquationSeparateOES" template="BlendEquationSeparate"/>
+
+ <function name="MultiTexCoord4x" template="MultiTexCoord" gltype="GLfixed" vector_size="4" expand_vector="true"/>
+
+ <function name="ActiveTexture" template="ActiveTexture"/>
+ <function name="ClientActiveTexture" template="ClientActiveTexture"/>
+
+ <function name="MultiTexCoord4f" template="MultiTexCoord" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+
+ <function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
+ <function name="SampleCoveragex" template="SampleCoverage" gltype="GLclampx"/>
+
+ <!-- CompressedTexImage2D calls out to two different functions based on
+ whether the image is a paletted image or not -->
+ <function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
+ <function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
+
+ <function name="BlendFuncSeparateOES" template="BlendFuncSeparate"/>
+
+ <function name="PointParameterf" template="PointParameter" gltype="GLfloat" expand_vector="true"/>
+ <function name="PointParameterfv" template="PointParameter" gltype="GLfloat"/>
+ <function name="PointParameterx" template="PointParameter" gltype="GLfixed" expand_vector="true"/>
+ <function name="PointParameterxv" template="PointParameter" gltype="GLfixed"/>
+
+ <!-- OES_mapbuffer -->
+ <function name="GetBufferPointervOES" template="GetBufferPointer"/>
+ <function name="MapBufferOES" template="MapBuffer"/>
+ <function name="UnmapBufferOES" template="UnmapBuffer"/>
+
+ <function name="BindBuffer" template="BindBuffer"/>
+ <function name="BufferData" template="BufferData"/>
+ <function name="BufferSubData" template="BufferSubData"/>
+ <function name="DeleteBuffers" template="DeleteBuffers"/>
+ <function name="GenBuffers" template="GenBuffers"/>
+ <function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
+ <function name="IsBuffer" template="IsBuffer"/>
+
+ <!-- OES_framebuffer_object -->
+ <function name="GenerateMipmapOES" template="GenerateMipmap"/>
+ <function name="BindFramebufferOES" template="BindFramebuffer"/>
+ <function name="DeleteFramebuffersOES" template="DeleteFramebuffers"/>
+ <function name="GenFramebuffersOES" template="GenFramebuffers"/>
+ <function name="BindRenderbufferOES" template="BindRenderbuffer"/>
+ <function name="DeleteRenderbuffersOES" template="DeleteRenderbuffers"/>
+ <function name="GenRenderbuffersOES" template="GenRenderbuffers"/>
+ <function name="RenderbufferStorageOES" external="true" template="RenderbufferStorage"/>
+ <function name="FramebufferRenderbufferOES" template="FramebufferRenderbuffer"/>
+ <function name="FramebufferTexture2DOES" template="FramebufferTexture2D"/>
+ <function name="CheckFramebufferStatusOES" template="CheckFramebufferStatus"/>
+ <function name="GetFramebufferAttachmentParameterivOES" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
+ <function name="GetRenderbufferParameterivOES" template="GetRenderbufferParameter" gltype="GLint"/>
+ <function name="IsRenderbufferOES" template="IsRenderbuffer"/>
+ <function name="IsFramebufferOES" template="IsFramebuffer"/>
+
+ <!-- OES_query_matrix -->
+ <!-- QueryMatrixx returns values in an unusual, decomposed, fixed-value
+ form; it has its own code for this -->
+ <function name="QueryMatrixxOES" external="true" template="QueryMatrix" gltype="GLfixed"/>
+
+ <!-- OES_draw_texture -->
+ <function name="DrawTexfOES" template="DrawTex" gltype="GLfloat" expand_vector="true"/>
+ <function name="DrawTexiOES" template="DrawTex" gltype="GLint" expand_vector="true"/>
+ <function name="DrawTexsOES" template="DrawTex" gltype="GLshort" expand_vector="true"/>
+ <function name="DrawTexxOES" template="DrawTex" gltype="GLfixed" expand_vector="true"/>
+ <function name="DrawTexfvOES" template="DrawTex" gltype="GLfloat"/>
+ <function name="DrawTexivOES" template="DrawTex" gltype="GLint"/>
+ <function name="DrawTexsvOES" template="DrawTex" gltype="GLshort"/>
+ <function name="DrawTexxvOES" template="DrawTex" gltype="GLfixed"/>
+
+ <!-- EXT_multi_draw_arrays -->
+ <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
+ <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
+
+ <!-- OES_EGL_image -->
+ <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
+ <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
+</api>
+
+<api name="GLES2.0">
+ <category name="GLES2.0"/>
+
+ <category name="OES_compressed_paletted_texture"/>
+ <category name="OES_depth24"/>
+ <category name="OES_depth32"/>
+ <category name="OES_fbo_render_mipmap"/>
+ <category name="OES_rgb8_rgba8"/>
+ <category name="OES_stencil1"/>
+ <category name="OES_stencil4"/>
+ <category name="OES_element_index_uint"/>
+ <category name="OES_mapbuffer"/>
+ <category name="OES_texture_3D"/>
+ <category name="OES_texture_npot"/>
+ <category name="EXT_texture_filter_anisotropic"/>
+ <category name="EXT_texture_type_2_10_10_10_REV"/>
+ <category name="OES_depth_texture"/>
+ <category name="OES_packed_depth_stencil"/>
+ <category name="OES_standard_derivatives"/>
+
+ <!-- disabled due to missing enums
+ <category name="EXT_texture_compression_dxt1"/>
+ <category name="EXT_blend_minmax"/>
+ -->
+ <category name="EXT_multi_draw_arrays"/>
+ <category name="OES_EGL_image"/>
+
+ <function name="CullFace" template="CullFace"/>
+
+ <function name="FrontFace" template="FrontFace"/>
+ <function name="Hint" template="Hint"/>
+
+ <function name="LineWidth" template="LineWidth" gltype="GLfloat"/>
+
+ <function name="Scissor" template="Scissor"/>
+
+ <function name="TexParameterf" template="TexParameter" gltype="GLfloat" expand_vector="true"/>
+ <function name="TexParameterfv" template="TexParameter" gltype="GLfloat"/>
+ <function name="TexParameteri" template="TexParameter" gltype="GLint" expand_vector="true"/>
+ <function name="TexParameteriv" template="TexParameter" gltype="GLint"/>
+
+ <function name="TexImage2D" template="TexImage2D"/>
+
+ <function name="Clear" template="Clear"/>
+ <function name="ClearColor" template="ClearColor" gltype="GLclampf"/>
+ <function name="ClearStencil" template="ClearStencil"/>
+ <function name="ClearDepthf" template="ClearDepth" gltype="GLclampf"/>
+
+ <function name="StencilMask" template="StencilMask"/>
+ <function name="StencilMaskSeparate" template="StencilMaskSeparate"/>
+ <function name="ColorMask" template="ColorMask"/>
+ <function name="DepthMask" template="DepthMask"/>
+ <function name="Disable" template="Disable"/>
+ <function name="Enable" template="Enable"/>
+ <function name="Finish" template="Finish"/>
+ <function name="Flush" template="Flush"/>
+
+ <function name="BlendFunc" template="BlendFunc"/>
+
+ <function name="StencilFunc" template="StencilFunc"/>
+ <function name="StencilFuncSeparate" template="StencilFuncSeparate"/>
+ <function name="StencilOp" template="StencilOp"/>
+ <function name="StencilOpSeparate" template="StencilOpSeparate"/>
+
+ <function name="DepthFunc" template="DepthFunc"/>
+
+ <function name="PixelStorei" template="PixelStore" gltype="GLint"/>
+ <function name="ReadPixels" template="ReadPixels"/>
+
+ <function name="GetBooleanv" default_prefix="_es2_" template="GetState" gltype="GLboolean"/>
+ <function name="GetError" template="GetError"/>
+ <function name="GetFloatv" default_prefix="_es2_" template="GetState" gltype="GLfloat"/>
+ <function name="GetIntegerv" default_prefix="_es2_" template="GetState" gltype="GLint"/>
+
+ <function name="GetString" template="GetString"/>
+
+ <function name="GetTexParameterfv" template="GetTexParameter" gltype="GLfloat"/>
+ <function name="GetTexParameteriv" template="GetTexParameter" gltype="GLint"/>
+
+ <function name="IsEnabled" template="IsEnabled"/>
+
+ <function name="DepthRangef" template="DepthRange" gltype="GLclampf"/>
+
+ <function name="Viewport" template="Viewport"/>
+
+ <function name="DrawArrays" template="DrawArrays"/>
+ <function name="DrawElements" template="DrawElements"/>
+
+ <function name="PolygonOffset" template="PolygonOffset" gltype="GLfloat"/>
+ <function name="CopyTexImage2D" template="CopyTexImage2D"/>
+ <function name="CopyTexSubImage2D" template="CopyTexSubImage2D"/>
+ <function name="TexSubImage2D" template="TexSubImage2D"/>
+
+ <function name="BindTexture" template="BindTexture"/>
+ <function name="DeleteTextures" template="DeleteTextures"/>
+ <function name="GenTextures" template="GenTextures"/>
+ <function name="IsTexture" template="IsTexture"/>
+
+ <function name="BlendColor" template="BlendColor" gltype="GLclampf"/>
+ <function name="BlendEquation" template="BlendEquation"/>
+ <function name="BlendEquationSeparate" template="BlendEquationSeparate"/>
+
+ <function name="TexImage3DOES" template="TexImage3D"/>
+ <function name="TexSubImage3DOES" template="TexSubImage3D"/>
+ <function name="CopyTexSubImage3DOES" template="CopyTexSubImage3D"/>
+
+ <function name="CompressedTexImage3DOES" template="CompressedTexImage3D"/>
+ <function name="CompressedTexSubImage3DOES" template="CompressedTexSubImage3D"/>
+
+ <function name="ActiveTexture" template="ActiveTexture"/>
+
+ <function name="SampleCoverage" template="SampleCoverage" gltype="GLclampf"/>
+
+ <function name="CompressedTexImage2D" template="CompressedTexImage2D"/>
+ <function name="CompressedTexSubImage2D" template="CompressedTexSubImage2D"/>
+
+ <function name="BlendFuncSeparate" template="BlendFuncSeparate"/>
+
+ <function name="VertexAttrib1f" template="VertexAttrib" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+ <function name="VertexAttrib2f" template="VertexAttrib" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+ <function name="VertexAttrib3f" template="VertexAttrib" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+ <function name="VertexAttrib4f" template="VertexAttrib" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="VertexAttrib1fv" template="VertexAttrib" gltype="GLfloat" vector_size="1"/>
+ <function name="VertexAttrib2fv" template="VertexAttrib" gltype="GLfloat" vector_size="2"/>
+ <function name="VertexAttrib3fv" template="VertexAttrib" gltype="GLfloat" vector_size="3"/>
+ <function name="VertexAttrib4fv" template="VertexAttrib" gltype="GLfloat" vector_size="4"/>
+
+ <function name="VertexAttribPointer" template="VertexAttribPointer"/>
+
+ <function name="EnableVertexAttribArray" template="EnableVertexAttribArray"/>
+ <function name="DisableVertexAttribArray" template="DisableVertexAttribArray"/>
+
+ <function name="IsProgram" template="IsProgram"/>
+ <function name="GetProgramiv" template="GetProgram" gltype="GLint"/>
+
+ <function name="GetVertexAttribfv" template="GetVertexAttrib" gltype="GLfloat"/>
+ <function name="GetVertexAttribiv" template="GetVertexAttrib" gltype="GLint"/>
+ <function name="GetVertexAttribPointerv" template="GetVertexAttribPointer"/>
+
+ <function name="GetBufferPointervOES" template="GetBufferPointer"/>
+ <function name="MapBufferOES" template="MapBuffer"/>
+ <function name="UnmapBufferOES" template="UnmapBuffer"/>
+ <function name="BindBuffer" template="BindBuffer"/>
+ <function name="BufferData" template="BufferData"/>
+ <function name="BufferSubData" template="BufferSubData"/>
+ <function name="DeleteBuffers" template="DeleteBuffers"/>
+ <function name="GenBuffers" template="GenBuffers"/>
+ <function name="GetBufferParameteriv" template="GetBufferParameter" gltype="GLint"/>
+ <function name="IsBuffer" template="IsBuffer"/>
+
+ <function name="CreateShader" template="CreateShader"/>
+ <function name="ShaderSource" template="ShaderSource"/>
+ <function name="CompileShader" template="CompileShader"/>
+ <function name="ReleaseShaderCompiler" template="ReleaseShaderCompiler"/>
+ <function name="DeleteShader" template="DeleteShader"/>
+ <function name="ShaderBinary" template="ShaderBinary"/>
+ <function name="CreateProgram" template="CreateProgram"/>
+ <function name="AttachShader" template="AttachShader"/>
+ <function name="DetachShader" template="DetachShader"/>
+ <function name="LinkProgram" template="LinkProgram"/>
+ <function name="UseProgram" template="UseProgram"/>
+ <function name="DeleteProgram" template="DeleteProgram"/>
+
+ <function name="GetActiveAttrib" template="GetActiveAttrib"/>
+ <function name="GetAttribLocation" template="GetAttribLocation"/>
+ <function name="BindAttribLocation" template="BindAttribLocation"/>
+ <function name="GetUniformLocation" template="GetUniformLocation"/>
+ <function name="GetActiveUniform" template="GetActiveUniform"/>
+
+ <function name="Uniform1f" template="Uniform" gltype="GLfloat" vector_size="1" expand_vector="true"/>
+ <function name="Uniform2f" template="Uniform" gltype="GLfloat" vector_size="2" expand_vector="true"/>
+ <function name="Uniform3f" template="Uniform" gltype="GLfloat" vector_size="3" expand_vector="true"/>
+ <function name="Uniform4f" template="Uniform" gltype="GLfloat" vector_size="4" expand_vector="true"/>
+ <function name="Uniform1i" template="Uniform" gltype="GLint" vector_size="1" expand_vector="true"/>
+ <function name="Uniform2i" template="Uniform" gltype="GLint" vector_size="2" expand_vector="true"/>
+ <function name="Uniform3i" template="Uniform" gltype="GLint" vector_size="3" expand_vector="true"/>
+ <function name="Uniform4i" template="Uniform" gltype="GLint" vector_size="4" expand_vector="true"/>
+
+ <function name="Uniform1fv" template="Uniform" gltype="GLfloat" vector_size="1"/>
+ <function name="Uniform2fv" template="Uniform" gltype="GLfloat" vector_size="2"/>
+ <function name="Uniform3fv" template="Uniform" gltype="GLfloat" vector_size="3"/>
+ <function name="Uniform4fv" template="Uniform" gltype="GLfloat" vector_size="4"/>
+ <function name="Uniform1iv" template="Uniform" gltype="GLint" vector_size="1"/>
+ <function name="Uniform2iv" template="Uniform" gltype="GLint" vector_size="2"/>
+ <function name="Uniform3iv" template="Uniform" gltype="GLint" vector_size="3"/>
+ <function name="Uniform4iv" template="Uniform" gltype="GLint" vector_size="4"/>
+
+ <function name="UniformMatrix2fv" template="UniformMatrix" gltype="GLfloat" vector_size="2"/>
+ <function name="UniformMatrix3fv" template="UniformMatrix" gltype="GLfloat" vector_size="3"/>
+ <function name="UniformMatrix4fv" template="UniformMatrix" gltype="GLfloat" vector_size="4"/>
+
+ <function name="ValidateProgram" template="ValidateProgram"/>
+
+ <function name="GenerateMipmap" template="GenerateMipmap"/>
+ <function name="BindFramebuffer" template="BindFramebuffer"/>
+ <function name="DeleteFramebuffers" template="DeleteFramebuffers"/>
+ <function name="GenFramebuffers" template="GenFramebuffers"/>
+ <function name="BindRenderbuffer" template="BindRenderbuffer"/>
+ <function name="DeleteRenderbuffers" template="DeleteRenderbuffers"/>
+ <function name="GenRenderbuffers" template="GenRenderbuffers"/>
+ <function name="RenderbufferStorage" external="true" template="RenderbufferStorage"/>
+ <function name="FramebufferRenderbuffer" template="FramebufferRenderbuffer"/>
+ <function name="FramebufferTexture2D" template="FramebufferTexture2D"/>
+ <function name="FramebufferTexture3DOES" template="FramebufferTexture3D"/>
+ <function name="CheckFramebufferStatus" template="CheckFramebufferStatus"/>
+ <function name="GetFramebufferAttachmentParameteriv" template="GetFramebufferAttachmentParameter" gltype="GLint"/>
+ <function name="GetRenderbufferParameteriv" template="GetRenderbufferParameter" gltype="GLint"/>
+ <function name="IsRenderbuffer" template="IsRenderbuffer"/>
+ <function name="IsFramebuffer" template="IsFramebuffer"/>
+
+ <function name="IsShader" template="IsShader"/>
+ <function name="GetShaderiv" template="GetShader" gltype="GLint"/>
+ <function name="GetAttachedShaders" template="GetAttachedShaders"/>
+ <function name="GetShaderInfoLog" template="GetShaderInfoLog"/>
+ <function name="GetProgramInfoLog" template="GetProgramInfoLog"/>
+ <function name="GetShaderSource" template="GetShaderSource"/>
+ <function name="GetShaderPrecisionFormat" template="GetShaderPrecisionFormat"/>
+ <function name="GetUniformfv" template="GetUniform" gltype="GLfloat"/>
+ <function name="GetUniformiv" template="GetUniform" gltype="GLint"/>
+
+ <!-- EXT_multi_draw_arrays -->
+ <function name="MultiDrawArraysEXT" template="MultiDrawArrays"/>
+ <function name="MultiDrawElementsEXT" template="MultiDrawElements"/>
+
+ <!-- OES_EGL_image -->
+ <function name="EGLImageTargetTexture2DOES" template="EGLImageTargetTexture2D"/>
+ <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>
+</api>
+
+</apispec>
diff --git a/src/mesa/main/APIspecutil.py b/src/mesa/main/APIspecutil.py
new file mode 100644
index 0000000000..9e604bb84b
--- /dev/null
+++ b/src/mesa/main/APIspecutil.py
@@ -0,0 +1,272 @@
+#!/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.
+"""
+Minimal apiutil.py interface for use by es_generator.py.
+"""
+
+import sys
+import libxml2
+
+import APIspec
+
+__spec = {}
+__functions = {}
+__aliases = {}
+
+def _ParseXML(filename, apiname):
+ conversions = {
+ # from to
+ 'GLfloat': [ 'GLdouble' ],
+ 'GLclampf': [ 'GLclampd' ],
+ 'GLubyte': [ 'GLfloat', 'GLdouble' ],
+ 'GLint': [ 'GLfloat', 'GLdouble' ],
+ 'GLfixed': [ 'GLfloat', 'GLdouble' ],
+ 'GLclampx': [ 'GLclampf', 'GLclampd' ],
+ }
+
+ doc = libxml2.readFile(filename, None,
+ libxml2.XML_PARSE_DTDLOAD +
+ libxml2.XML_PARSE_DTDVALID +
+ libxml2.XML_PARSE_NOBLANKS)
+ spec = APIspec.Spec(doc)
+ impl = spec.get_impl()
+ api = spec.get_api(apiname)
+ doc.freeDoc()
+
+ __spec["impl"] = impl
+ __spec["api"] = api
+
+ for func in api.functions:
+ alias, need_conv = impl.match(func, conversions)
+ if not alias:
+ # external functions are manually dispatched
+ if not func.is_external:
+ print >>sys.stderr, "Error: unable to dispatch %s" % func.name
+ alias = func
+ need_conv = False
+
+ __functions[func.name] = func
+ __aliases[func.name] = (alias, need_conv)
+
+
+def AllSpecials(notused=None):
+ """Return a list of all external functions in the API."""
+ api = __spec["api"]
+
+ specials = []
+ for func in api.functions:
+ if func.is_external:
+ specials.append(func.name)
+
+ return specials
+
+
+def GetAllFunctions(filename, api):
+ """Return sorted list of all functions in the API."""
+ if not __spec:
+ _ParseXML(filename, api)
+
+ api = __spec["api"]
+ names = []
+ for func in api.functions:
+ names.append(func.name)
+ names.sort()
+ return names
+
+
+def ReturnType(funcname):
+ """Return the C return type of named function."""
+ func = __functions[funcname]
+ return func.return_type
+
+
+def Properties(funcname):
+ """Return list of properties of the named GL function."""
+ func = __functions[funcname]
+ return [func.direction]
+
+
+def _ValidValues(func, param):
+ """Return the valid values of a parameter."""
+ valid_values = []
+ switch = func.checker.switches.get(param.name, [])
+ for desc in switch:
+ # no dependent vector
+ if not desc.checker.switches:
+ for val in desc.values:
+ valid_values.append((val, None, None, [], desc.error, None))
+ continue
+
+ items = desc.checker.switches.items()
+ if len(items) > 1:
+ print >>sys.stderr, "%s: more than one parameter depend on %s" % \
+ (func.name, desc.name)
+ dep_name, dep_switch = items[0]
+
+ for dep_desc in dep_switch:
+ if dep_desc.index >= 0 and dep_desc.index != 0:
+ print >>sys.stderr, "%s: not first element of a vector" % func.name
+ if dep_desc.checker.switches:
+ print >>sys.stderr, "%s: deep nested dependence" % func.name
+
+ convert = None if dep_desc.convert else "noconvert"
+ for val in desc.values:
+ valid_values.append((val, dep_desc.size_str, dep_desc.name,
+ dep_desc.values, dep_desc.error, convert))
+ return valid_values
+
+
+def _Conversion(func, src_param):
+ """Return the destination type of the conversion, or None."""
+ alias, need_conv = __aliases[func.name]
+ if need_conv:
+ dst_param = alias.get_param(src_param.name)
+ if src_param.type == dst_param.type:
+ need_conv = False
+ if not need_conv:
+ return (None, "none")
+
+ converts = { True: 0, False: 0 }
+
+ # In Fogx, for example, pname may be GL_FOG_DENSITY/GL_FOG_START/GL_FOG_END
+ # or GL_FOG_MODE. In the former three cases, param is not checked and the
+ # default is to convert.
+ if not func.checker.always_check(src_param.name):
+ converts[True] += 1
+
+ for desc in func.checker.flatten(src_param.name):
+ converts[desc.convert] += 1
+ if converts[True] and converts[False]:
+ break
+
+ # it should be "never", "sometimes", and "always"...
+ if converts[False]:
+ if converts[True]:
+ conversion = "some"
+ else:
+ conversion = "none"
+ else:
+ conversion = "all"
+
+ return (dst_param.base_type(), conversion)
+
+
+def _MaxVecSize(func, param):
+ """Return the largest possible size of a vector."""
+ if not param.is_vector:
+ return 0
+ if param.size:
+ return param.size
+
+ # need to look at all descriptions
+ size = 0
+ for desc in func.checker.flatten(param.name):
+ if desc.size_str and desc.size_str.isdigit():
+ s = int(desc.size_str)
+ if s > size:
+ size = s
+ if not size:
+ need_conv = __aliases[func.name][1]
+ if need_conv:
+ print >>sys.stderr, \
+ "Error: unable to dicide the max size of %s in %s" % \
+ (param.name, func.name)
+ return size
+
+
+def _ParameterTuple(func, param):
+ """Return a parameter tuple.
+
+ [0] -- parameter name
+ [1] -- parameter type
+ [2] -- max vector size or 0
+ [3] -- dest type the parameter converts to, or None
+ [4] -- valid values
+ [5] -- how often does the conversion happen
+
+ """
+ vec_size = _MaxVecSize(func, param)
+ dst_type, conversion = _Conversion(func, param)
+ valid_values = _ValidValues(func, param)
+
+ return (param.name, param.type, vec_size, dst_type, valid_values, conversion)
+
+
+def Parameters(funcname):
+ """Return list of tuples of function parameters."""
+ func = __functions[funcname]
+ params = []
+ for param in func.params:
+ params.append(_ParameterTuple(func, param))
+
+ return params
+
+
+def FunctionPrefix(funcname):
+ """Return function specific prefix."""
+ func = __functions[funcname]
+
+ return func.prefix
+
+
+def FindParamIndex(params, paramname):
+ """Find the index of a named parameter."""
+ for i in xrange(len(params)):
+ if params[i][0] == paramname:
+ return i
+ return None
+
+
+def MakeDeclarationString(params):
+ """Return a C-style parameter declaration string."""
+ string = []
+ for p in params:
+ sep = "" if p[1].endswith("*") else " "
+ string.append("%s%s%s" % (p[1], sep, p[0]))
+ if not string:
+ return "void"
+ return ", ".join(string)
+
+
+def AliasPrefix(funcname):
+ """Return the prefix of the function the named function is an alias of."""
+ alias = __aliases[funcname][0]
+ return alias.prefix
+
+
+def Alias(funcname):
+ """Return the name of the function the named function is an alias of."""
+ alias, need_conv = __aliases[funcname]
+ return alias.name if not need_conv else None
+
+
+def ConversionFunction(funcname):
+ """Return the name of the function the named function converts to."""
+ alias, need_conv = __aliases[funcname]
+ return alias.name if need_conv else None
+
+
+def Categories(funcname):
+ """Return all the categories of the named GL function."""
+ api = __spec["api"]
+ return [api.name]
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 1e1aa41611..f838561aef 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -107,6 +107,44 @@
#endif
#include "main/dispatch.h"
+#ifdef _GLAPI_USE_REMAP_TABLE
+
+#define need_MESA_remap_table
+#include "main/remap.h"
+#include "main/remap_helper.h"
+
+/* This is shared across all APIs but We define this here since
+ * desktop GL has the biggest remap table. */
+int driDispatchRemapTable[driDispatchRemapTable_size];
+
+/**
+ * Map the functions which are already static.
+ *
+ * When a extension function are incorporated into the ABI, the
+ * extension suffix is usually stripped. Mapping such functions
+ * makes sure the alternative names are available.
+ *
+ * Note that functions mapped by _mesa_init_remap_table() are
+ * excluded.
+ */
+void
+_mesa_map_static_functions(void)
+{
+ /* Remap static functions which have alternative names and are in the ABI.
+ * This is to be on the safe side. glapi should have defined those names.
+ */
+ _mesa_map_function_array(MESA_alt_functions);
+}
+
+void
+_mesa_init_remap_table(void)
+{
+ _mesa_do_init_remap_table(_mesa_function_pool,
+ driDispatchRemapTable_size,
+ MESA_remap_table_functions);
+}
+
+#endif /* _GLAPI_USE_REMAP_TABLE */
/**
@@ -119,9 +157,15 @@
* \param ctx GL context to which \c exec belongs.
* \param exec dispatch table.
*/
-void
-_mesa_init_exec_table(struct _glapi_table *exec)
+struct _glapi_table *
+_mesa_create_exec_table(void)
{
+ struct _glapi_table *exec;
+
+ exec = _mesa_alloc_dispatch_table(sizeof *exec);
+ if (exec == NULL)
+ return NULL;
+
#if _HAVE_FULL_GL
_mesa_loopback_init_api_table( exec );
#endif
@@ -777,4 +821,6 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE);
SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE);
#endif
+
+ return exec;
}
diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h
index 4bd715053a..29c953f31b 100644
--- a/src/mesa/main/api_exec.h
+++ b/src/mesa/main/api_exec.h
@@ -29,9 +29,17 @@
struct _glapi_table;
+extern struct _glapi_table *
+_mesa_alloc_dispatch_table(int size);
-extern void
-_mesa_init_exec_table(struct _glapi_table *exec);
+extern struct _glapi_table *
+_mesa_create_exec_table(void);
+
+extern struct _glapi_table *
+_mesa_create_exec_table_es1(void);
+
+extern struct _glapi_table *
+_mesa_create_exec_table_es2(void);
#endif
diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index 30b48e4bd0..84f7665fc0 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -250,7 +250,7 @@
/** For GL_ARB_draw_buffers */
/*@{*/
-#define MAX_DRAW_BUFFERS 4
+#define MAX_DRAW_BUFFERS 8
/*@}*/
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 1707e229c9..4dd448a698 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -129,8 +129,6 @@
#include "version.h"
#include "viewport.h"
#include "vtxfmt.h"
-#include "glapi/glthread.h"
-#include "glapi/glapitable.h"
#include "shader/program.h"
#include "shader/prog_print.h"
#include "shader/shader_api.h"
@@ -396,7 +394,25 @@ one_time_init( GLcontext *ctx )
_mesa_get_cpu_features();
- _mesa_init_remap_table();
+ switch (ctx->API) {
+#if FEATURE_GL
+ case API_OPENGL:
+ _mesa_init_remap_table();
+ break;
+#endif
+#if FEATURE_ES1
+ case API_OPENGLES:
+ _mesa_init_remap_table_es1();
+ break;
+#endif
+#if FEATURE_ES2
+ case API_OPENGLES2:
+ _mesa_init_remap_table_es2();
+ break;
+#endif
+ default:
+ break;
+ }
_mesa_init_sqrt_table();
@@ -636,6 +652,9 @@ check_context_limits(GLcontext *ctx)
assert(ctx->Const.MaxDrawBuffers <= MAX_DRAW_BUFFERS);
+ /* if this fails, add more enum values to gl_buffer_index */
+ assert(BUFFER_COLOR0 + MAX_DRAW_BUFFERS <= BUFFER_COUNT);
+
/* XXX probably add more tests */
}
@@ -749,8 +768,8 @@ generic_nop(void)
/**
* Allocate and initialize a new dispatch table.
*/
-static struct _glapi_table *
-alloc_dispatch_table(void)
+struct _glapi_table *
+_mesa_alloc_dispatch_table(int size)
{
/* Find the larger of Mesa's dispatch table and libGL's dispatch table.
* In practice, this'll be the same for stand-alone Mesa. But for DRI
@@ -758,7 +777,7 @@ alloc_dispatch_table(void)
* DRI drivers.
*/
GLint numEntries = MAX2(_glapi_get_dispatch_table_size(),
- sizeof(struct _glapi_table) / sizeof(_glapi_proc));
+ size / sizeof(_glapi_proc));
struct _glapi_table *table =
(struct _glapi_table *) malloc(numEntries * sizeof(_glapi_proc));
if (table) {
@@ -791,6 +810,7 @@ alloc_dispatch_table(void)
* for debug flags.
*
* \param ctx the context to initialize
+ * \param api the GL API type to create the context for
* \param visual describes the visual attributes for this context
* \param share_list points to context to share textures, display lists,
* etc with, or NULL
@@ -799,27 +819,30 @@ alloc_dispatch_table(void)
* \param driverContext pointer to driver-specific context data
*/
GLboolean
-_mesa_initialize_context(GLcontext *ctx,
- const GLvisual *visual,
- GLcontext *share_list,
- const struct dd_function_table *driverFunctions,
- void *driverContext)
+_mesa_initialize_context_for_api(GLcontext *ctx,
+ gl_api api,
+ const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext)
{
struct gl_shared_state *shared;
+ int i;
/*ASSERT(driverContext);*/
assert(driverFunctions->NewTextureObject);
assert(driverFunctions->FreeTexImageData);
- /* misc one-time initializations */
- one_time_init(ctx);
-
+ ctx->API = api;
ctx->Visual = *visual;
ctx->DrawBuffer = NULL;
ctx->ReadBuffer = NULL;
ctx->WinSysDrawBuffer = NULL;
ctx->WinSysReadBuffer = NULL;
+ /* misc one-time initializations */
+ one_time_init(ctx);
+
/* Plug in driver functions and context pointer here.
* This is important because when we call alloc_shared_state() below
* we'll call ctx->Driver.NewTextureObject() to create the default
@@ -849,30 +872,36 @@ _mesa_initialize_context(GLcontext *ctx,
return GL_FALSE;
}
+#if FEATURE_dispatch
/* setup the API dispatch tables */
- ctx->Exec = alloc_dispatch_table();
- ctx->Save = alloc_dispatch_table();
- if (!ctx->Exec || !ctx->Save) {
+ switch (ctx->API) {
+#if FEATURE_GL
+ case API_OPENGL:
+ ctx->Exec = _mesa_create_exec_table();
+ break;
+#endif
+#if FEATURE_ES1
+ case API_OPENGLES:
+ ctx->Exec = _mesa_create_exec_table_es1();
+ break;
+#endif
+#if FEATURE_ES2
+ case API_OPENGLES2:
+ ctx->Exec = _mesa_create_exec_table_es2();
+ break;
+#endif
+ default:
+ _mesa_problem(ctx, "unknown or unsupported API");
+ break;
+ }
+
+ if (!ctx->Exec) {
_mesa_release_shared_state(ctx, ctx->Shared);
- if (ctx->Exec)
- free(ctx->Exec);
return GL_FALSE;
}
-#if FEATURE_dispatch
- _mesa_init_exec_table(ctx->Exec);
#endif
ctx->CurrentDispatch = ctx->Exec;
-#if FEATURE_dlist
- _mesa_init_save_table(ctx->Save);
- _mesa_install_save_vtxfmt( ctx, &ctx->ListState.ListVtxfmt );
-#endif
-
- /* Neutral tnl module stuff */
- _mesa_init_exec_vtxfmt( ctx );
- ctx->TnlModule.Current = NULL;
- ctx->TnlModule.SwapCount = 0;
-
ctx->FragmentProgram._MaintainTexEnvProgram
= (_mesa_getenv("MESA_TEX_PROG") != NULL);
@@ -883,15 +912,65 @@ _mesa_initialize_context(GLcontext *ctx,
ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
}
-#if FEATURE_extra_context_init
- _mesa_initialize_context_extra(ctx);
+ switch (ctx->API) {
+ case API_OPENGL:
+ /* Neutral tnl module stuff */
+ _mesa_init_exec_vtxfmt( ctx );
+ ctx->TnlModule.Current = NULL;
+ ctx->TnlModule.SwapCount = 0;
+
+#if FEATURE_dlist
+ ctx->Save = _mesa_create_save_table();
+ if (!ctx->Save) {
+ _mesa_release_shared_state(ctx, ctx->Shared);
+ free(ctx->Exec);
+ return GL_FALSE;
+ }
+
+ _mesa_install_save_vtxfmt( ctx, &ctx->ListState.ListVtxfmt );
#endif
+ break;
+ case API_OPENGLES:
+ /**
+ * GL_OES_texture_cube_map says
+ * "Initially all texture generation modes are set to REFLECTION_MAP_OES"
+ */
+ for (i = 0; i < MAX_TEXTURE_UNITS; i++) {
+ struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i];
+ texUnit->GenS.Mode = GL_REFLECTION_MAP_NV;
+ texUnit->GenT.Mode = GL_REFLECTION_MAP_NV;
+ texUnit->GenR.Mode = GL_REFLECTION_MAP_NV;
+ texUnit->GenS._ModeBit = TEXGEN_REFLECTION_MAP_NV;
+ texUnit->GenT._ModeBit = TEXGEN_REFLECTION_MAP_NV;
+ texUnit->GenR._ModeBit = TEXGEN_REFLECTION_MAP_NV;
+ }
+ break;
+ case API_OPENGLES2:
+ ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
+ ctx->VertexProgram._MaintainTnlProgram = GL_TRUE;
+ ctx->Point.PointSprite = GL_TRUE; /* always on for ES 2.x */
+ break;
+ }
ctx->FirstTimeCurrent = GL_TRUE;
return GL_TRUE;
}
+GLboolean
+_mesa_initialize_context(GLcontext *ctx,
+ const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext)
+{
+ return _mesa_initialize_context_for_api(ctx,
+ API_OPENGL,
+ visual,
+ share_list,
+ driverFunctions,
+ driverContext);
+}
/**
* Allocate and initialize a GLcontext structure.
@@ -899,6 +978,7 @@ _mesa_initialize_context(GLcontext *ctx,
* we need to at least call driverFunctions->NewTextureObject to initialize
* the rendering context.
*
+ * \param api the GL API type to create the context for
* \param visual a GLvisual pointer (we copy the struct contents)
* \param share_list another context to share display lists with or NULL
* \param driverFunctions points to the dd_function_table into which the
@@ -908,10 +988,11 @@ _mesa_initialize_context(GLcontext *ctx,
* \return pointer to a new __GLcontextRec or NULL if error.
*/
GLcontext *
-_mesa_create_context(const GLvisual *visual,
- GLcontext *share_list,
- const struct dd_function_table *driverFunctions,
- void *driverContext)
+_mesa_create_context_for_api(gl_api api,
+ const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext)
{
GLcontext *ctx;
@@ -922,8 +1003,8 @@ _mesa_create_context(const GLvisual *visual,
if (!ctx)
return NULL;
- if (_mesa_initialize_context(ctx, visual, share_list,
- driverFunctions, driverContext)) {
+ if (_mesa_initialize_context_for_api(ctx, api, visual, share_list,
+ driverFunctions, driverContext)) {
return ctx;
}
else {
@@ -932,6 +1013,17 @@ _mesa_create_context(const GLvisual *visual,
}
}
+GLcontext *
+_mesa_create_context(const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext)
+{
+ return _mesa_create_context_for_api(API_OPENGL, visual,
+ share_list,
+ driverFunctions,
+ driverContext);
+}
/**
* Free the data associated with the given context.
diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 09bf1777da..c9f4d433a5 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -112,8 +112,20 @@ _mesa_initialize_context( GLcontext *ctx,
const struct dd_function_table *driverFunctions,
void *driverContext );
-extern void
-_mesa_initialize_context_extra(GLcontext *ctx);
+extern GLcontext *
+_mesa_create_context_for_api(gl_api api,
+ const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext);
+
+extern GLboolean
+_mesa_initialize_context_for_api(GLcontext *ctx,
+ gl_api api,
+ const GLvisual *visual,
+ GLcontext *share_list,
+ const struct dd_function_table *driverFunctions,
+ void *driverContext);
extern void
_mesa_free_context_data( GLcontext *ctx );
diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c
index 9bcfc1008a..526145aecc 100644
--- a/src/mesa/main/debug.c
+++ b/src/mesa/main/debug.c
@@ -315,7 +315,7 @@ write_texture_image(struct gl_texture_object *texObj,
buffer, texObj, img);
/* make filename */
- sprintf(s, "/tmp/tex%u.l%u.f%u.ppm", texObj->Name, level, face);
+ _mesa_snprintf(s, sizeof(s), "/tmp/tex%u.l%u.f%u.ppm", texObj->Name, level, face);
printf(" Writing image level %u to %s\n", level, s);
write_ppm(s, buffer, img->Width, img->Height, 4, 0, 1, 2, GL_FALSE);
@@ -357,7 +357,7 @@ write_renderbuffer_image(const struct gl_renderbuffer *rb)
format, type, &ctx->DefaultPacking, buffer);
/* make filename */
- sprintf(s, "/tmp/renderbuffer%u.ppm", rb->Name);
+ _mesa_snprintf(s, sizeof(s), "/tmp/renderbuffer%u.ppm", rb->Name);
printf(" Writing renderbuffer image to %s\n", s);
write_ppm(s, buffer, rb->Width, rb->Height, 4, 0, 1, 2, GL_TRUE);
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index f869a585d6..0c162f081a 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -32,6 +32,7 @@
#include "glheader.h"
#include "imports.h"
#include "api_arrayelt.h"
+#include "api_exec.h"
#include "api_loopback.h"
#include "config.h"
#include "mfeatures.h"
@@ -7725,7 +7726,7 @@ execute_list(GLcontext *ctx, GLuint list)
default:
{
char msg[1000];
- sprintf(msg, "Error in execute_list: opcode=%d",
+ _mesa_snprintf(msg, sizeof(msg), "Error in execute_list: opcode=%d",
(int) opcode);
_mesa_problem(ctx, msg);
}
@@ -8747,9 +8748,15 @@ exec_MultiModeDrawElementsIBM(const GLenum * mode,
* initialized from _mesa_init_api_defaults and from the active vtxfmt
* struct.
*/
-void
-_mesa_init_save_table(struct _glapi_table *table)
+struct _glapi_table *
+_mesa_create_save_table(void)
{
+ struct _glapi_table *table;
+
+ table = _mesa_alloc_dispatch_table(sizeof *table);
+ if (table == NULL)
+ return NULL;
+
_mesa_loopback_init_api_table(table);
/* GL 1.0 */
@@ -9349,6 +9356,8 @@ _mesa_init_save_table(struct _glapi_table *table)
(void) save_ClearBufferfv;
(void) save_ClearBufferfi;
#endif
+
+ return table;
}
diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h
index f37a93a7f4..f8255facc5 100644
--- a/src/mesa/main/dlist.h
+++ b/src/mesa/main/dlist.h
@@ -72,7 +72,7 @@ extern void _mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist);
extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt );
-extern void _mesa_init_save_table( struct _glapi_table *table );
+extern struct _glapi_table *_mesa_create_save_table(void);
extern void _mesa_install_dlist_vtxfmt(struct _glapi_table *disp,
const GLvertexformat *vfmt);
diff --git a/src/mesa/main/drawtex.c b/src/mesa/main/drawtex.c
new file mode 100644
index 0000000000..86d5b555e0
--- /dev/null
+++ b/src/mesa/main/drawtex.c
@@ -0,0 +1,133 @@
+/*
+ * 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
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+#include "main/drawtex.h"
+#include "main/state.h"
+#include "main/imports.h"
+
+#include "main/dispatch.h"
+
+
+#if FEATURE_OES_draw_texture
+
+
+static void
+draw_texture(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
+ GLfloat width, GLfloat height)
+{
+ if (!ctx->Extensions.OES_draw_texture) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glDrawTex(unsupported)");
+ return;
+ }
+ if (width <= 0.0f || height <= 0.0f) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glDrawTex(width or height <= 0)");
+ return;
+ }
+
+ if (ctx->NewState)
+ _mesa_update_state(ctx);
+
+ ASSERT(ctx->Driver.DrawTex);
+ ctx->Driver.DrawTex(ctx, x, y, z, width, height);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, x, y, z, width, height);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexfv(const GLfloat *coords)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, coords[0], coords[1], coords[2], coords[3], coords[4]);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, (GLfloat) x, (GLfloat) y, (GLfloat) z,
+ (GLfloat) width, (GLfloat) height);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexiv(const GLint *coords)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, (GLfloat) coords[0], (GLfloat) coords[1],
+ (GLfloat) coords[2], (GLfloat) coords[3], (GLfloat) coords[4]);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexs(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, (GLfloat) x, (GLfloat) y, (GLfloat) z,
+ (GLfloat) width, (GLfloat) height);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexsv(const GLshort *coords)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx, (GLfloat) coords[0], (GLfloat) coords[1],
+ (GLfloat) coords[2], (GLfloat) coords[3], (GLfloat) coords[4]);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexx(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx,
+ (GLfloat) x / 65536.0f,
+ (GLfloat) y / 65536.0f,
+ (GLfloat) z / 65536.0f,
+ (GLfloat) width / 65536.0f,
+ (GLfloat) height / 65536.0f);
+}
+
+
+void GLAPIENTRY
+_mesa_DrawTexxv(const GLfixed *coords)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ draw_texture(ctx,
+ (GLfloat) coords[0] / 65536.0f,
+ (GLfloat) coords[1] / 65536.0f,
+ (GLfloat) coords[2] / 65536.0f,
+ (GLfloat) coords[3] / 65536.0f,
+ (GLfloat) coords[4] / 65536.0f);
+}
+
+#endif /* FEATURE_OES_draw_texture */
diff --git a/src/mesa/main/drawtex.h b/src/mesa/main/drawtex.h
new file mode 100644
index 0000000000..95f4ac86f0
--- /dev/null
+++ b/src/mesa/main/drawtex.h
@@ -0,0 +1,69 @@
+/*
+ * 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
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+#ifndef DRAWTEX_H
+#define DRAWTEX_H
+
+
+#include "main/mtypes.h"
+
+
+#if FEATURE_OES_draw_texture
+
+#define _MESA_INIT_DRAWTEX_FUNCTIONS(driver, impl) \
+ do { \
+ (driver)->DrawTex = impl ## DrawTex; \
+ } while (0)
+
+extern void GLAPIENTRY
+_mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+
+extern void GLAPIENTRY
+_mesa_DrawTexfv(const GLfloat *coords);
+
+extern void GLAPIENTRY
+_mesa_DrawTexi(GLint x, GLint y, GLint z, GLint width, GLint height);
+
+extern void GLAPIENTRY
+_mesa_DrawTexiv(const GLint *coords);
+
+extern void GLAPIENTRY
+_mesa_DrawTexs(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+
+extern void GLAPIENTRY
+_mesa_DrawTexsv(const GLshort *coords);
+
+extern void GLAPIENTRY
+_mesa_DrawTexx(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+
+extern void GLAPIENTRY
+_mesa_DrawTexxv(const GLfixed *coords);
+
+#else /* FEATURE_OES_draw_texture */
+
+#define _MESA_INIT_DRAWTEX_FUNCTIONS(driver, impl) do { } while (0)
+
+#endif /* FEATURE_OES_draw_texture */
+
+
+#endif /* DRAWTEX_H */
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 72787226dc..db30123c0f 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -682,6 +682,25 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
}
break;
+#if FEATURE_ES1
+ case GL_TEXTURE_GEN_STR_OES:
+ /* disable S, T, and R at the same time */
+ {
+ struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
+ if (texUnit) {
+ GLuint newenabled =
+ texUnit->TexGenEnabled & ~STR_BITS;
+ if (state)
+ newenabled |= STR_BITS;
+ if (texUnit->TexGenEnabled == newenabled)
+ return;
+ FLUSH_VERTICES(ctx, _NEW_TEXTURE);
+ texUnit->TexGenEnabled = newenabled;
+ }
+ }
+ break;
+#endif
+
/*
* CLIENT STATE!!!
*/
@@ -1301,6 +1320,15 @@ _mesa_IsEnabled( GLenum cap )
}
}
return GL_FALSE;
+#if FEATURE_ES1
+ case GL_TEXTURE_GEN_STR_OES:
+ {
+ const struct gl_texture_unit *texUnit = get_texcoord_unit(ctx);
+ if (texUnit) {
+ return (texUnit->TexGenEnabled & STR_BITS) == STR_BITS ? GL_TRUE : GL_FALSE;
+ }
+ }
+#endif
/*
* CLIENT STATE!!!
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 45f6a64356..13705b9f67 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -109,6 +109,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_BACK_RIGHT\0"
"GL_BGR\0"
"GL_BGRA\0"
+ "GL_BGRA_EXT\0"
"GL_BITMAP\0"
"GL_BITMAP_TOKEN\0"
"GL_BLEND\0"
@@ -116,16 +117,23 @@ LONGSTRING static const char enum_string_table[] =
"GL_BLEND_COLOR_EXT\0"
"GL_BLEND_DST\0"
"GL_BLEND_DST_ALPHA\0"
+ "GL_BLEND_DST_ALPHA_OES\0"
"GL_BLEND_DST_RGB\0"
+ "GL_BLEND_DST_RGB_OES\0"
"GL_BLEND_EQUATION\0"
"GL_BLEND_EQUATION_ALPHA\0"
"GL_BLEND_EQUATION_ALPHA_EXT\0"
+ "GL_BLEND_EQUATION_ALPHA_OES\0"
"GL_BLEND_EQUATION_EXT\0"
+ "GL_BLEND_EQUATION_OES\0"
"GL_BLEND_EQUATION_RGB\0"
"GL_BLEND_EQUATION_RGB_EXT\0"
+ "GL_BLEND_EQUATION_RGB_OES\0"
"GL_BLEND_SRC\0"
"GL_BLEND_SRC_ALPHA\0"
+ "GL_BLEND_SRC_ALPHA_OES\0"
"GL_BLEND_SRC_RGB\0"
+ "GL_BLEND_SRC_RGB_OES\0"
"GL_BLUE\0"
"GL_BLUE_BIAS\0"
"GL_BLUE_BITS\0"
@@ -140,11 +148,14 @@ LONGSTRING static const char enum_string_table[] =
"GL_BOOL_VEC4_ARB\0"
"GL_BUFFER_ACCESS\0"
"GL_BUFFER_ACCESS_ARB\0"
+ "GL_BUFFER_ACCESS_OES\0"
"GL_BUFFER_FLUSHING_UNMAP_APPLE\0"
"GL_BUFFER_MAPPED\0"
"GL_BUFFER_MAPPED_ARB\0"
+ "GL_BUFFER_MAPPED_OES\0"
"GL_BUFFER_MAP_POINTER\0"
"GL_BUFFER_MAP_POINTER_ARB\0"
+ "GL_BUFFER_MAP_POINTER_OES\0"
"GL_BUFFER_OBJECT_APPLE\0"
"GL_BUFFER_SERIALIZED_MODIFY_APPLE\0"
"GL_BUFFER_SIZE\0"
@@ -194,6 +205,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_COLOR_ARRAY_TYPE\0"
"GL_COLOR_ATTACHMENT0\0"
"GL_COLOR_ATTACHMENT0_EXT\0"
+ "GL_COLOR_ATTACHMENT0_OES\0"
"GL_COLOR_ATTACHMENT1\0"
"GL_COLOR_ATTACHMENT10\0"
"GL_COLOR_ATTACHMENT10_EXT\0"
@@ -336,6 +348,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_COORD_REPLACE\0"
"GL_COORD_REPLACE_ARB\0"
"GL_COORD_REPLACE_NV\0"
+ "GL_COORD_REPLACE_OES\0"
"GL_COPY\0"
"GL_COPY_INVERTED\0"
"GL_COPY_PIXEL_TOKEN\0"
@@ -359,6 +372,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_CURRENT_MATRIX_STACK_DEPTH_NV\0"
"GL_CURRENT_NORMAL\0"
"GL_CURRENT_PALETTE_MATRIX_ARB\0"
+ "GL_CURRENT_PALETTE_MATRIX_OES\0"
"GL_CURRENT_PROGRAM\0"
"GL_CURRENT_QUERY\0"
"GL_CURRENT_QUERY_ARB\0"
@@ -386,8 +400,10 @@ LONGSTRING static const char enum_string_table[] =
"GL_DEPTH\0"
"GL_DEPTH24_STENCIL8\0"
"GL_DEPTH24_STENCIL8_EXT\0"
+ "GL_DEPTH24_STENCIL8_OES\0"
"GL_DEPTH_ATTACHMENT\0"
"GL_DEPTH_ATTACHMENT_EXT\0"
+ "GL_DEPTH_ATTACHMENT_OES\0"
"GL_DEPTH_BIAS\0"
"GL_DEPTH_BITS\0"
"GL_DEPTH_BOUNDS_EXT\0"
@@ -399,12 +415,15 @@ LONGSTRING static const char enum_string_table[] =
"GL_DEPTH_COMPONENT\0"
"GL_DEPTH_COMPONENT16\0"
"GL_DEPTH_COMPONENT16_ARB\0"
+ "GL_DEPTH_COMPONENT16_OES\0"
"GL_DEPTH_COMPONENT16_SGIX\0"
"GL_DEPTH_COMPONENT24\0"
"GL_DEPTH_COMPONENT24_ARB\0"
+ "GL_DEPTH_COMPONENT24_OES\0"
"GL_DEPTH_COMPONENT24_SGIX\0"
"GL_DEPTH_COMPONENT32\0"
"GL_DEPTH_COMPONENT32_ARB\0"
+ "GL_DEPTH_COMPONENT32_OES\0"
"GL_DEPTH_COMPONENT32_SGIX\0"
"GL_DEPTH_FUNC\0"
"GL_DEPTH_RANGE\0"
@@ -413,6 +432,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_DEPTH_STENCIL_ATTACHMENT\0"
"GL_DEPTH_STENCIL_EXT\0"
"GL_DEPTH_STENCIL_NV\0"
+ "GL_DEPTH_STENCIL_OES\0"
"GL_DEPTH_STENCIL_TO_BGRA_NV\0"
"GL_DEPTH_STENCIL_TO_RGBA_NV\0"
"GL_DEPTH_TEST\0"
@@ -525,6 +545,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_FILL\0"
"GL_FIRST_VERTEX_CONVENTION\0"
"GL_FIRST_VERTEX_CONVENTION_EXT\0"
+ "GL_FIXED\0"
+ "GL_FIXED_OES\0"
"GL_FLAT\0"
"GL_FLOAT\0"
"GL_FLOAT_MAT2\0"
@@ -577,6 +599,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRAGMENT_SHADER\0"
"GL_FRAGMENT_SHADER_ARB\0"
"GL_FRAGMENT_SHADER_DERIVATIVE_HINT\0"
+ "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES\0"
"GL_FRAMEBUFFER\0"
"GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE\0"
"GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE\0"
@@ -586,40 +609,56 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\0"
"GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES\0"
"GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE\0"
"GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\0"
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT\0"
+ "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES\0"
"GL_FRAMEBUFFER_BINDING\0"
"GL_FRAMEBUFFER_BINDING_EXT\0"
+ "GL_FRAMEBUFFER_BINDING_OES\0"
"GL_FRAMEBUFFER_COMPLETE\0"
"GL_FRAMEBUFFER_COMPLETE_EXT\0"
+ "GL_FRAMEBUFFER_COMPLETE_OES\0"
"GL_FRAMEBUFFER_DEFAULT\0"
"GL_FRAMEBUFFER_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT\0"
"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS\0"
"GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES\0"
"GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER\0"
"GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES\0"
"GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES\0"
"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\0"
"GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES\0"
"GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE\0"
"GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT\0"
"GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER\0"
"GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT\0"
+ "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES\0"
+ "GL_FRAMEBUFFER_OES\0"
"GL_FRAMEBUFFER_STATUS_ERROR_EXT\0"
"GL_FRAMEBUFFER_UNDEFINED\0"
"GL_FRAMEBUFFER_UNSUPPORTED\0"
"GL_FRAMEBUFFER_UNSUPPORTED_EXT\0"
+ "GL_FRAMEBUFFER_UNSUPPORTED_OES\0"
"GL_FRONT\0"
"GL_FRONT_AND_BACK\0"
"GL_FRONT_FACE\0"
@@ -627,10 +666,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_FRONT_RIGHT\0"
"GL_FUNC_ADD\0"
"GL_FUNC_ADD_EXT\0"
+ "GL_FUNC_ADD_OES\0"
"GL_FUNC_REVERSE_SUBTRACT\0"
"GL_FUNC_REVERSE_SUBTRACT_EXT\0"
+ "GL_FUNC_REVERSE_SUBTRACT_OES\0"
"GL_FUNC_SUBTRACT\0"
"GL_FUNC_SUBTRACT_EXT\0"
+ "GL_FUNC_SUBTRACT_OES\0"
"GL_GENERATE_MIPMAP\0"
"GL_GENERATE_MIPMAP_HINT\0"
"GL_GENERATE_MIPMAP_HINT_SGIS\0"
@@ -642,6 +684,9 @@ LONGSTRING static const char enum_string_table[] =
"GL_GREEN_BITS\0"
"GL_GREEN_SCALE\0"
"GL_HALF_FLOAT\0"
+ "GL_HALF_FLOAT_OES\0"
+ "GL_HIGH_FLOAT\0"
+ "GL_HIGH_INT\0"
"GL_HINT_BIT\0"
"GL_HISTOGRAM\0"
"GL_HISTOGRAM_ALPHA_SIZE\0"
@@ -663,7 +708,9 @@ LONGSTRING static const char enum_string_table[] =
"GL_HISTOGRAM_WIDTH_EXT\0"
"GL_IDENTITY_NV\0"
"GL_IGNORE_BORDER_HP\0"
+ "GL_IMPLEMENTATION_COLOR_READ_FORMAT\0"
"GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES\0"
+ "GL_IMPLEMENTATION_COLOR_READ_TYPE\0"
"GL_IMPLEMENTATION_COLOR_READ_TYPE_OES\0"
"GL_INCR\0"
"GL_INCR_WRAP\0"
@@ -698,6 +745,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_INTERPOLATE\0"
"GL_INTERPOLATE_ARB\0"
"GL_INTERPOLATE_EXT\0"
+ "GL_INT_10_10_10_2_OES\0"
"GL_INT_VEC2\0"
"GL_INT_VEC2_ARB\0"
"GL_INT_VEC3\0"
@@ -707,6 +755,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_INVALID_ENUM\0"
"GL_INVALID_FRAMEBUFFER_OPERATION\0"
"GL_INVALID_FRAMEBUFFER_OPERATION_EXT\0"
+ "GL_INVALID_FRAMEBUFFER_OPERATION_OES\0"
"GL_INVALID_OPERATION\0"
"GL_INVALID_VALUE\0"
"GL_INVERSE_NV\0"
@@ -763,6 +812,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_LOGIC_OP\0"
"GL_LOGIC_OP_MODE\0"
"GL_LOWER_LEFT\0"
+ "GL_LOW_FLOAT\0"
+ "GL_LOW_INT\0"
"GL_LUMINANCE\0"
"GL_LUMINANCE12\0"
"GL_LUMINANCE12_ALPHA12\0"
@@ -888,14 +939,22 @@ LONGSTRING static const char enum_string_table[] =
"GL_MATRIX8_ARB\0"
"GL_MATRIX9_ARB\0"
"GL_MATRIX_INDEX_ARRAY_ARB\0"
+ "GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES\0"
+ "GL_MATRIX_INDEX_ARRAY_OES\0"
"GL_MATRIX_INDEX_ARRAY_POINTER_ARB\0"
+ "GL_MATRIX_INDEX_ARRAY_POINTER_OES\0"
"GL_MATRIX_INDEX_ARRAY_SIZE_ARB\0"
+ "GL_MATRIX_INDEX_ARRAY_SIZE_OES\0"
"GL_MATRIX_INDEX_ARRAY_STRIDE_ARB\0"
+ "GL_MATRIX_INDEX_ARRAY_STRIDE_OES\0"
"GL_MATRIX_INDEX_ARRAY_TYPE_ARB\0"
+ "GL_MATRIX_INDEX_ARRAY_TYPE_OES\0"
"GL_MATRIX_MODE\0"
"GL_MATRIX_PALETTE_ARB\0"
+ "GL_MATRIX_PALETTE_OES\0"
"GL_MAX\0"
"GL_MAX_3D_TEXTURE_SIZE\0"
+ "GL_MAX_3D_TEXTURE_SIZE_OES\0"
"GL_MAX_ARRAY_TEXTURE_LAYERS_EXT\0"
"GL_MAX_ATTRIB_STACK_DEPTH\0"
"GL_MAX_CLIENT_ATTRIB_STACK_DEPTH\0"
@@ -914,6 +973,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_CONVOLUTION_WIDTH_EXT\0"
"GL_MAX_CUBE_MAP_TEXTURE_SIZE\0"
"GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB\0"
+ "GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES\0"
"GL_MAX_DRAW_BUFFERS\0"
"GL_MAX_DRAW_BUFFERS_ARB\0"
"GL_MAX_DRAW_BUFFERS_ATI\0"
@@ -923,12 +983,14 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_EXT\0"
"GL_MAX_FRAGMENT_UNIFORM_COMPONENTS\0"
"GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB\0"
+ "GL_MAX_FRAGMENT_UNIFORM_VECTORS\0"
"GL_MAX_LIGHTS\0"
"GL_MAX_LIST_NESTING\0"
"GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB\0"
"GL_MAX_MODELVIEW_STACK_DEPTH\0"
"GL_MAX_NAME_STACK_DEPTH\0"
"GL_MAX_PALETTE_MATRICES_ARB\0"
+ "GL_MAX_PALETTE_MATRICES_OES\0"
"GL_MAX_PIXEL_MAP_TABLE\0"
"GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB\0"
"GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB\0"
@@ -960,6 +1022,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_RECTANGLE_TEXTURE_SIZE_NV\0"
"GL_MAX_RENDERBUFFER_SIZE\0"
"GL_MAX_RENDERBUFFER_SIZE_EXT\0"
+ "GL_MAX_RENDERBUFFER_SIZE_OES\0"
"GL_MAX_SAMPLES\0"
"GL_MAX_SAMPLES_EXT\0"
"GL_MAX_SERVER_WAIT_TIMEOUT\0"
@@ -970,6 +1033,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_TEXTURE_IMAGE_UNITS\0"
"GL_MAX_TEXTURE_IMAGE_UNITS_ARB\0"
"GL_MAX_TEXTURE_LOD_BIAS\0"
+ "GL_MAX_TEXTURE_LOD_BIAS_EXT\0"
"GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT\0"
"GL_MAX_TEXTURE_SIZE\0"
"GL_MAX_TEXTURE_STACK_DEPTH\0"
@@ -982,14 +1046,19 @@ LONGSTRING static const char enum_string_table[] =
"GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT\0"
"GL_MAX_VARYING_FLOATS\0"
"GL_MAX_VARYING_FLOATS_ARB\0"
+ "GL_MAX_VARYING_VECTORS\0"
"GL_MAX_VERTEX_ATTRIBS\0"
"GL_MAX_VERTEX_ATTRIBS_ARB\0"
"GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS\0"
"GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB\0"
"GL_MAX_VERTEX_UNIFORM_COMPONENTS\0"
"GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB\0"
+ "GL_MAX_VERTEX_UNIFORM_VECTORS\0"
"GL_MAX_VERTEX_UNITS_ARB\0"
+ "GL_MAX_VERTEX_UNITS_OES\0"
"GL_MAX_VIEWPORT_DIMS\0"
+ "GL_MEDIUM_FLOAT\0"
+ "GL_MEDIUM_INT\0"
"GL_MIN\0"
"GL_MINMAX\0"
"GL_MINMAX_EXT\0"
@@ -1040,6 +1109,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_MODELVIEW8_ARB\0"
"GL_MODELVIEW9_ARB\0"
"GL_MODELVIEW_MATRIX\0"
+ "GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES\0"
"GL_MODELVIEW_PROJECTION_NV\0"
"GL_MODELVIEW_STACK_DEPTH\0"
"GL_MODULATE\0"
@@ -1065,6 +1135,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_NEVER\0"
"GL_NICEST\0"
"GL_NONE\0"
+ "GL_NONE_OES\0"
"GL_NOOP\0"
"GL_NOR\0"
"GL_NORMALIZE\0"
@@ -1077,10 +1148,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_NORMAL_MAP\0"
"GL_NORMAL_MAP_ARB\0"
"GL_NORMAL_MAP_NV\0"
+ "GL_NORMAL_MAP_OES\0"
"GL_NOTEQUAL\0"
"GL_NO_ERROR\0"
"GL_NUM_COMPRESSED_TEXTURE_FORMATS\0"
"GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB\0"
+ "GL_NUM_PROGRAM_BINARY_FORMATS_OES\0"
+ "GL_NUM_SHADER_BINARY_FORMATS\0"
"GL_OBJECT_ACTIVE_ATTRIBUTES_ARB\0"
"GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB\0"
"GL_OBJECT_ACTIVE_UNIFORMS_ARB\0"
@@ -1195,6 +1269,11 @@ LONGSTRING static const char enum_string_table[] =
"GL_POINT_FADE_THRESHOLD_SIZE_EXT\0"
"GL_POINT_FADE_THRESHOLD_SIZE_SGIS\0"
"GL_POINT_SIZE\0"
+ "GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES\0"
+ "GL_POINT_SIZE_ARRAY_OES\0"
+ "GL_POINT_SIZE_ARRAY_POINTER_OES\0"
+ "GL_POINT_SIZE_ARRAY_STRIDE_OES\0"
+ "GL_POINT_SIZE_ARRAY_TYPE_OES\0"
"GL_POINT_SIZE_GRANULARITY\0"
"GL_POINT_SIZE_MAX\0"
"GL_POINT_SIZE_MAX_ARB\0"
@@ -1211,6 +1290,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_POINT_SPRITE_ARB\0"
"GL_POINT_SPRITE_COORD_ORIGIN\0"
"GL_POINT_SPRITE_NV\0"
+ "GL_POINT_SPRITE_OES\0"
"GL_POINT_SPRITE_R_MODE_NV\0"
"GL_POINT_TOKEN\0"
"GL_POLYGON\0"
@@ -1276,6 +1356,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_PROGRAM_ADDRESS_REGISTERS_ARB\0"
"GL_PROGRAM_ALU_INSTRUCTIONS_ARB\0"
"GL_PROGRAM_ATTRIBS_ARB\0"
+ "GL_PROGRAM_BINARY_FORMATS_OES\0"
+ "GL_PROGRAM_BINARY_LENGTH_OES\0"
"GL_PROGRAM_BINDING_ARB\0"
"GL_PROGRAM_ERROR_POSITION_ARB\0"
"GL_PROGRAM_ERROR_POSITION_NV\0"
@@ -1306,6 +1388,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB\0"
"GL_PROJECTION\0"
"GL_PROJECTION_MATRIX\0"
+ "GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES\0"
"GL_PROJECTION_STACK_DEPTH\0"
"GL_PROVOKING_VERTEX\0"
"GL_PROVOKING_VERTEX_EXT\0"
@@ -1366,26 +1449,38 @@ LONGSTRING static const char enum_string_table[] =
"GL_REFLECTION_MAP\0"
"GL_REFLECTION_MAP_ARB\0"
"GL_REFLECTION_MAP_NV\0"
+ "GL_REFLECTION_MAP_OES\0"
"GL_RELEASED_APPLE\0"
"GL_RENDER\0"
"GL_RENDERBUFFER\0"
"GL_RENDERBUFFER_ALPHA_SIZE\0"
+ "GL_RENDERBUFFER_ALPHA_SIZE_OES\0"
"GL_RENDERBUFFER_BINDING\0"
"GL_RENDERBUFFER_BINDING_EXT\0"
+ "GL_RENDERBUFFER_BINDING_OES\0"
"GL_RENDERBUFFER_BLUE_SIZE\0"
+ "GL_RENDERBUFFER_BLUE_SIZE_OES\0"
"GL_RENDERBUFFER_DEPTH_SIZE\0"
+ "GL_RENDERBUFFER_DEPTH_SIZE_OES\0"
"GL_RENDERBUFFER_EXT\0"
"GL_RENDERBUFFER_GREEN_SIZE\0"
+ "GL_RENDERBUFFER_GREEN_SIZE_OES\0"
"GL_RENDERBUFFER_HEIGHT\0"
"GL_RENDERBUFFER_HEIGHT_EXT\0"
+ "GL_RENDERBUFFER_HEIGHT_OES\0"
"GL_RENDERBUFFER_INTERNAL_FORMAT\0"
"GL_RENDERBUFFER_INTERNAL_FORMAT_EXT\0"
+ "GL_RENDERBUFFER_INTERNAL_FORMAT_OES\0"
+ "GL_RENDERBUFFER_OES\0"
"GL_RENDERBUFFER_RED_SIZE\0"
+ "GL_RENDERBUFFER_RED_SIZE_OES\0"
"GL_RENDERBUFFER_SAMPLES\0"
"GL_RENDERBUFFER_SAMPLES_EXT\0"
"GL_RENDERBUFFER_STENCIL_SIZE\0"
+ "GL_RENDERBUFFER_STENCIL_SIZE_OES\0"
"GL_RENDERBUFFER_WIDTH\0"
"GL_RENDERBUFFER_WIDTH_EXT\0"
+ "GL_RENDERBUFFER_WIDTH_OES\0"
"GL_RENDERER\0"
"GL_RENDER_MODE\0"
"GL_REPEAT\0"
@@ -1410,11 +1505,15 @@ LONGSTRING static const char enum_string_table[] =
"GL_RGB4_EXT\0"
"GL_RGB4_S3TC\0"
"GL_RGB5\0"
+ "GL_RGB565\0"
+ "GL_RGB565_OES\0"
"GL_RGB5_A1\0"
"GL_RGB5_A1_EXT\0"
+ "GL_RGB5_A1_OES\0"
"GL_RGB5_EXT\0"
"GL_RGB8\0"
"GL_RGB8_EXT\0"
+ "GL_RGB8_OES\0"
"GL_RGBA\0"
"GL_RGBA12\0"
"GL_RGBA12_EXT\0"
@@ -1425,9 +1524,11 @@ LONGSTRING static const char enum_string_table[] =
"GL_RGBA4\0"
"GL_RGBA4_DXT5_S3TC\0"
"GL_RGBA4_EXT\0"
+ "GL_RGBA4_OES\0"
"GL_RGBA4_S3TC\0"
"GL_RGBA8\0"
"GL_RGBA8_EXT\0"
+ "GL_RGBA8_OES\0"
"GL_RGBA8_SNORM\0"
"GL_RGBA_DXT5_S3TC\0"
"GL_RGBA_MODE\0"
@@ -1444,6 +1545,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_SAMPLER_2D\0"
"GL_SAMPLER_2D_SHADOW\0"
"GL_SAMPLER_3D\0"
+ "GL_SAMPLER_3D_OES\0"
"GL_SAMPLER_CUBE\0"
"GL_SAMPLES\0"
"GL_SAMPLES_3DFX\0"
@@ -1481,6 +1583,8 @@ LONGSTRING static const char enum_string_table[] =
"GL_SEPARATE_SPECULAR_COLOR\0"
"GL_SEPARATE_SPECULAR_COLOR_EXT\0"
"GL_SET\0"
+ "GL_SHADER_BINARY_FORMATS\0"
+ "GL_SHADER_COMPILER\0"
"GL_SHADER_OBJECT_ARB\0"
"GL_SHADER_SOURCE_LENGTH\0"
"GL_SHADER_TYPE\0"
@@ -1553,6 +1657,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_STENCIL\0"
"GL_STENCIL_ATTACHMENT\0"
"GL_STENCIL_ATTACHMENT_EXT\0"
+ "GL_STENCIL_ATTACHMENT_OES\0"
"GL_STENCIL_BACK_FAIL\0"
"GL_STENCIL_BACK_FAIL_ATI\0"
"GL_STENCIL_BACK_FUNC\0"
@@ -1574,10 +1679,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_STENCIL_INDEX16\0"
"GL_STENCIL_INDEX16_EXT\0"
"GL_STENCIL_INDEX1_EXT\0"
+ "GL_STENCIL_INDEX1_OES\0"
"GL_STENCIL_INDEX4\0"
"GL_STENCIL_INDEX4_EXT\0"
+ "GL_STENCIL_INDEX4_OES\0"
"GL_STENCIL_INDEX8\0"
"GL_STENCIL_INDEX8_EXT\0"
+ "GL_STENCIL_INDEX8_OES\0"
"GL_STENCIL_INDEX_EXT\0"
"GL_STENCIL_PASS_DEPTH_FAIL\0"
"GL_STENCIL_PASS_DEPTH_PASS\0"
@@ -1684,6 +1792,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_2D\0"
"GL_TEXTURE_2D_ARRAY_EXT\0"
"GL_TEXTURE_3D\0"
+ "GL_TEXTURE_3D_OES\0"
"GL_TEXTURE_ALPHA_SIZE\0"
"GL_TEXTURE_ALPHA_SIZE_EXT\0"
"GL_TEXTURE_BASE_LEVEL\0"
@@ -1692,8 +1801,10 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_BINDING_2D\0"
"GL_TEXTURE_BINDING_2D_ARRAY_EXT\0"
"GL_TEXTURE_BINDING_3D\0"
+ "GL_TEXTURE_BINDING_3D_OES\0"
"GL_TEXTURE_BINDING_CUBE_MAP\0"
"GL_TEXTURE_BINDING_CUBE_MAP_ARB\0"
+ "GL_TEXTURE_BINDING_CUBE_MAP_OES\0"
"GL_TEXTURE_BINDING_RECTANGLE_ARB\0"
"GL_TEXTURE_BINDING_RECTANGLE_NV\0"
"GL_TEXTURE_BIT\0"
@@ -1731,20 +1842,28 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_COORD_ARRAY_SIZE\0"
"GL_TEXTURE_COORD_ARRAY_STRIDE\0"
"GL_TEXTURE_COORD_ARRAY_TYPE\0"
+ "GL_TEXTURE_CROP_RECT_OES\0"
"GL_TEXTURE_CUBE_MAP\0"
"GL_TEXTURE_CUBE_MAP_ARB\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_X\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Y\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Z\0"
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES\0"
+ "GL_TEXTURE_CUBE_MAP_OES\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_X\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_Y\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_Z\0"
"GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB\0"
+ "GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES\0"
"GL_TEXTURE_CUBE_MAP_SEAMLESS\0"
"GL_TEXTURE_DEPTH\0"
"GL_TEXTURE_DEPTH_SIZE\0"
@@ -1753,10 +1872,13 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_ENV_COLOR\0"
"GL_TEXTURE_ENV_MODE\0"
"GL_TEXTURE_FILTER_CONTROL\0"
+ "GL_TEXTURE_FILTER_CONTROL_EXT\0"
"GL_TEXTURE_GEN_MODE\0"
+ "GL_TEXTURE_GEN_MODE_OES\0"
"GL_TEXTURE_GEN_Q\0"
"GL_TEXTURE_GEN_R\0"
"GL_TEXTURE_GEN_S\0"
+ "GL_TEXTURE_GEN_STR_OES\0"
"GL_TEXTURE_GEN_T\0"
"GL_TEXTURE_GEQUAL_R_SGIX\0"
"GL_TEXTURE_GREEN_SIZE\0"
@@ -1776,6 +1898,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_LUMINANCE_SIZE_EXT\0"
"GL_TEXTURE_MAG_FILTER\0"
"GL_TEXTURE_MATRIX\0"
+ "GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES\0"
"GL_TEXTURE_MAX_ANISOTROPY_EXT\0"
"GL_TEXTURE_MAX_CLAMP_R_SGIX\0"
"GL_TEXTURE_MAX_CLAMP_S_SGIX\0"
@@ -1800,6 +1923,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_UNSIGNED_REMAP_MODE_NV\0"
"GL_TEXTURE_WIDTH\0"
"GL_TEXTURE_WRAP_R\0"
+ "GL_TEXTURE_WRAP_R_OES\0"
"GL_TEXTURE_WRAP_S\0"
"GL_TEXTURE_WRAP_T\0"
"GL_TIMEOUT_EXPIRED\0"
@@ -1845,17 +1969,22 @@ LONGSTRING static const char enum_string_table[] =
"GL_UNSIGNED_BYTE_3_3_2\0"
"GL_UNSIGNED_INT\0"
"GL_UNSIGNED_INT_10_10_10_2\0"
+ "GL_UNSIGNED_INT_10_10_10_2_OES\0"
"GL_UNSIGNED_INT_24_8\0"
"GL_UNSIGNED_INT_24_8_EXT\0"
"GL_UNSIGNED_INT_24_8_NV\0"
+ "GL_UNSIGNED_INT_24_8_OES\0"
"GL_UNSIGNED_INT_2_10_10_10_REV\0"
+ "GL_UNSIGNED_INT_2_10_10_10_REV_EXT\0"
"GL_UNSIGNED_INT_8_8_8_8\0"
"GL_UNSIGNED_INT_8_8_8_8_REV\0"
"GL_UNSIGNED_NORMALIZED\0"
"GL_UNSIGNED_SHORT\0"
"GL_UNSIGNED_SHORT_1_5_5_5_REV\0"
+ "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT\0"
"GL_UNSIGNED_SHORT_4_4_4_4\0"
"GL_UNSIGNED_SHORT_4_4_4_4_REV\0"
+ "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT\0"
"GL_UNSIGNED_SHORT_5_5_5_1\0"
"GL_UNSIGNED_SHORT_5_6_5\0"
"GL_UNSIGNED_SHORT_5_6_5_REV\0"
@@ -1928,14 +2057,21 @@ LONGSTRING static const char enum_string_table[] =
"GL_WEIGHT_ARRAY_ARB\0"
"GL_WEIGHT_ARRAY_BUFFER_BINDING\0"
"GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB\0"
+ "GL_WEIGHT_ARRAY_BUFFER_BINDING_OES\0"
+ "GL_WEIGHT_ARRAY_OES\0"
"GL_WEIGHT_ARRAY_POINTER_ARB\0"
+ "GL_WEIGHT_ARRAY_POINTER_OES\0"
"GL_WEIGHT_ARRAY_SIZE_ARB\0"
+ "GL_WEIGHT_ARRAY_SIZE_OES\0"
"GL_WEIGHT_ARRAY_STRIDE_ARB\0"
+ "GL_WEIGHT_ARRAY_STRIDE_OES\0"
"GL_WEIGHT_ARRAY_TYPE_ARB\0"
+ "GL_WEIGHT_ARRAY_TYPE_OES\0"
"GL_WEIGHT_SUM_UNITY_ARB\0"
"GL_WRAP_BORDER_SUN\0"
"GL_WRITE_ONLY\0"
"GL_WRITE_ONLY_ARB\0"
+ "GL_WRITE_ONLY_OES\0"
"GL_XOR\0"
"GL_YCBCR_422_APPLE\0"
"GL_YCBCR_MESA\0"
@@ -1944,7 +2080,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
-static const enum_elt all_enums[1906] =
+static const enum_elt all_enums[2042] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@@ -2019,3214 +2155,3380 @@ static const enum_elt all_enums[1906] =
{ 1175, 0x00000403 }, /* GL_BACK_RIGHT */
{ 1189, 0x000080E0 }, /* GL_BGR */
{ 1196, 0x000080E1 }, /* GL_BGRA */
- { 1204, 0x00001A00 }, /* GL_BITMAP */
- { 1214, 0x00000704 }, /* GL_BITMAP_TOKEN */
- { 1230, 0x00000BE2 }, /* GL_BLEND */
- { 1239, 0x00008005 }, /* GL_BLEND_COLOR */
- { 1254, 0x00008005 }, /* GL_BLEND_COLOR_EXT */
- { 1273, 0x00000BE0 }, /* GL_BLEND_DST */
- { 1286, 0x000080CA }, /* GL_BLEND_DST_ALPHA */
- { 1305, 0x000080C8 }, /* GL_BLEND_DST_RGB */
- { 1322, 0x00008009 }, /* GL_BLEND_EQUATION */
- { 1340, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */
- { 1364, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */
- { 1392, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */
- { 1414, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */
- { 1436, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */
- { 1462, 0x00000BE1 }, /* GL_BLEND_SRC */
- { 1475, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */
- { 1494, 0x000080C9 }, /* GL_BLEND_SRC_RGB */
- { 1511, 0x00001905 }, /* GL_BLUE */
- { 1519, 0x00000D1B }, /* GL_BLUE_BIAS */
- { 1532, 0x00000D54 }, /* GL_BLUE_BITS */
- { 1545, 0x00000D1A }, /* GL_BLUE_SCALE */
- { 1559, 0x00008B56 }, /* GL_BOOL */
- { 1567, 0x00008B56 }, /* GL_BOOL_ARB */
- { 1579, 0x00008B57 }, /* GL_BOOL_VEC2 */
- { 1592, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */
- { 1609, 0x00008B58 }, /* GL_BOOL_VEC3 */
- { 1622, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */
- { 1639, 0x00008B59 }, /* GL_BOOL_VEC4 */
- { 1652, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */
- { 1669, 0x000088BB }, /* GL_BUFFER_ACCESS */
- { 1686, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */
- { 1707, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
- { 1738, 0x000088BC }, /* GL_BUFFER_MAPPED */
- { 1755, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */
- { 1776, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */
- { 1798, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */
- { 1824, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */
- { 1847, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
- { 1881, 0x00008764 }, /* GL_BUFFER_SIZE */
- { 1896, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */
- { 1915, 0x00008765 }, /* GL_BUFFER_USAGE */
- { 1931, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */
- { 1951, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */
- { 1970, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */
- { 1996, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */
- { 2019, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
- { 2047, 0x0000877C }, /* GL_BUMP_TARGET_ATI */
- { 2066, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */
- { 2088, 0x00001400 }, /* GL_BYTE */
- { 2096, 0x00002A24 }, /* GL_C3F_V3F */
- { 2107, 0x00002A26 }, /* GL_C4F_N3F_V3F */
- { 2122, 0x00002A22 }, /* GL_C4UB_V2F */
- { 2134, 0x00002A23 }, /* GL_C4UB_V3F */
- { 2146, 0x00000901 }, /* GL_CCW */
- { 2153, 0x00002900 }, /* GL_CLAMP */
- { 2162, 0x0000812D }, /* GL_CLAMP_TO_BORDER */
- { 2181, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */
- { 2204, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */
- { 2228, 0x0000812F }, /* GL_CLAMP_TO_EDGE */
- { 2245, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */
- { 2267, 0x00001500 }, /* GL_CLEAR */
- { 2276, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */
- { 2301, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */
- { 2330, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */
- { 2356, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
- { 2385, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */
- { 2411, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */
- { 2438, 0x00003000 }, /* GL_CLIP_PLANE0 */
- { 2453, 0x00003001 }, /* GL_CLIP_PLANE1 */
- { 2468, 0x00003002 }, /* GL_CLIP_PLANE2 */
- { 2483, 0x00003003 }, /* GL_CLIP_PLANE3 */
- { 2498, 0x00003004 }, /* GL_CLIP_PLANE4 */
- { 2513, 0x00003005 }, /* GL_CLIP_PLANE5 */
- { 2528, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- { 2561, 0x00000A00 }, /* GL_COEFF */
- { 2570, 0x00001800 }, /* GL_COLOR */
- { 2579, 0x00008076 }, /* GL_COLOR_ARRAY */
- { 2594, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- { 2624, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 2658, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */
- { 2681, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */
- { 2701, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */
- { 2723, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */
- { 2743, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */
- { 2764, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */
- { 2789, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */
- { 2810, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */
- { 2832, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */
- { 2858, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */
- { 2880, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */
- { 2906, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */
- { 2928, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */
- { 2954, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */
- { 2976, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */
- { 3002, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */
- { 3024, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */
- { 3050, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */
- { 3072, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */
- { 3098, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */
- { 3123, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */
- { 3144, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */
- { 3169, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */
- { 3190, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */
- { 3215, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */
- { 3236, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */
- { 3261, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */
- { 3282, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */
- { 3307, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */
- { 3328, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */
- { 3353, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */
- { 3374, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */
- { 3399, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */
- { 3420, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */
- { 3445, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */
- { 3466, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */
- { 3491, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */
- { 3511, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */
- { 3532, 0x00001900 }, /* GL_COLOR_INDEX */
- { 3547, 0x00001603 }, /* GL_COLOR_INDEXES */
- { 3564, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */
- { 3582, 0x00000B57 }, /* GL_COLOR_MATERIAL */
- { 3600, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */
- { 3623, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */
- { 3651, 0x000080B1 }, /* GL_COLOR_MATRIX */
- { 3667, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */
- { 3687, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */
- { 3715, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 3747, 0x00008458 }, /* GL_COLOR_SUM */
- { 3760, 0x00008458 }, /* GL_COLOR_SUM_ARB */
- { 3777, 0x000080D0 }, /* GL_COLOR_TABLE */
- { 3792, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */
- { 3818, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */
- { 3848, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */
- { 3878, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */
- { 3898, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */
- { 3922, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */
- { 3947, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */
- { 3976, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */
- { 4005, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */
- { 4027, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */
- { 4053, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */
- { 4079, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */
- { 4105, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */
- { 4135, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */
- { 4165, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */
- { 4195, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */
- { 4229, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */
- { 4263, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
- { 4293, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */
- { 4327, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */
- { 4361, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */
- { 4385, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */
- { 4413, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */
- { 4441, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */
- { 4462, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */
- { 4487, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */
- { 4508, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */
- { 4533, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */
- { 4558, 0x00000C23 }, /* GL_COLOR_WRITEMASK */
- { 4577, 0x00008570 }, /* GL_COMBINE */
- { 4588, 0x00008503 }, /* GL_COMBINE4 */
- { 4600, 0x00008572 }, /* GL_COMBINE_ALPHA */
- { 4617, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */
- { 4638, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */
- { 4659, 0x00008570 }, /* GL_COMBINE_ARB */
- { 4674, 0x00008570 }, /* GL_COMBINE_EXT */
- { 4689, 0x00008571 }, /* GL_COMBINE_RGB */
- { 4704, 0x00008571 }, /* GL_COMBINE_RGB_ARB */
- { 4723, 0x00008571 }, /* GL_COMBINE_RGB_EXT */
- { 4742, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */
- { 4778, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
- { 4802, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
- { 4830, 0x00001300 }, /* GL_COMPILE */
- { 4841, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
- { 4864, 0x00008B81 }, /* GL_COMPILE_STATUS */
- { 4882, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
- { 4902, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
- { 4926, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
- { 4950, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
- { 4978, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
- { 5002, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- { 5032, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
- { 5066, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
- { 5094, 0x000084ED }, /* GL_COMPRESSED_RGB */
- { 5112, 0x000084EE }, /* GL_COMPRESSED_RGBA */
- { 5131, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
- { 5154, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- { 5183, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- { 5216, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- { 5249, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- { 5282, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
- { 5304, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- { 5332, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- { 5364, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */
- { 5389, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
- { 5420, 0x00008C48 }, /* GL_COMPRESSED_SRGB */
- { 5439, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */
- { 5464, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
- { 5494, 0x0000911C }, /* GL_CONDITION_SATISFIED */
- { 5517, 0x00008576 }, /* GL_CONSTANT */
- { 5529, 0x00008003 }, /* GL_CONSTANT_ALPHA */
- { 5547, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
- { 5569, 0x00008576 }, /* GL_CONSTANT_ARB */
- { 5585, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
- { 5609, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
- { 5631, 0x00008001 }, /* GL_CONSTANT_COLOR */
- { 5649, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
- { 5671, 0x00008576 }, /* GL_CONSTANT_EXT */
- { 5687, 0x00008010 }, /* GL_CONVOLUTION_1D */
- { 5705, 0x00008011 }, /* GL_CONVOLUTION_2D */
- { 5723, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
- { 5751, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
- { 5782, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
- { 5809, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
- { 5840, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
- { 5867, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
- { 5898, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
- { 5926, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
- { 5958, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
- { 5980, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
- { 6006, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
- { 6028, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
- { 6054, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
- { 6075, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
- { 6100, 0x00008862 }, /* GL_COORD_REPLACE */
- { 6117, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
- { 6138, 0x00008862 }, /* GL_COORD_REPLACE_NV */
- { 6158, 0x00001503 }, /* GL_COPY */
- { 6166, 0x0000150C }, /* GL_COPY_INVERTED */
- { 6183, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
- { 6203, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
- { 6223, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
- { 6244, 0x00000B44 }, /* GL_CULL_FACE */
- { 6257, 0x00000B45 }, /* GL_CULL_FACE_MODE */
- { 6275, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
- { 6294, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- { 6326, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- { 6361, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
- { 6382, 0x00000001 }, /* GL_CURRENT_BIT */
- { 6397, 0x00000B00 }, /* GL_CURRENT_COLOR */
- { 6414, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
- { 6435, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
- { 6461, 0x00000B01 }, /* GL_CURRENT_INDEX */
- { 6478, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
- { 6500, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
- { 6528, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
- { 6549, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- { 6583, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
- { 6616, 0x00000B02 }, /* GL_CURRENT_NORMAL */
- { 6634, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- { 6664, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
- { 6683, 0x00008865 }, /* GL_CURRENT_QUERY */
- { 6700, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
- { 6721, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
- { 6745, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
- { 6772, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
- { 6796, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
- { 6823, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
- { 6856, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
- { 6890, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- { 6923, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
- { 6950, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
- { 6976, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
- { 7001, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
- { 7030, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
- { 7052, 0x00000900 }, /* GL_CW */
- { 7058, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
- { 7079, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
- { 7100, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
- { 7120, 0x00002101 }, /* GL_DECAL */
- { 7129, 0x00001E03 }, /* GL_DECR */
- { 7137, 0x00008508 }, /* GL_DECR_WRAP */
- { 7150, 0x00008508 }, /* GL_DECR_WRAP_EXT */
- { 7167, 0x00008B80 }, /* GL_DELETE_STATUS */
- { 7184, 0x00001801 }, /* GL_DEPTH */
- { 7193, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
- { 7213, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */
- { 7237, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
- { 7257, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
- { 7281, 0x00000D1F }, /* GL_DEPTH_BIAS */
- { 7295, 0x00000D56 }, /* GL_DEPTH_BITS */
- { 7309, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
- { 7329, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
- { 7354, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
- { 7374, 0x0000864F }, /* GL_DEPTH_CLAMP */
- { 7389, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
- { 7407, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
- { 7428, 0x00001902 }, /* GL_DEPTH_COMPONENT */
- { 7447, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
- { 7468, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
- { 7493, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
- { 7519, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
- { 7540, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
- { 7565, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
- { 7591, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
- { 7612, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
- { 7637, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
- { 7663, 0x00000B74 }, /* GL_DEPTH_FUNC */
- { 7677, 0x00000B70 }, /* GL_DEPTH_RANGE */
- { 7692, 0x00000D1E }, /* GL_DEPTH_SCALE */
- { 7707, 0x000084F9 }, /* GL_DEPTH_STENCIL */
- { 7724, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
- { 7752, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */
- { 7773, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
- { 7793, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- { 7821, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- { 7849, 0x00000B71 }, /* GL_DEPTH_TEST */
- { 7863, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
- { 7885, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
- { 7911, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
- { 7930, 0x00001201 }, /* GL_DIFFUSE */
- { 7941, 0x00000BD0 }, /* GL_DITHER */
- { 7951, 0x00000A02 }, /* GL_DOMAIN */
- { 7961, 0x00001100 }, /* GL_DONT_CARE */
- { 7974, 0x000086AE }, /* GL_DOT3_RGB */
- { 7986, 0x000086AF }, /* GL_DOT3_RGBA */
- { 7999, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
- { 8016, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
- { 8033, 0x000086AE }, /* GL_DOT3_RGB_ARB */
- { 8049, 0x00008740 }, /* GL_DOT3_RGB_EXT */
- { 8065, 0x0000140A }, /* GL_DOUBLE */
- { 8075, 0x00000C32 }, /* GL_DOUBLEBUFFER */
- { 8091, 0x00000C01 }, /* GL_DRAW_BUFFER */
- { 8106, 0x00008825 }, /* GL_DRAW_BUFFER0 */
- { 8122, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
- { 8142, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
- { 8162, 0x00008826 }, /* GL_DRAW_BUFFER1 */
- { 8178, 0x0000882F }, /* GL_DRAW_BUFFER10 */
- { 8195, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
- { 8216, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
- { 8237, 0x00008830 }, /* GL_DRAW_BUFFER11 */
- { 8254, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
- { 8275, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
- { 8296, 0x00008831 }, /* GL_DRAW_BUFFER12 */
- { 8313, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
- { 8334, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
- { 8355, 0x00008832 }, /* GL_DRAW_BUFFER13 */
- { 8372, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
- { 8393, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
- { 8414, 0x00008833 }, /* GL_DRAW_BUFFER14 */
- { 8431, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
- { 8452, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
- { 8473, 0x00008834 }, /* GL_DRAW_BUFFER15 */
- { 8490, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
- { 8511, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
- { 8532, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
- { 8552, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
- { 8572, 0x00008827 }, /* GL_DRAW_BUFFER2 */
- { 8588, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
- { 8608, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
- { 8628, 0x00008828 }, /* GL_DRAW_BUFFER3 */
- { 8644, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
- { 8664, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
- { 8684, 0x00008829 }, /* GL_DRAW_BUFFER4 */
- { 8700, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
- { 8720, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
- { 8740, 0x0000882A }, /* GL_DRAW_BUFFER5 */
- { 8756, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
- { 8776, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
- { 8796, 0x0000882B }, /* GL_DRAW_BUFFER6 */
- { 8812, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
- { 8832, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
- { 8852, 0x0000882C }, /* GL_DRAW_BUFFER7 */
- { 8868, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
- { 8888, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
- { 8908, 0x0000882D }, /* GL_DRAW_BUFFER8 */
- { 8924, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
- { 8944, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
- { 8964, 0x0000882E }, /* GL_DRAW_BUFFER9 */
- { 8980, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
- { 9000, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
- { 9020, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
- { 9040, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */
- { 9068, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
- { 9100, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
- { 9124, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
- { 9144, 0x00000304 }, /* GL_DST_ALPHA */
- { 9157, 0x00000306 }, /* GL_DST_COLOR */
- { 9170, 0x0000877A }, /* GL_DU8DV8_ATI */
- { 9184, 0x00008779 }, /* GL_DUDV_ATI */
- { 9196, 0x000088EA }, /* GL_DYNAMIC_COPY */
- { 9212, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
- { 9232, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
- { 9248, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
- { 9268, 0x000088E9 }, /* GL_DYNAMIC_READ */
- { 9284, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
- { 9304, 0x00000B43 }, /* GL_EDGE_FLAG */
- { 9317, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
- { 9336, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- { 9370, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
- { 9408, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
- { 9435, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- { 9461, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
- { 9485, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- { 9517, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
- { 9553, 0x00001600 }, /* GL_EMISSION */
- { 9565, 0x00002000 }, /* GL_ENABLE_BIT */
- { 9579, 0x00000202 }, /* GL_EQUAL */
- { 9588, 0x00001509 }, /* GL_EQUIV */
- { 9597, 0x00010000 }, /* GL_EVAL_BIT */
- { 9609, 0x00000800 }, /* GL_EXP */
- { 9616, 0x00000801 }, /* GL_EXP2 */
- { 9624, 0x00001F03 }, /* GL_EXTENSIONS */
- { 9638, 0x00002400 }, /* GL_EYE_LINEAR */
- { 9652, 0x00002502 }, /* GL_EYE_PLANE */
- { 9665, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
- { 9690, 0x0000855B }, /* GL_EYE_RADIAL_NV */
- { 9707, 0x00000000 }, /* GL_FALSE */
- { 9716, 0x00001101 }, /* GL_FASTEST */
- { 9727, 0x00001C01 }, /* GL_FEEDBACK */
- { 9739, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
- { 9766, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
- { 9790, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
- { 9814, 0x00001B02 }, /* GL_FILL */
- { 9822, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */
- { 9849, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
- { 9880, 0x00001D00 }, /* GL_FLAT */
- { 9888, 0x00001406 }, /* GL_FLOAT */
- { 9897, 0x00008B5A }, /* GL_FLOAT_MAT2 */
- { 9911, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
- { 9929, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
- { 9945, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
- { 9961, 0x00008B5B }, /* GL_FLOAT_MAT3 */
- { 9975, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
- { 9993, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
- { 10009, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
- { 10025, 0x00008B5C }, /* GL_FLOAT_MAT4 */
- { 10039, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
- { 10057, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
- { 10073, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
- { 10089, 0x00008B50 }, /* GL_FLOAT_VEC2 */
- { 10103, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
- { 10121, 0x00008B51 }, /* GL_FLOAT_VEC3 */
- { 10135, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
- { 10153, 0x00008B52 }, /* GL_FLOAT_VEC4 */
- { 10167, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
- { 10185, 0x00000B60 }, /* GL_FOG */
- { 10192, 0x00000080 }, /* GL_FOG_BIT */
- { 10203, 0x00000B66 }, /* GL_FOG_COLOR */
- { 10216, 0x00008451 }, /* GL_FOG_COORD */
- { 10229, 0x00008451 }, /* GL_FOG_COORDINATE */
- { 10247, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
- { 10271, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- { 10310, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
- { 10353, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- { 10385, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- { 10416, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- { 10445, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
- { 10470, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
- { 10489, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
- { 10523, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
- { 10550, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
- { 10576, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
- { 10600, 0x00008450 }, /* GL_FOG_COORD_SRC */
- { 10617, 0x00000B62 }, /* GL_FOG_DENSITY */
- { 10632, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
- { 10656, 0x00000B64 }, /* GL_FOG_END */
- { 10667, 0x00000C54 }, /* GL_FOG_HINT */
- { 10679, 0x00000B61 }, /* GL_FOG_INDEX */
- { 10692, 0x00000B65 }, /* GL_FOG_MODE */
- { 10704, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
- { 10723, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
- { 10748, 0x00000B63 }, /* GL_FOG_START */
- { 10761, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
- { 10779, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
- { 10803, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
- { 10822, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
- { 10845, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- { 10880, 0x00008D40 }, /* GL_FRAMEBUFFER */
- { 10895, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- { 10932, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- { 10968, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- { 11009, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- { 11050, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- { 11087, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- { 11124, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- { 11162, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
- { 11204, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- { 11242, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
- { 11284, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- { 11319, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- { 11358, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
- { 11407, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- { 11455, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
- { 11507, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- { 11547, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
- { 11591, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- { 11631, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
- { 11675, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */
- { 11698, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
- { 11725, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
- { 11749, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
- { 11777, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
- { 11800, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
- { 11819, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- { 11856, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
- { 11897, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- { 11938, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- { 11976, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
- { 12018, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- { 12069, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- { 12107, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- { 12152, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
- { 12201, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- { 12239, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */
- { 12281, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- { 12319, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
- { 12361, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- { 12393, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
- { 12418, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
- { 12445, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
- { 12476, 0x00000404 }, /* GL_FRONT */
- { 12485, 0x00000408 }, /* GL_FRONT_AND_BACK */
- { 12503, 0x00000B46 }, /* GL_FRONT_FACE */
- { 12517, 0x00000400 }, /* GL_FRONT_LEFT */
- { 12531, 0x00000401 }, /* GL_FRONT_RIGHT */
- { 12546, 0x00008006 }, /* GL_FUNC_ADD */
- { 12558, 0x00008006 }, /* GL_FUNC_ADD_EXT */
- { 12574, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
- { 12599, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
- { 12628, 0x0000800A }, /* GL_FUNC_SUBTRACT */
- { 12645, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
- { 12666, 0x00008191 }, /* GL_GENERATE_MIPMAP */
- { 12685, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
- { 12709, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
- { 12738, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
- { 12762, 0x00000206 }, /* GL_GEQUAL */
- { 12772, 0x00000204 }, /* GL_GREATER */
- { 12783, 0x00001904 }, /* GL_GREEN */
- { 12792, 0x00000D19 }, /* GL_GREEN_BIAS */
- { 12806, 0x00000D53 }, /* GL_GREEN_BITS */
- { 12820, 0x00000D18 }, /* GL_GREEN_SCALE */
- { 12835, 0x0000140B }, /* GL_HALF_FLOAT */
- { 12849, 0x00008000 }, /* GL_HINT_BIT */
- { 12861, 0x00008024 }, /* GL_HISTOGRAM */
- { 12874, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
- { 12898, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
- { 12926, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
- { 12949, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
- { 12976, 0x00008024 }, /* GL_HISTOGRAM_EXT */
- { 12993, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
- { 13013, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
- { 13037, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
- { 13061, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
- { 13089, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- { 13117, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
- { 13149, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
- { 13171, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
- { 13197, 0x0000802D }, /* GL_HISTOGRAM_SINK */
- { 13215, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
- { 13237, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
- { 13256, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
- { 13279, 0x0000862A }, /* GL_IDENTITY_NV */
- { 13294, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
- { 13314, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- { 13354, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- { 13392, 0x00001E02 }, /* GL_INCR */
- { 13400, 0x00008507 }, /* GL_INCR_WRAP */
- { 13413, 0x00008507 }, /* GL_INCR_WRAP_EXT */
- { 13430, 0x00008222 }, /* GL_INDEX */
- { 13439, 0x00008077 }, /* GL_INDEX_ARRAY */
- { 13454, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- { 13484, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
- { 13518, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
- { 13541, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
- { 13563, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
- { 13583, 0x00000D51 }, /* GL_INDEX_BITS */
- { 13597, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
- { 13618, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
- { 13636, 0x00000C30 }, /* GL_INDEX_MODE */
- { 13650, 0x00000D13 }, /* GL_INDEX_OFFSET */
- { 13666, 0x00000D12 }, /* GL_INDEX_SHIFT */
- { 13681, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
- { 13700, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
- { 13719, 0x00001404 }, /* GL_INT */
- { 13726, 0x00008049 }, /* GL_INTENSITY */
- { 13739, 0x0000804C }, /* GL_INTENSITY12 */
- { 13754, 0x0000804C }, /* GL_INTENSITY12_EXT */
- { 13773, 0x0000804D }, /* GL_INTENSITY16 */
- { 13788, 0x0000804D }, /* GL_INTENSITY16_EXT */
- { 13807, 0x0000804A }, /* GL_INTENSITY4 */
- { 13821, 0x0000804A }, /* GL_INTENSITY4_EXT */
- { 13839, 0x0000804B }, /* GL_INTENSITY8 */
- { 13853, 0x0000804B }, /* GL_INTENSITY8_EXT */
- { 13871, 0x00008049 }, /* GL_INTENSITY_EXT */
- { 13888, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */
- { 13915, 0x00008575 }, /* GL_INTERPOLATE */
- { 13930, 0x00008575 }, /* GL_INTERPOLATE_ARB */
- { 13949, 0x00008575 }, /* GL_INTERPOLATE_EXT */
- { 13968, 0x00008B53 }, /* GL_INT_VEC2 */
- { 13980, 0x00008B53 }, /* GL_INT_VEC2_ARB */
- { 13996, 0x00008B54 }, /* GL_INT_VEC3 */
- { 14008, 0x00008B54 }, /* GL_INT_VEC3_ARB */
- { 14024, 0x00008B55 }, /* GL_INT_VEC4 */
- { 14036, 0x00008B55 }, /* GL_INT_VEC4_ARB */
- { 14052, 0x00000500 }, /* GL_INVALID_ENUM */
- { 14068, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
- { 14101, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
- { 14138, 0x00000502 }, /* GL_INVALID_OPERATION */
- { 14159, 0x00000501 }, /* GL_INVALID_VALUE */
- { 14176, 0x0000862B }, /* GL_INVERSE_NV */
- { 14190, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
- { 14214, 0x0000150A }, /* GL_INVERT */
- { 14224, 0x00001E00 }, /* GL_KEEP */
- { 14232, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */
- { 14258, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
- { 14288, 0x00000406 }, /* GL_LEFT */
- { 14296, 0x00000203 }, /* GL_LEQUAL */
- { 14306, 0x00000201 }, /* GL_LESS */
- { 14314, 0x00004000 }, /* GL_LIGHT0 */
- { 14324, 0x00004001 }, /* GL_LIGHT1 */
- { 14334, 0x00004002 }, /* GL_LIGHT2 */
- { 14344, 0x00004003 }, /* GL_LIGHT3 */
- { 14354, 0x00004004 }, /* GL_LIGHT4 */
- { 14364, 0x00004005 }, /* GL_LIGHT5 */
- { 14374, 0x00004006 }, /* GL_LIGHT6 */
- { 14384, 0x00004007 }, /* GL_LIGHT7 */
- { 14394, 0x00000B50 }, /* GL_LIGHTING */
- { 14406, 0x00000040 }, /* GL_LIGHTING_BIT */
- { 14422, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
- { 14445, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- { 14474, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
- { 14507, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- { 14535, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
- { 14559, 0x00001B01 }, /* GL_LINE */
- { 14567, 0x00002601 }, /* GL_LINEAR */
- { 14577, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
- { 14599, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- { 14629, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- { 14660, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
- { 14684, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
- { 14709, 0x00000001 }, /* GL_LINES */
- { 14718, 0x00000004 }, /* GL_LINE_BIT */
- { 14730, 0x00000002 }, /* GL_LINE_LOOP */
- { 14743, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
- { 14763, 0x00000B20 }, /* GL_LINE_SMOOTH */
- { 14778, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
- { 14798, 0x00000B24 }, /* GL_LINE_STIPPLE */
- { 14814, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
- { 14838, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
- { 14861, 0x00000003 }, /* GL_LINE_STRIP */
- { 14875, 0x00000702 }, /* GL_LINE_TOKEN */
- { 14889, 0x00000B21 }, /* GL_LINE_WIDTH */
- { 14903, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
- { 14929, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
- { 14949, 0x00008B82 }, /* GL_LINK_STATUS */
- { 14964, 0x00000B32 }, /* GL_LIST_BASE */
- { 14977, 0x00020000 }, /* GL_LIST_BIT */
- { 14989, 0x00000B33 }, /* GL_LIST_INDEX */
- { 15003, 0x00000B30 }, /* GL_LIST_MODE */
- { 15016, 0x00000101 }, /* GL_LOAD */
- { 15024, 0x00000BF1 }, /* GL_LOGIC_OP */
- { 15036, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
- { 15053, 0x00008CA1 }, /* GL_LOWER_LEFT */
- { 15067, 0x00001909 }, /* GL_LUMINANCE */
- { 15080, 0x00008041 }, /* GL_LUMINANCE12 */
- { 15095, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
- { 15118, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
- { 15145, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
- { 15167, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
- { 15193, 0x00008041 }, /* GL_LUMINANCE12_EXT */
- { 15212, 0x00008042 }, /* GL_LUMINANCE16 */
- { 15227, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
- { 15250, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
- { 15277, 0x00008042 }, /* GL_LUMINANCE16_EXT */
- { 15296, 0x0000803F }, /* GL_LUMINANCE4 */
- { 15310, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
- { 15331, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
- { 15356, 0x0000803F }, /* GL_LUMINANCE4_EXT */
- { 15374, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
- { 15395, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
- { 15420, 0x00008040 }, /* GL_LUMINANCE8 */
- { 15434, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
- { 15455, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
- { 15480, 0x00008040 }, /* GL_LUMINANCE8_EXT */
- { 15498, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
- { 15517, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
- { 15533, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
- { 15553, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
- { 15575, 0x00000D91 }, /* GL_MAP1_INDEX */
- { 15589, 0x00000D92 }, /* GL_MAP1_NORMAL */
- { 15604, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
- { 15628, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
- { 15652, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
- { 15676, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
- { 15700, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
- { 15717, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
- { 15734, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- { 15762, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- { 15791, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- { 15820, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- { 15849, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- { 15878, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- { 15907, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- { 15936, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- { 15964, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- { 15992, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- { 16020, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- { 16048, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- { 16076, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- { 16104, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- { 16132, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- { 16160, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- { 16188, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
- { 16204, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
- { 16224, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
- { 16246, 0x00000DB1 }, /* GL_MAP2_INDEX */
- { 16260, 0x00000DB2 }, /* GL_MAP2_NORMAL */
- { 16275, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
- { 16299, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
- { 16323, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
- { 16347, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
- { 16371, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
- { 16388, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
- { 16405, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- { 16433, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- { 16462, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- { 16491, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- { 16520, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- { 16549, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- { 16578, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- { 16607, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- { 16635, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- { 16663, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- { 16691, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- { 16719, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- { 16747, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- { 16775, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
- { 16803, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- { 16831, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- { 16859, 0x00000D10 }, /* GL_MAP_COLOR */
- { 16872, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
- { 16898, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
- { 16927, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
- { 16955, 0x00000001 }, /* GL_MAP_READ_BIT */
- { 16971, 0x00000D11 }, /* GL_MAP_STENCIL */
- { 16986, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
- { 17012, 0x00000002 }, /* GL_MAP_WRITE_BIT */
- { 17029, 0x000088C0 }, /* GL_MATRIX0_ARB */
- { 17044, 0x00008630 }, /* GL_MATRIX0_NV */
- { 17058, 0x000088CA }, /* GL_MATRIX10_ARB */
- { 17074, 0x000088CB }, /* GL_MATRIX11_ARB */
- { 17090, 0x000088CC }, /* GL_MATRIX12_ARB */
- { 17106, 0x000088CD }, /* GL_MATRIX13_ARB */
- { 17122, 0x000088CE }, /* GL_MATRIX14_ARB */
- { 17138, 0x000088CF }, /* GL_MATRIX15_ARB */
- { 17154, 0x000088D0 }, /* GL_MATRIX16_ARB */
- { 17170, 0x000088D1 }, /* GL_MATRIX17_ARB */
- { 17186, 0x000088D2 }, /* GL_MATRIX18_ARB */
- { 17202, 0x000088D3 }, /* GL_MATRIX19_ARB */
- { 17218, 0x000088C1 }, /* GL_MATRIX1_ARB */
- { 17233, 0x00008631 }, /* GL_MATRIX1_NV */
- { 17247, 0x000088D4 }, /* GL_MATRIX20_ARB */
- { 17263, 0x000088D5 }, /* GL_MATRIX21_ARB */
- { 17279, 0x000088D6 }, /* GL_MATRIX22_ARB */
- { 17295, 0x000088D7 }, /* GL_MATRIX23_ARB */
- { 17311, 0x000088D8 }, /* GL_MATRIX24_ARB */
- { 17327, 0x000088D9 }, /* GL_MATRIX25_ARB */
- { 17343, 0x000088DA }, /* GL_MATRIX26_ARB */
- { 17359, 0x000088DB }, /* GL_MATRIX27_ARB */
- { 17375, 0x000088DC }, /* GL_MATRIX28_ARB */
- { 17391, 0x000088DD }, /* GL_MATRIX29_ARB */
- { 17407, 0x000088C2 }, /* GL_MATRIX2_ARB */
- { 17422, 0x00008632 }, /* GL_MATRIX2_NV */
- { 17436, 0x000088DE }, /* GL_MATRIX30_ARB */
- { 17452, 0x000088DF }, /* GL_MATRIX31_ARB */
- { 17468, 0x000088C3 }, /* GL_MATRIX3_ARB */
- { 17483, 0x00008633 }, /* GL_MATRIX3_NV */
- { 17497, 0x000088C4 }, /* GL_MATRIX4_ARB */
- { 17512, 0x00008634 }, /* GL_MATRIX4_NV */
- { 17526, 0x000088C5 }, /* GL_MATRIX5_ARB */
- { 17541, 0x00008635 }, /* GL_MATRIX5_NV */
- { 17555, 0x000088C6 }, /* GL_MATRIX6_ARB */
- { 17570, 0x00008636 }, /* GL_MATRIX6_NV */
- { 17584, 0x000088C7 }, /* GL_MATRIX7_ARB */
- { 17599, 0x00008637 }, /* GL_MATRIX7_NV */
- { 17613, 0x000088C8 }, /* GL_MATRIX8_ARB */
- { 17628, 0x000088C9 }, /* GL_MATRIX9_ARB */
- { 17643, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
- { 17669, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- { 17703, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- { 17734, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- { 17767, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- { 17798, 0x00000BA0 }, /* GL_MATRIX_MODE */
- { 17813, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
- { 17835, 0x00008008 }, /* GL_MAX */
- { 17842, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
- { 17865, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- { 17897, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
- { 17923, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- { 17956, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- { 17982, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 18016, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
- { 18035, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */
- { 18060, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
- { 18089, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- { 18121, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
- { 18157, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- { 18193, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
- { 18233, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
- { 18259, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
- { 18289, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
- { 18314, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
- { 18343, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- { 18372, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
- { 18405, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
- { 18425, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
- { 18449, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
- { 18473, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
- { 18497, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
- { 18522, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
- { 18540, 0x00008008 }, /* GL_MAX_EXT */
- { 18551, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- { 18586, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
- { 18625, 0x00000D31 }, /* GL_MAX_LIGHTS */
- { 18639, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
- { 18659, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- { 18697, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- { 18726, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
- { 18750, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
- { 18778, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
- { 18801, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 18838, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 18874, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- { 18901, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- { 18930, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- { 18964, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
- { 19000, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- { 19027, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- { 19059, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- { 19095, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- { 19124, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- { 19153, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
- { 19181, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- { 19219, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 19263, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 19306, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 19340, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 19379, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 19416, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 19454, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 19497, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 19540, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- { 19570, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- { 19601, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 19637, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 19673, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
- { 19703, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- { 19737, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
- { 19770, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */
- { 19795, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
- { 19824, 0x00008D57 }, /* GL_MAX_SAMPLES */
- { 19839, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */
- { 19858, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- { 19885, 0x00008504 }, /* GL_MAX_SHININESS_NV */
- { 19905, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
- { 19929, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
- { 19951, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
- { 19977, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- { 20004, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
- { 20035, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
- { 20059, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- { 20093, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
- { 20113, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
- { 20140, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
- { 20161, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
- { 20186, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
- { 20211, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
- { 20246, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
- { 20299, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
- { 20346, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
- { 20396, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
- { 20418, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
- { 20444, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
- { 20466, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
- { 20492, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- { 20526, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
- { 20564, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- { 20597, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
- { 20634, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
- { 20658, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
- { 20679, 0x00008007 }, /* GL_MIN */
- { 20686, 0x0000802E }, /* GL_MINMAX */
- { 20696, 0x0000802E }, /* GL_MINMAX_EXT */
- { 20710, 0x0000802F }, /* GL_MINMAX_FORMAT */
- { 20727, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
- { 20748, 0x00008030 }, /* GL_MINMAX_SINK */
- { 20763, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
- { 20782, 0x00008007 }, /* GL_MIN_EXT */
- { 20793, 0x00008370 }, /* GL_MIRRORED_REPEAT */
- { 20812, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
- { 20835, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
- { 20858, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
- { 20878, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
- { 20898, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- { 20928, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
- { 20956, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- { 20984, 0x00001700 }, /* GL_MODELVIEW */
- { 20997, 0x00001700 }, /* GL_MODELVIEW0_ARB */
- { 21015, 0x0000872A }, /* GL_MODELVIEW10_ARB */
- { 21034, 0x0000872B }, /* GL_MODELVIEW11_ARB */
- { 21053, 0x0000872C }, /* GL_MODELVIEW12_ARB */
- { 21072, 0x0000872D }, /* GL_MODELVIEW13_ARB */
- { 21091, 0x0000872E }, /* GL_MODELVIEW14_ARB */
- { 21110, 0x0000872F }, /* GL_MODELVIEW15_ARB */
- { 21129, 0x00008730 }, /* GL_MODELVIEW16_ARB */
- { 21148, 0x00008731 }, /* GL_MODELVIEW17_ARB */
- { 21167, 0x00008732 }, /* GL_MODELVIEW18_ARB */
- { 21186, 0x00008733 }, /* GL_MODELVIEW19_ARB */
- { 21205, 0x0000850A }, /* GL_MODELVIEW1_ARB */
- { 21223, 0x00008734 }, /* GL_MODELVIEW20_ARB */
- { 21242, 0x00008735 }, /* GL_MODELVIEW21_ARB */
- { 21261, 0x00008736 }, /* GL_MODELVIEW22_ARB */
- { 21280, 0x00008737 }, /* GL_MODELVIEW23_ARB */
- { 21299, 0x00008738 }, /* GL_MODELVIEW24_ARB */
- { 21318, 0x00008739 }, /* GL_MODELVIEW25_ARB */
- { 21337, 0x0000873A }, /* GL_MODELVIEW26_ARB */
- { 21356, 0x0000873B }, /* GL_MODELVIEW27_ARB */
- { 21375, 0x0000873C }, /* GL_MODELVIEW28_ARB */
- { 21394, 0x0000873D }, /* GL_MODELVIEW29_ARB */
- { 21413, 0x00008722 }, /* GL_MODELVIEW2_ARB */
- { 21431, 0x0000873E }, /* GL_MODELVIEW30_ARB */
- { 21450, 0x0000873F }, /* GL_MODELVIEW31_ARB */
- { 21469, 0x00008723 }, /* GL_MODELVIEW3_ARB */
- { 21487, 0x00008724 }, /* GL_MODELVIEW4_ARB */
- { 21505, 0x00008725 }, /* GL_MODELVIEW5_ARB */
- { 21523, 0x00008726 }, /* GL_MODELVIEW6_ARB */
- { 21541, 0x00008727 }, /* GL_MODELVIEW7_ARB */
- { 21559, 0x00008728 }, /* GL_MODELVIEW8_ARB */
- { 21577, 0x00008729 }, /* GL_MODELVIEW9_ARB */
- { 21595, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
- { 21615, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
- { 21642, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
- { 21667, 0x00002100 }, /* GL_MODULATE */
- { 21679, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
- { 21699, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
- { 21726, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
- { 21751, 0x00000103 }, /* GL_MULT */
- { 21759, 0x0000809D }, /* GL_MULTISAMPLE */
- { 21774, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
- { 21794, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
- { 21813, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
- { 21832, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
- { 21856, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
- { 21879, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- { 21909, 0x00002A25 }, /* GL_N3F_V3F */
- { 21920, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
- { 21940, 0x0000150E }, /* GL_NAND */
- { 21948, 0x00002600 }, /* GL_NEAREST */
- { 21959, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- { 21990, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- { 22022, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
- { 22047, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
- { 22073, 0x00000200 }, /* GL_NEVER */
- { 22082, 0x00001102 }, /* GL_NICEST */
- { 22092, 0x00000000 }, /* GL_NONE */
- { 22100, 0x00001505 }, /* GL_NOOP */
- { 22108, 0x00001508 }, /* GL_NOR */
- { 22115, 0x00000BA1 }, /* GL_NORMALIZE */
- { 22128, 0x00008075 }, /* GL_NORMAL_ARRAY */
- { 22144, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- { 22175, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
- { 22210, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
- { 22234, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
- { 22257, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
- { 22278, 0x00008511 }, /* GL_NORMAL_MAP */
- { 22292, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
- { 22310, 0x00008511 }, /* GL_NORMAL_MAP_NV */
- { 22327, 0x00000205 }, /* GL_NOTEQUAL */
- { 22339, 0x00000000 }, /* GL_NO_ERROR */
- { 22351, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- { 22385, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
- { 22423, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
- { 22455, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
- { 22497, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
- { 22527, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
- { 22567, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
- { 22598, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
- { 22627, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
- { 22655, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
- { 22685, 0x00002401 }, /* GL_OBJECT_LINEAR */
- { 22702, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
- { 22728, 0x00002501 }, /* GL_OBJECT_PLANE */
- { 22744, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
- { 22779, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
- { 22801, 0x00009112 }, /* GL_OBJECT_TYPE */
- { 22816, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
- { 22835, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
- { 22865, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
- { 22886, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
- { 22914, 0x00000001 }, /* GL_ONE */
- { 22921, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- { 22949, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
- { 22981, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
- { 23009, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
- { 23041, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
- { 23064, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
- { 23087, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
- { 23110, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
- { 23133, 0x00008598 }, /* GL_OPERAND0_ALPHA */
- { 23151, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
- { 23173, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
- { 23195, 0x00008590 }, /* GL_OPERAND0_RGB */
- { 23211, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
- { 23231, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
- { 23251, 0x00008599 }, /* GL_OPERAND1_ALPHA */
- { 23269, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
- { 23291, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
- { 23313, 0x00008591 }, /* GL_OPERAND1_RGB */
- { 23329, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
- { 23349, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
- { 23369, 0x0000859A }, /* GL_OPERAND2_ALPHA */
- { 23387, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
- { 23409, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
- { 23431, 0x00008592 }, /* GL_OPERAND2_RGB */
- { 23447, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
- { 23467, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
- { 23487, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
- { 23508, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
- { 23527, 0x00001507 }, /* GL_OR */
- { 23533, 0x00000A01 }, /* GL_ORDER */
- { 23542, 0x0000150D }, /* GL_OR_INVERTED */
- { 23557, 0x0000150B }, /* GL_OR_REVERSE */
- { 23571, 0x00000505 }, /* GL_OUT_OF_MEMORY */
- { 23588, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
- { 23606, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
- { 23627, 0x00008758 }, /* GL_PACK_INVERT_MESA */
- { 23647, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
- { 23665, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
- { 23684, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
- { 23704, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
- { 23724, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
- { 23742, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
- { 23761, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
- { 23786, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
- { 23810, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
- { 23831, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
- { 23853, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
- { 23875, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
- { 23900, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
- { 23924, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
- { 23945, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
- { 23967, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
- { 23989, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
- { 24011, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
- { 24042, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
- { 24062, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- { 24087, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
- { 24107, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- { 24132, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
- { 24152, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- { 24177, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
- { 24197, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- { 24222, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
- { 24242, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- { 24267, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
- { 24287, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- { 24312, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
- { 24332, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- { 24357, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
- { 24377, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- { 24402, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
- { 24422, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- { 24447, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
- { 24467, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- { 24492, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
- { 24510, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
- { 24531, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
- { 24560, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
- { 24593, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
- { 24618, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
- { 24641, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- { 24672, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
- { 24707, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
- { 24734, 0x00001B00 }, /* GL_POINT */
- { 24743, 0x00000000 }, /* GL_POINTS */
- { 24753, 0x00000002 }, /* GL_POINT_BIT */
- { 24766, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
- { 24796, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
- { 24830, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
- { 24864, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
- { 24899, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
- { 24928, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
- { 24961, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
- { 24994, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
- { 25028, 0x00000B11 }, /* GL_POINT_SIZE */
- { 25042, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
- { 25068, 0x00008127 }, /* GL_POINT_SIZE_MAX */
- { 25086, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
- { 25108, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
- { 25130, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
- { 25153, 0x00008126 }, /* GL_POINT_SIZE_MIN */
- { 25171, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
- { 25193, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
- { 25215, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
- { 25238, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
- { 25258, 0x00000B10 }, /* GL_POINT_SMOOTH */
- { 25274, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
- { 25295, 0x00008861 }, /* GL_POINT_SPRITE */
- { 25311, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
- { 25331, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
- { 25360, 0x00008861 }, /* GL_POINT_SPRITE_NV */
- { 25379, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
- { 25405, 0x00000701 }, /* GL_POINT_TOKEN */
- { 25420, 0x00000009 }, /* GL_POLYGON */
- { 25431, 0x00000008 }, /* GL_POLYGON_BIT */
- { 25446, 0x00000B40 }, /* GL_POLYGON_MODE */
- { 25462, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
- { 25485, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
- { 25510, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
- { 25533, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
- { 25556, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
- { 25580, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
- { 25604, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
- { 25622, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
- { 25645, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
- { 25664, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
- { 25687, 0x00000703 }, /* GL_POLYGON_TOKEN */
- { 25704, 0x00001203 }, /* GL_POSITION */
- { 25716, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- { 25748, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
- { 25784, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- { 25817, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
- { 25854, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- { 25885, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
- { 25920, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- { 25952, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
- { 25988, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- { 26021, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- { 26053, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
- { 26089, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- { 26122, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
- { 26159, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- { 26189, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
- { 26223, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- { 26254, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
- { 26289, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- { 26320, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
- { 26355, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- { 26387, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
- { 26423, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- { 26453, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
- { 26487, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- { 26518, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
- { 26553, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- { 26585, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- { 26616, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
- { 26651, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- { 26683, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
- { 26719, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
- { 26748, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
- { 26781, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
- { 26811, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
- { 26845, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- { 26884, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- { 26917, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- { 26957, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- { 26991, 0x00008578 }, /* GL_PREVIOUS */
- { 27003, 0x00008578 }, /* GL_PREVIOUS_ARB */
- { 27019, 0x00008578 }, /* GL_PREVIOUS_EXT */
- { 27035, 0x00008577 }, /* GL_PRIMARY_COLOR */
- { 27052, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
- { 27073, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
- { 27094, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */
- { 27122, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- { 27155, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- { 27187, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
- { 27210, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
- { 27233, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
- { 27263, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
- { 27292, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
- { 27320, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
- { 27342, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- { 27370, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- { 27398, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
- { 27420, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
- { 27441, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- { 27481, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- { 27520, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- { 27550, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- { 27585, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- { 27618, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- { 27652, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- { 27691, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- { 27730, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
- { 27752, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
- { 27778, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
- { 27802, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
- { 27825, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
- { 27847, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
- { 27868, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
- { 27889, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
- { 27916, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- { 27948, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- { 27980, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- { 28015, 0x00001701 }, /* GL_PROJECTION */
- { 28029, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
- { 28050, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
- { 28076, 0x00008E4F }, /* GL_PROVOKING_VERTEX */
- { 28096, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
- { 28120, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
- { 28141, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
- { 28160, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
- { 28183, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- { 28222, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- { 28260, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
- { 28280, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- { 28310, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
- { 28334, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
- { 28354, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- { 28384, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
- { 28408, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
- { 28428, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- { 28461, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
- { 28487, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
- { 28517, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- { 28548, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
- { 28578, 0x00008A1D }, /* GL_PURGEABLE_APPLE */
- { 28597, 0x00002003 }, /* GL_Q */
- { 28602, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
- { 28627, 0x00000007 }, /* GL_QUADS */
- { 28636, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
- { 28680, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
- { 28728, 0x00008614 }, /* GL_QUAD_MESH_SUN */
- { 28745, 0x00000008 }, /* GL_QUAD_STRIP */
- { 28759, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
- { 28789, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */
- { 28816, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
- { 28838, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
- { 28864, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */
- { 28884, 0x00008866 }, /* GL_QUERY_RESULT */
- { 28900, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
- { 28920, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
- { 28946, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
- { 28976, 0x00008E13 }, /* GL_QUERY_WAIT_NV */
- { 28993, 0x00002002 }, /* GL_R */
- { 28998, 0x00002A10 }, /* GL_R3_G3_B2 */
- { 29010, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */
- { 29036, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- { 29069, 0x00000C02 }, /* GL_READ_BUFFER */
- { 29084, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
- { 29104, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */
- { 29132, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
- { 29164, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
- { 29188, 0x000088B8 }, /* GL_READ_ONLY */
- { 29201, 0x000088B8 }, /* GL_READ_ONLY_ARB */
- { 29218, 0x000088BA }, /* GL_READ_WRITE */
- { 29232, 0x000088BA }, /* GL_READ_WRITE_ARB */
- { 29250, 0x00001903 }, /* GL_RED */
- { 29257, 0x00008016 }, /* GL_REDUCE */
- { 29267, 0x00008016 }, /* GL_REDUCE_EXT */
- { 29281, 0x00000D15 }, /* GL_RED_BIAS */
- { 29293, 0x00000D52 }, /* GL_RED_BITS */
- { 29305, 0x00000D14 }, /* GL_RED_SCALE */
- { 29318, 0x00008512 }, /* GL_REFLECTION_MAP */
- { 29336, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
- { 29358, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
- { 29379, 0x00008A19 }, /* GL_RELEASED_APPLE */
- { 29397, 0x00001C00 }, /* GL_RENDER */
- { 29407, 0x00008D41 }, /* GL_RENDERBUFFER */
- { 29423, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
- { 29450, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */
- { 29474, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
- { 29502, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
- { 29528, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
- { 29555, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
- { 29575, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
- { 29602, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
- { 29625, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
- { 29652, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- { 29684, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
- { 29720, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
- { 29745, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
- { 29769, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */
- { 29797, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
- { 29826, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
- { 29848, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
- { 29874, 0x00001F01 }, /* GL_RENDERER */
- { 29886, 0x00000C40 }, /* GL_RENDER_MODE */
- { 29901, 0x00002901 }, /* GL_REPEAT */
- { 29911, 0x00001E01 }, /* GL_REPLACE */
- { 29922, 0x00008062 }, /* GL_REPLACE_EXT */
- { 29937, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
- { 29960, 0x0000803A }, /* GL_RESCALE_NORMAL */
- { 29978, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
- { 30000, 0x00008A1B }, /* GL_RETAINED_APPLE */
- { 30018, 0x00000102 }, /* GL_RETURN */
- { 30028, 0x00001907 }, /* GL_RGB */
- { 30035, 0x00008052 }, /* GL_RGB10 */
- { 30044, 0x00008059 }, /* GL_RGB10_A2 */
- { 30056, 0x00008059 }, /* GL_RGB10_A2_EXT */
- { 30072, 0x00008052 }, /* GL_RGB10_EXT */
- { 30085, 0x00008053 }, /* GL_RGB12 */
- { 30094, 0x00008053 }, /* GL_RGB12_EXT */
- { 30107, 0x00008054 }, /* GL_RGB16 */
- { 30116, 0x00008054 }, /* GL_RGB16_EXT */
- { 30129, 0x0000804E }, /* GL_RGB2_EXT */
- { 30141, 0x0000804F }, /* GL_RGB4 */
- { 30149, 0x0000804F }, /* GL_RGB4_EXT */
- { 30161, 0x000083A1 }, /* GL_RGB4_S3TC */
- { 30174, 0x00008050 }, /* GL_RGB5 */
- { 30182, 0x00008057 }, /* GL_RGB5_A1 */
- { 30193, 0x00008057 }, /* GL_RGB5_A1_EXT */
- { 30208, 0x00008050 }, /* GL_RGB5_EXT */
- { 30220, 0x00008051 }, /* GL_RGB8 */
- { 30228, 0x00008051 }, /* GL_RGB8_EXT */
- { 30240, 0x00001908 }, /* GL_RGBA */
- { 30248, 0x0000805A }, /* GL_RGBA12 */
- { 30258, 0x0000805A }, /* GL_RGBA12_EXT */
- { 30272, 0x0000805B }, /* GL_RGBA16 */
- { 30282, 0x0000805B }, /* GL_RGBA16_EXT */
- { 30296, 0x00008055 }, /* GL_RGBA2 */
- { 30305, 0x00008055 }, /* GL_RGBA2_EXT */
- { 30318, 0x00008056 }, /* GL_RGBA4 */
- { 30327, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
- { 30346, 0x00008056 }, /* GL_RGBA4_EXT */
- { 30359, 0x000083A3 }, /* GL_RGBA4_S3TC */
- { 30373, 0x00008058 }, /* GL_RGBA8 */
- { 30382, 0x00008058 }, /* GL_RGBA8_EXT */
- { 30395, 0x00008F97 }, /* GL_RGBA8_SNORM */
- { 30410, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
- { 30428, 0x00000C31 }, /* GL_RGBA_MODE */
- { 30441, 0x000083A2 }, /* GL_RGBA_S3TC */
- { 30454, 0x00008F93 }, /* GL_RGBA_SNORM */
- { 30468, 0x000083A0 }, /* GL_RGB_S3TC */
- { 30480, 0x00008573 }, /* GL_RGB_SCALE */
- { 30493, 0x00008573 }, /* GL_RGB_SCALE_ARB */
- { 30510, 0x00008573 }, /* GL_RGB_SCALE_EXT */
- { 30527, 0x00000407 }, /* GL_RIGHT */
- { 30536, 0x00002000 }, /* GL_S */
- { 30541, 0x00008B5D }, /* GL_SAMPLER_1D */
- { 30555, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
- { 30576, 0x00008B5E }, /* GL_SAMPLER_2D */
- { 30590, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
- { 30611, 0x00008B5F }, /* GL_SAMPLER_3D */
- { 30625, 0x00008B60 }, /* GL_SAMPLER_CUBE */
- { 30641, 0x000080A9 }, /* GL_SAMPLES */
- { 30652, 0x000086B4 }, /* GL_SAMPLES_3DFX */
- { 30668, 0x000080A9 }, /* GL_SAMPLES_ARB */
- { 30683, 0x00008914 }, /* GL_SAMPLES_PASSED */
- { 30701, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
- { 30723, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- { 30751, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
- { 30783, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
- { 30806, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
- { 30833, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
- { 30851, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
- { 30874, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
- { 30896, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
- { 30915, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
- { 30938, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
- { 30964, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
- { 30994, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
- { 31019, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
- { 31048, 0x00080000 }, /* GL_SCISSOR_BIT */
- { 31063, 0x00000C10 }, /* GL_SCISSOR_BOX */
- { 31078, 0x00000C11 }, /* GL_SCISSOR_TEST */
- { 31094, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
- { 31119, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- { 31159, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
- { 31203, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- { 31236, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- { 31266, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- { 31298, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- { 31328, 0x00001C02 }, /* GL_SELECT */
- { 31338, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
- { 31366, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
- { 31391, 0x00008012 }, /* GL_SEPARABLE_2D */
- { 31407, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */
- { 31431, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
- { 31458, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
- { 31489, 0x0000150F }, /* GL_SET */
- { 31496, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
- { 31517, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
- { 31541, 0x00008B4F }, /* GL_SHADER_TYPE */
- { 31556, 0x00000B54 }, /* GL_SHADE_MODEL */
- { 31571, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
- { 31599, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
- { 31622, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- { 31652, 0x00001601 }, /* GL_SHININESS */
- { 31665, 0x00001402 }, /* GL_SHORT */
- { 31674, 0x00009119 }, /* GL_SIGNALED */
- { 31686, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
- { 31707, 0x000081F9 }, /* GL_SINGLE_COLOR */
- { 31723, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
- { 31743, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
- { 31762, 0x00008C46 }, /* GL_SLUMINANCE */
- { 31776, 0x00008C47 }, /* GL_SLUMINANCE8 */
- { 31791, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
- { 31813, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
- { 31833, 0x00001D01 }, /* GL_SMOOTH */
- { 31843, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
- { 31876, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
- { 31903, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
- { 31936, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
- { 31963, 0x00008588 }, /* GL_SOURCE0_ALPHA */
- { 31980, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
- { 32001, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
- { 32022, 0x00008580 }, /* GL_SOURCE0_RGB */
- { 32037, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
- { 32056, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
- { 32075, 0x00008589 }, /* GL_SOURCE1_ALPHA */
- { 32092, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
- { 32113, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
- { 32134, 0x00008581 }, /* GL_SOURCE1_RGB */
- { 32149, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
- { 32168, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
- { 32187, 0x0000858A }, /* GL_SOURCE2_ALPHA */
- { 32204, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
- { 32225, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
- { 32246, 0x00008582 }, /* GL_SOURCE2_RGB */
- { 32261, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
- { 32280, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
- { 32299, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
- { 32319, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
- { 32337, 0x00001202 }, /* GL_SPECULAR */
- { 32349, 0x00002402 }, /* GL_SPHERE_MAP */
- { 32363, 0x00001206 }, /* GL_SPOT_CUTOFF */
- { 32378, 0x00001204 }, /* GL_SPOT_DIRECTION */
- { 32396, 0x00001205 }, /* GL_SPOT_EXPONENT */
- { 32413, 0x00008588 }, /* GL_SRC0_ALPHA */
- { 32427, 0x00008580 }, /* GL_SRC0_RGB */
- { 32439, 0x00008589 }, /* GL_SRC1_ALPHA */
- { 32453, 0x00008581 }, /* GL_SRC1_RGB */
- { 32465, 0x0000858A }, /* GL_SRC2_ALPHA */
- { 32479, 0x00008582 }, /* GL_SRC2_RGB */
- { 32491, 0x00000302 }, /* GL_SRC_ALPHA */
- { 32504, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
- { 32526, 0x00000300 }, /* GL_SRC_COLOR */
- { 32539, 0x00008C40 }, /* GL_SRGB */
- { 32547, 0x00008C41 }, /* GL_SRGB8 */
- { 32556, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
- { 32572, 0x00008C42 }, /* GL_SRGB_ALPHA */
- { 32586, 0x00000503 }, /* GL_STACK_OVERFLOW */
- { 32604, 0x00000504 }, /* GL_STACK_UNDERFLOW */
- { 32623, 0x000088E6 }, /* GL_STATIC_COPY */
- { 32638, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
- { 32657, 0x000088E4 }, /* GL_STATIC_DRAW */
- { 32672, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
- { 32691, 0x000088E5 }, /* GL_STATIC_READ */
- { 32706, 0x000088E5 }, /* GL_STATIC_READ_ARB */
- { 32725, 0x00001802 }, /* GL_STENCIL */
- { 32736, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
- { 32758, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
- { 32784, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
- { 32805, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
- { 32830, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
- { 32851, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
- { 32876, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- { 32908, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
- { 32944, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- { 32976, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
- { 33012, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
- { 33032, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
- { 33059, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
- { 33085, 0x00000D57 }, /* GL_STENCIL_BITS */
- { 33101, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
- { 33123, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
- { 33146, 0x00000B94 }, /* GL_STENCIL_FAIL */
- { 33162, 0x00000B92 }, /* GL_STENCIL_FUNC */
- { 33178, 0x00001901 }, /* GL_STENCIL_INDEX */
- { 33195, 0x00008D46 }, /* GL_STENCIL_INDEX1 */
- { 33213, 0x00008D49 }, /* GL_STENCIL_INDEX16 */
- { 33232, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
- { 33255, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
- { 33277, 0x00008D47 }, /* GL_STENCIL_INDEX4 */
- { 33295, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
- { 33317, 0x00008D48 }, /* GL_STENCIL_INDEX8 */
- { 33335, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
- { 33357, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
- { 33378, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
- { 33405, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
- { 33432, 0x00000B97 }, /* GL_STENCIL_REF */
- { 33447, 0x00000B90 }, /* GL_STENCIL_TEST */
- { 33463, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
- { 33492, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
- { 33514, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
- { 33535, 0x00000C33 }, /* GL_STEREO */
- { 33545, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
- { 33569, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
- { 33594, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
- { 33618, 0x000088E2 }, /* GL_STREAM_COPY */
- { 33633, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
- { 33652, 0x000088E0 }, /* GL_STREAM_DRAW */
- { 33667, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
- { 33686, 0x000088E1 }, /* GL_STREAM_READ */
- { 33701, 0x000088E1 }, /* GL_STREAM_READ_ARB */
- { 33720, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
- { 33737, 0x000084E7 }, /* GL_SUBTRACT */
- { 33749, 0x000084E7 }, /* GL_SUBTRACT_ARB */
- { 33765, 0x00009113 }, /* GL_SYNC_CONDITION */
- { 33783, 0x00009116 }, /* GL_SYNC_FENCE */
- { 33797, 0x00009115 }, /* GL_SYNC_FLAGS */
- { 33811, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
- { 33838, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- { 33868, 0x00009114 }, /* GL_SYNC_STATUS */
- { 33883, 0x00002001 }, /* GL_T */
- { 33888, 0x00002A2A }, /* GL_T2F_C3F_V3F */
- { 33903, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
- { 33922, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
- { 33938, 0x00002A2B }, /* GL_T2F_N3F_V3F */
- { 33953, 0x00002A27 }, /* GL_T2F_V3F */
- { 33964, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
- { 33983, 0x00002A28 }, /* GL_T4F_V4F */
- { 33994, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
- { 34017, 0x00001702 }, /* GL_TEXTURE */
- { 34028, 0x000084C0 }, /* GL_TEXTURE0 */
- { 34040, 0x000084C0 }, /* GL_TEXTURE0_ARB */
- { 34056, 0x000084C1 }, /* GL_TEXTURE1 */
- { 34068, 0x000084CA }, /* GL_TEXTURE10 */
- { 34081, 0x000084CA }, /* GL_TEXTURE10_ARB */
- { 34098, 0x000084CB }, /* GL_TEXTURE11 */
- { 34111, 0x000084CB }, /* GL_TEXTURE11_ARB */
- { 34128, 0x000084CC }, /* GL_TEXTURE12 */
- { 34141, 0x000084CC }, /* GL_TEXTURE12_ARB */
- { 34158, 0x000084CD }, /* GL_TEXTURE13 */
- { 34171, 0x000084CD }, /* GL_TEXTURE13_ARB */
- { 34188, 0x000084CE }, /* GL_TEXTURE14 */
- { 34201, 0x000084CE }, /* GL_TEXTURE14_ARB */
- { 34218, 0x000084CF }, /* GL_TEXTURE15 */
- { 34231, 0x000084CF }, /* GL_TEXTURE15_ARB */
- { 34248, 0x000084D0 }, /* GL_TEXTURE16 */
- { 34261, 0x000084D0 }, /* GL_TEXTURE16_ARB */
- { 34278, 0x000084D1 }, /* GL_TEXTURE17 */
- { 34291, 0x000084D1 }, /* GL_TEXTURE17_ARB */
- { 34308, 0x000084D2 }, /* GL_TEXTURE18 */
- { 34321, 0x000084D2 }, /* GL_TEXTURE18_ARB */
- { 34338, 0x000084D3 }, /* GL_TEXTURE19 */
- { 34351, 0x000084D3 }, /* GL_TEXTURE19_ARB */
- { 34368, 0x000084C1 }, /* GL_TEXTURE1_ARB */
- { 34384, 0x000084C2 }, /* GL_TEXTURE2 */
- { 34396, 0x000084D4 }, /* GL_TEXTURE20 */
- { 34409, 0x000084D4 }, /* GL_TEXTURE20_ARB */
- { 34426, 0x000084D5 }, /* GL_TEXTURE21 */
- { 34439, 0x000084D5 }, /* GL_TEXTURE21_ARB */
- { 34456, 0x000084D6 }, /* GL_TEXTURE22 */
- { 34469, 0x000084D6 }, /* GL_TEXTURE22_ARB */
- { 34486, 0x000084D7 }, /* GL_TEXTURE23 */
- { 34499, 0x000084D7 }, /* GL_TEXTURE23_ARB */
- { 34516, 0x000084D8 }, /* GL_TEXTURE24 */
- { 34529, 0x000084D8 }, /* GL_TEXTURE24_ARB */
- { 34546, 0x000084D9 }, /* GL_TEXTURE25 */
- { 34559, 0x000084D9 }, /* GL_TEXTURE25_ARB */
- { 34576, 0x000084DA }, /* GL_TEXTURE26 */
- { 34589, 0x000084DA }, /* GL_TEXTURE26_ARB */
- { 34606, 0x000084DB }, /* GL_TEXTURE27 */
- { 34619, 0x000084DB }, /* GL_TEXTURE27_ARB */
- { 34636, 0x000084DC }, /* GL_TEXTURE28 */
- { 34649, 0x000084DC }, /* GL_TEXTURE28_ARB */
- { 34666, 0x000084DD }, /* GL_TEXTURE29 */
- { 34679, 0x000084DD }, /* GL_TEXTURE29_ARB */
- { 34696, 0x000084C2 }, /* GL_TEXTURE2_ARB */
- { 34712, 0x000084C3 }, /* GL_TEXTURE3 */
- { 34724, 0x000084DE }, /* GL_TEXTURE30 */
- { 34737, 0x000084DE }, /* GL_TEXTURE30_ARB */
- { 34754, 0x000084DF }, /* GL_TEXTURE31 */
- { 34767, 0x000084DF }, /* GL_TEXTURE31_ARB */
- { 34784, 0x000084C3 }, /* GL_TEXTURE3_ARB */
- { 34800, 0x000084C4 }, /* GL_TEXTURE4 */
- { 34812, 0x000084C4 }, /* GL_TEXTURE4_ARB */
- { 34828, 0x000084C5 }, /* GL_TEXTURE5 */
- { 34840, 0x000084C5 }, /* GL_TEXTURE5_ARB */
- { 34856, 0x000084C6 }, /* GL_TEXTURE6 */
- { 34868, 0x000084C6 }, /* GL_TEXTURE6_ARB */
- { 34884, 0x000084C7 }, /* GL_TEXTURE7 */
- { 34896, 0x000084C7 }, /* GL_TEXTURE7_ARB */
- { 34912, 0x000084C8 }, /* GL_TEXTURE8 */
- { 34924, 0x000084C8 }, /* GL_TEXTURE8_ARB */
- { 34940, 0x000084C9 }, /* GL_TEXTURE9 */
- { 34952, 0x000084C9 }, /* GL_TEXTURE9_ARB */
- { 34968, 0x00000DE0 }, /* GL_TEXTURE_1D */
- { 34982, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
- { 35006, 0x00000DE1 }, /* GL_TEXTURE_2D */
- { 35020, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
- { 35044, 0x0000806F }, /* GL_TEXTURE_3D */
- { 35058, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
- { 35080, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
- { 35106, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
- { 35128, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
- { 35150, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- { 35182, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
- { 35204, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- { 35236, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
- { 35258, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
- { 35286, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
- { 35318, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- { 35351, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
- { 35383, 0x00040000 }, /* GL_TEXTURE_BIT */
- { 35398, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
- { 35419, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
- { 35444, 0x00001005 }, /* GL_TEXTURE_BORDER */
- { 35462, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
- { 35486, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- { 35517, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- { 35547, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- { 35577, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- { 35612, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- { 35643, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- { 35681, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
- { 35708, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- { 35740, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- { 35774, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
- { 35798, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
- { 35826, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
- { 35850, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
- { 35878, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- { 35911, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
- { 35935, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
- { 35957, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
- { 35979, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
- { 36005, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
- { 36039, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- { 36072, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
- { 36109, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
- { 36137, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
- { 36169, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
- { 36192, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- { 36230, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
- { 36272, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- { 36303, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- { 36331, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- { 36361, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- { 36389, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
- { 36409, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
- { 36433, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- { 36464, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
- { 36499, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- { 36530, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
- { 36565, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- { 36596, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
- { 36631, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- { 36662, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
- { 36697, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- { 36728, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
- { 36763, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- { 36794, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
- { 36829, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- { 36858, 0x00008071 }, /* GL_TEXTURE_DEPTH */
- { 36875, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
- { 36897, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
- { 36923, 0x00002300 }, /* GL_TEXTURE_ENV */
- { 36938, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
- { 36959, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
- { 36979, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
- { 37005, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
- { 37025, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
- { 37042, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
- { 37059, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
- { 37076, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
- { 37093, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
- { 37118, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
- { 37140, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
- { 37166, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
- { 37184, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
- { 37210, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
- { 37236, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
- { 37266, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
- { 37293, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
- { 37318, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
- { 37338, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
- { 37362, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- { 37389, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- { 37416, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- { 37443, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
- { 37469, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
- { 37499, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
- { 37521, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
- { 37539, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- { 37569, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- { 37597, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- { 37625, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- { 37653, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
- { 37674, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
- { 37693, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
- { 37715, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
- { 37734, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
- { 37754, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- { 37784, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- { 37815, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
- { 37840, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
- { 37864, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
- { 37884, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
- { 37908, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
- { 37928, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
- { 37951, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
- { 37975, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */
- { 38003, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- { 38033, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
- { 38058, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- { 38092, 0x00001000 }, /* GL_TEXTURE_WIDTH */
- { 38109, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
- { 38127, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
- { 38145, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
- { 38163, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
- { 38182, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
- { 38202, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
- { 38221, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- { 38250, 0x00001000 }, /* GL_TRANSFORM_BIT */
- { 38267, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
- { 38308, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
- { 38341, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
- { 38379, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
- { 38417, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
- { 38456, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
- { 38501, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
- { 38536, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
- { 38581, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
- { 38607, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
- { 38637, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- { 38669, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- { 38699, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
- { 38733, 0x0000862C }, /* GL_TRANSPOSE_NV */
- { 38749, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- { 38780, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
- { 38815, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- { 38843, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
- { 38875, 0x00000004 }, /* GL_TRIANGLES */
- { 38888, 0x00000006 }, /* GL_TRIANGLE_FAN */
- { 38904, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
- { 38925, 0x00000005 }, /* GL_TRIANGLE_STRIP */
- { 38943, 0x00000001 }, /* GL_TRUE */
- { 38951, 0x00008A1C }, /* GL_UNDEFINED_APPLE */
- { 38970, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
- { 38990, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
- { 39013, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
- { 39033, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
- { 39054, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
- { 39076, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
- { 39098, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
- { 39118, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
- { 39139, 0x00009118 }, /* GL_UNSIGNALED */
- { 39153, 0x00001401 }, /* GL_UNSIGNED_BYTE */
- { 39170, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- { 39197, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
- { 39220, 0x00001405 }, /* GL_UNSIGNED_INT */
- { 39236, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
- { 39263, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
- { 39284, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
- { 39309, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
- { 39333, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- { 39364, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
- { 39388, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- { 39416, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
- { 39439, 0x00001403 }, /* GL_UNSIGNED_SHORT */
- { 39457, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- { 39487, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- { 39513, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- { 39543, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- { 39569, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
- { 39593, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- { 39621, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- { 39649, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
- { 39676, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- { 39708, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
- { 39739, 0x00008CA2 }, /* GL_UPPER_LEFT */
- { 39753, 0x00002A20 }, /* GL_V2F */
- { 39760, 0x00002A21 }, /* GL_V3F */
- { 39767, 0x00008B83 }, /* GL_VALIDATE_STATUS */
- { 39786, 0x00001F00 }, /* GL_VENDOR */
- { 39796, 0x00001F02 }, /* GL_VERSION */
- { 39807, 0x00008074 }, /* GL_VERTEX_ARRAY */
- { 39823, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
- { 39847, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
- { 39877, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- { 39908, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
- { 39943, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
- { 39967, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
- { 39988, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
- { 40011, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
- { 40032, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- { 40059, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- { 40087, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- { 40115, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- { 40143, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- { 40171, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- { 40199, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- { 40227, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- { 40254, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- { 40281, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- { 40308, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- { 40335, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- { 40362, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- { 40389, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- { 40416, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- { 40443, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- { 40470, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- { 40508, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
- { 40550, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- { 40581, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
- { 40616, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- { 40650, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
- { 40688, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- { 40719, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
- { 40754, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- { 40782, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
- { 40814, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- { 40844, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
- { 40878, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- { 40906, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
- { 40938, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
- { 40958, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
- { 40980, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
- { 41009, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
- { 41030, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- { 41059, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
- { 41092, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
- { 41124, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- { 41151, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
- { 41182, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
- { 41212, 0x00008B31 }, /* GL_VERTEX_SHADER */
- { 41229, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
- { 41250, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
- { 41277, 0x00000BA2 }, /* GL_VIEWPORT */
- { 41289, 0x00000800 }, /* GL_VIEWPORT_BIT */
- { 41305, 0x00008A1A }, /* GL_VOLATILE_APPLE */
- { 41323, 0x0000911D }, /* GL_WAIT_FAILED */
- { 41338, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
- { 41358, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- { 41389, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
- { 41424, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- { 41452, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- { 41477, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- { 41504, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- { 41529, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
- { 41553, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
- { 41572, 0x000088B9 }, /* GL_WRITE_ONLY */
- { 41586, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
- { 41604, 0x00001506 }, /* GL_XOR */
- { 41611, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
- { 41630, 0x00008757 }, /* GL_YCBCR_MESA */
- { 41644, 0x00000000 }, /* GL_ZERO */
- { 41652, 0x00000D16 }, /* GL_ZOOM_X */
- { 41662, 0x00000D17 }, /* GL_ZOOM_Y */
+ { 1204, 0x000080E1 }, /* GL_BGRA_EXT */
+ { 1216, 0x00001A00 }, /* GL_BITMAP */
+ { 1226, 0x00000704 }, /* GL_BITMAP_TOKEN */
+ { 1242, 0x00000BE2 }, /* GL_BLEND */
+ { 1251, 0x00008005 }, /* GL_BLEND_COLOR */
+ { 1266, 0x00008005 }, /* GL_BLEND_COLOR_EXT */
+ { 1285, 0x00000BE0 }, /* GL_BLEND_DST */
+ { 1298, 0x000080CA }, /* GL_BLEND_DST_ALPHA */
+ { 1317, 0x000080CA }, /* GL_BLEND_DST_ALPHA_OES */
+ { 1340, 0x000080C8 }, /* GL_BLEND_DST_RGB */
+ { 1357, 0x000080C8 }, /* GL_BLEND_DST_RGB_OES */
+ { 1378, 0x00008009 }, /* GL_BLEND_EQUATION */
+ { 1396, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */
+ { 1420, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_EXT */
+ { 1448, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA_OES */
+ { 1476, 0x00008009 }, /* GL_BLEND_EQUATION_EXT */
+ { 1498, 0x00008009 }, /* GL_BLEND_EQUATION_OES */
+ { 1520, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */
+ { 1542, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_EXT */
+ { 1568, 0x00008009 }, /* GL_BLEND_EQUATION_RGB_OES */
+ { 1594, 0x00000BE1 }, /* GL_BLEND_SRC */
+ { 1607, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */
+ { 1626, 0x000080CB }, /* GL_BLEND_SRC_ALPHA_OES */
+ { 1649, 0x000080C9 }, /* GL_BLEND_SRC_RGB */
+ { 1666, 0x000080C9 }, /* GL_BLEND_SRC_RGB_OES */
+ { 1687, 0x00001905 }, /* GL_BLUE */
+ { 1695, 0x00000D1B }, /* GL_BLUE_BIAS */
+ { 1708, 0x00000D54 }, /* GL_BLUE_BITS */
+ { 1721, 0x00000D1A }, /* GL_BLUE_SCALE */
+ { 1735, 0x00008B56 }, /* GL_BOOL */
+ { 1743, 0x00008B56 }, /* GL_BOOL_ARB */
+ { 1755, 0x00008B57 }, /* GL_BOOL_VEC2 */
+ { 1768, 0x00008B57 }, /* GL_BOOL_VEC2_ARB */
+ { 1785, 0x00008B58 }, /* GL_BOOL_VEC3 */
+ { 1798, 0x00008B58 }, /* GL_BOOL_VEC3_ARB */
+ { 1815, 0x00008B59 }, /* GL_BOOL_VEC4 */
+ { 1828, 0x00008B59 }, /* GL_BOOL_VEC4_ARB */
+ { 1845, 0x000088BB }, /* GL_BUFFER_ACCESS */
+ { 1862, 0x000088BB }, /* GL_BUFFER_ACCESS_ARB */
+ { 1883, 0x000088BB }, /* GL_BUFFER_ACCESS_OES */
+ { 1904, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
+ { 1935, 0x000088BC }, /* GL_BUFFER_MAPPED */
+ { 1952, 0x000088BC }, /* GL_BUFFER_MAPPED_ARB */
+ { 1973, 0x000088BC }, /* GL_BUFFER_MAPPED_OES */
+ { 1994, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */
+ { 2016, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_ARB */
+ { 2042, 0x000088BD }, /* GL_BUFFER_MAP_POINTER_OES */
+ { 2068, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */
+ { 2091, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
+ { 2125, 0x00008764 }, /* GL_BUFFER_SIZE */
+ { 2140, 0x00008764 }, /* GL_BUFFER_SIZE_ARB */
+ { 2159, 0x00008765 }, /* GL_BUFFER_USAGE */
+ { 2175, 0x00008765 }, /* GL_BUFFER_USAGE_ARB */
+ { 2195, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */
+ { 2214, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */
+ { 2240, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */
+ { 2263, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
+ { 2291, 0x0000877C }, /* GL_BUMP_TARGET_ATI */
+ { 2310, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */
+ { 2332, 0x00001400 }, /* GL_BYTE */
+ { 2340, 0x00002A24 }, /* GL_C3F_V3F */
+ { 2351, 0x00002A26 }, /* GL_C4F_N3F_V3F */
+ { 2366, 0x00002A22 }, /* GL_C4UB_V2F */
+ { 2378, 0x00002A23 }, /* GL_C4UB_V3F */
+ { 2390, 0x00000901 }, /* GL_CCW */
+ { 2397, 0x00002900 }, /* GL_CLAMP */
+ { 2406, 0x0000812D }, /* GL_CLAMP_TO_BORDER */
+ { 2425, 0x0000812D }, /* GL_CLAMP_TO_BORDER_ARB */
+ { 2448, 0x0000812D }, /* GL_CLAMP_TO_BORDER_SGIS */
+ { 2472, 0x0000812F }, /* GL_CLAMP_TO_EDGE */
+ { 2489, 0x0000812F }, /* GL_CLAMP_TO_EDGE_SGIS */
+ { 2511, 0x00001500 }, /* GL_CLEAR */
+ { 2520, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */
+ { 2545, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE_ARB */
+ { 2574, 0xFFFFFFFF }, /* GL_CLIENT_ALL_ATTRIB_BITS */
+ { 2600, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
+ { 2629, 0x00000001 }, /* GL_CLIENT_PIXEL_STORE_BIT */
+ { 2655, 0x00000002 }, /* GL_CLIENT_VERTEX_ARRAY_BIT */
+ { 2682, 0x00003000 }, /* GL_CLIP_PLANE0 */
+ { 2697, 0x00003001 }, /* GL_CLIP_PLANE1 */
+ { 2712, 0x00003002 }, /* GL_CLIP_PLANE2 */
+ { 2727, 0x00003003 }, /* GL_CLIP_PLANE3 */
+ { 2742, 0x00003004 }, /* GL_CLIP_PLANE4 */
+ { 2757, 0x00003005 }, /* GL_CLIP_PLANE5 */
+ { 2772, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
+ { 2805, 0x00000A00 }, /* GL_COEFF */
+ { 2814, 0x00001800 }, /* GL_COLOR */
+ { 2823, 0x00008076 }, /* GL_COLOR_ARRAY */
+ { 2838, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */
+ { 2868, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 2902, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */
+ { 2925, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */
+ { 2945, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */
+ { 2967, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */
+ { 2987, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */
+ { 3008, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_EXT */
+ { 3033, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0_OES */
+ { 3058, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */
+ { 3079, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */
+ { 3101, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10_EXT */
+ { 3127, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */
+ { 3149, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11_EXT */
+ { 3175, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */
+ { 3197, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12_EXT */
+ { 3223, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */
+ { 3245, 0x00008CED }, /* GL_COLOR_ATTACHMENT13_EXT */
+ { 3271, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */
+ { 3293, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14_EXT */
+ { 3319, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */
+ { 3341, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15_EXT */
+ { 3367, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1_EXT */
+ { 3392, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */
+ { 3413, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2_EXT */
+ { 3438, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */
+ { 3459, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3_EXT */
+ { 3484, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */
+ { 3505, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4_EXT */
+ { 3530, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */
+ { 3551, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5_EXT */
+ { 3576, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */
+ { 3597, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6_EXT */
+ { 3622, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */
+ { 3643, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7_EXT */
+ { 3668, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */
+ { 3689, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8_EXT */
+ { 3714, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */
+ { 3735, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9_EXT */
+ { 3760, 0x00004000 }, /* GL_COLOR_BUFFER_BIT */
+ { 3780, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */
+ { 3801, 0x00001900 }, /* GL_COLOR_INDEX */
+ { 3816, 0x00001603 }, /* GL_COLOR_INDEXES */
+ { 3833, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */
+ { 3851, 0x00000B57 }, /* GL_COLOR_MATERIAL */
+ { 3869, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */
+ { 3892, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */
+ { 3920, 0x000080B1 }, /* GL_COLOR_MATRIX */
+ { 3936, 0x000080B1 }, /* GL_COLOR_MATRIX_SGI */
+ { 3956, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */
+ { 3984, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 4016, 0x00008458 }, /* GL_COLOR_SUM */
+ { 4029, 0x00008458 }, /* GL_COLOR_SUM_ARB */
+ { 4046, 0x000080D0 }, /* GL_COLOR_TABLE */
+ { 4061, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */
+ { 4087, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_EXT */
+ { 4117, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE_SGI */
+ { 4147, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */
+ { 4167, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS_SGI */
+ { 4191, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */
+ { 4216, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_EXT */
+ { 4245, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE_SGI */
+ { 4274, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */
+ { 4296, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_EXT */
+ { 4322, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT_SGI */
+ { 4348, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */
+ { 4374, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_EXT */
+ { 4404, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE_SGI */
+ { 4434, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */
+ { 4464, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_EXT */
+ { 4498, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE_SGI */
+ { 4532, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
+ { 4562, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_EXT */
+ { 4596, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE_SGI */
+ { 4630, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */
+ { 4654, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_EXT */
+ { 4682, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE_SGI */
+ { 4710, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */
+ { 4731, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE_SGI */
+ { 4756, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */
+ { 4777, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_EXT */
+ { 4802, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH_SGI */
+ { 4827, 0x00000C23 }, /* GL_COLOR_WRITEMASK */
+ { 4846, 0x00008570 }, /* GL_COMBINE */
+ { 4857, 0x00008503 }, /* GL_COMBINE4 */
+ { 4869, 0x00008572 }, /* GL_COMBINE_ALPHA */
+ { 4886, 0x00008572 }, /* GL_COMBINE_ALPHA_ARB */
+ { 4907, 0x00008572 }, /* GL_COMBINE_ALPHA_EXT */
+ { 4928, 0x00008570 }, /* GL_COMBINE_ARB */
+ { 4943, 0x00008570 }, /* GL_COMBINE_EXT */
+ { 4958, 0x00008571 }, /* GL_COMBINE_RGB */
+ { 4973, 0x00008571 }, /* GL_COMBINE_RGB_ARB */
+ { 4992, 0x00008571 }, /* GL_COMBINE_RGB_EXT */
+ { 5011, 0x0000884E }, /* GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT */
+ { 5047, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE */
+ { 5071, 0x0000884E }, /* GL_COMPARE_R_TO_TEXTURE_ARB */
+ { 5099, 0x00001300 }, /* GL_COMPILE */
+ { 5110, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */
+ { 5133, 0x00008B81 }, /* GL_COMPILE_STATUS */
+ { 5151, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */
+ { 5171, 0x000084E9 }, /* GL_COMPRESSED_ALPHA_ARB */
+ { 5195, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */
+ { 5219, 0x000084EC }, /* GL_COMPRESSED_INTENSITY_ARB */
+ { 5247, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */
+ { 5271, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ { 5301, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA_ARB */
+ { 5335, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE_ARB */
+ { 5363, 0x000084ED }, /* GL_COMPRESSED_RGB */
+ { 5381, 0x000084EE }, /* GL_COMPRESSED_RGBA */
+ { 5400, 0x000084EE }, /* GL_COMPRESSED_RGBA_ARB */
+ { 5423, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ { 5452, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ { 5485, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ { 5518, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ { 5551, 0x000084ED }, /* GL_COMPRESSED_RGB_ARB */
+ { 5573, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ { 5601, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ { 5633, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */
+ { 5658, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
+ { 5689, 0x00008C48 }, /* GL_COMPRESSED_SRGB */
+ { 5708, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */
+ { 5733, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ { 5763, 0x0000911C }, /* GL_CONDITION_SATISFIED */
+ { 5786, 0x00008576 }, /* GL_CONSTANT */
+ { 5798, 0x00008003 }, /* GL_CONSTANT_ALPHA */
+ { 5816, 0x00008003 }, /* GL_CONSTANT_ALPHA_EXT */
+ { 5838, 0x00008576 }, /* GL_CONSTANT_ARB */
+ { 5854, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */
+ { 5878, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */
+ { 5900, 0x00008001 }, /* GL_CONSTANT_COLOR */
+ { 5918, 0x00008001 }, /* GL_CONSTANT_COLOR_EXT */
+ { 5940, 0x00008576 }, /* GL_CONSTANT_EXT */
+ { 5956, 0x00008010 }, /* GL_CONVOLUTION_1D */
+ { 5974, 0x00008011 }, /* GL_CONVOLUTION_2D */
+ { 5992, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */
+ { 6020, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR_HP */
+ { 6051, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */
+ { 6078, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE_EXT */
+ { 6109, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */
+ { 6136, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS_EXT */
+ { 6167, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */
+ { 6195, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE_EXT */
+ { 6227, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */
+ { 6249, 0x00008017 }, /* GL_CONVOLUTION_FORMAT_EXT */
+ { 6275, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */
+ { 6297, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT_EXT */
+ { 6323, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */
+ { 6344, 0x00008018 }, /* GL_CONVOLUTION_WIDTH_EXT */
+ { 6369, 0x00008862 }, /* GL_COORD_REPLACE */
+ { 6386, 0x00008862 }, /* GL_COORD_REPLACE_ARB */
+ { 6407, 0x00008862 }, /* GL_COORD_REPLACE_NV */
+ { 6427, 0x00008862 }, /* GL_COORD_REPLACE_OES */
+ { 6448, 0x00001503 }, /* GL_COPY */
+ { 6456, 0x0000150C }, /* GL_COPY_INVERTED */
+ { 6473, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */
+ { 6493, 0x00008F36 }, /* GL_COPY_READ_BUFFER */
+ { 6513, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */
+ { 6534, 0x00000B44 }, /* GL_CULL_FACE */
+ { 6547, 0x00000B45 }, /* GL_CULL_FACE_MODE */
+ { 6565, 0x000081AA }, /* GL_CULL_VERTEX_EXT */
+ { 6584, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ { 6616, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ { 6651, 0x00008626 }, /* GL_CURRENT_ATTRIB_NV */
+ { 6672, 0x00000001 }, /* GL_CURRENT_BIT */
+ { 6687, 0x00000B00 }, /* GL_CURRENT_COLOR */
+ { 6704, 0x00008453 }, /* GL_CURRENT_FOG_COORD */
+ { 6725, 0x00008453 }, /* GL_CURRENT_FOG_COORDINATE */
+ { 6751, 0x00000B01 }, /* GL_CURRENT_INDEX */
+ { 6768, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */
+ { 6790, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ { 6818, 0x00008641 }, /* GL_CURRENT_MATRIX_NV */
+ { 6839, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ { 6873, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_NV */
+ { 6906, 0x00000B02 }, /* GL_CURRENT_NORMAL */
+ { 6924, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ { 6954, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_OES */
+ { 6984, 0x00008B8D }, /* GL_CURRENT_PROGRAM */
+ { 7003, 0x00008865 }, /* GL_CURRENT_QUERY */
+ { 7020, 0x00008865 }, /* GL_CURRENT_QUERY_ARB */
+ { 7041, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */
+ { 7065, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */
+ { 7092, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */
+ { 7116, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */
+ { 7143, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */
+ { 7176, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ { 7210, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ { 7243, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */
+ { 7270, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */
+ { 7296, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */
+ { 7321, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB_ARB */
+ { 7350, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */
+ { 7372, 0x00000900 }, /* GL_CW */
+ { 7378, 0x0000875B }, /* GL_DEBUG_ASSERT_MESA */
+ { 7399, 0x00008759 }, /* GL_DEBUG_OBJECT_MESA */
+ { 7420, 0x0000875A }, /* GL_DEBUG_PRINT_MESA */
+ { 7440, 0x00002101 }, /* GL_DECAL */
+ { 7449, 0x00001E03 }, /* GL_DECR */
+ { 7457, 0x00008508 }, /* GL_DECR_WRAP */
+ { 7470, 0x00008508 }, /* GL_DECR_WRAP_EXT */
+ { 7487, 0x00008B80 }, /* GL_DELETE_STATUS */
+ { 7504, 0x00001801 }, /* GL_DEPTH */
+ { 7513, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */
+ { 7533, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_EXT */
+ { 7557, 0x000088F0 }, /* GL_DEPTH24_STENCIL8_OES */
+ { 7581, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */
+ { 7601, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_EXT */
+ { 7625, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT_OES */
+ { 7649, 0x00000D1F }, /* GL_DEPTH_BIAS */
+ { 7663, 0x00000D56 }, /* GL_DEPTH_BITS */
+ { 7677, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */
+ { 7697, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ { 7722, 0x00000100 }, /* GL_DEPTH_BUFFER_BIT */
+ { 7742, 0x0000864F }, /* GL_DEPTH_CLAMP */
+ { 7757, 0x0000864F }, /* GL_DEPTH_CLAMP_NV */
+ { 7775, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */
+ { 7796, 0x00001902 }, /* GL_DEPTH_COMPONENT */
+ { 7815, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */
+ { 7836, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_ARB */
+ { 7861, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_OES */
+ { 7886, 0x000081A5 }, /* GL_DEPTH_COMPONENT16_SGIX */
+ { 7912, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */
+ { 7933, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_ARB */
+ { 7958, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_OES */
+ { 7983, 0x000081A6 }, /* GL_DEPTH_COMPONENT24_SGIX */
+ { 8009, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */
+ { 8030, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_ARB */
+ { 8055, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_OES */
+ { 8080, 0x000081A7 }, /* GL_DEPTH_COMPONENT32_SGIX */
+ { 8106, 0x00000B74 }, /* GL_DEPTH_FUNC */
+ { 8120, 0x00000B70 }, /* GL_DEPTH_RANGE */
+ { 8135, 0x00000D1E }, /* GL_DEPTH_SCALE */
+ { 8150, 0x000084F9 }, /* GL_DEPTH_STENCIL */
+ { 8167, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ { 8195, 0x000084F9 }, /* GL_DEPTH_STENCIL_EXT */
+ { 8216, 0x000084F9 }, /* GL_DEPTH_STENCIL_NV */
+ { 8236, 0x000084F9 }, /* GL_DEPTH_STENCIL_OES */
+ { 8257, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ { 8285, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ { 8313, 0x00000B71 }, /* GL_DEPTH_TEST */
+ { 8327, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */
+ { 8349, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE_ARB */
+ { 8375, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */
+ { 8394, 0x00001201 }, /* GL_DIFFUSE */
+ { 8405, 0x00000BD0 }, /* GL_DITHER */
+ { 8415, 0x00000A02 }, /* GL_DOMAIN */
+ { 8425, 0x00001100 }, /* GL_DONT_CARE */
+ { 8438, 0x000086AE }, /* GL_DOT3_RGB */
+ { 8450, 0x000086AF }, /* GL_DOT3_RGBA */
+ { 8463, 0x000086AF }, /* GL_DOT3_RGBA_ARB */
+ { 8480, 0x00008741 }, /* GL_DOT3_RGBA_EXT */
+ { 8497, 0x000086AE }, /* GL_DOT3_RGB_ARB */
+ { 8513, 0x00008740 }, /* GL_DOT3_RGB_EXT */
+ { 8529, 0x0000140A }, /* GL_DOUBLE */
+ { 8539, 0x00000C32 }, /* GL_DOUBLEBUFFER */
+ { 8555, 0x00000C01 }, /* GL_DRAW_BUFFER */
+ { 8570, 0x00008825 }, /* GL_DRAW_BUFFER0 */
+ { 8586, 0x00008825 }, /* GL_DRAW_BUFFER0_ARB */
+ { 8606, 0x00008825 }, /* GL_DRAW_BUFFER0_ATI */
+ { 8626, 0x00008826 }, /* GL_DRAW_BUFFER1 */
+ { 8642, 0x0000882F }, /* GL_DRAW_BUFFER10 */
+ { 8659, 0x0000882F }, /* GL_DRAW_BUFFER10_ARB */
+ { 8680, 0x0000882F }, /* GL_DRAW_BUFFER10_ATI */
+ { 8701, 0x00008830 }, /* GL_DRAW_BUFFER11 */
+ { 8718, 0x00008830 }, /* GL_DRAW_BUFFER11_ARB */
+ { 8739, 0x00008830 }, /* GL_DRAW_BUFFER11_ATI */
+ { 8760, 0x00008831 }, /* GL_DRAW_BUFFER12 */
+ { 8777, 0x00008831 }, /* GL_DRAW_BUFFER12_ARB */
+ { 8798, 0x00008831 }, /* GL_DRAW_BUFFER12_ATI */
+ { 8819, 0x00008832 }, /* GL_DRAW_BUFFER13 */
+ { 8836, 0x00008832 }, /* GL_DRAW_BUFFER13_ARB */
+ { 8857, 0x00008832 }, /* GL_DRAW_BUFFER13_ATI */
+ { 8878, 0x00008833 }, /* GL_DRAW_BUFFER14 */
+ { 8895, 0x00008833 }, /* GL_DRAW_BUFFER14_ARB */
+ { 8916, 0x00008833 }, /* GL_DRAW_BUFFER14_ATI */
+ { 8937, 0x00008834 }, /* GL_DRAW_BUFFER15 */
+ { 8954, 0x00008834 }, /* GL_DRAW_BUFFER15_ARB */
+ { 8975, 0x00008834 }, /* GL_DRAW_BUFFER15_ATI */
+ { 8996, 0x00008826 }, /* GL_DRAW_BUFFER1_ARB */
+ { 9016, 0x00008826 }, /* GL_DRAW_BUFFER1_ATI */
+ { 9036, 0x00008827 }, /* GL_DRAW_BUFFER2 */
+ { 9052, 0x00008827 }, /* GL_DRAW_BUFFER2_ARB */
+ { 9072, 0x00008827 }, /* GL_DRAW_BUFFER2_ATI */
+ { 9092, 0x00008828 }, /* GL_DRAW_BUFFER3 */
+ { 9108, 0x00008828 }, /* GL_DRAW_BUFFER3_ARB */
+ { 9128, 0x00008828 }, /* GL_DRAW_BUFFER3_ATI */
+ { 9148, 0x00008829 }, /* GL_DRAW_BUFFER4 */
+ { 9164, 0x00008829 }, /* GL_DRAW_BUFFER4_ARB */
+ { 9184, 0x00008829 }, /* GL_DRAW_BUFFER4_ATI */
+ { 9204, 0x0000882A }, /* GL_DRAW_BUFFER5 */
+ { 9220, 0x0000882A }, /* GL_DRAW_BUFFER5_ARB */
+ { 9240, 0x0000882A }, /* GL_DRAW_BUFFER5_ATI */
+ { 9260, 0x0000882B }, /* GL_DRAW_BUFFER6 */
+ { 9276, 0x0000882B }, /* GL_DRAW_BUFFER6_ARB */
+ { 9296, 0x0000882B }, /* GL_DRAW_BUFFER6_ATI */
+ { 9316, 0x0000882C }, /* GL_DRAW_BUFFER7 */
+ { 9332, 0x0000882C }, /* GL_DRAW_BUFFER7_ARB */
+ { 9352, 0x0000882C }, /* GL_DRAW_BUFFER7_ATI */
+ { 9372, 0x0000882D }, /* GL_DRAW_BUFFER8 */
+ { 9388, 0x0000882D }, /* GL_DRAW_BUFFER8_ARB */
+ { 9408, 0x0000882D }, /* GL_DRAW_BUFFER8_ATI */
+ { 9428, 0x0000882E }, /* GL_DRAW_BUFFER9 */
+ { 9444, 0x0000882E }, /* GL_DRAW_BUFFER9_ARB */
+ { 9464, 0x0000882E }, /* GL_DRAW_BUFFER9_ATI */
+ { 9484, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */
+ { 9504, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */
+ { 9532, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING_EXT */
+ { 9564, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER_EXT */
+ { 9588, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */
+ { 9608, 0x00000304 }, /* GL_DST_ALPHA */
+ { 9621, 0x00000306 }, /* GL_DST_COLOR */
+ { 9634, 0x0000877A }, /* GL_DU8DV8_ATI */
+ { 9648, 0x00008779 }, /* GL_DUDV_ATI */
+ { 9660, 0x000088EA }, /* GL_DYNAMIC_COPY */
+ { 9676, 0x000088EA }, /* GL_DYNAMIC_COPY_ARB */
+ { 9696, 0x000088E8 }, /* GL_DYNAMIC_DRAW */
+ { 9712, 0x000088E8 }, /* GL_DYNAMIC_DRAW_ARB */
+ { 9732, 0x000088E9 }, /* GL_DYNAMIC_READ */
+ { 9748, 0x000088E9 }, /* GL_DYNAMIC_READ_ARB */
+ { 9768, 0x00000B43 }, /* GL_EDGE_FLAG */
+ { 9781, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */
+ { 9800, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ { 9834, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB */
+ { 9872, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ { 9899, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ { 9925, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */
+ { 9949, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ { 9981, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB */
+ { 10017, 0x00001600 }, /* GL_EMISSION */
+ { 10029, 0x00002000 }, /* GL_ENABLE_BIT */
+ { 10043, 0x00000202 }, /* GL_EQUAL */
+ { 10052, 0x00001509 }, /* GL_EQUIV */
+ { 10061, 0x00010000 }, /* GL_EVAL_BIT */
+ { 10073, 0x00000800 }, /* GL_EXP */
+ { 10080, 0x00000801 }, /* GL_EXP2 */
+ { 10088, 0x00001F03 }, /* GL_EXTENSIONS */
+ { 10102, 0x00002400 }, /* GL_EYE_LINEAR */
+ { 10116, 0x00002502 }, /* GL_EYE_PLANE */
+ { 10129, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ { 10154, 0x0000855B }, /* GL_EYE_RADIAL_NV */
+ { 10171, 0x00000000 }, /* GL_FALSE */
+ { 10180, 0x00001101 }, /* GL_FASTEST */
+ { 10191, 0x00001C01 }, /* GL_FEEDBACK */
+ { 10203, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */
+ { 10230, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */
+ { 10254, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */
+ { 10278, 0x00001B02 }, /* GL_FILL */
+ { 10286, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */
+ { 10313, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION_EXT */
+ { 10344, 0x0000140C }, /* GL_FIXED */
+ { 10353, 0x0000140C }, /* GL_FIXED_OES */
+ { 10366, 0x00001D00 }, /* GL_FLAT */
+ { 10374, 0x00001406 }, /* GL_FLOAT */
+ { 10383, 0x00008B5A }, /* GL_FLOAT_MAT2 */
+ { 10397, 0x00008B5A }, /* GL_FLOAT_MAT2_ARB */
+ { 10415, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */
+ { 10431, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */
+ { 10447, 0x00008B5B }, /* GL_FLOAT_MAT3 */
+ { 10461, 0x00008B5B }, /* GL_FLOAT_MAT3_ARB */
+ { 10479, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */
+ { 10495, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */
+ { 10511, 0x00008B5C }, /* GL_FLOAT_MAT4 */
+ { 10525, 0x00008B5C }, /* GL_FLOAT_MAT4_ARB */
+ { 10543, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */
+ { 10559, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */
+ { 10575, 0x00008B50 }, /* GL_FLOAT_VEC2 */
+ { 10589, 0x00008B50 }, /* GL_FLOAT_VEC2_ARB */
+ { 10607, 0x00008B51 }, /* GL_FLOAT_VEC3 */
+ { 10621, 0x00008B51 }, /* GL_FLOAT_VEC3_ARB */
+ { 10639, 0x00008B52 }, /* GL_FLOAT_VEC4 */
+ { 10653, 0x00008B52 }, /* GL_FLOAT_VEC4_ARB */
+ { 10671, 0x00000B60 }, /* GL_FOG */
+ { 10678, 0x00000080 }, /* GL_FOG_BIT */
+ { 10689, 0x00000B66 }, /* GL_FOG_COLOR */
+ { 10702, 0x00008451 }, /* GL_FOG_COORD */
+ { 10715, 0x00008451 }, /* GL_FOG_COORDINATE */
+ { 10733, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */
+ { 10757, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ { 10796, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB */
+ { 10839, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ { 10871, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ { 10902, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ { 10931, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */
+ { 10956, 0x00008457 }, /* GL_FOG_COORD_ARRAY */
+ { 10975, 0x0000889D }, /* GL_FOG_COORD_ARRAY_BUFFER_BINDING */
+ { 11009, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */
+ { 11036, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */
+ { 11062, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */
+ { 11086, 0x00008450 }, /* GL_FOG_COORD_SRC */
+ { 11103, 0x00000B62 }, /* GL_FOG_DENSITY */
+ { 11118, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */
+ { 11142, 0x00000B64 }, /* GL_FOG_END */
+ { 11153, 0x00000C54 }, /* GL_FOG_HINT */
+ { 11165, 0x00000B61 }, /* GL_FOG_INDEX */
+ { 11178, 0x00000B65 }, /* GL_FOG_MODE */
+ { 11190, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */
+ { 11209, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */
+ { 11234, 0x00000B63 }, /* GL_FOG_START */
+ { 11247, 0x00008452 }, /* GL_FRAGMENT_DEPTH */
+ { 11265, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */
+ { 11289, 0x00008B30 }, /* GL_FRAGMENT_SHADER */
+ { 11308, 0x00008B30 }, /* GL_FRAGMENT_SHADER_ARB */
+ { 11331, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ { 11366, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES */
+ { 11405, 0x00008D40 }, /* GL_FRAMEBUFFER */
+ { 11420, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ { 11457, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ { 11493, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ { 11534, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ { 11575, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ { 11612, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ { 11649, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ { 11687, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT */
+ { 11729, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES */
+ { 11771, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ { 11809, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT */
+ { 11851, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES */
+ { 11893, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ { 11928, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ { 11967, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT */
+ { 12016, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES */
+ { 12065, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ { 12113, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT */
+ { 12165, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES */
+ { 12217, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ { 12257, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
+ { 12301, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ { 12341, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT */
+ { 12385, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES */
+ { 12429, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */
+ { 12452, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_EXT */
+ { 12479, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING_OES */
+ { 12506, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */
+ { 12530, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_EXT */
+ { 12558, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE_OES */
+ { 12586, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */
+ { 12609, 0x00008D40 }, /* GL_FRAMEBUFFER_EXT */
+ { 12628, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ { 12665, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT */
+ { 12706, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES */
+ { 12747, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */
+ { 12784, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ { 12825, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES */
+ { 12866, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
+ { 12904, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT */
+ { 12946, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES */
+ { 12988, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ { 13039, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ { 13077, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES */
+ { 13115, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ { 13160, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT */
+ { 13209, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES */
+ { 13258, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ { 13296, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT */
+ { 13338, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
+ { 13376, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT */
+ { 13418, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES */
+ { 13460, 0x00008D40 }, /* GL_FRAMEBUFFER_OES */
+ { 13479, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ { 13511, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */
+ { 13536, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ { 13563, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_EXT */
+ { 13594, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED_OES */
+ { 13625, 0x00000404 }, /* GL_FRONT */
+ { 13634, 0x00000408 }, /* GL_FRONT_AND_BACK */
+ { 13652, 0x00000B46 }, /* GL_FRONT_FACE */
+ { 13666, 0x00000400 }, /* GL_FRONT_LEFT */
+ { 13680, 0x00000401 }, /* GL_FRONT_RIGHT */
+ { 13695, 0x00008006 }, /* GL_FUNC_ADD */
+ { 13707, 0x00008006 }, /* GL_FUNC_ADD_EXT */
+ { 13723, 0x00008006 }, /* GL_FUNC_ADD_OES */
+ { 13739, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */
+ { 13764, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_EXT */
+ { 13793, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT_OES */
+ { 13822, 0x0000800A }, /* GL_FUNC_SUBTRACT */
+ { 13839, 0x0000800A }, /* GL_FUNC_SUBTRACT_EXT */
+ { 13860, 0x0000800A }, /* GL_FUNC_SUBTRACT_OES */
+ { 13881, 0x00008191 }, /* GL_GENERATE_MIPMAP */
+ { 13900, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */
+ { 13924, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT_SGIS */
+ { 13953, 0x00008191 }, /* GL_GENERATE_MIPMAP_SGIS */
+ { 13977, 0x00000206 }, /* GL_GEQUAL */
+ { 13987, 0x00000204 }, /* GL_GREATER */
+ { 13998, 0x00001904 }, /* GL_GREEN */
+ { 14007, 0x00000D19 }, /* GL_GREEN_BIAS */
+ { 14021, 0x00000D53 }, /* GL_GREEN_BITS */
+ { 14035, 0x00000D18 }, /* GL_GREEN_SCALE */
+ { 14050, 0x0000140B }, /* GL_HALF_FLOAT */
+ { 14064, 0x00008D61 }, /* GL_HALF_FLOAT_OES */
+ { 14082, 0x00008DF2 }, /* GL_HIGH_FLOAT */
+ { 14096, 0x00008DF5 }, /* GL_HIGH_INT */
+ { 14108, 0x00008000 }, /* GL_HINT_BIT */
+ { 14120, 0x00008024 }, /* GL_HISTOGRAM */
+ { 14133, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */
+ { 14157, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE_EXT */
+ { 14185, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */
+ { 14208, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE_EXT */
+ { 14235, 0x00008024 }, /* GL_HISTOGRAM_EXT */
+ { 14252, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */
+ { 14272, 0x00008027 }, /* GL_HISTOGRAM_FORMAT_EXT */
+ { 14296, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */
+ { 14320, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE_EXT */
+ { 14348, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ { 14376, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE_EXT */
+ { 14408, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */
+ { 14430, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE_EXT */
+ { 14456, 0x0000802D }, /* GL_HISTOGRAM_SINK */
+ { 14474, 0x0000802D }, /* GL_HISTOGRAM_SINK_EXT */
+ { 14496, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */
+ { 14515, 0x00008026 }, /* GL_HISTOGRAM_WIDTH_EXT */
+ { 14538, 0x0000862A }, /* GL_IDENTITY_NV */
+ { 14553, 0x00008150 }, /* GL_IGNORE_BORDER_HP */
+ { 14573, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */
+ { 14609, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ { 14649, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */
+ { 14683, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ { 14721, 0x00001E02 }, /* GL_INCR */
+ { 14729, 0x00008507 }, /* GL_INCR_WRAP */
+ { 14742, 0x00008507 }, /* GL_INCR_WRAP_EXT */
+ { 14759, 0x00008222 }, /* GL_INDEX */
+ { 14768, 0x00008077 }, /* GL_INDEX_ARRAY */
+ { 14783, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ { 14813, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING_ARB */
+ { 14847, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */
+ { 14870, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */
+ { 14892, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */
+ { 14912, 0x00000D51 }, /* GL_INDEX_BITS */
+ { 14926, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */
+ { 14947, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */
+ { 14965, 0x00000C30 }, /* GL_INDEX_MODE */
+ { 14979, 0x00000D13 }, /* GL_INDEX_OFFSET */
+ { 14995, 0x00000D12 }, /* GL_INDEX_SHIFT */
+ { 15010, 0x00000C21 }, /* GL_INDEX_WRITEMASK */
+ { 15029, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */
+ { 15048, 0x00001404 }, /* GL_INT */
+ { 15055, 0x00008049 }, /* GL_INTENSITY */
+ { 15068, 0x0000804C }, /* GL_INTENSITY12 */
+ { 15083, 0x0000804C }, /* GL_INTENSITY12_EXT */
+ { 15102, 0x0000804D }, /* GL_INTENSITY16 */
+ { 15117, 0x0000804D }, /* GL_INTENSITY16_EXT */
+ { 15136, 0x0000804A }, /* GL_INTENSITY4 */
+ { 15150, 0x0000804A }, /* GL_INTENSITY4_EXT */
+ { 15168, 0x0000804B }, /* GL_INTENSITY8 */
+ { 15182, 0x0000804B }, /* GL_INTENSITY8_EXT */
+ { 15200, 0x00008049 }, /* GL_INTENSITY_EXT */
+ { 15217, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS_EXT */
+ { 15244, 0x00008575 }, /* GL_INTERPOLATE */
+ { 15259, 0x00008575 }, /* GL_INTERPOLATE_ARB */
+ { 15278, 0x00008575 }, /* GL_INTERPOLATE_EXT */
+ { 15297, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */
+ { 15319, 0x00008B53 }, /* GL_INT_VEC2 */
+ { 15331, 0x00008B53 }, /* GL_INT_VEC2_ARB */
+ { 15347, 0x00008B54 }, /* GL_INT_VEC3 */
+ { 15359, 0x00008B54 }, /* GL_INT_VEC3_ARB */
+ { 15375, 0x00008B55 }, /* GL_INT_VEC4 */
+ { 15387, 0x00008B55 }, /* GL_INT_VEC4_ARB */
+ { 15403, 0x00000500 }, /* GL_INVALID_ENUM */
+ { 15419, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ { 15452, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_EXT */
+ { 15489, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION_OES */
+ { 15526, 0x00000502 }, /* GL_INVALID_OPERATION */
+ { 15547, 0x00000501 }, /* GL_INVALID_VALUE */
+ { 15564, 0x0000862B }, /* GL_INVERSE_NV */
+ { 15578, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */
+ { 15602, 0x0000150A }, /* GL_INVERT */
+ { 15612, 0x00001E00 }, /* GL_KEEP */
+ { 15620, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */
+ { 15646, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION_EXT */
+ { 15676, 0x00000406 }, /* GL_LEFT */
+ { 15684, 0x00000203 }, /* GL_LEQUAL */
+ { 15694, 0x00000201 }, /* GL_LESS */
+ { 15702, 0x00004000 }, /* GL_LIGHT0 */
+ { 15712, 0x00004001 }, /* GL_LIGHT1 */
+ { 15722, 0x00004002 }, /* GL_LIGHT2 */
+ { 15732, 0x00004003 }, /* GL_LIGHT3 */
+ { 15742, 0x00004004 }, /* GL_LIGHT4 */
+ { 15752, 0x00004005 }, /* GL_LIGHT5 */
+ { 15762, 0x00004006 }, /* GL_LIGHT6 */
+ { 15772, 0x00004007 }, /* GL_LIGHT7 */
+ { 15782, 0x00000B50 }, /* GL_LIGHTING */
+ { 15794, 0x00000040 }, /* GL_LIGHTING_BIT */
+ { 15810, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */
+ { 15833, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ { 15862, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL_EXT */
+ { 15895, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ { 15923, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */
+ { 15947, 0x00001B01 }, /* GL_LINE */
+ { 15955, 0x00002601 }, /* GL_LINEAR */
+ { 15965, 0x00001208 }, /* GL_LINEAR_ATTENUATION */
+ { 15987, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ { 16017, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ { 16048, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */
+ { 16072, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */
+ { 16097, 0x00000001 }, /* GL_LINES */
+ { 16106, 0x00000004 }, /* GL_LINE_BIT */
+ { 16118, 0x00000002 }, /* GL_LINE_LOOP */
+ { 16131, 0x00000707 }, /* GL_LINE_RESET_TOKEN */
+ { 16151, 0x00000B20 }, /* GL_LINE_SMOOTH */
+ { 16166, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */
+ { 16186, 0x00000B24 }, /* GL_LINE_STIPPLE */
+ { 16202, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */
+ { 16226, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */
+ { 16249, 0x00000003 }, /* GL_LINE_STRIP */
+ { 16263, 0x00000702 }, /* GL_LINE_TOKEN */
+ { 16277, 0x00000B21 }, /* GL_LINE_WIDTH */
+ { 16291, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */
+ { 16317, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */
+ { 16337, 0x00008B82 }, /* GL_LINK_STATUS */
+ { 16352, 0x00000B32 }, /* GL_LIST_BASE */
+ { 16365, 0x00020000 }, /* GL_LIST_BIT */
+ { 16377, 0x00000B33 }, /* GL_LIST_INDEX */
+ { 16391, 0x00000B30 }, /* GL_LIST_MODE */
+ { 16404, 0x00000101 }, /* GL_LOAD */
+ { 16412, 0x00000BF1 }, /* GL_LOGIC_OP */
+ { 16424, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */
+ { 16441, 0x00008CA1 }, /* GL_LOWER_LEFT */
+ { 16455, 0x00008DF0 }, /* GL_LOW_FLOAT */
+ { 16468, 0x00008DF3 }, /* GL_LOW_INT */
+ { 16479, 0x00001909 }, /* GL_LUMINANCE */
+ { 16492, 0x00008041 }, /* GL_LUMINANCE12 */
+ { 16507, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */
+ { 16530, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12_EXT */
+ { 16557, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */
+ { 16579, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4_EXT */
+ { 16605, 0x00008041 }, /* GL_LUMINANCE12_EXT */
+ { 16624, 0x00008042 }, /* GL_LUMINANCE16 */
+ { 16639, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */
+ { 16662, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16_EXT */
+ { 16689, 0x00008042 }, /* GL_LUMINANCE16_EXT */
+ { 16708, 0x0000803F }, /* GL_LUMINANCE4 */
+ { 16722, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */
+ { 16743, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4_EXT */
+ { 16768, 0x0000803F }, /* GL_LUMINANCE4_EXT */
+ { 16786, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */
+ { 16807, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2_EXT */
+ { 16832, 0x00008040 }, /* GL_LUMINANCE8 */
+ { 16846, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */
+ { 16867, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8_EXT */
+ { 16892, 0x00008040 }, /* GL_LUMINANCE8_EXT */
+ { 16910, 0x0000190A }, /* GL_LUMINANCE_ALPHA */
+ { 16929, 0x00000D90 }, /* GL_MAP1_COLOR_4 */
+ { 16945, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */
+ { 16965, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */
+ { 16987, 0x00000D91 }, /* GL_MAP1_INDEX */
+ { 17001, 0x00000D92 }, /* GL_MAP1_NORMAL */
+ { 17016, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */
+ { 17040, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */
+ { 17064, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */
+ { 17088, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */
+ { 17112, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */
+ { 17129, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */
+ { 17146, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ { 17174, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ { 17203, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ { 17232, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ { 17261, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ { 17290, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ { 17319, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ { 17348, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ { 17376, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ { 17404, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ { 17432, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ { 17460, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ { 17488, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ { 17516, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ { 17544, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ { 17572, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ { 17600, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */
+ { 17616, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */
+ { 17636, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */
+ { 17658, 0x00000DB1 }, /* GL_MAP2_INDEX */
+ { 17672, 0x00000DB2 }, /* GL_MAP2_NORMAL */
+ { 17687, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */
+ { 17711, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */
+ { 17735, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */
+ { 17759, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */
+ { 17783, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */
+ { 17800, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */
+ { 17817, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ { 17845, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ { 17874, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ { 17903, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ { 17932, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ { 17961, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ { 17990, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ { 18019, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ { 18047, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ { 18075, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ { 18103, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ { 18131, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ { 18159, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ { 18187, 0x00008677 }, /* GL_MAP2_VERTEX_ATTRIB7_4_NV */
+ { 18215, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ { 18243, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ { 18271, 0x00000D10 }, /* GL_MAP_COLOR */
+ { 18284, 0x00000010 }, /* GL_MAP_FLUSH_EXPLICIT_BIT */
+ { 18310, 0x00000008 }, /* GL_MAP_INVALIDATE_BUFFER_BIT */
+ { 18339, 0x00000004 }, /* GL_MAP_INVALIDATE_RANGE_BIT */
+ { 18367, 0x00000001 }, /* GL_MAP_READ_BIT */
+ { 18383, 0x00000D11 }, /* GL_MAP_STENCIL */
+ { 18398, 0x00000020 }, /* GL_MAP_UNSYNCHRONIZED_BIT */
+ { 18424, 0x00000002 }, /* GL_MAP_WRITE_BIT */
+ { 18441, 0x000088C0 }, /* GL_MATRIX0_ARB */
+ { 18456, 0x00008630 }, /* GL_MATRIX0_NV */
+ { 18470, 0x000088CA }, /* GL_MATRIX10_ARB */
+ { 18486, 0x000088CB }, /* GL_MATRIX11_ARB */
+ { 18502, 0x000088CC }, /* GL_MATRIX12_ARB */
+ { 18518, 0x000088CD }, /* GL_MATRIX13_ARB */
+ { 18534, 0x000088CE }, /* GL_MATRIX14_ARB */
+ { 18550, 0x000088CF }, /* GL_MATRIX15_ARB */
+ { 18566, 0x000088D0 }, /* GL_MATRIX16_ARB */
+ { 18582, 0x000088D1 }, /* GL_MATRIX17_ARB */
+ { 18598, 0x000088D2 }, /* GL_MATRIX18_ARB */
+ { 18614, 0x000088D3 }, /* GL_MATRIX19_ARB */
+ { 18630, 0x000088C1 }, /* GL_MATRIX1_ARB */
+ { 18645, 0x00008631 }, /* GL_MATRIX1_NV */
+ { 18659, 0x000088D4 }, /* GL_MATRIX20_ARB */
+ { 18675, 0x000088D5 }, /* GL_MATRIX21_ARB */
+ { 18691, 0x000088D6 }, /* GL_MATRIX22_ARB */
+ { 18707, 0x000088D7 }, /* GL_MATRIX23_ARB */
+ { 18723, 0x000088D8 }, /* GL_MATRIX24_ARB */
+ { 18739, 0x000088D9 }, /* GL_MATRIX25_ARB */
+ { 18755, 0x000088DA }, /* GL_MATRIX26_ARB */
+ { 18771, 0x000088DB }, /* GL_MATRIX27_ARB */
+ { 18787, 0x000088DC }, /* GL_MATRIX28_ARB */
+ { 18803, 0x000088DD }, /* GL_MATRIX29_ARB */
+ { 18819, 0x000088C2 }, /* GL_MATRIX2_ARB */
+ { 18834, 0x00008632 }, /* GL_MATRIX2_NV */
+ { 18848, 0x000088DE }, /* GL_MATRIX30_ARB */
+ { 18864, 0x000088DF }, /* GL_MATRIX31_ARB */
+ { 18880, 0x000088C3 }, /* GL_MATRIX3_ARB */
+ { 18895, 0x00008633 }, /* GL_MATRIX3_NV */
+ { 18909, 0x000088C4 }, /* GL_MATRIX4_ARB */
+ { 18924, 0x00008634 }, /* GL_MATRIX4_NV */
+ { 18938, 0x000088C5 }, /* GL_MATRIX5_ARB */
+ { 18953, 0x00008635 }, /* GL_MATRIX5_NV */
+ { 18967, 0x000088C6 }, /* GL_MATRIX6_ARB */
+ { 18982, 0x00008636 }, /* GL_MATRIX6_NV */
+ { 18996, 0x000088C7 }, /* GL_MATRIX7_ARB */
+ { 19011, 0x00008637 }, /* GL_MATRIX7_NV */
+ { 19025, 0x000088C8 }, /* GL_MATRIX8_ARB */
+ { 19040, 0x000088C9 }, /* GL_MATRIX9_ARB */
+ { 19055, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ { 19081, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
+ { 19122, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_OES */
+ { 19148, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ { 19182, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_OES */
+ { 19216, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ { 19247, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_OES */
+ { 19278, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ { 19311, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_OES */
+ { 19344, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ { 19375, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_OES */
+ { 19406, 0x00000BA0 }, /* GL_MATRIX_MODE */
+ { 19421, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */
+ { 19443, 0x00008840 }, /* GL_MATRIX_PALETTE_OES */
+ { 19465, 0x00008008 }, /* GL_MAX */
+ { 19472, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */
+ { 19495, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE_OES */
+ { 19522, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ { 19554, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ { 19580, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ { 19613, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ { 19639, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 19673, 0x00000D32 }, /* GL_MAX_CLIP_PLANES */
+ { 19692, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */
+ { 19717, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS_EXT */
+ { 19746, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ { 19778, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI */
+ { 19814, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ { 19850, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB */
+ { 19890, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */
+ { 19916, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT_EXT */
+ { 19946, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */
+ { 19971, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH_EXT */
+ { 20000, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ { 20029, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB */
+ { 20062, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES */
+ { 20095, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */
+ { 20115, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ARB */
+ { 20139, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS_ATI */
+ { 20163, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */
+ { 20187, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */
+ { 20212, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */
+ { 20230, 0x00008008 }, /* GL_MAX_EXT */
+ { 20241, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ { 20276, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB */
+ { 20315, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
+ { 20347, 0x00000D31 }, /* GL_MAX_LIGHTS */
+ { 20361, 0x00000B31 }, /* GL_MAX_LIST_NESTING */
+ { 20381, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ { 20419, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ { 20448, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */
+ { 20472, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */
+ { 20500, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_OES */
+ { 20528, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */
+ { 20551, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 20588, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 20624, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ { 20651, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ { 20680, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ { 20714, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */
+ { 20750, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ { 20777, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ { 20809, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ { 20845, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ { 20874, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ { 20903, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ { 20931, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ { 20969, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 21013, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 21056, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 21090, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 21129, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 21166, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 21204, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 21247, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 21290, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ { 21320, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ { 21351, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 21387, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 21423, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ { 21453, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ { 21487, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_NV */
+ { 21520, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */
+ { 21545, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_EXT */
+ { 21574, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE_OES */
+ { 21603, 0x00008D57 }, /* GL_MAX_SAMPLES */
+ { 21618, 0x00008D57 }, /* GL_MAX_SAMPLES_EXT */
+ { 21637, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ { 21664, 0x00008504 }, /* GL_MAX_SHININESS_NV */
+ { 21684, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */
+ { 21708, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */
+ { 21730, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS_ARB */
+ { 21756, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ { 21783, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS_ARB */
+ { 21814, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */
+ { 21838, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS_EXT */
+ { 21866, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 21900, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */
+ { 21920, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ { 21947, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */
+ { 21968, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS_ARB */
+ { 21993, 0x0000862F }, /* GL_MAX_TRACK_MATRICES_NV */
+ { 22018, 0x0000862E }, /* GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV */
+ { 22053, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
+ { 22106, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
+ { 22153, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
+ { 22203, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS */
+ { 22225, 0x00008B4B }, /* GL_MAX_VARYING_FLOATS_ARB */
+ { 22251, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */
+ { 22274, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */
+ { 22296, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS_ARB */
+ { 22322, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ { 22356, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
+ { 22394, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ { 22427, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB */
+ { 22464, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
+ { 22494, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */
+ { 22518, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_OES */
+ { 22542, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */
+ { 22563, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */
+ { 22579, 0x00008DF4 }, /* GL_MEDIUM_INT */
+ { 22593, 0x00008007 }, /* GL_MIN */
+ { 22600, 0x0000802E }, /* GL_MINMAX */
+ { 22610, 0x0000802E }, /* GL_MINMAX_EXT */
+ { 22624, 0x0000802F }, /* GL_MINMAX_FORMAT */
+ { 22641, 0x0000802F }, /* GL_MINMAX_FORMAT_EXT */
+ { 22662, 0x00008030 }, /* GL_MINMAX_SINK */
+ { 22677, 0x00008030 }, /* GL_MINMAX_SINK_EXT */
+ { 22696, 0x00008007 }, /* GL_MIN_EXT */
+ { 22707, 0x00008370 }, /* GL_MIRRORED_REPEAT */
+ { 22726, 0x00008370 }, /* GL_MIRRORED_REPEAT_ARB */
+ { 22749, 0x00008370 }, /* GL_MIRRORED_REPEAT_IBM */
+ { 22772, 0x00008742 }, /* GL_MIRROR_CLAMP_ATI */
+ { 22792, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */
+ { 22812, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ { 22842, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_ATI */
+ { 22870, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ { 22898, 0x00001700 }, /* GL_MODELVIEW */
+ { 22911, 0x00001700 }, /* GL_MODELVIEW0_ARB */
+ { 22929, 0x0000872A }, /* GL_MODELVIEW10_ARB */
+ { 22948, 0x0000872B }, /* GL_MODELVIEW11_ARB */
+ { 22967, 0x0000872C }, /* GL_MODELVIEW12_ARB */
+ { 22986, 0x0000872D }, /* GL_MODELVIEW13_ARB */
+ { 23005, 0x0000872E }, /* GL_MODELVIEW14_ARB */
+ { 23024, 0x0000872F }, /* GL_MODELVIEW15_ARB */
+ { 23043, 0x00008730 }, /* GL_MODELVIEW16_ARB */
+ { 23062, 0x00008731 }, /* GL_MODELVIEW17_ARB */
+ { 23081, 0x00008732 }, /* GL_MODELVIEW18_ARB */
+ { 23100, 0x00008733 }, /* GL_MODELVIEW19_ARB */
+ { 23119, 0x0000850A }, /* GL_MODELVIEW1_ARB */
+ { 23137, 0x00008734 }, /* GL_MODELVIEW20_ARB */
+ { 23156, 0x00008735 }, /* GL_MODELVIEW21_ARB */
+ { 23175, 0x00008736 }, /* GL_MODELVIEW22_ARB */
+ { 23194, 0x00008737 }, /* GL_MODELVIEW23_ARB */
+ { 23213, 0x00008738 }, /* GL_MODELVIEW24_ARB */
+ { 23232, 0x00008739 }, /* GL_MODELVIEW25_ARB */
+ { 23251, 0x0000873A }, /* GL_MODELVIEW26_ARB */
+ { 23270, 0x0000873B }, /* GL_MODELVIEW27_ARB */
+ { 23289, 0x0000873C }, /* GL_MODELVIEW28_ARB */
+ { 23308, 0x0000873D }, /* GL_MODELVIEW29_ARB */
+ { 23327, 0x00008722 }, /* GL_MODELVIEW2_ARB */
+ { 23345, 0x0000873E }, /* GL_MODELVIEW30_ARB */
+ { 23364, 0x0000873F }, /* GL_MODELVIEW31_ARB */
+ { 23383, 0x00008723 }, /* GL_MODELVIEW3_ARB */
+ { 23401, 0x00008724 }, /* GL_MODELVIEW4_ARB */
+ { 23419, 0x00008725 }, /* GL_MODELVIEW5_ARB */
+ { 23437, 0x00008726 }, /* GL_MODELVIEW6_ARB */
+ { 23455, 0x00008727 }, /* GL_MODELVIEW7_ARB */
+ { 23473, 0x00008728 }, /* GL_MODELVIEW8_ARB */
+ { 23491, 0x00008729 }, /* GL_MODELVIEW9_ARB */
+ { 23509, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */
+ { 23529, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 23571, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */
+ { 23598, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */
+ { 23623, 0x00002100 }, /* GL_MODULATE */
+ { 23635, 0x00008744 }, /* GL_MODULATE_ADD_ATI */
+ { 23655, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */
+ { 23682, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */
+ { 23707, 0x00000103 }, /* GL_MULT */
+ { 23715, 0x0000809D }, /* GL_MULTISAMPLE */
+ { 23730, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */
+ { 23750, 0x0000809D }, /* GL_MULTISAMPLE_ARB */
+ { 23769, 0x20000000 }, /* GL_MULTISAMPLE_BIT */
+ { 23788, 0x20000000 }, /* GL_MULTISAMPLE_BIT_3DFX */
+ { 23812, 0x20000000 }, /* GL_MULTISAMPLE_BIT_ARB */
+ { 23835, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ { 23865, 0x00002A25 }, /* GL_N3F_V3F */
+ { 23876, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */
+ { 23896, 0x0000150E }, /* GL_NAND */
+ { 23904, 0x00002600 }, /* GL_NEAREST */
+ { 23915, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ { 23946, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ { 23978, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */
+ { 24003, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */
+ { 24029, 0x00000200 }, /* GL_NEVER */
+ { 24038, 0x00001102 }, /* GL_NICEST */
+ { 24048, 0x00000000 }, /* GL_NONE */
+ { 24056, 0x00000000 }, /* GL_NONE_OES */
+ { 24068, 0x00001505 }, /* GL_NOOP */
+ { 24076, 0x00001508 }, /* GL_NOR */
+ { 24083, 0x00000BA1 }, /* GL_NORMALIZE */
+ { 24096, 0x00008075 }, /* GL_NORMAL_ARRAY */
+ { 24112, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ { 24143, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING_ARB */
+ { 24178, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */
+ { 24202, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */
+ { 24225, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */
+ { 24246, 0x00008511 }, /* GL_NORMAL_MAP */
+ { 24260, 0x00008511 }, /* GL_NORMAL_MAP_ARB */
+ { 24278, 0x00008511 }, /* GL_NORMAL_MAP_NV */
+ { 24295, 0x00008511 }, /* GL_NORMAL_MAP_OES */
+ { 24313, 0x00000205 }, /* GL_NOTEQUAL */
+ { 24325, 0x00000000 }, /* GL_NO_ERROR */
+ { 24337, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ { 24371, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB */
+ { 24409, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
+ { 24443, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */
+ { 24472, 0x00008B89 }, /* GL_OBJECT_ACTIVE_ATTRIBUTES_ARB */
+ { 24504, 0x00008B8A }, /* GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB */
+ { 24546, 0x00008B86 }, /* GL_OBJECT_ACTIVE_UNIFORMS_ARB */
+ { 24576, 0x00008B87 }, /* GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB */
+ { 24616, 0x00008B85 }, /* GL_OBJECT_ATTACHED_OBJECTS_ARB */
+ { 24647, 0x00008B81 }, /* GL_OBJECT_COMPILE_STATUS_ARB */
+ { 24676, 0x00008B80 }, /* GL_OBJECT_DELETE_STATUS_ARB */
+ { 24704, 0x00008B84 }, /* GL_OBJECT_INFO_LOG_LENGTH_ARB */
+ { 24734, 0x00002401 }, /* GL_OBJECT_LINEAR */
+ { 24751, 0x00008B82 }, /* GL_OBJECT_LINK_STATUS_ARB */
+ { 24777, 0x00002501 }, /* GL_OBJECT_PLANE */
+ { 24793, 0x00008B88 }, /* GL_OBJECT_SHADER_SOURCE_LENGTH_ARB */
+ { 24828, 0x00008B4F }, /* GL_OBJECT_SUBTYPE_ARB */
+ { 24850, 0x00009112 }, /* GL_OBJECT_TYPE */
+ { 24865, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */
+ { 24884, 0x00008B83 }, /* GL_OBJECT_VALIDATE_STATUS_ARB */
+ { 24914, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */
+ { 24935, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */
+ { 24963, 0x00000001 }, /* GL_ONE */
+ { 24970, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ { 24998, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA_EXT */
+ { 25030, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ { 25058, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR_EXT */
+ { 25090, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */
+ { 25113, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */
+ { 25136, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */
+ { 25159, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */
+ { 25182, 0x00008598 }, /* GL_OPERAND0_ALPHA */
+ { 25200, 0x00008598 }, /* GL_OPERAND0_ALPHA_ARB */
+ { 25222, 0x00008598 }, /* GL_OPERAND0_ALPHA_EXT */
+ { 25244, 0x00008590 }, /* GL_OPERAND0_RGB */
+ { 25260, 0x00008590 }, /* GL_OPERAND0_RGB_ARB */
+ { 25280, 0x00008590 }, /* GL_OPERAND0_RGB_EXT */
+ { 25300, 0x00008599 }, /* GL_OPERAND1_ALPHA */
+ { 25318, 0x00008599 }, /* GL_OPERAND1_ALPHA_ARB */
+ { 25340, 0x00008599 }, /* GL_OPERAND1_ALPHA_EXT */
+ { 25362, 0x00008591 }, /* GL_OPERAND1_RGB */
+ { 25378, 0x00008591 }, /* GL_OPERAND1_RGB_ARB */
+ { 25398, 0x00008591 }, /* GL_OPERAND1_RGB_EXT */
+ { 25418, 0x0000859A }, /* GL_OPERAND2_ALPHA */
+ { 25436, 0x0000859A }, /* GL_OPERAND2_ALPHA_ARB */
+ { 25458, 0x0000859A }, /* GL_OPERAND2_ALPHA_EXT */
+ { 25480, 0x00008592 }, /* GL_OPERAND2_RGB */
+ { 25496, 0x00008592 }, /* GL_OPERAND2_RGB_ARB */
+ { 25516, 0x00008592 }, /* GL_OPERAND2_RGB_EXT */
+ { 25536, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */
+ { 25557, 0x00008593 }, /* GL_OPERAND3_RGB_NV */
+ { 25576, 0x00001507 }, /* GL_OR */
+ { 25582, 0x00000A01 }, /* GL_ORDER */
+ { 25591, 0x0000150D }, /* GL_OR_INVERTED */
+ { 25606, 0x0000150B }, /* GL_OR_REVERSE */
+ { 25620, 0x00000505 }, /* GL_OUT_OF_MEMORY */
+ { 25637, 0x00000D05 }, /* GL_PACK_ALIGNMENT */
+ { 25655, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */
+ { 25676, 0x00008758 }, /* GL_PACK_INVERT_MESA */
+ { 25696, 0x00000D01 }, /* GL_PACK_LSB_FIRST */
+ { 25714, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */
+ { 25733, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */
+ { 25753, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */
+ { 25773, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */
+ { 25791, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */
+ { 25810, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */
+ { 25835, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */
+ { 25859, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */
+ { 25880, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */
+ { 25902, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */
+ { 25924, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */
+ { 25949, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */
+ { 25973, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */
+ { 25994, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */
+ { 26016, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */
+ { 26038, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */
+ { 26060, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ { 26091, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */
+ { 26111, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ { 26136, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */
+ { 26156, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ { 26181, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */
+ { 26201, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ { 26226, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */
+ { 26246, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ { 26271, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */
+ { 26291, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ { 26316, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */
+ { 26336, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ { 26361, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */
+ { 26381, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ { 26406, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */
+ { 26426, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ { 26451, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */
+ { 26471, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ { 26496, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */
+ { 26516, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ { 26541, 0x00000020 }, /* GL_PIXEL_MODE_BIT */
+ { 26559, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */
+ { 26580, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ { 26609, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING_EXT */
+ { 26642, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER_EXT */
+ { 26667, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */
+ { 26690, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ { 26721, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING_EXT */
+ { 26756, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER_EXT */
+ { 26783, 0x00001B00 }, /* GL_POINT */
+ { 26792, 0x00000000 }, /* GL_POINTS */
+ { 26802, 0x00000002 }, /* GL_POINT_BIT */
+ { 26815, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */
+ { 26845, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_ARB */
+ { 26879, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_EXT */
+ { 26913, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION_SGIS */
+ { 26948, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ { 26977, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_ARB */
+ { 27010, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_EXT */
+ { 27043, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE_SGIS */
+ { 27077, 0x00000B11 }, /* GL_POINT_SIZE */
+ { 27091, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
+ { 27130, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */
+ { 27154, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
+ { 27186, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
+ { 27217, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
+ { 27246, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */
+ { 27272, 0x00008127 }, /* GL_POINT_SIZE_MAX */
+ { 27290, 0x00008127 }, /* GL_POINT_SIZE_MAX_ARB */
+ { 27312, 0x00008127 }, /* GL_POINT_SIZE_MAX_EXT */
+ { 27334, 0x00008127 }, /* GL_POINT_SIZE_MAX_SGIS */
+ { 27357, 0x00008126 }, /* GL_POINT_SIZE_MIN */
+ { 27375, 0x00008126 }, /* GL_POINT_SIZE_MIN_ARB */
+ { 27397, 0x00008126 }, /* GL_POINT_SIZE_MIN_EXT */
+ { 27419, 0x00008126 }, /* GL_POINT_SIZE_MIN_SGIS */
+ { 27442, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */
+ { 27462, 0x00000B10 }, /* GL_POINT_SMOOTH */
+ { 27478, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */
+ { 27499, 0x00008861 }, /* GL_POINT_SPRITE */
+ { 27515, 0x00008861 }, /* GL_POINT_SPRITE_ARB */
+ { 27535, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ { 27564, 0x00008861 }, /* GL_POINT_SPRITE_NV */
+ { 27583, 0x00008861 }, /* GL_POINT_SPRITE_OES */
+ { 27603, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */
+ { 27629, 0x00000701 }, /* GL_POINT_TOKEN */
+ { 27644, 0x00000009 }, /* GL_POLYGON */
+ { 27655, 0x00000008 }, /* GL_POLYGON_BIT */
+ { 27670, 0x00000B40 }, /* GL_POLYGON_MODE */
+ { 27686, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS */
+ { 27709, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */
+ { 27734, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */
+ { 27757, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */
+ { 27780, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */
+ { 27804, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */
+ { 27828, 0x00000B41 }, /* GL_POLYGON_SMOOTH */
+ { 27846, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */
+ { 27869, 0x00000B42 }, /* GL_POLYGON_STIPPLE */
+ { 27888, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */
+ { 27911, 0x00000703 }, /* GL_POLYGON_TOKEN */
+ { 27928, 0x00001203 }, /* GL_POSITION */
+ { 27940, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ { 27972, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI */
+ { 28008, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ { 28041, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI */
+ { 28078, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ { 28109, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI */
+ { 28144, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ { 28176, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI */
+ { 28212, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 28245, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ { 28277, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI */
+ { 28313, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ { 28346, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI */
+ { 28383, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ { 28413, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS_SGI */
+ { 28447, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ { 28478, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE_SGI */
+ { 28513, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ { 28544, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS_EXT */
+ { 28579, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ { 28611, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE_EXT */
+ { 28647, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ { 28677, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS_EXT */
+ { 28711, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ { 28742, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE_EXT */
+ { 28777, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ { 28809, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ { 28840, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS_EXT */
+ { 28875, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ { 28907, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE_EXT */
+ { 28943, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */
+ { 28972, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS_EXT */
+ { 29005, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */
+ { 29035, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE_EXT */
+ { 29069, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ { 29108, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ { 29141, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ { 29181, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ { 29215, 0x00008578 }, /* GL_PREVIOUS */
+ { 29227, 0x00008578 }, /* GL_PREVIOUS_ARB */
+ { 29243, 0x00008578 }, /* GL_PREVIOUS_EXT */
+ { 29259, 0x00008577 }, /* GL_PRIMARY_COLOR */
+ { 29276, 0x00008577 }, /* GL_PRIMARY_COLOR_ARB */
+ { 29297, 0x00008577 }, /* GL_PRIMARY_COLOR_EXT */
+ { 29318, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED_EXT */
+ { 29346, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ { 29379, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ { 29411, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */
+ { 29434, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS_OES */
+ { 29464, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH_OES */
+ { 29493, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */
+ { 29516, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ { 29546, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_NV */
+ { 29575, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */
+ { 29603, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */
+ { 29625, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ { 29653, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ { 29681, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */
+ { 29703, 0x00008627 }, /* GL_PROGRAM_LENGTH_NV */
+ { 29724, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ { 29764, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ { 29803, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ { 29833, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ { 29868, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ { 29901, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ { 29935, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ { 29974, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ { 30013, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */
+ { 30035, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */
+ { 30061, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */
+ { 30085, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */
+ { 30108, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */
+ { 30130, 0x00008628 }, /* GL_PROGRAM_STRING_NV */
+ { 30151, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */
+ { 30172, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */
+ { 30199, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ { 30231, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ { 30263, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ { 30298, 0x00001701 }, /* GL_PROJECTION */
+ { 30312, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */
+ { 30333, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 30376, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */
+ { 30402, 0x00008E4F }, /* GL_PROVOKING_VERTEX */
+ { 30422, 0x00008E4F }, /* GL_PROVOKING_VERTEX_EXT */
+ { 30446, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */
+ { 30467, 0x00008025 }, /* GL_PROXY_HISTOGRAM */
+ { 30486, 0x00008025 }, /* GL_PROXY_HISTOGRAM_EXT */
+ { 30509, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ { 30548, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ { 30586, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */
+ { 30606, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ { 30636, 0x00008063 }, /* GL_PROXY_TEXTURE_1D_EXT */
+ { 30660, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */
+ { 30680, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ { 30710, 0x00008064 }, /* GL_PROXY_TEXTURE_2D_EXT */
+ { 30734, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */
+ { 30754, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ { 30787, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ { 30813, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARB */
+ { 30843, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ { 30874, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE_NV */
+ { 30904, 0x00008A1D }, /* GL_PURGEABLE_APPLE */
+ { 30923, 0x00002003 }, /* GL_Q */
+ { 30928, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */
+ { 30953, 0x00000007 }, /* GL_QUADS */
+ { 30962, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
+ { 31006, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT */
+ { 31054, 0x00008614 }, /* GL_QUAD_MESH_SUN */
+ { 31071, 0x00000008 }, /* GL_QUAD_STRIP */
+ { 31085, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
+ { 31115, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT_NV */
+ { 31142, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */
+ { 31164, 0x00008864 }, /* GL_QUERY_COUNTER_BITS_ARB */
+ { 31190, 0x00008E14 }, /* GL_QUERY_NO_WAIT_NV */
+ { 31210, 0x00008866 }, /* GL_QUERY_RESULT */
+ { 31226, 0x00008866 }, /* GL_QUERY_RESULT_ARB */
+ { 31246, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */
+ { 31272, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE_ARB */
+ { 31302, 0x00008E13 }, /* GL_QUERY_WAIT_NV */
+ { 31319, 0x00002002 }, /* GL_R */
+ { 31324, 0x00002A10 }, /* GL_R3_G3_B2 */
+ { 31336, 0x00008C89 }, /* GL_RASTERIZER_DISCARD_EXT */
+ { 31362, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ { 31395, 0x00000C02 }, /* GL_READ_BUFFER */
+ { 31410, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */
+ { 31430, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */
+ { 31458, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING_EXT */
+ { 31490, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER_EXT */
+ { 31514, 0x000088B8 }, /* GL_READ_ONLY */
+ { 31527, 0x000088B8 }, /* GL_READ_ONLY_ARB */
+ { 31544, 0x000088BA }, /* GL_READ_WRITE */
+ { 31558, 0x000088BA }, /* GL_READ_WRITE_ARB */
+ { 31576, 0x00001903 }, /* GL_RED */
+ { 31583, 0x00008016 }, /* GL_REDUCE */
+ { 31593, 0x00008016 }, /* GL_REDUCE_EXT */
+ { 31607, 0x00000D15 }, /* GL_RED_BIAS */
+ { 31619, 0x00000D52 }, /* GL_RED_BITS */
+ { 31631, 0x00000D14 }, /* GL_RED_SCALE */
+ { 31644, 0x00008512 }, /* GL_REFLECTION_MAP */
+ { 31662, 0x00008512 }, /* GL_REFLECTION_MAP_ARB */
+ { 31684, 0x00008512 }, /* GL_REFLECTION_MAP_NV */
+ { 31705, 0x00008512 }, /* GL_REFLECTION_MAP_OES */
+ { 31727, 0x00008A19 }, /* GL_RELEASED_APPLE */
+ { 31745, 0x00001C00 }, /* GL_RENDER */
+ { 31755, 0x00008D41 }, /* GL_RENDERBUFFER */
+ { 31771, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ { 31798, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE_OES */
+ { 31829, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */
+ { 31853, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_EXT */
+ { 31881, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING_OES */
+ { 31909, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */
+ { 31935, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE_OES */
+ { 31965, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ { 31992, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE_OES */
+ { 32023, 0x00008D41 }, /* GL_RENDERBUFFER_EXT */
+ { 32043, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */
+ { 32070, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE_OES */
+ { 32101, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */
+ { 32124, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_EXT */
+ { 32151, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT_OES */
+ { 32178, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ { 32210, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_EXT */
+ { 32246, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
+ { 32282, 0x00008D41 }, /* GL_RENDERBUFFER_OES */
+ { 32302, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */
+ { 32327, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE_OES */
+ { 32356, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */
+ { 32380, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES_EXT */
+ { 32408, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ { 32437, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE_OES */
+ { 32470, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */
+ { 32492, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_EXT */
+ { 32518, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH_OES */
+ { 32544, 0x00001F01 }, /* GL_RENDERER */
+ { 32556, 0x00000C40 }, /* GL_RENDER_MODE */
+ { 32571, 0x00002901 }, /* GL_REPEAT */
+ { 32581, 0x00001E01 }, /* GL_REPLACE */
+ { 32592, 0x00008062 }, /* GL_REPLACE_EXT */
+ { 32607, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */
+ { 32630, 0x0000803A }, /* GL_RESCALE_NORMAL */
+ { 32648, 0x0000803A }, /* GL_RESCALE_NORMAL_EXT */
+ { 32670, 0x00008A1B }, /* GL_RETAINED_APPLE */
+ { 32688, 0x00000102 }, /* GL_RETURN */
+ { 32698, 0x00001907 }, /* GL_RGB */
+ { 32705, 0x00008052 }, /* GL_RGB10 */
+ { 32714, 0x00008059 }, /* GL_RGB10_A2 */
+ { 32726, 0x00008059 }, /* GL_RGB10_A2_EXT */
+ { 32742, 0x00008052 }, /* GL_RGB10_EXT */
+ { 32755, 0x00008053 }, /* GL_RGB12 */
+ { 32764, 0x00008053 }, /* GL_RGB12_EXT */
+ { 32777, 0x00008054 }, /* GL_RGB16 */
+ { 32786, 0x00008054 }, /* GL_RGB16_EXT */
+ { 32799, 0x0000804E }, /* GL_RGB2_EXT */
+ { 32811, 0x0000804F }, /* GL_RGB4 */
+ { 32819, 0x0000804F }, /* GL_RGB4_EXT */
+ { 32831, 0x000083A1 }, /* GL_RGB4_S3TC */
+ { 32844, 0x00008050 }, /* GL_RGB5 */
+ { 32852, 0x00008D62 }, /* GL_RGB565 */
+ { 32862, 0x00008D62 }, /* GL_RGB565_OES */
+ { 32876, 0x00008057 }, /* GL_RGB5_A1 */
+ { 32887, 0x00008057 }, /* GL_RGB5_A1_EXT */
+ { 32902, 0x00008057 }, /* GL_RGB5_A1_OES */
+ { 32917, 0x00008050 }, /* GL_RGB5_EXT */
+ { 32929, 0x00008051 }, /* GL_RGB8 */
+ { 32937, 0x00008051 }, /* GL_RGB8_EXT */
+ { 32949, 0x00008051 }, /* GL_RGB8_OES */
+ { 32961, 0x00001908 }, /* GL_RGBA */
+ { 32969, 0x0000805A }, /* GL_RGBA12 */
+ { 32979, 0x0000805A }, /* GL_RGBA12_EXT */
+ { 32993, 0x0000805B }, /* GL_RGBA16 */
+ { 33003, 0x0000805B }, /* GL_RGBA16_EXT */
+ { 33017, 0x00008055 }, /* GL_RGBA2 */
+ { 33026, 0x00008055 }, /* GL_RGBA2_EXT */
+ { 33039, 0x00008056 }, /* GL_RGBA4 */
+ { 33048, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */
+ { 33067, 0x00008056 }, /* GL_RGBA4_EXT */
+ { 33080, 0x00008056 }, /* GL_RGBA4_OES */
+ { 33093, 0x000083A3 }, /* GL_RGBA4_S3TC */
+ { 33107, 0x00008058 }, /* GL_RGBA8 */
+ { 33116, 0x00008058 }, /* GL_RGBA8_EXT */
+ { 33129, 0x00008058 }, /* GL_RGBA8_OES */
+ { 33142, 0x00008F97 }, /* GL_RGBA8_SNORM */
+ { 33157, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */
+ { 33175, 0x00000C31 }, /* GL_RGBA_MODE */
+ { 33188, 0x000083A2 }, /* GL_RGBA_S3TC */
+ { 33201, 0x00008F93 }, /* GL_RGBA_SNORM */
+ { 33215, 0x000083A0 }, /* GL_RGB_S3TC */
+ { 33227, 0x00008573 }, /* GL_RGB_SCALE */
+ { 33240, 0x00008573 }, /* GL_RGB_SCALE_ARB */
+ { 33257, 0x00008573 }, /* GL_RGB_SCALE_EXT */
+ { 33274, 0x00000407 }, /* GL_RIGHT */
+ { 33283, 0x00002000 }, /* GL_S */
+ { 33288, 0x00008B5D }, /* GL_SAMPLER_1D */
+ { 33302, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */
+ { 33323, 0x00008B5E }, /* GL_SAMPLER_2D */
+ { 33337, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */
+ { 33358, 0x00008B5F }, /* GL_SAMPLER_3D */
+ { 33372, 0x00008B5F }, /* GL_SAMPLER_3D_OES */
+ { 33390, 0x00008B60 }, /* GL_SAMPLER_CUBE */
+ { 33406, 0x000080A9 }, /* GL_SAMPLES */
+ { 33417, 0x000086B4 }, /* GL_SAMPLES_3DFX */
+ { 33433, 0x000080A9 }, /* GL_SAMPLES_ARB */
+ { 33448, 0x00008914 }, /* GL_SAMPLES_PASSED */
+ { 33466, 0x00008914 }, /* GL_SAMPLES_PASSED_ARB */
+ { 33488, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ { 33516, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE_ARB */
+ { 33548, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */
+ { 33571, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE_ARB */
+ { 33598, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */
+ { 33616, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */
+ { 33639, 0x000080A8 }, /* GL_SAMPLE_BUFFERS_ARB */
+ { 33661, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */
+ { 33680, 0x000080A0 }, /* GL_SAMPLE_COVERAGE_ARB */
+ { 33703, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */
+ { 33729, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT_ARB */
+ { 33759, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */
+ { 33784, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE_ARB */
+ { 33813, 0x00080000 }, /* GL_SCISSOR_BIT */
+ { 33828, 0x00000C10 }, /* GL_SCISSOR_BOX */
+ { 33843, 0x00000C11 }, /* GL_SCISSOR_TEST */
+ { 33859, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */
+ { 33884, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ { 33924, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB */
+ { 33968, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ { 34001, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ { 34031, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ { 34063, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ { 34093, 0x00001C02 }, /* GL_SELECT */
+ { 34103, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */
+ { 34131, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */
+ { 34156, 0x00008012 }, /* GL_SEPARABLE_2D */
+ { 34172, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS_EXT */
+ { 34196, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */
+ { 34223, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR_EXT */
+ { 34254, 0x0000150F }, /* GL_SET */
+ { 34261, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */
+ { 34286, 0x00008DFA }, /* GL_SHADER_COMPILER */
+ { 34305, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */
+ { 34326, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */
+ { 34350, 0x00008B4F }, /* GL_SHADER_TYPE */
+ { 34365, 0x00000B54 }, /* GL_SHADE_MODEL */
+ { 34380, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */
+ { 34408, 0x000080BF }, /* GL_SHADOW_AMBIENT_SGIX */
+ { 34431, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ { 34461, 0x00001601 }, /* GL_SHININESS */
+ { 34474, 0x00001402 }, /* GL_SHORT */
+ { 34483, 0x00009119 }, /* GL_SIGNALED */
+ { 34495, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */
+ { 34516, 0x000081F9 }, /* GL_SINGLE_COLOR */
+ { 34532, 0x000081F9 }, /* GL_SINGLE_COLOR_EXT */
+ { 34552, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */
+ { 34571, 0x00008C46 }, /* GL_SLUMINANCE */
+ { 34585, 0x00008C47 }, /* GL_SLUMINANCE8 */
+ { 34600, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */
+ { 34622, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */
+ { 34642, 0x00001D01 }, /* GL_SMOOTH */
+ { 34652, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */
+ { 34685, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */
+ { 34712, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */
+ { 34745, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */
+ { 34772, 0x00008588 }, /* GL_SOURCE0_ALPHA */
+ { 34789, 0x00008588 }, /* GL_SOURCE0_ALPHA_ARB */
+ { 34810, 0x00008588 }, /* GL_SOURCE0_ALPHA_EXT */
+ { 34831, 0x00008580 }, /* GL_SOURCE0_RGB */
+ { 34846, 0x00008580 }, /* GL_SOURCE0_RGB_ARB */
+ { 34865, 0x00008580 }, /* GL_SOURCE0_RGB_EXT */
+ { 34884, 0x00008589 }, /* GL_SOURCE1_ALPHA */
+ { 34901, 0x00008589 }, /* GL_SOURCE1_ALPHA_ARB */
+ { 34922, 0x00008589 }, /* GL_SOURCE1_ALPHA_EXT */
+ { 34943, 0x00008581 }, /* GL_SOURCE1_RGB */
+ { 34958, 0x00008581 }, /* GL_SOURCE1_RGB_ARB */
+ { 34977, 0x00008581 }, /* GL_SOURCE1_RGB_EXT */
+ { 34996, 0x0000858A }, /* GL_SOURCE2_ALPHA */
+ { 35013, 0x0000858A }, /* GL_SOURCE2_ALPHA_ARB */
+ { 35034, 0x0000858A }, /* GL_SOURCE2_ALPHA_EXT */
+ { 35055, 0x00008582 }, /* GL_SOURCE2_RGB */
+ { 35070, 0x00008582 }, /* GL_SOURCE2_RGB_ARB */
+ { 35089, 0x00008582 }, /* GL_SOURCE2_RGB_EXT */
+ { 35108, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */
+ { 35128, 0x00008583 }, /* GL_SOURCE3_RGB_NV */
+ { 35146, 0x00001202 }, /* GL_SPECULAR */
+ { 35158, 0x00002402 }, /* GL_SPHERE_MAP */
+ { 35172, 0x00001206 }, /* GL_SPOT_CUTOFF */
+ { 35187, 0x00001204 }, /* GL_SPOT_DIRECTION */
+ { 35205, 0x00001205 }, /* GL_SPOT_EXPONENT */
+ { 35222, 0x00008588 }, /* GL_SRC0_ALPHA */
+ { 35236, 0x00008580 }, /* GL_SRC0_RGB */
+ { 35248, 0x00008589 }, /* GL_SRC1_ALPHA */
+ { 35262, 0x00008581 }, /* GL_SRC1_RGB */
+ { 35274, 0x0000858A }, /* GL_SRC2_ALPHA */
+ { 35288, 0x00008582 }, /* GL_SRC2_RGB */
+ { 35300, 0x00000302 }, /* GL_SRC_ALPHA */
+ { 35313, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */
+ { 35335, 0x00000300 }, /* GL_SRC_COLOR */
+ { 35348, 0x00008C40 }, /* GL_SRGB */
+ { 35356, 0x00008C41 }, /* GL_SRGB8 */
+ { 35365, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */
+ { 35381, 0x00008C42 }, /* GL_SRGB_ALPHA */
+ { 35395, 0x00000503 }, /* GL_STACK_OVERFLOW */
+ { 35413, 0x00000504 }, /* GL_STACK_UNDERFLOW */
+ { 35432, 0x000088E6 }, /* GL_STATIC_COPY */
+ { 35447, 0x000088E6 }, /* GL_STATIC_COPY_ARB */
+ { 35466, 0x000088E4 }, /* GL_STATIC_DRAW */
+ { 35481, 0x000088E4 }, /* GL_STATIC_DRAW_ARB */
+ { 35500, 0x000088E5 }, /* GL_STATIC_READ */
+ { 35515, 0x000088E5 }, /* GL_STATIC_READ_ARB */
+ { 35534, 0x00001802 }, /* GL_STENCIL */
+ { 35545, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */
+ { 35567, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_EXT */
+ { 35593, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT_OES */
+ { 35619, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */
+ { 35640, 0x00008801 }, /* GL_STENCIL_BACK_FAIL_ATI */
+ { 35665, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */
+ { 35686, 0x00008800 }, /* GL_STENCIL_BACK_FUNC_ATI */
+ { 35711, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ { 35743, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI */
+ { 35779, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ { 35811, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI */
+ { 35847, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */
+ { 35867, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */
+ { 35894, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */
+ { 35920, 0x00000D57 }, /* GL_STENCIL_BITS */
+ { 35936, 0x00000400 }, /* GL_STENCIL_BUFFER_BIT */
+ { 35958, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */
+ { 35981, 0x00000B94 }, /* GL_STENCIL_FAIL */
+ { 35997, 0x00000B92 }, /* GL_STENCIL_FUNC */
+ { 36013, 0x00001901 }, /* GL_STENCIL_INDEX */
+ { 36030, 0x00008D46 }, /* GL_STENCIL_INDEX1 */
+ { 36048, 0x00008D49 }, /* GL_STENCIL_INDEX16 */
+ { 36067, 0x00008D49 }, /* GL_STENCIL_INDEX16_EXT */
+ { 36090, 0x00008D46 }, /* GL_STENCIL_INDEX1_EXT */
+ { 36112, 0x00008D46 }, /* GL_STENCIL_INDEX1_OES */
+ { 36134, 0x00008D47 }, /* GL_STENCIL_INDEX4 */
+ { 36152, 0x00008D47 }, /* GL_STENCIL_INDEX4_EXT */
+ { 36174, 0x00008D47 }, /* GL_STENCIL_INDEX4_OES */
+ { 36196, 0x00008D48 }, /* GL_STENCIL_INDEX8 */
+ { 36214, 0x00008D48 }, /* GL_STENCIL_INDEX8_EXT */
+ { 36236, 0x00008D48 }, /* GL_STENCIL_INDEX8_OES */
+ { 36258, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */
+ { 36279, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ { 36306, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */
+ { 36333, 0x00000B97 }, /* GL_STENCIL_REF */
+ { 36348, 0x00000B90 }, /* GL_STENCIL_TEST */
+ { 36364, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ { 36393, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */
+ { 36415, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */
+ { 36436, 0x00000C33 }, /* GL_STEREO */
+ { 36446, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */
+ { 36470, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */
+ { 36495, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */
+ { 36519, 0x000088E2 }, /* GL_STREAM_COPY */
+ { 36534, 0x000088E2 }, /* GL_STREAM_COPY_ARB */
+ { 36553, 0x000088E0 }, /* GL_STREAM_DRAW */
+ { 36568, 0x000088E0 }, /* GL_STREAM_DRAW_ARB */
+ { 36587, 0x000088E1 }, /* GL_STREAM_READ */
+ { 36602, 0x000088E1 }, /* GL_STREAM_READ_ARB */
+ { 36621, 0x00000D50 }, /* GL_SUBPIXEL_BITS */
+ { 36638, 0x000084E7 }, /* GL_SUBTRACT */
+ { 36650, 0x000084E7 }, /* GL_SUBTRACT_ARB */
+ { 36666, 0x00009113 }, /* GL_SYNC_CONDITION */
+ { 36684, 0x00009116 }, /* GL_SYNC_FENCE */
+ { 36698, 0x00009115 }, /* GL_SYNC_FLAGS */
+ { 36712, 0x00000001 }, /* GL_SYNC_FLUSH_COMMANDS_BIT */
+ { 36739, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ { 36769, 0x00009114 }, /* GL_SYNC_STATUS */
+ { 36784, 0x00002001 }, /* GL_T */
+ { 36789, 0x00002A2A }, /* GL_T2F_C3F_V3F */
+ { 36804, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */
+ { 36823, 0x00002A29 }, /* GL_T2F_C4UB_V3F */
+ { 36839, 0x00002A2B }, /* GL_T2F_N3F_V3F */
+ { 36854, 0x00002A27 }, /* GL_T2F_V3F */
+ { 36865, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */
+ { 36884, 0x00002A28 }, /* GL_T4F_V4F */
+ { 36895, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */
+ { 36918, 0x00001702 }, /* GL_TEXTURE */
+ { 36929, 0x000084C0 }, /* GL_TEXTURE0 */
+ { 36941, 0x000084C0 }, /* GL_TEXTURE0_ARB */
+ { 36957, 0x000084C1 }, /* GL_TEXTURE1 */
+ { 36969, 0x000084CA }, /* GL_TEXTURE10 */
+ { 36982, 0x000084CA }, /* GL_TEXTURE10_ARB */
+ { 36999, 0x000084CB }, /* GL_TEXTURE11 */
+ { 37012, 0x000084CB }, /* GL_TEXTURE11_ARB */
+ { 37029, 0x000084CC }, /* GL_TEXTURE12 */
+ { 37042, 0x000084CC }, /* GL_TEXTURE12_ARB */
+ { 37059, 0x000084CD }, /* GL_TEXTURE13 */
+ { 37072, 0x000084CD }, /* GL_TEXTURE13_ARB */
+ { 37089, 0x000084CE }, /* GL_TEXTURE14 */
+ { 37102, 0x000084CE }, /* GL_TEXTURE14_ARB */
+ { 37119, 0x000084CF }, /* GL_TEXTURE15 */
+ { 37132, 0x000084CF }, /* GL_TEXTURE15_ARB */
+ { 37149, 0x000084D0 }, /* GL_TEXTURE16 */
+ { 37162, 0x000084D0 }, /* GL_TEXTURE16_ARB */
+ { 37179, 0x000084D1 }, /* GL_TEXTURE17 */
+ { 37192, 0x000084D1 }, /* GL_TEXTURE17_ARB */
+ { 37209, 0x000084D2 }, /* GL_TEXTURE18 */
+ { 37222, 0x000084D2 }, /* GL_TEXTURE18_ARB */
+ { 37239, 0x000084D3 }, /* GL_TEXTURE19 */
+ { 37252, 0x000084D3 }, /* GL_TEXTURE19_ARB */
+ { 37269, 0x000084C1 }, /* GL_TEXTURE1_ARB */
+ { 37285, 0x000084C2 }, /* GL_TEXTURE2 */
+ { 37297, 0x000084D4 }, /* GL_TEXTURE20 */
+ { 37310, 0x000084D4 }, /* GL_TEXTURE20_ARB */
+ { 37327, 0x000084D5 }, /* GL_TEXTURE21 */
+ { 37340, 0x000084D5 }, /* GL_TEXTURE21_ARB */
+ { 37357, 0x000084D6 }, /* GL_TEXTURE22 */
+ { 37370, 0x000084D6 }, /* GL_TEXTURE22_ARB */
+ { 37387, 0x000084D7 }, /* GL_TEXTURE23 */
+ { 37400, 0x000084D7 }, /* GL_TEXTURE23_ARB */
+ { 37417, 0x000084D8 }, /* GL_TEXTURE24 */
+ { 37430, 0x000084D8 }, /* GL_TEXTURE24_ARB */
+ { 37447, 0x000084D9 }, /* GL_TEXTURE25 */
+ { 37460, 0x000084D9 }, /* GL_TEXTURE25_ARB */
+ { 37477, 0x000084DA }, /* GL_TEXTURE26 */
+ { 37490, 0x000084DA }, /* GL_TEXTURE26_ARB */
+ { 37507, 0x000084DB }, /* GL_TEXTURE27 */
+ { 37520, 0x000084DB }, /* GL_TEXTURE27_ARB */
+ { 37537, 0x000084DC }, /* GL_TEXTURE28 */
+ { 37550, 0x000084DC }, /* GL_TEXTURE28_ARB */
+ { 37567, 0x000084DD }, /* GL_TEXTURE29 */
+ { 37580, 0x000084DD }, /* GL_TEXTURE29_ARB */
+ { 37597, 0x000084C2 }, /* GL_TEXTURE2_ARB */
+ { 37613, 0x000084C3 }, /* GL_TEXTURE3 */
+ { 37625, 0x000084DE }, /* GL_TEXTURE30 */
+ { 37638, 0x000084DE }, /* GL_TEXTURE30_ARB */
+ { 37655, 0x000084DF }, /* GL_TEXTURE31 */
+ { 37668, 0x000084DF }, /* GL_TEXTURE31_ARB */
+ { 37685, 0x000084C3 }, /* GL_TEXTURE3_ARB */
+ { 37701, 0x000084C4 }, /* GL_TEXTURE4 */
+ { 37713, 0x000084C4 }, /* GL_TEXTURE4_ARB */
+ { 37729, 0x000084C5 }, /* GL_TEXTURE5 */
+ { 37741, 0x000084C5 }, /* GL_TEXTURE5_ARB */
+ { 37757, 0x000084C6 }, /* GL_TEXTURE6 */
+ { 37769, 0x000084C6 }, /* GL_TEXTURE6_ARB */
+ { 37785, 0x000084C7 }, /* GL_TEXTURE7 */
+ { 37797, 0x000084C7 }, /* GL_TEXTURE7_ARB */
+ { 37813, 0x000084C8 }, /* GL_TEXTURE8 */
+ { 37825, 0x000084C8 }, /* GL_TEXTURE8_ARB */
+ { 37841, 0x000084C9 }, /* GL_TEXTURE9 */
+ { 37853, 0x000084C9 }, /* GL_TEXTURE9_ARB */
+ { 37869, 0x00000DE0 }, /* GL_TEXTURE_1D */
+ { 37883, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY_EXT */
+ { 37907, 0x00000DE1 }, /* GL_TEXTURE_2D */
+ { 37921, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY_EXT */
+ { 37945, 0x0000806F }, /* GL_TEXTURE_3D */
+ { 37959, 0x0000806F }, /* GL_TEXTURE_3D_OES */
+ { 37977, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */
+ { 37999, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE_EXT */
+ { 38025, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */
+ { 38047, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */
+ { 38069, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ { 38101, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */
+ { 38123, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ { 38155, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */
+ { 38177, 0x0000806A }, /* GL_TEXTURE_BINDING_3D_OES */
+ { 38203, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ { 38231, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARB */
+ { 38263, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP_OES */
+ { 38295, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ { 38328, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE_NV */
+ { 38360, 0x00040000 }, /* GL_TEXTURE_BIT */
+ { 38375, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */
+ { 38396, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE_EXT */
+ { 38421, 0x00001005 }, /* GL_TEXTURE_BORDER */
+ { 38439, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */
+ { 38463, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ { 38494, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ { 38524, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ { 38554, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ { 38589, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ { 38620, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ { 38658, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ { 38685, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ { 38717, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ { 38751, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */
+ { 38775, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC_ARB */
+ { 38803, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */
+ { 38827, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE_ARB */
+ { 38855, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ { 38888, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */
+ { 38912, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */
+ { 38934, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */
+ { 38956, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED_ARB */
+ { 38982, 0x000086A3 }, /* GL_TEXTURE_COMPRESSED_FORMATS_ARB */
+ { 39016, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ { 39049, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB */
+ { 39086, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */
+ { 39114, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT_ARB */
+ { 39146, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */
+ { 39169, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ { 39207, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB */
+ { 39249, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ { 39280, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ { 39308, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ { 39338, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ { 39366, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */
+ { 39391, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */
+ { 39411, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_ARB */
+ { 39435, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ { 39466, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB */
+ { 39501, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES */
+ { 39536, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ { 39567, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB */
+ { 39602, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES */
+ { 39637, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ { 39668, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB */
+ { 39703, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES */
+ { 39738, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP_OES */
+ { 39762, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ { 39793, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB */
+ { 39828, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES */
+ { 39863, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ { 39894, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB */
+ { 39929, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES */
+ { 39964, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ { 39995, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB */
+ { 40030, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES */
+ { 40065, 0x000088F4 }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ { 40094, 0x00008071 }, /* GL_TEXTURE_DEPTH */
+ { 40111, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */
+ { 40133, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE_ARB */
+ { 40159, 0x00002300 }, /* GL_TEXTURE_ENV */
+ { 40174, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */
+ { 40195, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */
+ { 40215, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */
+ { 40241, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL_EXT */
+ { 40271, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */
+ { 40291, 0x00002500 }, /* GL_TEXTURE_GEN_MODE_OES */
+ { 40315, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */
+ { 40332, 0x00000C62 }, /* GL_TEXTURE_GEN_R */
+ { 40349, 0x00000C60 }, /* GL_TEXTURE_GEN_S */
+ { 40366, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */
+ { 40389, 0x00000C61 }, /* GL_TEXTURE_GEN_T */
+ { 40406, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ { 40431, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */
+ { 40453, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE_EXT */
+ { 40479, 0x00001001 }, /* GL_TEXTURE_HEIGHT */
+ { 40497, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ { 40523, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */
+ { 40549, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE_EXT */
+ { 40579, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */
+ { 40606, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ { 40631, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */
+ { 40651, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS_EXT */
+ { 40675, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ { 40702, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ { 40729, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ { 40756, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */
+ { 40782, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE_EXT */
+ { 40812, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */
+ { 40834, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */
+ { 40852, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
+ { 40892, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ { 40922, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ { 40950, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ { 40978, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ { 41006, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */
+ { 41027, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */
+ { 41046, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */
+ { 41068, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */
+ { 41087, 0x00008066 }, /* GL_TEXTURE_PRIORITY */
+ { 41107, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ { 41137, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ { 41168, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_ARB */
+ { 41193, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE_NV */
+ { 41217, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */
+ { 41237, 0x0000805C }, /* GL_TEXTURE_RED_SIZE_EXT */
+ { 41261, 0x00008067 }, /* GL_TEXTURE_RESIDENT */
+ { 41281, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */
+ { 41304, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */
+ { 41328, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE_EXT */
+ { 41356, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ { 41386, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */
+ { 41411, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ { 41445, 0x00001000 }, /* GL_TEXTURE_WIDTH */
+ { 41462, 0x00008072 }, /* GL_TEXTURE_WRAP_R */
+ { 41480, 0x00008072 }, /* GL_TEXTURE_WRAP_R_OES */
+ { 41502, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
+ { 41520, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
+ { 41538, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
+ { 41557, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
+ { 41577, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
+ { 41596, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ { 41625, 0x00001000 }, /* GL_TRANSFORM_BIT */
+ { 41642, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
+ { 41683, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
+ { 41716, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
+ { 41754, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
+ { 41792, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
+ { 41831, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
+ { 41876, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
+ { 41911, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
+ { 41956, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
+ { 41982, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
+ { 42012, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ { 42044, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ { 42074, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
+ { 42108, 0x0000862C }, /* GL_TRANSPOSE_NV */
+ { 42124, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ { 42155, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
+ { 42190, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ { 42218, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
+ { 42250, 0x00000004 }, /* GL_TRIANGLES */
+ { 42263, 0x00000006 }, /* GL_TRIANGLE_FAN */
+ { 42279, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
+ { 42300, 0x00000005 }, /* GL_TRIANGLE_STRIP */
+ { 42318, 0x00000001 }, /* GL_TRUE */
+ { 42326, 0x00008A1C }, /* GL_UNDEFINED_APPLE */
+ { 42345, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
+ { 42365, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
+ { 42388, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
+ { 42408, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
+ { 42429, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
+ { 42451, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
+ { 42473, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
+ { 42493, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
+ { 42514, 0x00009118 }, /* GL_UNSIGNALED */
+ { 42528, 0x00001401 }, /* GL_UNSIGNED_BYTE */
+ { 42545, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ { 42572, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
+ { 42595, 0x00001405 }, /* GL_UNSIGNED_INT */
+ { 42611, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
+ { 42638, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */
+ { 42669, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
+ { 42690, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
+ { 42715, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
+ { 42739, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_OES */
+ { 42764, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ { 42795, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV_EXT */
+ { 42830, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
+ { 42854, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ { 42882, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
+ { 42905, 0x00001403 }, /* GL_UNSIGNED_SHORT */
+ { 42923, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ { 42953, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT */
+ { 42987, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ { 43013, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ { 43043, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT */
+ { 43077, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ { 43103, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
+ { 43127, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ { 43155, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ { 43183, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
+ { 43210, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ { 43242, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
+ { 43273, 0x00008CA2 }, /* GL_UPPER_LEFT */
+ { 43287, 0x00002A20 }, /* GL_V2F */
+ { 43294, 0x00002A21 }, /* GL_V3F */
+ { 43301, 0x00008B83 }, /* GL_VALIDATE_STATUS */
+ { 43320, 0x00001F00 }, /* GL_VENDOR */
+ { 43330, 0x00001F02 }, /* GL_VERSION */
+ { 43341, 0x00008074 }, /* GL_VERTEX_ARRAY */
+ { 43357, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
+ { 43381, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
+ { 43411, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ { 43442, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
+ { 43477, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
+ { 43501, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
+ { 43522, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
+ { 43545, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
+ { 43566, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ { 43593, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ { 43621, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ { 43649, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ { 43677, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ { 43705, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ { 43733, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ { 43761, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ { 43788, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ { 43815, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ { 43842, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ { 43869, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ { 43896, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ { 43923, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ { 43950, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ { 43977, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ { 44004, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ { 44042, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
+ { 44084, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ { 44115, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
+ { 44150, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ { 44184, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
+ { 44222, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ { 44253, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
+ { 44288, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ { 44316, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
+ { 44348, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ { 44378, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
+ { 44412, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ { 44440, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
+ { 44472, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
+ { 44492, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
+ { 44514, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ { 44543, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
+ { 44564, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ { 44593, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
+ { 44626, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
+ { 44658, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ { 44685, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
+ { 44716, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
+ { 44746, 0x00008B31 }, /* GL_VERTEX_SHADER */
+ { 44763, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
+ { 44784, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
+ { 44811, 0x00000BA2 }, /* GL_VIEWPORT */
+ { 44823, 0x00000800 }, /* GL_VIEWPORT_BIT */
+ { 44839, 0x00008A1A }, /* GL_VOLATILE_APPLE */
+ { 44857, 0x0000911D }, /* GL_WAIT_FAILED */
+ { 44872, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
+ { 44892, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ { 44923, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
+ { 44958, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_OES */
+ { 44993, 0x000086AD }, /* GL_WEIGHT_ARRAY_OES */
+ { 45013, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ { 45041, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_OES */
+ { 45069, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ { 45094, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_OES */
+ { 45119, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ { 45146, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_OES */
+ { 45173, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ { 45198, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_OES */
+ { 45223, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
+ { 45247, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
+ { 45266, 0x000088B9 }, /* GL_WRITE_ONLY */
+ { 45280, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
+ { 45298, 0x000088B9 }, /* GL_WRITE_ONLY_OES */
+ { 45316, 0x00001506 }, /* GL_XOR */
+ { 45323, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
+ { 45342, 0x00008757 }, /* GL_YCBCR_MESA */
+ { 45356, 0x00000000 }, /* GL_ZERO */
+ { 45364, 0x00000D16 }, /* GL_ZOOM_X */
+ { 45374, 0x00000D17 }, /* GL_ZOOM_Y */
};
-static const unsigned reduced_enums[1372] =
+static const unsigned reduced_enums[1402] =
{
- 480, /* GL_FALSE */
- 704, /* GL_LINES */
- 706, /* GL_LINE_LOOP */
- 713, /* GL_LINE_STRIP */
- 1789, /* GL_TRIANGLES */
- 1792, /* GL_TRIANGLE_STRIP */
- 1790, /* GL_TRIANGLE_FAN */
- 1293, /* GL_QUADS */
- 1297, /* GL_QUAD_STRIP */
- 1177, /* GL_POLYGON */
- 1189, /* GL_POLYGON_STIPPLE_BIT */
- 1138, /* GL_PIXEL_MODE_BIT */
- 691, /* GL_LIGHTING_BIT */
- 510, /* GL_FOG_BIT */
+ 500, /* GL_FALSE */
+ 753, /* GL_LINES */
+ 755, /* GL_LINE_LOOP */
+ 762, /* GL_LINE_STRIP */
+ 1913, /* GL_TRIANGLES */
+ 1916, /* GL_TRIANGLE_STRIP */
+ 1914, /* GL_TRIANGLE_FAN */
+ 1376, /* GL_QUADS */
+ 1380, /* GL_QUAD_STRIP */
+ 1257, /* GL_POLYGON */
+ 1269, /* GL_POLYGON_STIPPLE_BIT */
+ 1212, /* GL_PIXEL_MODE_BIT */
+ 740, /* GL_LIGHTING_BIT */
+ 532, /* GL_FOG_BIT */
8, /* GL_ACCUM */
- 723, /* GL_LOAD */
- 1359, /* GL_RETURN */
- 1010, /* GL_MULT */
+ 772, /* GL_LOAD */
+ 1454, /* GL_RETURN */
+ 1080, /* GL_MULT */
23, /* GL_ADD */
- 1026, /* GL_NEVER */
- 681, /* GL_LESS */
- 470, /* GL_EQUAL */
- 680, /* GL_LEQUAL */
- 600, /* GL_GREATER */
- 1041, /* GL_NOTEQUAL */
- 599, /* GL_GEQUAL */
+ 1096, /* GL_NEVER */
+ 730, /* GL_LESS */
+ 490, /* GL_EQUAL */
+ 729, /* GL_LEQUAL */
+ 642, /* GL_GREATER */
+ 1113, /* GL_NOTEQUAL */
+ 641, /* GL_GEQUAL */
47, /* GL_ALWAYS */
- 1501, /* GL_SRC_COLOR */
- 1071, /* GL_ONE_MINUS_SRC_COLOR */
- 1499, /* GL_SRC_ALPHA */
- 1070, /* GL_ONE_MINUS_SRC_ALPHA */
- 449, /* GL_DST_ALPHA */
- 1068, /* GL_ONE_MINUS_DST_ALPHA */
- 450, /* GL_DST_COLOR */
- 1069, /* GL_ONE_MINUS_DST_COLOR */
- 1500, /* GL_SRC_ALPHA_SATURATE */
- 587, /* GL_FRONT_LEFT */
- 588, /* GL_FRONT_RIGHT */
+ 1605, /* GL_SRC_COLOR */
+ 1145, /* GL_ONE_MINUS_SRC_COLOR */
+ 1603, /* GL_SRC_ALPHA */
+ 1144, /* GL_ONE_MINUS_SRC_ALPHA */
+ 469, /* GL_DST_ALPHA */
+ 1142, /* GL_ONE_MINUS_DST_ALPHA */
+ 470, /* GL_DST_COLOR */
+ 1143, /* GL_ONE_MINUS_DST_COLOR */
+ 1604, /* GL_SRC_ALPHA_SATURATE */
+ 626, /* GL_FRONT_LEFT */
+ 627, /* GL_FRONT_RIGHT */
69, /* GL_BACK_LEFT */
70, /* GL_BACK_RIGHT */
- 584, /* GL_FRONT */
+ 623, /* GL_FRONT */
68, /* GL_BACK */
- 679, /* GL_LEFT */
- 1401, /* GL_RIGHT */
- 585, /* GL_FRONT_AND_BACK */
+ 728, /* GL_LEFT */
+ 1502, /* GL_RIGHT */
+ 624, /* GL_FRONT_AND_BACK */
63, /* GL_AUX0 */
64, /* GL_AUX1 */
65, /* GL_AUX2 */
66, /* GL_AUX3 */
- 668, /* GL_INVALID_ENUM */
- 672, /* GL_INVALID_VALUE */
- 671, /* GL_INVALID_OPERATION */
- 1506, /* GL_STACK_OVERFLOW */
- 1507, /* GL_STACK_UNDERFLOW */
- 1096, /* GL_OUT_OF_MEMORY */
- 669, /* GL_INVALID_FRAMEBUFFER_OPERATION */
+ 716, /* GL_INVALID_ENUM */
+ 721, /* GL_INVALID_VALUE */
+ 720, /* GL_INVALID_OPERATION */
+ 1610, /* GL_STACK_OVERFLOW */
+ 1611, /* GL_STACK_UNDERFLOW */
+ 1170, /* GL_OUT_OF_MEMORY */
+ 717, /* GL_INVALID_FRAMEBUFFER_OPERATION */
0, /* GL_2D */
2, /* GL_3D */
3, /* GL_3D_COLOR */
4, /* GL_3D_COLOR_TEXTURE */
6, /* GL_4D_COLOR_TEXTURE */
- 1116, /* GL_PASS_THROUGH_TOKEN */
- 1176, /* GL_POINT_TOKEN */
- 714, /* GL_LINE_TOKEN */
- 1190, /* GL_POLYGON_TOKEN */
- 74, /* GL_BITMAP_TOKEN */
- 448, /* GL_DRAW_PIXEL_TOKEN */
- 302, /* GL_COPY_PIXEL_TOKEN */
- 707, /* GL_LINE_RESET_TOKEN */
- 473, /* GL_EXP */
- 474, /* GL_EXP2 */
- 338, /* GL_CW */
- 126, /* GL_CCW */
- 147, /* GL_COEFF */
- 1093, /* GL_ORDER */
- 385, /* GL_DOMAIN */
- 312, /* GL_CURRENT_COLOR */
- 315, /* GL_CURRENT_INDEX */
- 321, /* GL_CURRENT_NORMAL */
- 334, /* GL_CURRENT_TEXTURE_COORDS */
- 326, /* GL_CURRENT_RASTER_COLOR */
- 328, /* GL_CURRENT_RASTER_INDEX */
- 332, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
- 329, /* GL_CURRENT_RASTER_POSITION */
- 330, /* GL_CURRENT_RASTER_POSITION_VALID */
- 327, /* GL_CURRENT_RASTER_DISTANCE */
- 1169, /* GL_POINT_SMOOTH */
- 1158, /* GL_POINT_SIZE */
- 1168, /* GL_POINT_SIZE_RANGE */
- 1159, /* GL_POINT_SIZE_GRANULARITY */
- 708, /* GL_LINE_SMOOTH */
- 715, /* GL_LINE_WIDTH */
- 717, /* GL_LINE_WIDTH_RANGE */
- 716, /* GL_LINE_WIDTH_GRANULARITY */
- 710, /* GL_LINE_STIPPLE */
- 711, /* GL_LINE_STIPPLE_PATTERN */
- 712, /* GL_LINE_STIPPLE_REPEAT */
- 722, /* GL_LIST_MODE */
- 888, /* GL_MAX_LIST_NESTING */
- 719, /* GL_LIST_BASE */
- 721, /* GL_LIST_INDEX */
- 1179, /* GL_POLYGON_MODE */
- 1186, /* GL_POLYGON_SMOOTH */
- 1188, /* GL_POLYGON_STIPPLE */
- 459, /* GL_EDGE_FLAG */
- 305, /* GL_CULL_FACE */
- 306, /* GL_CULL_FACE_MODE */
- 586, /* GL_FRONT_FACE */
- 690, /* GL_LIGHTING */
- 695, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
- 696, /* GL_LIGHT_MODEL_TWO_SIDE */
- 692, /* GL_LIGHT_MODEL_AMBIENT */
- 1448, /* GL_SHADE_MODEL */
- 194, /* GL_COLOR_MATERIAL_FACE */
- 195, /* GL_COLOR_MATERIAL_PARAMETER */
- 193, /* GL_COLOR_MATERIAL */
- 509, /* GL_FOG */
- 531, /* GL_FOG_INDEX */
- 527, /* GL_FOG_DENSITY */
- 535, /* GL_FOG_START */
- 529, /* GL_FOG_END */
- 532, /* GL_FOG_MODE */
- 511, /* GL_FOG_COLOR */
- 371, /* GL_DEPTH_RANGE */
- 379, /* GL_DEPTH_TEST */
- 382, /* GL_DEPTH_WRITEMASK */
- 359, /* GL_DEPTH_CLEAR_VALUE */
- 370, /* GL_DEPTH_FUNC */
+ 1190, /* GL_PASS_THROUGH_TOKEN */
+ 1256, /* GL_POINT_TOKEN */
+ 763, /* GL_LINE_TOKEN */
+ 1270, /* GL_POLYGON_TOKEN */
+ 75, /* GL_BITMAP_TOKEN */
+ 468, /* GL_DRAW_PIXEL_TOKEN */
+ 315, /* GL_COPY_PIXEL_TOKEN */
+ 756, /* GL_LINE_RESET_TOKEN */
+ 493, /* GL_EXP */
+ 494, /* GL_EXP2 */
+ 352, /* GL_CW */
+ 137, /* GL_CCW */
+ 158, /* GL_COEFF */
+ 1167, /* GL_ORDER */
+ 405, /* GL_DOMAIN */
+ 325, /* GL_CURRENT_COLOR */
+ 328, /* GL_CURRENT_INDEX */
+ 334, /* GL_CURRENT_NORMAL */
+ 348, /* GL_CURRENT_TEXTURE_COORDS */
+ 340, /* GL_CURRENT_RASTER_COLOR */
+ 342, /* GL_CURRENT_RASTER_INDEX */
+ 346, /* GL_CURRENT_RASTER_TEXTURE_COORDS */
+ 343, /* GL_CURRENT_RASTER_POSITION */
+ 344, /* GL_CURRENT_RASTER_POSITION_VALID */
+ 341, /* GL_CURRENT_RASTER_DISTANCE */
+ 1248, /* GL_POINT_SMOOTH */
+ 1232, /* GL_POINT_SIZE */
+ 1247, /* GL_POINT_SIZE_RANGE */
+ 1238, /* GL_POINT_SIZE_GRANULARITY */
+ 757, /* GL_LINE_SMOOTH */
+ 764, /* GL_LINE_WIDTH */
+ 766, /* GL_LINE_WIDTH_RANGE */
+ 765, /* GL_LINE_WIDTH_GRANULARITY */
+ 759, /* GL_LINE_STIPPLE */
+ 760, /* GL_LINE_STIPPLE_PATTERN */
+ 761, /* GL_LINE_STIPPLE_REPEAT */
+ 771, /* GL_LIST_MODE */
+ 949, /* GL_MAX_LIST_NESTING */
+ 768, /* GL_LIST_BASE */
+ 770, /* GL_LIST_INDEX */
+ 1259, /* GL_POLYGON_MODE */
+ 1266, /* GL_POLYGON_SMOOTH */
+ 1268, /* GL_POLYGON_STIPPLE */
+ 479, /* GL_EDGE_FLAG */
+ 318, /* GL_CULL_FACE */
+ 319, /* GL_CULL_FACE_MODE */
+ 625, /* GL_FRONT_FACE */
+ 739, /* GL_LIGHTING */
+ 744, /* GL_LIGHT_MODEL_LOCAL_VIEWER */
+ 745, /* GL_LIGHT_MODEL_TWO_SIDE */
+ 741, /* GL_LIGHT_MODEL_AMBIENT */
+ 1552, /* GL_SHADE_MODEL */
+ 206, /* GL_COLOR_MATERIAL_FACE */
+ 207, /* GL_COLOR_MATERIAL_PARAMETER */
+ 205, /* GL_COLOR_MATERIAL */
+ 531, /* GL_FOG */
+ 553, /* GL_FOG_INDEX */
+ 549, /* GL_FOG_DENSITY */
+ 557, /* GL_FOG_START */
+ 551, /* GL_FOG_END */
+ 554, /* GL_FOG_MODE */
+ 533, /* GL_FOG_COLOR */
+ 390, /* GL_DEPTH_RANGE */
+ 399, /* GL_DEPTH_TEST */
+ 402, /* GL_DEPTH_WRITEMASK */
+ 375, /* GL_DEPTH_CLEAR_VALUE */
+ 389, /* GL_DEPTH_FUNC */
12, /* GL_ACCUM_CLEAR_VALUE */
- 1546, /* GL_STENCIL_TEST */
- 1530, /* GL_STENCIL_CLEAR_VALUE */
- 1532, /* GL_STENCIL_FUNC */
- 1548, /* GL_STENCIL_VALUE_MASK */
- 1531, /* GL_STENCIL_FAIL */
- 1543, /* GL_STENCIL_PASS_DEPTH_FAIL */
- 1544, /* GL_STENCIL_PASS_DEPTH_PASS */
- 1545, /* GL_STENCIL_REF */
- 1549, /* GL_STENCIL_WRITEMASK */
- 856, /* GL_MATRIX_MODE */
- 1031, /* GL_NORMALIZE */
- 1885, /* GL_VIEWPORT */
- 1005, /* GL_MODELVIEW_STACK_DEPTH */
- 1270, /* GL_PROJECTION_STACK_DEPTH */
- 1756, /* GL_TEXTURE_STACK_DEPTH */
- 1003, /* GL_MODELVIEW_MATRIX */
- 1269, /* GL_PROJECTION_MATRIX */
- 1739, /* GL_TEXTURE_MATRIX */
+ 1654, /* GL_STENCIL_TEST */
+ 1635, /* GL_STENCIL_CLEAR_VALUE */
+ 1637, /* GL_STENCIL_FUNC */
+ 1656, /* GL_STENCIL_VALUE_MASK */
+ 1636, /* GL_STENCIL_FAIL */
+ 1651, /* GL_STENCIL_PASS_DEPTH_FAIL */
+ 1652, /* GL_STENCIL_PASS_DEPTH_PASS */
+ 1653, /* GL_STENCIL_REF */
+ 1657, /* GL_STENCIL_WRITEMASK */
+ 913, /* GL_MATRIX_MODE */
+ 1102, /* GL_NORMALIZE */
+ 2014, /* GL_VIEWPORT */
+ 1075, /* GL_MODELVIEW_STACK_DEPTH */
+ 1353, /* GL_PROJECTION_STACK_DEPTH */
+ 1879, /* GL_TEXTURE_STACK_DEPTH */
+ 1072, /* GL_MODELVIEW_MATRIX */
+ 1351, /* GL_PROJECTION_MATRIX */
+ 1861, /* GL_TEXTURE_MATRIX */
61, /* GL_ATTRIB_STACK_DEPTH */
- 137, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
+ 148, /* GL_CLIENT_ATTRIB_STACK_DEPTH */
43, /* GL_ALPHA_TEST */
44, /* GL_ALPHA_TEST_FUNC */
45, /* GL_ALPHA_TEST_REF */
- 384, /* GL_DITHER */
- 78, /* GL_BLEND_DST */
- 87, /* GL_BLEND_SRC */
- 75, /* GL_BLEND */
- 725, /* GL_LOGIC_OP_MODE */
- 641, /* GL_INDEX_LOGIC_OP */
- 192, /* GL_COLOR_LOGIC_OP */
+ 404, /* GL_DITHER */
+ 79, /* GL_BLEND_DST */
+ 93, /* GL_BLEND_SRC */
+ 76, /* GL_BLEND */
+ 774, /* GL_LOGIC_OP_MODE */
+ 688, /* GL_INDEX_LOGIC_OP */
+ 204, /* GL_COLOR_LOGIC_OP */
67, /* GL_AUX_BUFFERS */
- 395, /* GL_DRAW_BUFFER */
- 1312, /* GL_READ_BUFFER */
- 1428, /* GL_SCISSOR_BOX */
- 1429, /* GL_SCISSOR_TEST */
- 640, /* GL_INDEX_CLEAR_VALUE */
- 645, /* GL_INDEX_WRITEMASK */
- 189, /* GL_COLOR_CLEAR_VALUE */
- 231, /* GL_COLOR_WRITEMASK */
- 642, /* GL_INDEX_MODE */
- 1394, /* GL_RGBA_MODE */
- 394, /* GL_DOUBLEBUFFER */
- 1550, /* GL_STEREO */
- 1351, /* GL_RENDER_MODE */
- 1117, /* GL_PERSPECTIVE_CORRECTION_HINT */
- 1170, /* GL_POINT_SMOOTH_HINT */
- 709, /* GL_LINE_SMOOTH_HINT */
- 1187, /* GL_POLYGON_SMOOTH_HINT */
- 530, /* GL_FOG_HINT */
- 1720, /* GL_TEXTURE_GEN_S */
- 1721, /* GL_TEXTURE_GEN_T */
- 1719, /* GL_TEXTURE_GEN_R */
- 1718, /* GL_TEXTURE_GEN_Q */
- 1130, /* GL_PIXEL_MAP_I_TO_I */
- 1136, /* GL_PIXEL_MAP_S_TO_S */
- 1132, /* GL_PIXEL_MAP_I_TO_R */
- 1128, /* GL_PIXEL_MAP_I_TO_G */
- 1126, /* GL_PIXEL_MAP_I_TO_B */
- 1124, /* GL_PIXEL_MAP_I_TO_A */
- 1134, /* GL_PIXEL_MAP_R_TO_R */
- 1122, /* GL_PIXEL_MAP_G_TO_G */
- 1120, /* GL_PIXEL_MAP_B_TO_B */
- 1118, /* GL_PIXEL_MAP_A_TO_A */
- 1131, /* GL_PIXEL_MAP_I_TO_I_SIZE */
- 1137, /* GL_PIXEL_MAP_S_TO_S_SIZE */
- 1133, /* GL_PIXEL_MAP_I_TO_R_SIZE */
- 1129, /* GL_PIXEL_MAP_I_TO_G_SIZE */
- 1127, /* GL_PIXEL_MAP_I_TO_B_SIZE */
- 1125, /* GL_PIXEL_MAP_I_TO_A_SIZE */
- 1135, /* GL_PIXEL_MAP_R_TO_R_SIZE */
- 1123, /* GL_PIXEL_MAP_G_TO_G_SIZE */
- 1121, /* GL_PIXEL_MAP_B_TO_B_SIZE */
- 1119, /* GL_PIXEL_MAP_A_TO_A_SIZE */
- 1802, /* GL_UNPACK_SWAP_BYTES */
- 1797, /* GL_UNPACK_LSB_FIRST */
- 1798, /* GL_UNPACK_ROW_LENGTH */
- 1801, /* GL_UNPACK_SKIP_ROWS */
- 1800, /* GL_UNPACK_SKIP_PIXELS */
- 1795, /* GL_UNPACK_ALIGNMENT */
- 1105, /* GL_PACK_SWAP_BYTES */
- 1100, /* GL_PACK_LSB_FIRST */
- 1101, /* GL_PACK_ROW_LENGTH */
- 1104, /* GL_PACK_SKIP_ROWS */
- 1103, /* GL_PACK_SKIP_PIXELS */
- 1097, /* GL_PACK_ALIGNMENT */
- 803, /* GL_MAP_COLOR */
- 808, /* GL_MAP_STENCIL */
- 644, /* GL_INDEX_SHIFT */
- 643, /* GL_INDEX_OFFSET */
- 1326, /* GL_RED_SCALE */
- 1324, /* GL_RED_BIAS */
- 1904, /* GL_ZOOM_X */
- 1905, /* GL_ZOOM_Y */
- 604, /* GL_GREEN_SCALE */
- 602, /* GL_GREEN_BIAS */
- 93, /* GL_BLUE_SCALE */
- 91, /* GL_BLUE_BIAS */
+ 415, /* GL_DRAW_BUFFER */
+ 1395, /* GL_READ_BUFFER */
+ 1530, /* GL_SCISSOR_BOX */
+ 1531, /* GL_SCISSOR_TEST */
+ 687, /* GL_INDEX_CLEAR_VALUE */
+ 692, /* GL_INDEX_WRITEMASK */
+ 201, /* GL_COLOR_CLEAR_VALUE */
+ 243, /* GL_COLOR_WRITEMASK */
+ 689, /* GL_INDEX_MODE */
+ 1495, /* GL_RGBA_MODE */
+ 414, /* GL_DOUBLEBUFFER */
+ 1658, /* GL_STEREO */
+ 1446, /* GL_RENDER_MODE */
+ 1191, /* GL_PERSPECTIVE_CORRECTION_HINT */
+ 1249, /* GL_POINT_SMOOTH_HINT */
+ 758, /* GL_LINE_SMOOTH_HINT */
+ 1267, /* GL_POLYGON_SMOOTH_HINT */
+ 552, /* GL_FOG_HINT */
+ 1841, /* GL_TEXTURE_GEN_S */
+ 1843, /* GL_TEXTURE_GEN_T */
+ 1840, /* GL_TEXTURE_GEN_R */
+ 1839, /* GL_TEXTURE_GEN_Q */
+ 1204, /* GL_PIXEL_MAP_I_TO_I */
+ 1210, /* GL_PIXEL_MAP_S_TO_S */
+ 1206, /* GL_PIXEL_MAP_I_TO_R */
+ 1202, /* GL_PIXEL_MAP_I_TO_G */
+ 1200, /* GL_PIXEL_MAP_I_TO_B */
+ 1198, /* GL_PIXEL_MAP_I_TO_A */
+ 1208, /* GL_PIXEL_MAP_R_TO_R */
+ 1196, /* GL_PIXEL_MAP_G_TO_G */
+ 1194, /* GL_PIXEL_MAP_B_TO_B */
+ 1192, /* GL_PIXEL_MAP_A_TO_A */
+ 1205, /* GL_PIXEL_MAP_I_TO_I_SIZE */
+ 1211, /* GL_PIXEL_MAP_S_TO_S_SIZE */
+ 1207, /* GL_PIXEL_MAP_I_TO_R_SIZE */
+ 1203, /* GL_PIXEL_MAP_I_TO_G_SIZE */
+ 1201, /* GL_PIXEL_MAP_I_TO_B_SIZE */
+ 1199, /* GL_PIXEL_MAP_I_TO_A_SIZE */
+ 1209, /* GL_PIXEL_MAP_R_TO_R_SIZE */
+ 1197, /* GL_PIXEL_MAP_G_TO_G_SIZE */
+ 1195, /* GL_PIXEL_MAP_B_TO_B_SIZE */
+ 1193, /* GL_PIXEL_MAP_A_TO_A_SIZE */
+ 1926, /* GL_UNPACK_SWAP_BYTES */
+ 1921, /* GL_UNPACK_LSB_FIRST */
+ 1922, /* GL_UNPACK_ROW_LENGTH */
+ 1925, /* GL_UNPACK_SKIP_ROWS */
+ 1924, /* GL_UNPACK_SKIP_PIXELS */
+ 1919, /* GL_UNPACK_ALIGNMENT */
+ 1179, /* GL_PACK_SWAP_BYTES */
+ 1174, /* GL_PACK_LSB_FIRST */
+ 1175, /* GL_PACK_ROW_LENGTH */
+ 1178, /* GL_PACK_SKIP_ROWS */
+ 1177, /* GL_PACK_SKIP_PIXELS */
+ 1171, /* GL_PACK_ALIGNMENT */
+ 854, /* GL_MAP_COLOR */
+ 859, /* GL_MAP_STENCIL */
+ 691, /* GL_INDEX_SHIFT */
+ 690, /* GL_INDEX_OFFSET */
+ 1409, /* GL_RED_SCALE */
+ 1407, /* GL_RED_BIAS */
+ 2040, /* GL_ZOOM_X */
+ 2041, /* GL_ZOOM_Y */
+ 646, /* GL_GREEN_SCALE */
+ 644, /* GL_GREEN_BIAS */
+ 101, /* GL_BLUE_SCALE */
+ 99, /* GL_BLUE_BIAS */
42, /* GL_ALPHA_SCALE */
40, /* GL_ALPHA_BIAS */
- 372, /* GL_DEPTH_SCALE */
- 352, /* GL_DEPTH_BIAS */
- 883, /* GL_MAX_EVAL_ORDER */
- 887, /* GL_MAX_LIGHTS */
- 865, /* GL_MAX_CLIP_PLANES */
- 935, /* GL_MAX_TEXTURE_SIZE */
- 893, /* GL_MAX_PIXEL_MAP_TABLE */
- 861, /* GL_MAX_ATTRIB_STACK_DEPTH */
- 890, /* GL_MAX_MODELVIEW_STACK_DEPTH */
- 891, /* GL_MAX_NAME_STACK_DEPTH */
- 919, /* GL_MAX_PROJECTION_STACK_DEPTH */
- 936, /* GL_MAX_TEXTURE_STACK_DEPTH */
- 953, /* GL_MAX_VIEWPORT_DIMS */
- 862, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
- 1560, /* GL_SUBPIXEL_BITS */
- 639, /* GL_INDEX_BITS */
- 1325, /* GL_RED_BITS */
- 603, /* GL_GREEN_BITS */
- 92, /* GL_BLUE_BITS */
+ 391, /* GL_DEPTH_SCALE */
+ 368, /* GL_DEPTH_BIAS */
+ 943, /* GL_MAX_EVAL_ORDER */
+ 948, /* GL_MAX_LIGHTS */
+ 924, /* GL_MAX_CLIP_PLANES */
+ 999, /* GL_MAX_TEXTURE_SIZE */
+ 955, /* GL_MAX_PIXEL_MAP_TABLE */
+ 920, /* GL_MAX_ATTRIB_STACK_DEPTH */
+ 951, /* GL_MAX_MODELVIEW_STACK_DEPTH */
+ 952, /* GL_MAX_NAME_STACK_DEPTH */
+ 981, /* GL_MAX_PROJECTION_STACK_DEPTH */
+ 1000, /* GL_MAX_TEXTURE_STACK_DEPTH */
+ 1020, /* GL_MAX_VIEWPORT_DIMS */
+ 921, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */
+ 1668, /* GL_SUBPIXEL_BITS */
+ 686, /* GL_INDEX_BITS */
+ 1408, /* GL_RED_BITS */
+ 645, /* GL_GREEN_BITS */
+ 100, /* GL_BLUE_BITS */
41, /* GL_ALPHA_BITS */
- 353, /* GL_DEPTH_BITS */
- 1528, /* GL_STENCIL_BITS */
+ 369, /* GL_DEPTH_BITS */
+ 1633, /* GL_STENCIL_BITS */
14, /* GL_ACCUM_RED_BITS */
13, /* GL_ACCUM_GREEN_BITS */
10, /* GL_ACCUM_BLUE_BITS */
9, /* GL_ACCUM_ALPHA_BITS */
- 1019, /* GL_NAME_STACK_DEPTH */
+ 1089, /* GL_NAME_STACK_DEPTH */
62, /* GL_AUTO_NORMAL */
- 749, /* GL_MAP1_COLOR_4 */
- 752, /* GL_MAP1_INDEX */
- 753, /* GL_MAP1_NORMAL */
- 754, /* GL_MAP1_TEXTURE_COORD_1 */
- 755, /* GL_MAP1_TEXTURE_COORD_2 */
- 756, /* GL_MAP1_TEXTURE_COORD_3 */
- 757, /* GL_MAP1_TEXTURE_COORD_4 */
- 758, /* GL_MAP1_VERTEX_3 */
- 759, /* GL_MAP1_VERTEX_4 */
- 776, /* GL_MAP2_COLOR_4 */
- 779, /* GL_MAP2_INDEX */
- 780, /* GL_MAP2_NORMAL */
- 781, /* GL_MAP2_TEXTURE_COORD_1 */
- 782, /* GL_MAP2_TEXTURE_COORD_2 */
- 783, /* GL_MAP2_TEXTURE_COORD_3 */
- 784, /* GL_MAP2_TEXTURE_COORD_4 */
- 785, /* GL_MAP2_VERTEX_3 */
- 786, /* GL_MAP2_VERTEX_4 */
- 750, /* GL_MAP1_GRID_DOMAIN */
- 751, /* GL_MAP1_GRID_SEGMENTS */
- 777, /* GL_MAP2_GRID_DOMAIN */
- 778, /* GL_MAP2_GRID_SEGMENTS */
- 1643, /* GL_TEXTURE_1D */
- 1645, /* GL_TEXTURE_2D */
- 483, /* GL_FEEDBACK_BUFFER_POINTER */
- 484, /* GL_FEEDBACK_BUFFER_SIZE */
- 485, /* GL_FEEDBACK_BUFFER_TYPE */
- 1438, /* GL_SELECTION_BUFFER_POINTER */
- 1439, /* GL_SELECTION_BUFFER_SIZE */
- 1762, /* GL_TEXTURE_WIDTH */
- 1725, /* GL_TEXTURE_HEIGHT */
- 1680, /* GL_TEXTURE_COMPONENTS */
- 1664, /* GL_TEXTURE_BORDER_COLOR */
- 1663, /* GL_TEXTURE_BORDER */
- 386, /* GL_DONT_CARE */
- 481, /* GL_FASTEST */
- 1027, /* GL_NICEST */
+ 800, /* GL_MAP1_COLOR_4 */
+ 803, /* GL_MAP1_INDEX */
+ 804, /* GL_MAP1_NORMAL */
+ 805, /* GL_MAP1_TEXTURE_COORD_1 */
+ 806, /* GL_MAP1_TEXTURE_COORD_2 */
+ 807, /* GL_MAP1_TEXTURE_COORD_3 */
+ 808, /* GL_MAP1_TEXTURE_COORD_4 */
+ 809, /* GL_MAP1_VERTEX_3 */
+ 810, /* GL_MAP1_VERTEX_4 */
+ 827, /* GL_MAP2_COLOR_4 */
+ 830, /* GL_MAP2_INDEX */
+ 831, /* GL_MAP2_NORMAL */
+ 832, /* GL_MAP2_TEXTURE_COORD_1 */
+ 833, /* GL_MAP2_TEXTURE_COORD_2 */
+ 834, /* GL_MAP2_TEXTURE_COORD_3 */
+ 835, /* GL_MAP2_TEXTURE_COORD_4 */
+ 836, /* GL_MAP2_VERTEX_3 */
+ 837, /* GL_MAP2_VERTEX_4 */
+ 801, /* GL_MAP1_GRID_DOMAIN */
+ 802, /* GL_MAP1_GRID_SEGMENTS */
+ 828, /* GL_MAP2_GRID_DOMAIN */
+ 829, /* GL_MAP2_GRID_SEGMENTS */
+ 1751, /* GL_TEXTURE_1D */
+ 1753, /* GL_TEXTURE_2D */
+ 503, /* GL_FEEDBACK_BUFFER_POINTER */
+ 504, /* GL_FEEDBACK_BUFFER_SIZE */
+ 505, /* GL_FEEDBACK_BUFFER_TYPE */
+ 1540, /* GL_SELECTION_BUFFER_POINTER */
+ 1541, /* GL_SELECTION_BUFFER_SIZE */
+ 1885, /* GL_TEXTURE_WIDTH */
+ 1847, /* GL_TEXTURE_HEIGHT */
+ 1791, /* GL_TEXTURE_COMPONENTS */
+ 1775, /* GL_TEXTURE_BORDER_COLOR */
+ 1774, /* GL_TEXTURE_BORDER */
+ 406, /* GL_DONT_CARE */
+ 501, /* GL_FASTEST */
+ 1097, /* GL_NICEST */
48, /* GL_AMBIENT */
- 383, /* GL_DIFFUSE */
- 1488, /* GL_SPECULAR */
- 1191, /* GL_POSITION */
- 1491, /* GL_SPOT_DIRECTION */
- 1492, /* GL_SPOT_EXPONENT */
- 1490, /* GL_SPOT_CUTOFF */
- 276, /* GL_CONSTANT_ATTENUATION */
- 699, /* GL_LINEAR_ATTENUATION */
- 1292, /* GL_QUADRATIC_ATTENUATION */
- 245, /* GL_COMPILE */
- 246, /* GL_COMPILE_AND_EXECUTE */
- 121, /* GL_BYTE */
- 1804, /* GL_UNSIGNED_BYTE */
- 1453, /* GL_SHORT */
- 1816, /* GL_UNSIGNED_SHORT */
- 647, /* GL_INT */
- 1807, /* GL_UNSIGNED_INT */
- 490, /* GL_FLOAT */
+ 403, /* GL_DIFFUSE */
+ 1592, /* GL_SPECULAR */
+ 1271, /* GL_POSITION */
+ 1595, /* GL_SPOT_DIRECTION */
+ 1596, /* GL_SPOT_EXPONENT */
+ 1594, /* GL_SPOT_CUTOFF */
+ 288, /* GL_CONSTANT_ATTENUATION */
+ 748, /* GL_LINEAR_ATTENUATION */
+ 1375, /* GL_QUADRATIC_ATTENUATION */
+ 257, /* GL_COMPILE */
+ 258, /* GL_COMPILE_AND_EXECUTE */
+ 132, /* GL_BYTE */
+ 1928, /* GL_UNSIGNED_BYTE */
+ 1557, /* GL_SHORT */
+ 1943, /* GL_UNSIGNED_SHORT */
+ 694, /* GL_INT */
+ 1931, /* GL_UNSIGNED_INT */
+ 512, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
7, /* GL_4_BYTES */
- 393, /* GL_DOUBLE */
- 605, /* GL_HALF_FLOAT */
- 133, /* GL_CLEAR */
+ 413, /* GL_DOUBLE */
+ 647, /* GL_HALF_FLOAT */
+ 509, /* GL_FIXED */
+ 144, /* GL_CLEAR */
50, /* GL_AND */
52, /* GL_AND_REVERSE */
- 300, /* GL_COPY */
+ 313, /* GL_COPY */
51, /* GL_AND_INVERTED */
- 1029, /* GL_NOOP */
- 1900, /* GL_XOR */
- 1092, /* GL_OR */
- 1030, /* GL_NOR */
- 471, /* GL_EQUIV */
- 675, /* GL_INVERT */
- 1095, /* GL_OR_REVERSE */
- 301, /* GL_COPY_INVERTED */
- 1094, /* GL_OR_INVERTED */
- 1020, /* GL_NAND */
- 1444, /* GL_SET */
- 468, /* GL_EMISSION */
- 1452, /* GL_SHININESS */
+ 1100, /* GL_NOOP */
+ 2036, /* GL_XOR */
+ 1166, /* GL_OR */
+ 1101, /* GL_NOR */
+ 491, /* GL_EQUIV */
+ 724, /* GL_INVERT */
+ 1169, /* GL_OR_REVERSE */
+ 314, /* GL_COPY_INVERTED */
+ 1168, /* GL_OR_INVERTED */
+ 1090, /* GL_NAND */
+ 1546, /* GL_SET */
+ 488, /* GL_EMISSION */
+ 1556, /* GL_SHININESS */
49, /* GL_AMBIENT_AND_DIFFUSE */
- 191, /* GL_COLOR_INDEXES */
- 970, /* GL_MODELVIEW */
- 1268, /* GL_PROJECTION */
- 1578, /* GL_TEXTURE */
- 148, /* GL_COLOR */
- 347, /* GL_DEPTH */
- 1514, /* GL_STENCIL */
- 190, /* GL_COLOR_INDEX */
- 1533, /* GL_STENCIL_INDEX */
- 360, /* GL_DEPTH_COMPONENT */
- 1321, /* GL_RED */
- 601, /* GL_GREEN */
- 90, /* GL_BLUE */
+ 203, /* GL_COLOR_INDEXES */
+ 1039, /* GL_MODELVIEW */
+ 1350, /* GL_PROJECTION */
+ 1686, /* GL_TEXTURE */
+ 159, /* GL_COLOR */
+ 361, /* GL_DEPTH */
+ 1618, /* GL_STENCIL */
+ 202, /* GL_COLOR_INDEX */
+ 1638, /* GL_STENCIL_INDEX */
+ 376, /* GL_DEPTH_COMPONENT */
+ 1404, /* GL_RED */
+ 643, /* GL_GREEN */
+ 98, /* GL_BLUE */
31, /* GL_ALPHA */
- 1360, /* GL_RGB */
- 1379, /* GL_RGBA */
- 727, /* GL_LUMINANCE */
- 748, /* GL_LUMINANCE_ALPHA */
- 73, /* GL_BITMAP */
- 1147, /* GL_POINT */
- 697, /* GL_LINE */
- 486, /* GL_FILL */
- 1331, /* GL_RENDER */
- 482, /* GL_FEEDBACK */
- 1437, /* GL_SELECT */
- 489, /* GL_FLAT */
- 1463, /* GL_SMOOTH */
- 676, /* GL_KEEP */
- 1353, /* GL_REPLACE */
- 629, /* GL_INCR */
- 343, /* GL_DECR */
- 1831, /* GL_VENDOR */
- 1350, /* GL_RENDERER */
- 1832, /* GL_VERSION */
- 475, /* GL_EXTENSIONS */
- 1402, /* GL_S */
- 1569, /* GL_T */
- 1308, /* GL_R */
- 1291, /* GL_Q */
- 1006, /* GL_MODULATE */
- 342, /* GL_DECAL */
- 1715, /* GL_TEXTURE_ENV_MODE */
- 1714, /* GL_TEXTURE_ENV_COLOR */
- 1713, /* GL_TEXTURE_ENV */
- 476, /* GL_EYE_LINEAR */
- 1053, /* GL_OBJECT_LINEAR */
- 1489, /* GL_SPHERE_MAP */
- 1717, /* GL_TEXTURE_GEN_MODE */
- 1055, /* GL_OBJECT_PLANE */
- 477, /* GL_EYE_PLANE */
- 1021, /* GL_NEAREST */
- 698, /* GL_LINEAR */
- 1025, /* GL_NEAREST_MIPMAP_NEAREST */
- 703, /* GL_LINEAR_MIPMAP_NEAREST */
- 1024, /* GL_NEAREST_MIPMAP_LINEAR */
- 702, /* GL_LINEAR_MIPMAP_LINEAR */
- 1738, /* GL_TEXTURE_MAG_FILTER */
- 1746, /* GL_TEXTURE_MIN_FILTER */
- 1764, /* GL_TEXTURE_WRAP_S */
- 1765, /* GL_TEXTURE_WRAP_T */
- 127, /* GL_CLAMP */
- 1352, /* GL_REPEAT */
- 1185, /* GL_POLYGON_OFFSET_UNITS */
- 1184, /* GL_POLYGON_OFFSET_POINT */
- 1183, /* GL_POLYGON_OFFSET_LINE */
- 1309, /* GL_R3_G3_B2 */
- 1828, /* GL_V2F */
- 1829, /* GL_V3F */
- 124, /* GL_C4UB_V2F */
- 125, /* GL_C4UB_V3F */
- 122, /* GL_C3F_V3F */
- 1018, /* GL_N3F_V3F */
- 123, /* GL_C4F_N3F_V3F */
- 1574, /* GL_T2F_V3F */
- 1576, /* GL_T4F_V4F */
- 1572, /* GL_T2F_C4UB_V3F */
- 1570, /* GL_T2F_C3F_V3F */
- 1573, /* GL_T2F_N3F_V3F */
- 1571, /* GL_T2F_C4F_N3F_V3F */
- 1575, /* GL_T4F_C4F_N3F_V4F */
- 140, /* GL_CLIP_PLANE0 */
- 141, /* GL_CLIP_PLANE1 */
- 142, /* GL_CLIP_PLANE2 */
- 143, /* GL_CLIP_PLANE3 */
- 144, /* GL_CLIP_PLANE4 */
- 145, /* GL_CLIP_PLANE5 */
- 682, /* GL_LIGHT0 */
- 683, /* GL_LIGHT1 */
- 684, /* GL_LIGHT2 */
- 685, /* GL_LIGHT3 */
- 686, /* GL_LIGHT4 */
- 687, /* GL_LIGHT5 */
- 688, /* GL_LIGHT6 */
- 689, /* GL_LIGHT7 */
- 606, /* GL_HINT_BIT */
- 278, /* GL_CONSTANT_COLOR */
- 1066, /* GL_ONE_MINUS_CONSTANT_COLOR */
- 273, /* GL_CONSTANT_ALPHA */
- 1064, /* GL_ONE_MINUS_CONSTANT_ALPHA */
- 76, /* GL_BLEND_COLOR */
- 589, /* GL_FUNC_ADD */
- 954, /* GL_MIN */
- 858, /* GL_MAX */
- 81, /* GL_BLEND_EQUATION */
- 593, /* GL_FUNC_SUBTRACT */
- 591, /* GL_FUNC_REVERSE_SUBTRACT */
- 281, /* GL_CONVOLUTION_1D */
- 282, /* GL_CONVOLUTION_2D */
- 1440, /* GL_SEPARABLE_2D */
- 285, /* GL_CONVOLUTION_BORDER_MODE */
- 289, /* GL_CONVOLUTION_FILTER_SCALE */
- 287, /* GL_CONVOLUTION_FILTER_BIAS */
- 1322, /* GL_REDUCE */
- 291, /* GL_CONVOLUTION_FORMAT */
- 295, /* GL_CONVOLUTION_WIDTH */
- 293, /* GL_CONVOLUTION_HEIGHT */
- 874, /* GL_MAX_CONVOLUTION_WIDTH */
- 872, /* GL_MAX_CONVOLUTION_HEIGHT */
- 1224, /* GL_POST_CONVOLUTION_RED_SCALE */
- 1220, /* GL_POST_CONVOLUTION_GREEN_SCALE */
- 1215, /* GL_POST_CONVOLUTION_BLUE_SCALE */
- 1211, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
- 1222, /* GL_POST_CONVOLUTION_RED_BIAS */
- 1218, /* GL_POST_CONVOLUTION_GREEN_BIAS */
- 1213, /* GL_POST_CONVOLUTION_BLUE_BIAS */
- 1209, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
- 607, /* GL_HISTOGRAM */
- 1274, /* GL_PROXY_HISTOGRAM */
- 623, /* GL_HISTOGRAM_WIDTH */
- 613, /* GL_HISTOGRAM_FORMAT */
- 619, /* GL_HISTOGRAM_RED_SIZE */
- 615, /* GL_HISTOGRAM_GREEN_SIZE */
- 610, /* GL_HISTOGRAM_BLUE_SIZE */
- 608, /* GL_HISTOGRAM_ALPHA_SIZE */
- 617, /* GL_HISTOGRAM_LUMINANCE_SIZE */
- 621, /* GL_HISTOGRAM_SINK */
- 955, /* GL_MINMAX */
- 957, /* GL_MINMAX_FORMAT */
- 959, /* GL_MINMAX_SINK */
- 1577, /* GL_TABLE_TOO_LARGE_EXT */
- 1806, /* GL_UNSIGNED_BYTE_3_3_2 */
- 1818, /* GL_UNSIGNED_SHORT_4_4_4_4 */
- 1820, /* GL_UNSIGNED_SHORT_5_5_5_1 */
- 1813, /* GL_UNSIGNED_INT_8_8_8_8 */
- 1808, /* GL_UNSIGNED_INT_10_10_10_2 */
- 1182, /* GL_POLYGON_OFFSET_FILL */
- 1181, /* GL_POLYGON_OFFSET_FACTOR */
- 1180, /* GL_POLYGON_OFFSET_BIAS */
- 1356, /* GL_RESCALE_NORMAL */
+ 1455, /* GL_RGB */
+ 1478, /* GL_RGBA */
+ 778, /* GL_LUMINANCE */
+ 799, /* GL_LUMINANCE_ALPHA */
+ 74, /* GL_BITMAP */
+ 1221, /* GL_POINT */
+ 746, /* GL_LINE */
+ 506, /* GL_FILL */
+ 1415, /* GL_RENDER */
+ 502, /* GL_FEEDBACK */
+ 1539, /* GL_SELECT */
+ 511, /* GL_FLAT */
+ 1567, /* GL_SMOOTH */
+ 725, /* GL_KEEP */
+ 1448, /* GL_REPLACE */
+ 676, /* GL_INCR */
+ 357, /* GL_DECR */
+ 1960, /* GL_VENDOR */
+ 1445, /* GL_RENDERER */
+ 1961, /* GL_VERSION */
+ 495, /* GL_EXTENSIONS */
+ 1503, /* GL_S */
+ 1677, /* GL_T */
+ 1391, /* GL_R */
+ 1374, /* GL_Q */
+ 1076, /* GL_MODULATE */
+ 356, /* GL_DECAL */
+ 1834, /* GL_TEXTURE_ENV_MODE */
+ 1833, /* GL_TEXTURE_ENV_COLOR */
+ 1832, /* GL_TEXTURE_ENV */
+ 496, /* GL_EYE_LINEAR */
+ 1127, /* GL_OBJECT_LINEAR */
+ 1593, /* GL_SPHERE_MAP */
+ 1837, /* GL_TEXTURE_GEN_MODE */
+ 1129, /* GL_OBJECT_PLANE */
+ 497, /* GL_EYE_PLANE */
+ 1091, /* GL_NEAREST */
+ 747, /* GL_LINEAR */
+ 1095, /* GL_NEAREST_MIPMAP_NEAREST */
+ 752, /* GL_LINEAR_MIPMAP_NEAREST */
+ 1094, /* GL_NEAREST_MIPMAP_LINEAR */
+ 751, /* GL_LINEAR_MIPMAP_LINEAR */
+ 1860, /* GL_TEXTURE_MAG_FILTER */
+ 1869, /* GL_TEXTURE_MIN_FILTER */
+ 1888, /* GL_TEXTURE_WRAP_S */
+ 1889, /* GL_TEXTURE_WRAP_T */
+ 138, /* GL_CLAMP */
+ 1447, /* GL_REPEAT */
+ 1265, /* GL_POLYGON_OFFSET_UNITS */
+ 1264, /* GL_POLYGON_OFFSET_POINT */
+ 1263, /* GL_POLYGON_OFFSET_LINE */
+ 1392, /* GL_R3_G3_B2 */
+ 1957, /* GL_V2F */
+ 1958, /* GL_V3F */
+ 135, /* GL_C4UB_V2F */
+ 136, /* GL_C4UB_V3F */
+ 133, /* GL_C3F_V3F */
+ 1088, /* GL_N3F_V3F */
+ 134, /* GL_C4F_N3F_V3F */
+ 1682, /* GL_T2F_V3F */
+ 1684, /* GL_T4F_V4F */
+ 1680, /* GL_T2F_C4UB_V3F */
+ 1678, /* GL_T2F_C3F_V3F */
+ 1681, /* GL_T2F_N3F_V3F */
+ 1679, /* GL_T2F_C4F_N3F_V3F */
+ 1683, /* GL_T4F_C4F_N3F_V4F */
+ 151, /* GL_CLIP_PLANE0 */
+ 152, /* GL_CLIP_PLANE1 */
+ 153, /* GL_CLIP_PLANE2 */
+ 154, /* GL_CLIP_PLANE3 */
+ 155, /* GL_CLIP_PLANE4 */
+ 156, /* GL_CLIP_PLANE5 */
+ 731, /* GL_LIGHT0 */
+ 732, /* GL_LIGHT1 */
+ 733, /* GL_LIGHT2 */
+ 734, /* GL_LIGHT3 */
+ 735, /* GL_LIGHT4 */
+ 736, /* GL_LIGHT5 */
+ 737, /* GL_LIGHT6 */
+ 738, /* GL_LIGHT7 */
+ 651, /* GL_HINT_BIT */
+ 290, /* GL_CONSTANT_COLOR */
+ 1140, /* GL_ONE_MINUS_CONSTANT_COLOR */
+ 285, /* GL_CONSTANT_ALPHA */
+ 1138, /* GL_ONE_MINUS_CONSTANT_ALPHA */
+ 77, /* GL_BLEND_COLOR */
+ 628, /* GL_FUNC_ADD */
+ 1023, /* GL_MIN */
+ 916, /* GL_MAX */
+ 84, /* GL_BLEND_EQUATION */
+ 634, /* GL_FUNC_SUBTRACT */
+ 631, /* GL_FUNC_REVERSE_SUBTRACT */
+ 293, /* GL_CONVOLUTION_1D */
+ 294, /* GL_CONVOLUTION_2D */
+ 1542, /* GL_SEPARABLE_2D */
+ 297, /* GL_CONVOLUTION_BORDER_MODE */
+ 301, /* GL_CONVOLUTION_FILTER_SCALE */
+ 299, /* GL_CONVOLUTION_FILTER_BIAS */
+ 1405, /* GL_REDUCE */
+ 303, /* GL_CONVOLUTION_FORMAT */
+ 307, /* GL_CONVOLUTION_WIDTH */
+ 305, /* GL_CONVOLUTION_HEIGHT */
+ 933, /* GL_MAX_CONVOLUTION_WIDTH */
+ 931, /* GL_MAX_CONVOLUTION_HEIGHT */
+ 1304, /* GL_POST_CONVOLUTION_RED_SCALE */
+ 1300, /* GL_POST_CONVOLUTION_GREEN_SCALE */
+ 1295, /* GL_POST_CONVOLUTION_BLUE_SCALE */
+ 1291, /* GL_POST_CONVOLUTION_ALPHA_SCALE */
+ 1302, /* GL_POST_CONVOLUTION_RED_BIAS */
+ 1298, /* GL_POST_CONVOLUTION_GREEN_BIAS */
+ 1293, /* GL_POST_CONVOLUTION_BLUE_BIAS */
+ 1289, /* GL_POST_CONVOLUTION_ALPHA_BIAS */
+ 652, /* GL_HISTOGRAM */
+ 1357, /* GL_PROXY_HISTOGRAM */
+ 668, /* GL_HISTOGRAM_WIDTH */
+ 658, /* GL_HISTOGRAM_FORMAT */
+ 664, /* GL_HISTOGRAM_RED_SIZE */
+ 660, /* GL_HISTOGRAM_GREEN_SIZE */
+ 655, /* GL_HISTOGRAM_BLUE_SIZE */
+ 653, /* GL_HISTOGRAM_ALPHA_SIZE */
+ 662, /* GL_HISTOGRAM_LUMINANCE_SIZE */
+ 666, /* GL_HISTOGRAM_SINK */
+ 1024, /* GL_MINMAX */
+ 1026, /* GL_MINMAX_FORMAT */
+ 1028, /* GL_MINMAX_SINK */
+ 1685, /* GL_TABLE_TOO_LARGE_EXT */
+ 1930, /* GL_UNSIGNED_BYTE_3_3_2 */
+ 1946, /* GL_UNSIGNED_SHORT_4_4_4_4 */
+ 1949, /* GL_UNSIGNED_SHORT_5_5_5_1 */
+ 1940, /* GL_UNSIGNED_INT_8_8_8_8 */
+ 1932, /* GL_UNSIGNED_INT_10_10_10_2 */
+ 1262, /* GL_POLYGON_OFFSET_FILL */
+ 1261, /* GL_POLYGON_OFFSET_FACTOR */
+ 1260, /* GL_POLYGON_OFFSET_BIAS */
+ 1451, /* GL_RESCALE_NORMAL */
36, /* GL_ALPHA4 */
38, /* GL_ALPHA8 */
32, /* GL_ALPHA12 */
34, /* GL_ALPHA16 */
- 738, /* GL_LUMINANCE4 */
- 744, /* GL_LUMINANCE8 */
- 728, /* GL_LUMINANCE12 */
- 734, /* GL_LUMINANCE16 */
- 739, /* GL_LUMINANCE4_ALPHA4 */
- 742, /* GL_LUMINANCE6_ALPHA2 */
- 745, /* GL_LUMINANCE8_ALPHA8 */
- 731, /* GL_LUMINANCE12_ALPHA4 */
- 729, /* GL_LUMINANCE12_ALPHA12 */
- 735, /* GL_LUMINANCE16_ALPHA16 */
- 648, /* GL_INTENSITY */
- 653, /* GL_INTENSITY4 */
- 655, /* GL_INTENSITY8 */
- 649, /* GL_INTENSITY12 */
- 651, /* GL_INTENSITY16 */
- 1369, /* GL_RGB2_EXT */
- 1370, /* GL_RGB4 */
- 1373, /* GL_RGB5 */
- 1377, /* GL_RGB8 */
- 1361, /* GL_RGB10 */
- 1365, /* GL_RGB12 */
- 1367, /* GL_RGB16 */
- 1384, /* GL_RGBA2 */
- 1386, /* GL_RGBA4 */
- 1374, /* GL_RGB5_A1 */
- 1390, /* GL_RGBA8 */
- 1362, /* GL_RGB10_A2 */
- 1380, /* GL_RGBA12 */
- 1382, /* GL_RGBA16 */
- 1753, /* GL_TEXTURE_RED_SIZE */
- 1723, /* GL_TEXTURE_GREEN_SIZE */
- 1661, /* GL_TEXTURE_BLUE_SIZE */
- 1648, /* GL_TEXTURE_ALPHA_SIZE */
- 1736, /* GL_TEXTURE_LUMINANCE_SIZE */
- 1727, /* GL_TEXTURE_INTENSITY_SIZE */
- 1354, /* GL_REPLACE_EXT */
- 1278, /* GL_PROXY_TEXTURE_1D */
- 1281, /* GL_PROXY_TEXTURE_2D */
- 1760, /* GL_TEXTURE_TOO_LARGE_EXT */
- 1748, /* GL_TEXTURE_PRIORITY */
- 1755, /* GL_TEXTURE_RESIDENT */
- 1651, /* GL_TEXTURE_BINDING_1D */
- 1653, /* GL_TEXTURE_BINDING_2D */
- 1655, /* GL_TEXTURE_BINDING_3D */
- 1102, /* GL_PACK_SKIP_IMAGES */
- 1098, /* GL_PACK_IMAGE_HEIGHT */
- 1799, /* GL_UNPACK_SKIP_IMAGES */
- 1796, /* GL_UNPACK_IMAGE_HEIGHT */
- 1647, /* GL_TEXTURE_3D */
- 1284, /* GL_PROXY_TEXTURE_3D */
- 1710, /* GL_TEXTURE_DEPTH */
- 1763, /* GL_TEXTURE_WRAP_R */
- 859, /* GL_MAX_3D_TEXTURE_SIZE */
- 1833, /* GL_VERTEX_ARRAY */
- 1032, /* GL_NORMAL_ARRAY */
- 149, /* GL_COLOR_ARRAY */
- 633, /* GL_INDEX_ARRAY */
- 1688, /* GL_TEXTURE_COORD_ARRAY */
- 460, /* GL_EDGE_FLAG_ARRAY */
- 1839, /* GL_VERTEX_ARRAY_SIZE */
- 1841, /* GL_VERTEX_ARRAY_TYPE */
- 1840, /* GL_VERTEX_ARRAY_STRIDE */
- 1037, /* GL_NORMAL_ARRAY_TYPE */
- 1036, /* GL_NORMAL_ARRAY_STRIDE */
- 153, /* GL_COLOR_ARRAY_SIZE */
- 155, /* GL_COLOR_ARRAY_TYPE */
- 154, /* GL_COLOR_ARRAY_STRIDE */
- 638, /* GL_INDEX_ARRAY_TYPE */
- 637, /* GL_INDEX_ARRAY_STRIDE */
- 1692, /* GL_TEXTURE_COORD_ARRAY_SIZE */
- 1694, /* GL_TEXTURE_COORD_ARRAY_TYPE */
- 1693, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
- 464, /* GL_EDGE_FLAG_ARRAY_STRIDE */
- 1838, /* GL_VERTEX_ARRAY_POINTER */
- 1035, /* GL_NORMAL_ARRAY_POINTER */
- 152, /* GL_COLOR_ARRAY_POINTER */
- 636, /* GL_INDEX_ARRAY_POINTER */
- 1691, /* GL_TEXTURE_COORD_ARRAY_POINTER */
- 463, /* GL_EDGE_FLAG_ARRAY_POINTER */
- 1011, /* GL_MULTISAMPLE */
- 1414, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
- 1416, /* GL_SAMPLE_ALPHA_TO_ONE */
- 1421, /* GL_SAMPLE_COVERAGE */
- 1418, /* GL_SAMPLE_BUFFERS */
- 1409, /* GL_SAMPLES */
- 1425, /* GL_SAMPLE_COVERAGE_VALUE */
- 1423, /* GL_SAMPLE_COVERAGE_INVERT */
- 196, /* GL_COLOR_MATRIX */
- 198, /* GL_COLOR_MATRIX_STACK_DEPTH */
- 868, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
- 1207, /* GL_POST_COLOR_MATRIX_RED_SCALE */
- 1203, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
- 1198, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
- 1194, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
- 1205, /* GL_POST_COLOR_MATRIX_RED_BIAS */
- 1201, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
- 1196, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
- 1192, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
- 1671, /* GL_TEXTURE_COLOR_TABLE_SGI */
- 1285, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
- 1673, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
- 80, /* GL_BLEND_DST_RGB */
- 89, /* GL_BLEND_SRC_RGB */
- 79, /* GL_BLEND_DST_ALPHA */
- 88, /* GL_BLEND_SRC_ALPHA */
- 202, /* GL_COLOR_TABLE */
- 1217, /* GL_POST_CONVOLUTION_COLOR_TABLE */
- 1200, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
- 1273, /* GL_PROXY_COLOR_TABLE */
- 1277, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
- 1276, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
- 226, /* GL_COLOR_TABLE_SCALE */
- 206, /* GL_COLOR_TABLE_BIAS */
- 211, /* GL_COLOR_TABLE_FORMAT */
- 228, /* GL_COLOR_TABLE_WIDTH */
- 223, /* GL_COLOR_TABLE_RED_SIZE */
- 214, /* GL_COLOR_TABLE_GREEN_SIZE */
- 208, /* GL_COLOR_TABLE_BLUE_SIZE */
- 203, /* GL_COLOR_TABLE_ALPHA_SIZE */
- 220, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
- 217, /* GL_COLOR_TABLE_INTENSITY_SIZE */
+ 789, /* GL_LUMINANCE4 */
+ 795, /* GL_LUMINANCE8 */
+ 779, /* GL_LUMINANCE12 */
+ 785, /* GL_LUMINANCE16 */
+ 790, /* GL_LUMINANCE4_ALPHA4 */
+ 793, /* GL_LUMINANCE6_ALPHA2 */
+ 796, /* GL_LUMINANCE8_ALPHA8 */
+ 782, /* GL_LUMINANCE12_ALPHA4 */
+ 780, /* GL_LUMINANCE12_ALPHA12 */
+ 786, /* GL_LUMINANCE16_ALPHA16 */
+ 695, /* GL_INTENSITY */
+ 700, /* GL_INTENSITY4 */
+ 702, /* GL_INTENSITY8 */
+ 696, /* GL_INTENSITY12 */
+ 698, /* GL_INTENSITY16 */
+ 1464, /* GL_RGB2_EXT */
+ 1465, /* GL_RGB4 */
+ 1468, /* GL_RGB5 */
+ 1475, /* GL_RGB8 */
+ 1456, /* GL_RGB10 */
+ 1460, /* GL_RGB12 */
+ 1462, /* GL_RGB16 */
+ 1483, /* GL_RGBA2 */
+ 1485, /* GL_RGBA4 */
+ 1471, /* GL_RGB5_A1 */
+ 1490, /* GL_RGBA8 */
+ 1457, /* GL_RGB10_A2 */
+ 1479, /* GL_RGBA12 */
+ 1481, /* GL_RGBA16 */
+ 1876, /* GL_TEXTURE_RED_SIZE */
+ 1845, /* GL_TEXTURE_GREEN_SIZE */
+ 1772, /* GL_TEXTURE_BLUE_SIZE */
+ 1757, /* GL_TEXTURE_ALPHA_SIZE */
+ 1858, /* GL_TEXTURE_LUMINANCE_SIZE */
+ 1849, /* GL_TEXTURE_INTENSITY_SIZE */
+ 1449, /* GL_REPLACE_EXT */
+ 1361, /* GL_PROXY_TEXTURE_1D */
+ 1364, /* GL_PROXY_TEXTURE_2D */
+ 1883, /* GL_TEXTURE_TOO_LARGE_EXT */
+ 1871, /* GL_TEXTURE_PRIORITY */
+ 1878, /* GL_TEXTURE_RESIDENT */
+ 1760, /* GL_TEXTURE_BINDING_1D */
+ 1762, /* GL_TEXTURE_BINDING_2D */
+ 1764, /* GL_TEXTURE_BINDING_3D */
+ 1176, /* GL_PACK_SKIP_IMAGES */
+ 1172, /* GL_PACK_IMAGE_HEIGHT */
+ 1923, /* GL_UNPACK_SKIP_IMAGES */
+ 1920, /* GL_UNPACK_IMAGE_HEIGHT */
+ 1755, /* GL_TEXTURE_3D */
+ 1367, /* GL_PROXY_TEXTURE_3D */
+ 1829, /* GL_TEXTURE_DEPTH */
+ 1886, /* GL_TEXTURE_WRAP_R */
+ 917, /* GL_MAX_3D_TEXTURE_SIZE */
+ 1962, /* GL_VERTEX_ARRAY */
+ 1103, /* GL_NORMAL_ARRAY */
+ 160, /* GL_COLOR_ARRAY */
+ 680, /* GL_INDEX_ARRAY */
+ 1799, /* GL_TEXTURE_COORD_ARRAY */
+ 480, /* GL_EDGE_FLAG_ARRAY */
+ 1968, /* GL_VERTEX_ARRAY_SIZE */
+ 1970, /* GL_VERTEX_ARRAY_TYPE */
+ 1969, /* GL_VERTEX_ARRAY_STRIDE */
+ 1108, /* GL_NORMAL_ARRAY_TYPE */
+ 1107, /* GL_NORMAL_ARRAY_STRIDE */
+ 164, /* GL_COLOR_ARRAY_SIZE */
+ 166, /* GL_COLOR_ARRAY_TYPE */
+ 165, /* GL_COLOR_ARRAY_STRIDE */
+ 685, /* GL_INDEX_ARRAY_TYPE */
+ 684, /* GL_INDEX_ARRAY_STRIDE */
+ 1803, /* GL_TEXTURE_COORD_ARRAY_SIZE */
+ 1805, /* GL_TEXTURE_COORD_ARRAY_TYPE */
+ 1804, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
+ 484, /* GL_EDGE_FLAG_ARRAY_STRIDE */
+ 1967, /* GL_VERTEX_ARRAY_POINTER */
+ 1106, /* GL_NORMAL_ARRAY_POINTER */
+ 163, /* GL_COLOR_ARRAY_POINTER */
+ 683, /* GL_INDEX_ARRAY_POINTER */
+ 1802, /* GL_TEXTURE_COORD_ARRAY_POINTER */
+ 483, /* GL_EDGE_FLAG_ARRAY_POINTER */
+ 1081, /* GL_MULTISAMPLE */
+ 1516, /* GL_SAMPLE_ALPHA_TO_COVERAGE */
+ 1518, /* GL_SAMPLE_ALPHA_TO_ONE */
+ 1523, /* GL_SAMPLE_COVERAGE */
+ 1520, /* GL_SAMPLE_BUFFERS */
+ 1511, /* GL_SAMPLES */
+ 1527, /* GL_SAMPLE_COVERAGE_VALUE */
+ 1525, /* GL_SAMPLE_COVERAGE_INVERT */
+ 208, /* GL_COLOR_MATRIX */
+ 210, /* GL_COLOR_MATRIX_STACK_DEPTH */
+ 927, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */
+ 1287, /* GL_POST_COLOR_MATRIX_RED_SCALE */
+ 1283, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */
+ 1278, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */
+ 1274, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */
+ 1285, /* GL_POST_COLOR_MATRIX_RED_BIAS */
+ 1281, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */
+ 1276, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */
+ 1272, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */
+ 1782, /* GL_TEXTURE_COLOR_TABLE_SGI */
+ 1368, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */
+ 1784, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */
+ 82, /* GL_BLEND_DST_RGB */
+ 96, /* GL_BLEND_SRC_RGB */
+ 80, /* GL_BLEND_DST_ALPHA */
+ 94, /* GL_BLEND_SRC_ALPHA */
+ 214, /* GL_COLOR_TABLE */
+ 1297, /* GL_POST_CONVOLUTION_COLOR_TABLE */
+ 1280, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */
+ 1356, /* GL_PROXY_COLOR_TABLE */
+ 1360, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */
+ 1359, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */
+ 238, /* GL_COLOR_TABLE_SCALE */
+ 218, /* GL_COLOR_TABLE_BIAS */
+ 223, /* GL_COLOR_TABLE_FORMAT */
+ 240, /* GL_COLOR_TABLE_WIDTH */
+ 235, /* GL_COLOR_TABLE_RED_SIZE */
+ 226, /* GL_COLOR_TABLE_GREEN_SIZE */
+ 220, /* GL_COLOR_TABLE_BLUE_SIZE */
+ 215, /* GL_COLOR_TABLE_ALPHA_SIZE */
+ 232, /* GL_COLOR_TABLE_LUMINANCE_SIZE */
+ 229, /* GL_COLOR_TABLE_INTENSITY_SIZE */
71, /* GL_BGR */
72, /* GL_BGRA */
- 882, /* GL_MAX_ELEMENTS_VERTICES */
- 881, /* GL_MAX_ELEMENTS_INDICES */
- 1726, /* GL_TEXTURE_INDEX_SIZE_EXT */
- 146, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
- 1164, /* GL_POINT_SIZE_MIN */
- 1160, /* GL_POINT_SIZE_MAX */
- 1154, /* GL_POINT_FADE_THRESHOLD_SIZE */
- 1150, /* GL_POINT_DISTANCE_ATTENUATION */
- 128, /* GL_CLAMP_TO_BORDER */
- 131, /* GL_CLAMP_TO_EDGE */
- 1747, /* GL_TEXTURE_MIN_LOD */
- 1745, /* GL_TEXTURE_MAX_LOD */
- 1650, /* GL_TEXTURE_BASE_LEVEL */
- 1744, /* GL_TEXTURE_MAX_LEVEL */
- 626, /* GL_IGNORE_BORDER_HP */
- 277, /* GL_CONSTANT_BORDER_HP */
- 1355, /* GL_REPLICATE_BORDER_HP */
- 283, /* GL_CONVOLUTION_BORDER_COLOR */
- 1061, /* GL_OCCLUSION_TEST_HP */
- 1062, /* GL_OCCLUSION_TEST_RESULT_HP */
- 700, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
- 1665, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
- 1667, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
- 1669, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
- 1670, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1668, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
- 1666, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
- 863, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
- 864, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
- 1227, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
- 1229, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
- 1226, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
- 1228, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
- 1734, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
- 1735, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
- 1733, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
- 595, /* GL_GENERATE_MIPMAP */
- 596, /* GL_GENERATE_MIPMAP_HINT */
- 533, /* GL_FOG_OFFSET_SGIX */
- 534, /* GL_FOG_OFFSET_VALUE_SGIX */
- 1679, /* GL_TEXTURE_COMPARE_SGIX */
- 1678, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
- 1730, /* GL_TEXTURE_LEQUAL_R_SGIX */
- 1722, /* GL_TEXTURE_GEQUAL_R_SGIX */
- 361, /* GL_DEPTH_COMPONENT16 */
- 364, /* GL_DEPTH_COMPONENT24 */
- 367, /* GL_DEPTH_COMPONENT32 */
- 307, /* GL_CULL_VERTEX_EXT */
- 309, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
- 308, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
- 1897, /* GL_WRAP_BORDER_SUN */
- 1672, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
- 693, /* GL_LIGHT_MODEL_COLOR_CONTROL */
- 1456, /* GL_SINGLE_COLOR */
- 1442, /* GL_SEPARATE_SPECULAR_COLOR */
- 1451, /* GL_SHARED_TEXTURE_PALETTE_EXT */
- 544, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
- 545, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
- 552, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
- 547, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
- 543, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
- 542, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
- 546, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
- 553, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
- 565, /* GL_FRAMEBUFFER_DEFAULT */
- 581, /* GL_FRAMEBUFFER_UNDEFINED */
- 374, /* GL_DEPTH_STENCIL_ATTACHMENT */
- 632, /* GL_INDEX */
- 1805, /* GL_UNSIGNED_BYTE_2_3_3_REV */
- 1821, /* GL_UNSIGNED_SHORT_5_6_5 */
- 1822, /* GL_UNSIGNED_SHORT_5_6_5_REV */
- 1819, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
- 1817, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
- 1814, /* GL_UNSIGNED_INT_8_8_8_8_REV */
- 1812, /* GL_UNSIGNED_INT_2_10_10_10_REV */
- 1742, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
- 1743, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
- 1741, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
- 962, /* GL_MIRRORED_REPEAT */
- 1397, /* GL_RGB_S3TC */
- 1372, /* GL_RGB4_S3TC */
- 1395, /* GL_RGBA_S3TC */
- 1389, /* GL_RGBA4_S3TC */
- 1393, /* GL_RGBA_DXT5_S3TC */
- 1387, /* GL_RGBA4_DXT5_S3TC */
- 265, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
- 260, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
- 261, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
- 262, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
- 1023, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
- 1022, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
- 701, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
- 520, /* GL_FOG_COORDINATE_SOURCE */
- 512, /* GL_FOG_COORD */
- 536, /* GL_FRAGMENT_DEPTH */
- 313, /* GL_CURRENT_FOG_COORD */
- 519, /* GL_FOG_COORDINATE_ARRAY_TYPE */
- 518, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
- 517, /* GL_FOG_COORDINATE_ARRAY_POINTER */
- 514, /* GL_FOG_COORDINATE_ARRAY */
- 200, /* GL_COLOR_SUM */
- 333, /* GL_CURRENT_SECONDARY_COLOR */
- 1434, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
- 1436, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
- 1435, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
- 1433, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
- 1430, /* GL_SECONDARY_COLOR_ARRAY */
- 331, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
+ 942, /* GL_MAX_ELEMENTS_VERTICES */
+ 941, /* GL_MAX_ELEMENTS_INDICES */
+ 1848, /* GL_TEXTURE_INDEX_SIZE_EXT */
+ 157, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */
+ 1243, /* GL_POINT_SIZE_MIN */
+ 1239, /* GL_POINT_SIZE_MAX */
+ 1228, /* GL_POINT_FADE_THRESHOLD_SIZE */
+ 1224, /* GL_POINT_DISTANCE_ATTENUATION */
+ 139, /* GL_CLAMP_TO_BORDER */
+ 142, /* GL_CLAMP_TO_EDGE */
+ 1870, /* GL_TEXTURE_MIN_LOD */
+ 1868, /* GL_TEXTURE_MAX_LOD */
+ 1759, /* GL_TEXTURE_BASE_LEVEL */
+ 1867, /* GL_TEXTURE_MAX_LEVEL */
+ 671, /* GL_IGNORE_BORDER_HP */
+ 289, /* GL_CONSTANT_BORDER_HP */
+ 1450, /* GL_REPLICATE_BORDER_HP */
+ 295, /* GL_CONVOLUTION_BORDER_COLOR */
+ 1135, /* GL_OCCLUSION_TEST_HP */
+ 1136, /* GL_OCCLUSION_TEST_RESULT_HP */
+ 749, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */
+ 1776, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */
+ 1778, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */
+ 1780, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */
+ 1781, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1779, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */
+ 1777, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */
+ 922, /* GL_MAX_CLIPMAP_DEPTH_SGIX */
+ 923, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */
+ 1307, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */
+ 1309, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */
+ 1306, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */
+ 1308, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */
+ 1856, /* GL_TEXTURE_LOD_BIAS_S_SGIX */
+ 1857, /* GL_TEXTURE_LOD_BIAS_T_SGIX */
+ 1855, /* GL_TEXTURE_LOD_BIAS_R_SGIX */
+ 637, /* GL_GENERATE_MIPMAP */
+ 638, /* GL_GENERATE_MIPMAP_HINT */
+ 555, /* GL_FOG_OFFSET_SGIX */
+ 556, /* GL_FOG_OFFSET_VALUE_SGIX */
+ 1790, /* GL_TEXTURE_COMPARE_SGIX */
+ 1789, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */
+ 1852, /* GL_TEXTURE_LEQUAL_R_SGIX */
+ 1844, /* GL_TEXTURE_GEQUAL_R_SGIX */
+ 377, /* GL_DEPTH_COMPONENT16 */
+ 381, /* GL_DEPTH_COMPONENT24 */
+ 385, /* GL_DEPTH_COMPONENT32 */
+ 320, /* GL_CULL_VERTEX_EXT */
+ 322, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
+ 321, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
+ 2032, /* GL_WRAP_BORDER_SUN */
+ 1783, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
+ 742, /* GL_LIGHT_MODEL_COLOR_CONTROL */
+ 1560, /* GL_SINGLE_COLOR */
+ 1544, /* GL_SEPARATE_SPECULAR_COLOR */
+ 1555, /* GL_SHARED_TEXTURE_PALETTE_EXT */
+ 567, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */
+ 568, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */
+ 577, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */
+ 570, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */
+ 566, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */
+ 565, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */
+ 569, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */
+ 578, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */
+ 595, /* GL_FRAMEBUFFER_DEFAULT */
+ 619, /* GL_FRAMEBUFFER_UNDEFINED */
+ 393, /* GL_DEPTH_STENCIL_ATTACHMENT */
+ 679, /* GL_INDEX */
+ 1929, /* GL_UNSIGNED_BYTE_2_3_3_REV */
+ 1950, /* GL_UNSIGNED_SHORT_5_6_5 */
+ 1951, /* GL_UNSIGNED_SHORT_5_6_5_REV */
+ 1947, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
+ 1944, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
+ 1941, /* GL_UNSIGNED_INT_8_8_8_8_REV */
+ 1938, /* GL_UNSIGNED_INT_2_10_10_10_REV */
+ 1865, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
+ 1866, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
+ 1864, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
+ 1031, /* GL_MIRRORED_REPEAT */
+ 1498, /* GL_RGB_S3TC */
+ 1467, /* GL_RGB4_S3TC */
+ 1496, /* GL_RGBA_S3TC */
+ 1489, /* GL_RGBA4_S3TC */
+ 1494, /* GL_RGBA_DXT5_S3TC */
+ 1486, /* GL_RGBA4_DXT5_S3TC */
+ 277, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */
+ 272, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */
+ 273, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */
+ 274, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */
+ 1093, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */
+ 1092, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */
+ 750, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */
+ 542, /* GL_FOG_COORDINATE_SOURCE */
+ 534, /* GL_FOG_COORD */
+ 558, /* GL_FRAGMENT_DEPTH */
+ 326, /* GL_CURRENT_FOG_COORD */
+ 541, /* GL_FOG_COORDINATE_ARRAY_TYPE */
+ 540, /* GL_FOG_COORDINATE_ARRAY_STRIDE */
+ 539, /* GL_FOG_COORDINATE_ARRAY_POINTER */
+ 536, /* GL_FOG_COORDINATE_ARRAY */
+ 212, /* GL_COLOR_SUM */
+ 347, /* GL_CURRENT_SECONDARY_COLOR */
+ 1536, /* GL_SECONDARY_COLOR_ARRAY_SIZE */
+ 1538, /* GL_SECONDARY_COLOR_ARRAY_TYPE */
+ 1537, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */
+ 1535, /* GL_SECONDARY_COLOR_ARRAY_POINTER */
+ 1532, /* GL_SECONDARY_COLOR_ARRAY */
+ 345, /* GL_CURRENT_RASTER_SECONDARY_COLOR */
28, /* GL_ALIASED_POINT_SIZE_RANGE */
27, /* GL_ALIASED_LINE_WIDTH_RANGE */
- 1579, /* GL_TEXTURE0 */
- 1581, /* GL_TEXTURE1 */
- 1603, /* GL_TEXTURE2 */
- 1625, /* GL_TEXTURE3 */
- 1631, /* GL_TEXTURE4 */
- 1633, /* GL_TEXTURE5 */
- 1635, /* GL_TEXTURE6 */
- 1637, /* GL_TEXTURE7 */
- 1639, /* GL_TEXTURE8 */
- 1641, /* GL_TEXTURE9 */
- 1582, /* GL_TEXTURE10 */
- 1584, /* GL_TEXTURE11 */
- 1586, /* GL_TEXTURE12 */
- 1588, /* GL_TEXTURE13 */
- 1590, /* GL_TEXTURE14 */
- 1592, /* GL_TEXTURE15 */
- 1594, /* GL_TEXTURE16 */
- 1596, /* GL_TEXTURE17 */
- 1598, /* GL_TEXTURE18 */
- 1600, /* GL_TEXTURE19 */
- 1604, /* GL_TEXTURE20 */
- 1606, /* GL_TEXTURE21 */
- 1608, /* GL_TEXTURE22 */
- 1610, /* GL_TEXTURE23 */
- 1612, /* GL_TEXTURE24 */
- 1614, /* GL_TEXTURE25 */
- 1616, /* GL_TEXTURE26 */
- 1618, /* GL_TEXTURE27 */
- 1620, /* GL_TEXTURE28 */
- 1622, /* GL_TEXTURE29 */
- 1626, /* GL_TEXTURE30 */
- 1628, /* GL_TEXTURE31 */
+ 1687, /* GL_TEXTURE0 */
+ 1689, /* GL_TEXTURE1 */
+ 1711, /* GL_TEXTURE2 */
+ 1733, /* GL_TEXTURE3 */
+ 1739, /* GL_TEXTURE4 */
+ 1741, /* GL_TEXTURE5 */
+ 1743, /* GL_TEXTURE6 */
+ 1745, /* GL_TEXTURE7 */
+ 1747, /* GL_TEXTURE8 */
+ 1749, /* GL_TEXTURE9 */
+ 1690, /* GL_TEXTURE10 */
+ 1692, /* GL_TEXTURE11 */
+ 1694, /* GL_TEXTURE12 */
+ 1696, /* GL_TEXTURE13 */
+ 1698, /* GL_TEXTURE14 */
+ 1700, /* GL_TEXTURE15 */
+ 1702, /* GL_TEXTURE16 */
+ 1704, /* GL_TEXTURE17 */
+ 1706, /* GL_TEXTURE18 */
+ 1708, /* GL_TEXTURE19 */
+ 1712, /* GL_TEXTURE20 */
+ 1714, /* GL_TEXTURE21 */
+ 1716, /* GL_TEXTURE22 */
+ 1718, /* GL_TEXTURE23 */
+ 1720, /* GL_TEXTURE24 */
+ 1722, /* GL_TEXTURE25 */
+ 1724, /* GL_TEXTURE26 */
+ 1726, /* GL_TEXTURE27 */
+ 1728, /* GL_TEXTURE28 */
+ 1730, /* GL_TEXTURE29 */
+ 1734, /* GL_TEXTURE30 */
+ 1736, /* GL_TEXTURE31 */
18, /* GL_ACTIVE_TEXTURE */
- 134, /* GL_CLIENT_ACTIVE_TEXTURE */
- 937, /* GL_MAX_TEXTURE_UNITS */
- 1782, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
- 1785, /* GL_TRANSPOSE_PROJECTION_MATRIX */
- 1787, /* GL_TRANSPOSE_TEXTURE_MATRIX */
- 1779, /* GL_TRANSPOSE_COLOR_MATRIX */
- 1561, /* GL_SUBTRACT */
- 922, /* GL_MAX_RENDERBUFFER_SIZE */
- 248, /* GL_COMPRESSED_ALPHA */
- 252, /* GL_COMPRESSED_LUMINANCE */
- 253, /* GL_COMPRESSED_LUMINANCE_ALPHA */
- 250, /* GL_COMPRESSED_INTENSITY */
- 256, /* GL_COMPRESSED_RGB */
- 257, /* GL_COMPRESSED_RGBA */
- 1686, /* GL_TEXTURE_COMPRESSION_HINT */
- 1751, /* GL_TEXTURE_RECTANGLE_ARB */
- 1658, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
- 1288, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
- 920, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
- 373, /* GL_DEPTH_STENCIL */
- 1809, /* GL_UNSIGNED_INT_24_8 */
- 933, /* GL_MAX_TEXTURE_LOD_BIAS */
- 1740, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
- 934, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
- 1716, /* GL_TEXTURE_FILTER_CONTROL */
- 1731, /* GL_TEXTURE_LOD_BIAS */
- 233, /* GL_COMBINE4 */
- 927, /* GL_MAX_SHININESS_NV */
- 928, /* GL_MAX_SPOT_EXPONENT_NV */
- 630, /* GL_INCR_WRAP */
- 344, /* GL_DECR_WRAP */
- 982, /* GL_MODELVIEW1_ARB */
- 1038, /* GL_NORMAL_MAP */
- 1327, /* GL_REFLECTION_MAP */
- 1695, /* GL_TEXTURE_CUBE_MAP */
- 1656, /* GL_TEXTURE_BINDING_CUBE_MAP */
- 1703, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
- 1697, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
- 1705, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
- 1699, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
- 1707, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
- 1701, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
- 1286, /* GL_PROXY_TEXTURE_CUBE_MAP */
- 876, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
- 1017, /* GL_MULTISAMPLE_FILTER_HINT_NV */
- 528, /* GL_FOG_DISTANCE_MODE_NV */
- 479, /* GL_EYE_RADIAL_NV */
- 478, /* GL_EYE_PLANE_ABSOLUTE_NV */
- 232, /* GL_COMBINE */
- 239, /* GL_COMBINE_RGB */
- 234, /* GL_COMBINE_ALPHA */
- 1398, /* GL_RGB_SCALE */
+ 145, /* GL_CLIENT_ACTIVE_TEXTURE */
+ 1001, /* GL_MAX_TEXTURE_UNITS */
+ 1906, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
+ 1909, /* GL_TRANSPOSE_PROJECTION_MATRIX */
+ 1911, /* GL_TRANSPOSE_TEXTURE_MATRIX */
+ 1903, /* GL_TRANSPOSE_COLOR_MATRIX */
+ 1669, /* GL_SUBTRACT */
+ 984, /* GL_MAX_RENDERBUFFER_SIZE */
+ 260, /* GL_COMPRESSED_ALPHA */
+ 264, /* GL_COMPRESSED_LUMINANCE */
+ 265, /* GL_COMPRESSED_LUMINANCE_ALPHA */
+ 262, /* GL_COMPRESSED_INTENSITY */
+ 268, /* GL_COMPRESSED_RGB */
+ 269, /* GL_COMPRESSED_RGBA */
+ 1797, /* GL_TEXTURE_COMPRESSION_HINT */
+ 1874, /* GL_TEXTURE_RECTANGLE_ARB */
+ 1769, /* GL_TEXTURE_BINDING_RECTANGLE_ARB */
+ 1371, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
+ 982, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
+ 392, /* GL_DEPTH_STENCIL */
+ 1934, /* GL_UNSIGNED_INT_24_8 */
+ 996, /* GL_MAX_TEXTURE_LOD_BIAS */
+ 1863, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
+ 998, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
+ 1835, /* GL_TEXTURE_FILTER_CONTROL */
+ 1853, /* GL_TEXTURE_LOD_BIAS */
+ 245, /* GL_COMBINE4 */
+ 990, /* GL_MAX_SHININESS_NV */
+ 991, /* GL_MAX_SPOT_EXPONENT_NV */
+ 677, /* GL_INCR_WRAP */
+ 358, /* GL_DECR_WRAP */
+ 1051, /* GL_MODELVIEW1_ARB */
+ 1109, /* GL_NORMAL_MAP */
+ 1410, /* GL_REFLECTION_MAP */
+ 1807, /* GL_TEXTURE_CUBE_MAP */
+ 1766, /* GL_TEXTURE_BINDING_CUBE_MAP */
+ 1819, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */
+ 1809, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */
+ 1822, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */
+ 1812, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */
+ 1825, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */
+ 1815, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */
+ 1369, /* GL_PROXY_TEXTURE_CUBE_MAP */
+ 935, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */
+ 1087, /* GL_MULTISAMPLE_FILTER_HINT_NV */
+ 550, /* GL_FOG_DISTANCE_MODE_NV */
+ 499, /* GL_EYE_RADIAL_NV */
+ 498, /* GL_EYE_PLANE_ABSOLUTE_NV */
+ 244, /* GL_COMBINE */
+ 251, /* GL_COMBINE_RGB */
+ 246, /* GL_COMBINE_ALPHA */
+ 1499, /* GL_RGB_SCALE */
24, /* GL_ADD_SIGNED */
- 659, /* GL_INTERPOLATE */
- 272, /* GL_CONSTANT */
- 1233, /* GL_PRIMARY_COLOR */
- 1230, /* GL_PREVIOUS */
- 1471, /* GL_SOURCE0_RGB */
- 1477, /* GL_SOURCE1_RGB */
- 1483, /* GL_SOURCE2_RGB */
- 1487, /* GL_SOURCE3_RGB_NV */
- 1468, /* GL_SOURCE0_ALPHA */
- 1474, /* GL_SOURCE1_ALPHA */
- 1480, /* GL_SOURCE2_ALPHA */
- 1486, /* GL_SOURCE3_ALPHA_NV */
- 1075, /* GL_OPERAND0_RGB */
- 1081, /* GL_OPERAND1_RGB */
- 1087, /* GL_OPERAND2_RGB */
- 1091, /* GL_OPERAND3_RGB_NV */
- 1072, /* GL_OPERAND0_ALPHA */
- 1078, /* GL_OPERAND1_ALPHA */
- 1084, /* GL_OPERAND2_ALPHA */
- 1090, /* GL_OPERAND3_ALPHA_NV */
- 109, /* GL_BUFFER_OBJECT_APPLE */
- 1834, /* GL_VERTEX_ARRAY_BINDING */
- 1749, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
- 1750, /* GL_TEXTURE_RANGE_POINTER_APPLE */
- 1901, /* GL_YCBCR_422_APPLE */
- 1823, /* GL_UNSIGNED_SHORT_8_8_APPLE */
- 1825, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
- 1759, /* GL_TEXTURE_STORAGE_HINT_APPLE */
- 1552, /* GL_STORAGE_PRIVATE_APPLE */
- 1551, /* GL_STORAGE_CACHED_APPLE */
- 1553, /* GL_STORAGE_SHARED_APPLE */
- 1458, /* GL_SLICE_ACCUM_SUN */
- 1296, /* GL_QUAD_MESH_SUN */
- 1791, /* GL_TRIANGLE_MESH_SUN */
- 1873, /* GL_VERTEX_PROGRAM_ARB */
- 1884, /* GL_VERTEX_STATE_PROGRAM_NV */
- 1860, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
- 1866, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
- 1868, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
- 1870, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
- 335, /* GL_CURRENT_VERTEX_ATTRIB */
- 1247, /* GL_PROGRAM_LENGTH_ARB */
- 1261, /* GL_PROGRAM_STRING_ARB */
- 1004, /* GL_MODELVIEW_PROJECTION_NV */
- 625, /* GL_IDENTITY_NV */
- 673, /* GL_INVERSE_NV */
- 1784, /* GL_TRANSPOSE_NV */
- 674, /* GL_INVERSE_TRANSPOSE_NV */
- 906, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
- 905, /* GL_MAX_PROGRAM_MATRICES_ARB */
- 812, /* GL_MATRIX0_NV */
- 824, /* GL_MATRIX1_NV */
- 836, /* GL_MATRIX2_NV */
- 840, /* GL_MATRIX3_NV */
- 842, /* GL_MATRIX4_NV */
- 844, /* GL_MATRIX5_NV */
- 846, /* GL_MATRIX6_NV */
- 848, /* GL_MATRIX7_NV */
- 319, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
- 316, /* GL_CURRENT_MATRIX_ARB */
- 1876, /* GL_VERTEX_PROGRAM_POINT_SIZE */
- 1879, /* GL_VERTEX_PROGRAM_TWO_SIDE */
- 1259, /* GL_PROGRAM_PARAMETER_NV */
- 1864, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
- 1263, /* GL_PROGRAM_TARGET_NV */
- 1260, /* GL_PROGRAM_RESIDENT_NV */
- 1768, /* GL_TRACK_MATRIX_NV */
- 1769, /* GL_TRACK_MATRIX_TRANSFORM_NV */
- 1874, /* GL_VERTEX_PROGRAM_BINDING_NV */
- 1241, /* GL_PROGRAM_ERROR_POSITION_ARB */
- 357, /* GL_DEPTH_CLAMP */
- 1842, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
- 1849, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
- 1850, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
- 1851, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
- 1852, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
- 1853, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
- 1854, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
- 1855, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
- 1856, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
- 1857, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
- 1843, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
- 1844, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
- 1845, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
- 1846, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
- 1847, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
- 1848, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
- 760, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
- 767, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
- 768, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
- 769, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
- 770, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
- 771, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
- 772, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
- 773, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
- 774, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
- 775, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
- 761, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
- 762, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
- 763, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
- 764, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
- 765, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
- 766, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
- 787, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
- 794, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
- 795, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
- 796, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
- 797, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
- 798, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
- 799, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
- 1240, /* GL_PROGRAM_BINDING_ARB */
- 801, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
- 802, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
- 788, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
- 789, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
- 790, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
- 791, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
- 792, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
- 793, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
- 1684, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
- 1681, /* GL_TEXTURE_COMPRESSED */
- 1043, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
- 270, /* GL_COMPRESSED_TEXTURE_FORMATS */
- 952, /* GL_MAX_VERTEX_UNITS_ARB */
+ 706, /* GL_INTERPOLATE */
+ 284, /* GL_CONSTANT */
+ 1313, /* GL_PRIMARY_COLOR */
+ 1310, /* GL_PREVIOUS */
+ 1575, /* GL_SOURCE0_RGB */
+ 1581, /* GL_SOURCE1_RGB */
+ 1587, /* GL_SOURCE2_RGB */
+ 1591, /* GL_SOURCE3_RGB_NV */
+ 1572, /* GL_SOURCE0_ALPHA */
+ 1578, /* GL_SOURCE1_ALPHA */
+ 1584, /* GL_SOURCE2_ALPHA */
+ 1590, /* GL_SOURCE3_ALPHA_NV */
+ 1149, /* GL_OPERAND0_RGB */
+ 1155, /* GL_OPERAND1_RGB */
+ 1161, /* GL_OPERAND2_RGB */
+ 1165, /* GL_OPERAND3_RGB_NV */
+ 1146, /* GL_OPERAND0_ALPHA */
+ 1152, /* GL_OPERAND1_ALPHA */
+ 1158, /* GL_OPERAND2_ALPHA */
+ 1164, /* GL_OPERAND3_ALPHA_NV */
+ 120, /* GL_BUFFER_OBJECT_APPLE */
+ 1963, /* GL_VERTEX_ARRAY_BINDING */
+ 1872, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
+ 1873, /* GL_TEXTURE_RANGE_POINTER_APPLE */
+ 2037, /* GL_YCBCR_422_APPLE */
+ 1952, /* GL_UNSIGNED_SHORT_8_8_APPLE */
+ 1954, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
+ 1882, /* GL_TEXTURE_STORAGE_HINT_APPLE */
+ 1660, /* GL_STORAGE_PRIVATE_APPLE */
+ 1659, /* GL_STORAGE_CACHED_APPLE */
+ 1661, /* GL_STORAGE_SHARED_APPLE */
+ 1562, /* GL_SLICE_ACCUM_SUN */
+ 1379, /* GL_QUAD_MESH_SUN */
+ 1915, /* GL_TRIANGLE_MESH_SUN */
+ 2002, /* GL_VERTEX_PROGRAM_ARB */
+ 2013, /* GL_VERTEX_STATE_PROGRAM_NV */
+ 1989, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
+ 1995, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
+ 1997, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
+ 1999, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
+ 349, /* GL_CURRENT_VERTEX_ATTRIB */
+ 1329, /* GL_PROGRAM_LENGTH_ARB */
+ 1343, /* GL_PROGRAM_STRING_ARB */
+ 1074, /* GL_MODELVIEW_PROJECTION_NV */
+ 670, /* GL_IDENTITY_NV */
+ 722, /* GL_INVERSE_NV */
+ 1908, /* GL_TRANSPOSE_NV */
+ 723, /* GL_INVERSE_TRANSPOSE_NV */
+ 968, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
+ 967, /* GL_MAX_PROGRAM_MATRICES_ARB */
+ 863, /* GL_MATRIX0_NV */
+ 875, /* GL_MATRIX1_NV */
+ 887, /* GL_MATRIX2_NV */
+ 891, /* GL_MATRIX3_NV */
+ 893, /* GL_MATRIX4_NV */
+ 895, /* GL_MATRIX5_NV */
+ 897, /* GL_MATRIX6_NV */
+ 899, /* GL_MATRIX7_NV */
+ 332, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
+ 329, /* GL_CURRENT_MATRIX_ARB */
+ 2005, /* GL_VERTEX_PROGRAM_POINT_SIZE */
+ 2008, /* GL_VERTEX_PROGRAM_TWO_SIDE */
+ 1341, /* GL_PROGRAM_PARAMETER_NV */
+ 1993, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
+ 1345, /* GL_PROGRAM_TARGET_NV */
+ 1342, /* GL_PROGRAM_RESIDENT_NV */
+ 1892, /* GL_TRACK_MATRIX_NV */
+ 1893, /* GL_TRACK_MATRIX_TRANSFORM_NV */
+ 2003, /* GL_VERTEX_PROGRAM_BINDING_NV */
+ 1323, /* GL_PROGRAM_ERROR_POSITION_ARB */
+ 373, /* GL_DEPTH_CLAMP */
+ 1971, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
+ 1978, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
+ 1979, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
+ 1980, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
+ 1981, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
+ 1982, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
+ 1983, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
+ 1984, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
+ 1985, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
+ 1986, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
+ 1972, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
+ 1973, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
+ 1974, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
+ 1975, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
+ 1976, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
+ 1977, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
+ 811, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
+ 818, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
+ 819, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
+ 820, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */
+ 821, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */
+ 822, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */
+ 823, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */
+ 824, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */
+ 825, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */
+ 826, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */
+ 812, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */
+ 813, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */
+ 814, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */
+ 815, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */
+ 816, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */
+ 817, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */
+ 838, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */
+ 845, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */
+ 846, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */
+ 847, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */
+ 848, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */
+ 849, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */
+ 850, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */
+ 1322, /* GL_PROGRAM_BINDING_ARB */
+ 852, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */
+ 853, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */
+ 839, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */
+ 840, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */
+ 841, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */
+ 842, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */
+ 843, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */
+ 844, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */
+ 1795, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */
+ 1792, /* GL_TEXTURE_COMPRESSED */
+ 1115, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */
+ 282, /* GL_COMPRESSED_TEXTURE_FORMATS */
+ 1018, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
- 1896, /* GL_WEIGHT_SUM_UNITY_ARB */
- 1872, /* GL_VERTEX_BLEND_ARB */
- 337, /* GL_CURRENT_WEIGHT_ARB */
- 1895, /* GL_WEIGHT_ARRAY_TYPE_ARB */
- 1894, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
- 1893, /* GL_WEIGHT_ARRAY_SIZE_ARB */
- 1892, /* GL_WEIGHT_ARRAY_POINTER_ARB */
- 1889, /* GL_WEIGHT_ARRAY_ARB */
- 387, /* GL_DOT3_RGB */
- 388, /* GL_DOT3_RGBA */
- 264, /* GL_COMPRESSED_RGB_FXT1_3DFX */
- 259, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
- 1012, /* GL_MULTISAMPLE_3DFX */
- 1419, /* GL_SAMPLE_BUFFERS_3DFX */
- 1410, /* GL_SAMPLES_3DFX */
- 993, /* GL_MODELVIEW2_ARB */
- 996, /* GL_MODELVIEW3_ARB */
- 997, /* GL_MODELVIEW4_ARB */
- 998, /* GL_MODELVIEW5_ARB */
- 999, /* GL_MODELVIEW6_ARB */
- 1000, /* GL_MODELVIEW7_ARB */
- 1001, /* GL_MODELVIEW8_ARB */
- 1002, /* GL_MODELVIEW9_ARB */
- 972, /* GL_MODELVIEW10_ARB */
- 973, /* GL_MODELVIEW11_ARB */
- 974, /* GL_MODELVIEW12_ARB */
- 975, /* GL_MODELVIEW13_ARB */
- 976, /* GL_MODELVIEW14_ARB */
- 977, /* GL_MODELVIEW15_ARB */
- 978, /* GL_MODELVIEW16_ARB */
- 979, /* GL_MODELVIEW17_ARB */
- 980, /* GL_MODELVIEW18_ARB */
- 981, /* GL_MODELVIEW19_ARB */
- 983, /* GL_MODELVIEW20_ARB */
- 984, /* GL_MODELVIEW21_ARB */
- 985, /* GL_MODELVIEW22_ARB */
- 986, /* GL_MODELVIEW23_ARB */
- 987, /* GL_MODELVIEW24_ARB */
- 988, /* GL_MODELVIEW25_ARB */
- 989, /* GL_MODELVIEW26_ARB */
- 990, /* GL_MODELVIEW27_ARB */
- 991, /* GL_MODELVIEW28_ARB */
- 992, /* GL_MODELVIEW29_ARB */
- 994, /* GL_MODELVIEW30_ARB */
- 995, /* GL_MODELVIEW31_ARB */
- 392, /* GL_DOT3_RGB_EXT */
- 390, /* GL_DOT3_RGBA_EXT */
- 966, /* GL_MIRROR_CLAMP_EXT */
- 969, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
- 1007, /* GL_MODULATE_ADD_ATI */
- 1008, /* GL_MODULATE_SIGNED_ADD_ATI */
- 1009, /* GL_MODULATE_SUBTRACT_ATI */
- 1902, /* GL_YCBCR_MESA */
- 1099, /* GL_PACK_INVERT_MESA */
- 340, /* GL_DEBUG_OBJECT_MESA */
- 341, /* GL_DEBUG_PRINT_MESA */
- 339, /* GL_DEBUG_ASSERT_MESA */
- 111, /* GL_BUFFER_SIZE */
- 113, /* GL_BUFFER_USAGE */
- 117, /* GL_BUMP_ROT_MATRIX_ATI */
- 118, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
- 116, /* GL_BUMP_NUM_TEX_UNITS_ATI */
- 120, /* GL_BUMP_TEX_UNITS_ATI */
- 452, /* GL_DUDV_ATI */
- 451, /* GL_DU8DV8_ATI */
- 115, /* GL_BUMP_ENVMAP_ATI */
- 119, /* GL_BUMP_TARGET_ATI */
- 1519, /* GL_STENCIL_BACK_FUNC */
- 1517, /* GL_STENCIL_BACK_FAIL */
- 1521, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
- 1523, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
- 537, /* GL_FRAGMENT_PROGRAM_ARB */
- 1238, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 1266, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 1265, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
- 1250, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 1256, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 1255, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 895, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
- 918, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
- 917, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
- 908, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
- 914, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
- 913, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
- 878, /* GL_MAX_DRAW_BUFFERS */
- 396, /* GL_DRAW_BUFFER0 */
- 399, /* GL_DRAW_BUFFER1 */
- 420, /* GL_DRAW_BUFFER2 */
- 423, /* GL_DRAW_BUFFER3 */
- 426, /* GL_DRAW_BUFFER4 */
- 429, /* GL_DRAW_BUFFER5 */
- 432, /* GL_DRAW_BUFFER6 */
- 435, /* GL_DRAW_BUFFER7 */
- 438, /* GL_DRAW_BUFFER8 */
- 441, /* GL_DRAW_BUFFER9 */
- 400, /* GL_DRAW_BUFFER10 */
- 403, /* GL_DRAW_BUFFER11 */
- 406, /* GL_DRAW_BUFFER12 */
- 409, /* GL_DRAW_BUFFER13 */
- 412, /* GL_DRAW_BUFFER14 */
- 415, /* GL_DRAW_BUFFER15 */
- 82, /* GL_BLEND_EQUATION_ALPHA */
- 857, /* GL_MATRIX_PALETTE_ARB */
- 889, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
- 892, /* GL_MAX_PALETTE_MATRICES_ARB */
- 322, /* GL_CURRENT_PALETTE_MATRIX_ARB */
- 851, /* GL_MATRIX_INDEX_ARRAY_ARB */
- 317, /* GL_CURRENT_MATRIX_INDEX_ARB */
- 853, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
- 855, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
- 854, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
- 852, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
- 1711, /* GL_TEXTURE_DEPTH_SIZE */
- 380, /* GL_DEPTH_TEXTURE_MODE */
- 1676, /* GL_TEXTURE_COMPARE_MODE */
- 1674, /* GL_TEXTURE_COMPARE_FUNC */
- 243, /* GL_COMPARE_R_TO_TEXTURE */
- 1171, /* GL_POINT_SPRITE */
- 297, /* GL_COORD_REPLACE */
- 1175, /* GL_POINT_SPRITE_R_MODE_NV */
- 1300, /* GL_QUERY_COUNTER_BITS */
- 324, /* GL_CURRENT_QUERY */
- 1303, /* GL_QUERY_RESULT */
- 1305, /* GL_QUERY_RESULT_AVAILABLE */
- 946, /* GL_MAX_VERTEX_ATTRIBS */
- 1862, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
- 378, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
- 377, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
- 929, /* GL_MAX_TEXTURE_COORDS */
- 931, /* GL_MAX_TEXTURE_IMAGE_UNITS */
- 1243, /* GL_PROGRAM_ERROR_STRING_ARB */
- 1245, /* GL_PROGRAM_FORMAT_ASCII_ARB */
- 1244, /* GL_PROGRAM_FORMAT_ARB */
- 1761, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
- 355, /* GL_DEPTH_BOUNDS_TEST_EXT */
- 354, /* GL_DEPTH_BOUNDS_EXT */
+ 2031, /* GL_WEIGHT_SUM_UNITY_ARB */
+ 2001, /* GL_VERTEX_BLEND_ARB */
+ 351, /* GL_CURRENT_WEIGHT_ARB */
+ 2029, /* GL_WEIGHT_ARRAY_TYPE_ARB */
+ 2027, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
+ 2025, /* GL_WEIGHT_ARRAY_SIZE_ARB */
+ 2023, /* GL_WEIGHT_ARRAY_POINTER_ARB */
+ 2018, /* GL_WEIGHT_ARRAY_ARB */
+ 407, /* GL_DOT3_RGB */
+ 408, /* GL_DOT3_RGBA */
+ 276, /* GL_COMPRESSED_RGB_FXT1_3DFX */
+ 271, /* GL_COMPRESSED_RGBA_FXT1_3DFX */
+ 1082, /* GL_MULTISAMPLE_3DFX */
+ 1521, /* GL_SAMPLE_BUFFERS_3DFX */
+ 1512, /* GL_SAMPLES_3DFX */
+ 1062, /* GL_MODELVIEW2_ARB */
+ 1065, /* GL_MODELVIEW3_ARB */
+ 1066, /* GL_MODELVIEW4_ARB */
+ 1067, /* GL_MODELVIEW5_ARB */
+ 1068, /* GL_MODELVIEW6_ARB */
+ 1069, /* GL_MODELVIEW7_ARB */
+ 1070, /* GL_MODELVIEW8_ARB */
+ 1071, /* GL_MODELVIEW9_ARB */
+ 1041, /* GL_MODELVIEW10_ARB */
+ 1042, /* GL_MODELVIEW11_ARB */
+ 1043, /* GL_MODELVIEW12_ARB */
+ 1044, /* GL_MODELVIEW13_ARB */
+ 1045, /* GL_MODELVIEW14_ARB */
+ 1046, /* GL_MODELVIEW15_ARB */
+ 1047, /* GL_MODELVIEW16_ARB */
+ 1048, /* GL_MODELVIEW17_ARB */
+ 1049, /* GL_MODELVIEW18_ARB */
+ 1050, /* GL_MODELVIEW19_ARB */
+ 1052, /* GL_MODELVIEW20_ARB */
+ 1053, /* GL_MODELVIEW21_ARB */
+ 1054, /* GL_MODELVIEW22_ARB */
+ 1055, /* GL_MODELVIEW23_ARB */
+ 1056, /* GL_MODELVIEW24_ARB */
+ 1057, /* GL_MODELVIEW25_ARB */
+ 1058, /* GL_MODELVIEW26_ARB */
+ 1059, /* GL_MODELVIEW27_ARB */
+ 1060, /* GL_MODELVIEW28_ARB */
+ 1061, /* GL_MODELVIEW29_ARB */
+ 1063, /* GL_MODELVIEW30_ARB */
+ 1064, /* GL_MODELVIEW31_ARB */
+ 412, /* GL_DOT3_RGB_EXT */
+ 410, /* GL_DOT3_RGBA_EXT */
+ 1035, /* GL_MIRROR_CLAMP_EXT */
+ 1038, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */
+ 1077, /* GL_MODULATE_ADD_ATI */
+ 1078, /* GL_MODULATE_SIGNED_ADD_ATI */
+ 1079, /* GL_MODULATE_SUBTRACT_ATI */
+ 2038, /* GL_YCBCR_MESA */
+ 1173, /* GL_PACK_INVERT_MESA */
+ 354, /* GL_DEBUG_OBJECT_MESA */
+ 355, /* GL_DEBUG_PRINT_MESA */
+ 353, /* GL_DEBUG_ASSERT_MESA */
+ 122, /* GL_BUFFER_SIZE */
+ 124, /* GL_BUFFER_USAGE */
+ 128, /* GL_BUMP_ROT_MATRIX_ATI */
+ 129, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */
+ 127, /* GL_BUMP_NUM_TEX_UNITS_ATI */
+ 131, /* GL_BUMP_TEX_UNITS_ATI */
+ 472, /* GL_DUDV_ATI */
+ 471, /* GL_DU8DV8_ATI */
+ 126, /* GL_BUMP_ENVMAP_ATI */
+ 130, /* GL_BUMP_TARGET_ATI */
+ 1117, /* GL_NUM_PROGRAM_BINARY_FORMATS_OES */
+ 1320, /* GL_PROGRAM_BINARY_FORMATS_OES */
+ 1624, /* GL_STENCIL_BACK_FUNC */
+ 1622, /* GL_STENCIL_BACK_FAIL */
+ 1626, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */
+ 1628, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */
+ 559, /* GL_FRAGMENT_PROGRAM_ARB */
+ 1318, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 1348, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 1347, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 1332, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 1338, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 1337, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 957, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */
+ 980, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */
+ 979, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */
+ 970, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */
+ 976, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */
+ 975, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */
+ 938, /* GL_MAX_DRAW_BUFFERS */
+ 416, /* GL_DRAW_BUFFER0 */
+ 419, /* GL_DRAW_BUFFER1 */
+ 440, /* GL_DRAW_BUFFER2 */
+ 443, /* GL_DRAW_BUFFER3 */
+ 446, /* GL_DRAW_BUFFER4 */
+ 449, /* GL_DRAW_BUFFER5 */
+ 452, /* GL_DRAW_BUFFER6 */
+ 455, /* GL_DRAW_BUFFER7 */
+ 458, /* GL_DRAW_BUFFER8 */
+ 461, /* GL_DRAW_BUFFER9 */
+ 420, /* GL_DRAW_BUFFER10 */
+ 423, /* GL_DRAW_BUFFER11 */
+ 426, /* GL_DRAW_BUFFER12 */
+ 429, /* GL_DRAW_BUFFER13 */
+ 432, /* GL_DRAW_BUFFER14 */
+ 435, /* GL_DRAW_BUFFER15 */
+ 85, /* GL_BLEND_EQUATION_ALPHA */
+ 914, /* GL_MATRIX_PALETTE_ARB */
+ 950, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */
+ 953, /* GL_MAX_PALETTE_MATRICES_ARB */
+ 335, /* GL_CURRENT_PALETTE_MATRIX_ARB */
+ 902, /* GL_MATRIX_INDEX_ARRAY_ARB */
+ 330, /* GL_CURRENT_MATRIX_INDEX_ARB */
+ 907, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */
+ 911, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */
+ 909, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */
+ 905, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */
+ 1830, /* GL_TEXTURE_DEPTH_SIZE */
+ 400, /* GL_DEPTH_TEXTURE_MODE */
+ 1787, /* GL_TEXTURE_COMPARE_MODE */
+ 1785, /* GL_TEXTURE_COMPARE_FUNC */
+ 255, /* GL_COMPARE_R_TO_TEXTURE */
+ 1250, /* GL_POINT_SPRITE */
+ 309, /* GL_COORD_REPLACE */
+ 1255, /* GL_POINT_SPRITE_R_MODE_NV */
+ 1383, /* GL_QUERY_COUNTER_BITS */
+ 338, /* GL_CURRENT_QUERY */
+ 1386, /* GL_QUERY_RESULT */
+ 1388, /* GL_QUERY_RESULT_AVAILABLE */
+ 1011, /* GL_MAX_VERTEX_ATTRIBS */
+ 1991, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
+ 398, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
+ 397, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
+ 992, /* GL_MAX_TEXTURE_COORDS */
+ 994, /* GL_MAX_TEXTURE_IMAGE_UNITS */
+ 1325, /* GL_PROGRAM_ERROR_STRING_ARB */
+ 1327, /* GL_PROGRAM_FORMAT_ASCII_ARB */
+ 1326, /* GL_PROGRAM_FORMAT_ARB */
+ 1884, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */
+ 371, /* GL_DEPTH_BOUNDS_TEST_EXT */
+ 370, /* GL_DEPTH_BOUNDS_EXT */
53, /* GL_ARRAY_BUFFER */
- 465, /* GL_ELEMENT_ARRAY_BUFFER */
+ 485, /* GL_ELEMENT_ARRAY_BUFFER */
54, /* GL_ARRAY_BUFFER_BINDING */
- 466, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
- 1836, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
- 1033, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
- 150, /* GL_COLOR_ARRAY_BUFFER_BINDING */
- 634, /* GL_INDEX_ARRAY_BUFFER_BINDING */
- 1689, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
- 461, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
- 1431, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
- 515, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
- 1890, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
- 1858, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
- 1246, /* GL_PROGRAM_INSTRUCTIONS_ARB */
- 901, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
- 1252, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 910, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
- 1264, /* GL_PROGRAM_TEMPORARIES_ARB */
- 916, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
- 1254, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 912, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
- 1258, /* GL_PROGRAM_PARAMETERS_ARB */
- 915, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
- 1253, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
- 911, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
- 1239, /* GL_PROGRAM_ATTRIBS_ARB */
- 896, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
- 1251, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
- 909, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
- 1237, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
- 894, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
- 1249, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 907, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
- 902, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
- 898, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
- 1267, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
- 1781, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
- 1317, /* GL_READ_ONLY */
- 1898, /* GL_WRITE_ONLY */
- 1319, /* GL_READ_WRITE */
- 102, /* GL_BUFFER_ACCESS */
- 105, /* GL_BUFFER_MAPPED */
- 107, /* GL_BUFFER_MAP_POINTER */
- 1767, /* GL_TIME_ELAPSED_EXT */
- 811, /* GL_MATRIX0_ARB */
- 823, /* GL_MATRIX1_ARB */
- 835, /* GL_MATRIX2_ARB */
- 839, /* GL_MATRIX3_ARB */
- 841, /* GL_MATRIX4_ARB */
- 843, /* GL_MATRIX5_ARB */
- 845, /* GL_MATRIX6_ARB */
- 847, /* GL_MATRIX7_ARB */
- 849, /* GL_MATRIX8_ARB */
- 850, /* GL_MATRIX9_ARB */
- 813, /* GL_MATRIX10_ARB */
- 814, /* GL_MATRIX11_ARB */
- 815, /* GL_MATRIX12_ARB */
- 816, /* GL_MATRIX13_ARB */
- 817, /* GL_MATRIX14_ARB */
- 818, /* GL_MATRIX15_ARB */
- 819, /* GL_MATRIX16_ARB */
- 820, /* GL_MATRIX17_ARB */
- 821, /* GL_MATRIX18_ARB */
- 822, /* GL_MATRIX19_ARB */
- 825, /* GL_MATRIX20_ARB */
- 826, /* GL_MATRIX21_ARB */
- 827, /* GL_MATRIX22_ARB */
- 828, /* GL_MATRIX23_ARB */
- 829, /* GL_MATRIX24_ARB */
- 830, /* GL_MATRIX25_ARB */
- 831, /* GL_MATRIX26_ARB */
- 832, /* GL_MATRIX27_ARB */
- 833, /* GL_MATRIX28_ARB */
- 834, /* GL_MATRIX29_ARB */
- 837, /* GL_MATRIX30_ARB */
- 838, /* GL_MATRIX31_ARB */
- 1556, /* GL_STREAM_DRAW */
- 1558, /* GL_STREAM_READ */
- 1554, /* GL_STREAM_COPY */
- 1510, /* GL_STATIC_DRAW */
- 1512, /* GL_STATIC_READ */
- 1508, /* GL_STATIC_COPY */
- 455, /* GL_DYNAMIC_DRAW */
- 457, /* GL_DYNAMIC_READ */
- 453, /* GL_DYNAMIC_COPY */
- 1139, /* GL_PIXEL_PACK_BUFFER */
- 1143, /* GL_PIXEL_UNPACK_BUFFER */
- 1140, /* GL_PIXEL_PACK_BUFFER_BINDING */
- 1144, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
- 348, /* GL_DEPTH24_STENCIL8 */
- 1757, /* GL_TEXTURE_STENCIL_SIZE */
- 1709, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
- 897, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
- 900, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
- 904, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
- 903, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
- 860, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
- 1547, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
+ 486, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
+ 1965, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
+ 1104, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
+ 161, /* GL_COLOR_ARRAY_BUFFER_BINDING */
+ 681, /* GL_INDEX_ARRAY_BUFFER_BINDING */
+ 1800, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */
+ 481, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
+ 1533, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
+ 537, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
+ 2019, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
+ 1987, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
+ 1328, /* GL_PROGRAM_INSTRUCTIONS_ARB */
+ 963, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
+ 1334, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 972, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
+ 1346, /* GL_PROGRAM_TEMPORARIES_ARB */
+ 978, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */
+ 1336, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 974, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */
+ 1340, /* GL_PROGRAM_PARAMETERS_ARB */
+ 977, /* GL_MAX_PROGRAM_PARAMETERS_ARB */
+ 1335, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 973, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */
+ 1319, /* GL_PROGRAM_ATTRIBS_ARB */
+ 958, /* GL_MAX_PROGRAM_ATTRIBS_ARB */
+ 1333, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 971, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */
+ 1317, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 956, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */
+ 1331, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 969, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */
+ 964, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
+ 960, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
+ 1349, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
+ 1905, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
+ 1400, /* GL_READ_ONLY */
+ 2033, /* GL_WRITE_ONLY */
+ 1402, /* GL_READ_WRITE */
+ 110, /* GL_BUFFER_ACCESS */
+ 114, /* GL_BUFFER_MAPPED */
+ 117, /* GL_BUFFER_MAP_POINTER */
+ 1891, /* GL_TIME_ELAPSED_EXT */
+ 862, /* GL_MATRIX0_ARB */
+ 874, /* GL_MATRIX1_ARB */
+ 886, /* GL_MATRIX2_ARB */
+ 890, /* GL_MATRIX3_ARB */
+ 892, /* GL_MATRIX4_ARB */
+ 894, /* GL_MATRIX5_ARB */
+ 896, /* GL_MATRIX6_ARB */
+ 898, /* GL_MATRIX7_ARB */
+ 900, /* GL_MATRIX8_ARB */
+ 901, /* GL_MATRIX9_ARB */
+ 864, /* GL_MATRIX10_ARB */
+ 865, /* GL_MATRIX11_ARB */
+ 866, /* GL_MATRIX12_ARB */
+ 867, /* GL_MATRIX13_ARB */
+ 868, /* GL_MATRIX14_ARB */
+ 869, /* GL_MATRIX15_ARB */
+ 870, /* GL_MATRIX16_ARB */
+ 871, /* GL_MATRIX17_ARB */
+ 872, /* GL_MATRIX18_ARB */
+ 873, /* GL_MATRIX19_ARB */
+ 876, /* GL_MATRIX20_ARB */
+ 877, /* GL_MATRIX21_ARB */
+ 878, /* GL_MATRIX22_ARB */
+ 879, /* GL_MATRIX23_ARB */
+ 880, /* GL_MATRIX24_ARB */
+ 881, /* GL_MATRIX25_ARB */
+ 882, /* GL_MATRIX26_ARB */
+ 883, /* GL_MATRIX27_ARB */
+ 884, /* GL_MATRIX28_ARB */
+ 885, /* GL_MATRIX29_ARB */
+ 888, /* GL_MATRIX30_ARB */
+ 889, /* GL_MATRIX31_ARB */
+ 1664, /* GL_STREAM_DRAW */
+ 1666, /* GL_STREAM_READ */
+ 1662, /* GL_STREAM_COPY */
+ 1614, /* GL_STATIC_DRAW */
+ 1616, /* GL_STATIC_READ */
+ 1612, /* GL_STATIC_COPY */
+ 475, /* GL_DYNAMIC_DRAW */
+ 477, /* GL_DYNAMIC_READ */
+ 473, /* GL_DYNAMIC_COPY */
+ 1213, /* GL_PIXEL_PACK_BUFFER */
+ 1217, /* GL_PIXEL_UNPACK_BUFFER */
+ 1214, /* GL_PIXEL_PACK_BUFFER_BINDING */
+ 1218, /* GL_PIXEL_UNPACK_BUFFER_BINDING */
+ 362, /* GL_DEPTH24_STENCIL8 */
+ 1880, /* GL_TEXTURE_STENCIL_SIZE */
+ 1828, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */
+ 959, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */
+ 962, /* GL_MAX_PROGRAM_IF_DEPTH_NV */
+ 966, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */
+ 965, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */
+ 919, /* GL_MAX_ARRAY_TEXTURE_LAYERS_EXT */
+ 1655, /* GL_STENCIL_TEST_TWO_SIDE_EXT */
17, /* GL_ACTIVE_STENCIL_FACE_EXT */
- 967, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
- 1412, /* GL_SAMPLES_PASSED */
- 110, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
- 104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
- 1330, /* GL_RELEASED_APPLE */
- 1887, /* GL_VOLATILE_APPLE */
- 1358, /* GL_RETAINED_APPLE */
- 1794, /* GL_UNDEFINED_APPLE */
- 1290, /* GL_PURGEABLE_APPLE */
- 538, /* GL_FRAGMENT_SHADER */
- 1882, /* GL_VERTEX_SHADER */
- 1257, /* GL_PROGRAM_OBJECT_ARB */
- 1445, /* GL_SHADER_OBJECT_ARB */
- 885, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
- 950, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
- 944, /* GL_MAX_VARYING_FLOATS */
- 948, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
- 870, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
- 1059, /* GL_OBJECT_TYPE_ARB */
- 1447, /* GL_SHADER_TYPE */
- 503, /* GL_FLOAT_VEC2 */
- 505, /* GL_FLOAT_VEC3 */
- 507, /* GL_FLOAT_VEC4 */
- 662, /* GL_INT_VEC2 */
- 664, /* GL_INT_VEC3 */
- 666, /* GL_INT_VEC4 */
- 94, /* GL_BOOL */
- 96, /* GL_BOOL_VEC2 */
- 98, /* GL_BOOL_VEC3 */
- 100, /* GL_BOOL_VEC4 */
- 491, /* GL_FLOAT_MAT2 */
- 495, /* GL_FLOAT_MAT3 */
- 499, /* GL_FLOAT_MAT4 */
- 1403, /* GL_SAMPLER_1D */
- 1405, /* GL_SAMPLER_2D */
- 1407, /* GL_SAMPLER_3D */
- 1408, /* GL_SAMPLER_CUBE */
- 1404, /* GL_SAMPLER_1D_SHADOW */
- 1406, /* GL_SAMPLER_2D_SHADOW */
- 493, /* GL_FLOAT_MAT2x3 */
- 494, /* GL_FLOAT_MAT2x4 */
- 497, /* GL_FLOAT_MAT3x2 */
- 498, /* GL_FLOAT_MAT3x4 */
- 501, /* GL_FLOAT_MAT4x2 */
- 502, /* GL_FLOAT_MAT4x3 */
- 346, /* GL_DELETE_STATUS */
- 247, /* GL_COMPILE_STATUS */
- 718, /* GL_LINK_STATUS */
- 1830, /* GL_VALIDATE_STATUS */
- 646, /* GL_INFO_LOG_LENGTH */
+ 1036, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */
+ 1514, /* GL_SAMPLES_PASSED */
+ 1237, /* GL_POINT_SIZE_ARRAY_TYPE_OES */
+ 1236, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */
+ 1235, /* GL_POINT_SIZE_ARRAY_POINTER_OES */
+ 1073, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 1352, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 1862, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */
+ 121, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
+ 113, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
+ 1414, /* GL_RELEASED_APPLE */
+ 2016, /* GL_VOLATILE_APPLE */
+ 1453, /* GL_RETAINED_APPLE */
+ 1918, /* GL_UNDEFINED_APPLE */
+ 1373, /* GL_PURGEABLE_APPLE */
+ 560, /* GL_FRAGMENT_SHADER */
+ 2011, /* GL_VERTEX_SHADER */
+ 1339, /* GL_PROGRAM_OBJECT_ARB */
+ 1549, /* GL_SHADER_OBJECT_ARB */
+ 945, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
+ 1015, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */
+ 1008, /* GL_MAX_VARYING_FLOATS */
+ 1013, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */
+ 929, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */
+ 1133, /* GL_OBJECT_TYPE_ARB */
+ 1551, /* GL_SHADER_TYPE */
+ 525, /* GL_FLOAT_VEC2 */
+ 527, /* GL_FLOAT_VEC3 */
+ 529, /* GL_FLOAT_VEC4 */
+ 710, /* GL_INT_VEC2 */
+ 712, /* GL_INT_VEC3 */
+ 714, /* GL_INT_VEC4 */
+ 102, /* GL_BOOL */
+ 104, /* GL_BOOL_VEC2 */
+ 106, /* GL_BOOL_VEC3 */
+ 108, /* GL_BOOL_VEC4 */
+ 513, /* GL_FLOAT_MAT2 */
+ 517, /* GL_FLOAT_MAT3 */
+ 521, /* GL_FLOAT_MAT4 */
+ 1504, /* GL_SAMPLER_1D */
+ 1506, /* GL_SAMPLER_2D */
+ 1508, /* GL_SAMPLER_3D */
+ 1510, /* GL_SAMPLER_CUBE */
+ 1505, /* GL_SAMPLER_1D_SHADOW */
+ 1507, /* GL_SAMPLER_2D_SHADOW */
+ 515, /* GL_FLOAT_MAT2x3 */
+ 516, /* GL_FLOAT_MAT2x4 */
+ 519, /* GL_FLOAT_MAT3x2 */
+ 520, /* GL_FLOAT_MAT3x4 */
+ 523, /* GL_FLOAT_MAT4x2 */
+ 524, /* GL_FLOAT_MAT4x3 */
+ 360, /* GL_DELETE_STATUS */
+ 259, /* GL_COMPILE_STATUS */
+ 767, /* GL_LINK_STATUS */
+ 1959, /* GL_VALIDATE_STATUS */
+ 693, /* GL_INFO_LOG_LENGTH */
56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
21, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */
- 1446, /* GL_SHADER_SOURCE_LENGTH */
+ 1550, /* GL_SHADER_SOURCE_LENGTH */
15, /* GL_ACTIVE_ATTRIBUTES */
16, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */
- 540, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
- 1449, /* GL_SHADING_LANGUAGE_VERSION */
- 323, /* GL_CURRENT_PROGRAM */
- 1108, /* GL_PALETTE4_RGB8_OES */
- 1110, /* GL_PALETTE4_RGBA8_OES */
- 1106, /* GL_PALETTE4_R5_G6_B5_OES */
- 1109, /* GL_PALETTE4_RGBA4_OES */
- 1107, /* GL_PALETTE4_RGB5_A1_OES */
- 1113, /* GL_PALETTE8_RGB8_OES */
- 1115, /* GL_PALETTE8_RGBA8_OES */
- 1111, /* GL_PALETTE8_R5_G6_B5_OES */
- 1114, /* GL_PALETTE8_RGBA4_OES */
- 1112, /* GL_PALETTE8_RGB5_A1_OES */
- 628, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
- 627, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
- 1815, /* GL_UNSIGNED_NORMALIZED */
- 1644, /* GL_TEXTURE_1D_ARRAY_EXT */
- 1279, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
- 1646, /* GL_TEXTURE_2D_ARRAY_EXT */
- 1282, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
- 1652, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
- 1654, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
- 1502, /* GL_SRGB */
- 1503, /* GL_SRGB8 */
- 1505, /* GL_SRGB_ALPHA */
- 1504, /* GL_SRGB8_ALPHA8 */
- 1462, /* GL_SLUMINANCE_ALPHA */
- 1461, /* GL_SLUMINANCE8_ALPHA8 */
- 1459, /* GL_SLUMINANCE */
- 1460, /* GL_SLUMINANCE8 */
- 268, /* GL_COMPRESSED_SRGB */
- 269, /* GL_COMPRESSED_SRGB_ALPHA */
- 266, /* GL_COMPRESSED_SLUMINANCE */
- 267, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
- 1778, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
- 1773, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
- 943, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
- 1777, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
- 1775, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
- 1774, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
- 1236, /* GL_PRIMITIVES_GENERATED_EXT */
- 1776, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
- 1310, /* GL_RASTERIZER_DISCARD_EXT */
- 941, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
- 942, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
- 658, /* GL_INTERLEAVED_ATTRIBS_EXT */
- 1441, /* GL_SEPARATE_ATTRIBS_EXT */
- 1772, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
- 1771, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
- 1173, /* GL_POINT_SPRITE_COORD_ORIGIN */
- 726, /* GL_LOWER_LEFT */
- 1827, /* GL_UPPER_LEFT */
- 1525, /* GL_STENCIL_BACK_REF */
- 1526, /* GL_STENCIL_BACK_VALUE_MASK */
- 1527, /* GL_STENCIL_BACK_WRITEMASK */
- 445, /* GL_DRAW_FRAMEBUFFER_BINDING */
- 1334, /* GL_RENDERBUFFER_BINDING */
- 1313, /* GL_READ_FRAMEBUFFER */
- 444, /* GL_DRAW_FRAMEBUFFER */
- 1314, /* GL_READ_FRAMEBUFFER_BINDING */
- 1345, /* GL_RENDERBUFFER_SAMPLES */
- 550, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
- 548, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
- 559, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
- 555, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
- 557, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
- 563, /* GL_FRAMEBUFFER_COMPLETE */
- 567, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
- 574, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
- 572, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
- 569, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
- 573, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
- 570, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
- 578, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
- 582, /* GL_FRAMEBUFFER_UNSUPPORTED */
- 580, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
- 866, /* GL_MAX_COLOR_ATTACHMENTS */
- 156, /* GL_COLOR_ATTACHMENT0 */
- 158, /* GL_COLOR_ATTACHMENT1 */
- 172, /* GL_COLOR_ATTACHMENT2 */
- 174, /* GL_COLOR_ATTACHMENT3 */
- 176, /* GL_COLOR_ATTACHMENT4 */
- 178, /* GL_COLOR_ATTACHMENT5 */
- 180, /* GL_COLOR_ATTACHMENT6 */
- 182, /* GL_COLOR_ATTACHMENT7 */
- 184, /* GL_COLOR_ATTACHMENT8 */
- 186, /* GL_COLOR_ATTACHMENT9 */
- 159, /* GL_COLOR_ATTACHMENT10 */
- 161, /* GL_COLOR_ATTACHMENT11 */
- 163, /* GL_COLOR_ATTACHMENT12 */
- 165, /* GL_COLOR_ATTACHMENT13 */
- 167, /* GL_COLOR_ATTACHMENT14 */
- 169, /* GL_COLOR_ATTACHMENT15 */
- 350, /* GL_DEPTH_ATTACHMENT */
- 1515, /* GL_STENCIL_ATTACHMENT */
- 541, /* GL_FRAMEBUFFER */
- 1332, /* GL_RENDERBUFFER */
- 1348, /* GL_RENDERBUFFER_WIDTH */
- 1340, /* GL_RENDERBUFFER_HEIGHT */
- 1342, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
- 1542, /* GL_STENCIL_INDEX_EXT */
- 1534, /* GL_STENCIL_INDEX1 */
- 1538, /* GL_STENCIL_INDEX4 */
- 1540, /* GL_STENCIL_INDEX8 */
- 1535, /* GL_STENCIL_INDEX16 */
- 1344, /* GL_RENDERBUFFER_RED_SIZE */
- 1339, /* GL_RENDERBUFFER_GREEN_SIZE */
- 1336, /* GL_RENDERBUFFER_BLUE_SIZE */
- 1333, /* GL_RENDERBUFFER_ALPHA_SIZE */
- 1337, /* GL_RENDERBUFFER_DEPTH_SIZE */
- 1347, /* GL_RENDERBUFFER_STENCIL_SIZE */
- 576, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
- 924, /* GL_MAX_SAMPLES */
- 1307, /* GL_QUERY_WAIT_NV */
- 1302, /* GL_QUERY_NO_WAIT_NV */
- 1299, /* GL_QUERY_BY_REGION_WAIT_NV */
- 1298, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
- 1294, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
- 487, /* GL_FIRST_VERTEX_CONVENTION */
- 677, /* GL_LAST_VERTEX_CONVENTION */
- 1271, /* GL_PROVOKING_VERTEX */
- 303, /* GL_COPY_READ_BUFFER */
- 304, /* GL_COPY_WRITE_BUFFER */
- 1396, /* GL_RGBA_SNORM */
- 1392, /* GL_RGBA8_SNORM */
- 1455, /* GL_SIGNED_NORMALIZED */
- 926, /* GL_MAX_SERVER_WAIT_TIMEOUT */
- 1058, /* GL_OBJECT_TYPE */
- 1563, /* GL_SYNC_CONDITION */
- 1568, /* GL_SYNC_STATUS */
- 1565, /* GL_SYNC_FLAGS */
- 1564, /* GL_SYNC_FENCE */
- 1567, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
- 1803, /* GL_UNSIGNALED */
- 1454, /* GL_SIGNALED */
+ 562, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */
+ 1553, /* GL_SHADING_LANGUAGE_VERSION */
+ 337, /* GL_CURRENT_PROGRAM */
+ 1182, /* GL_PALETTE4_RGB8_OES */
+ 1184, /* GL_PALETTE4_RGBA8_OES */
+ 1180, /* GL_PALETTE4_R5_G6_B5_OES */
+ 1183, /* GL_PALETTE4_RGBA4_OES */
+ 1181, /* GL_PALETTE4_RGB5_A1_OES */
+ 1187, /* GL_PALETTE8_RGB8_OES */
+ 1189, /* GL_PALETTE8_RGBA8_OES */
+ 1185, /* GL_PALETTE8_R5_G6_B5_OES */
+ 1188, /* GL_PALETTE8_RGBA4_OES */
+ 1186, /* GL_PALETTE8_RGB5_A1_OES */
+ 675, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
+ 673, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
+ 1234, /* GL_POINT_SIZE_ARRAY_OES */
+ 1806, /* GL_TEXTURE_CROP_RECT_OES */
+ 903, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */
+ 1233, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */
+ 1942, /* GL_UNSIGNED_NORMALIZED */
+ 1752, /* GL_TEXTURE_1D_ARRAY_EXT */
+ 1362, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
+ 1754, /* GL_TEXTURE_2D_ARRAY_EXT */
+ 1365, /* GL_PROXY_TEXTURE_2D_ARRAY_EXT */
+ 1761, /* GL_TEXTURE_BINDING_1D_ARRAY_EXT */
+ 1763, /* GL_TEXTURE_BINDING_2D_ARRAY_EXT */
+ 1606, /* GL_SRGB */
+ 1607, /* GL_SRGB8 */
+ 1609, /* GL_SRGB_ALPHA */
+ 1608, /* GL_SRGB8_ALPHA8 */
+ 1566, /* GL_SLUMINANCE_ALPHA */
+ 1565, /* GL_SLUMINANCE8_ALPHA8 */
+ 1563, /* GL_SLUMINANCE */
+ 1564, /* GL_SLUMINANCE8 */
+ 280, /* GL_COMPRESSED_SRGB */
+ 281, /* GL_COMPRESSED_SRGB_ALPHA */
+ 278, /* GL_COMPRESSED_SLUMINANCE */
+ 279, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
+ 1902, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT */
+ 1897, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT */
+ 1007, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT */
+ 1901, /* GL_TRANSFORM_FEEDBACK_VARYINGS_EXT */
+ 1899, /* GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT */
+ 1898, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT */
+ 1316, /* GL_PRIMITIVES_GENERATED_EXT */
+ 1900, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT */
+ 1393, /* GL_RASTERIZER_DISCARD_EXT */
+ 1005, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT */
+ 1006, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT */
+ 705, /* GL_INTERLEAVED_ATTRIBS_EXT */
+ 1543, /* GL_SEPARATE_ATTRIBS_EXT */
+ 1896, /* GL_TRANSFORM_FEEDBACK_BUFFER_EXT */
+ 1895, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT */
+ 1252, /* GL_POINT_SPRITE_COORD_ORIGIN */
+ 775, /* GL_LOWER_LEFT */
+ 1956, /* GL_UPPER_LEFT */
+ 1630, /* GL_STENCIL_BACK_REF */
+ 1631, /* GL_STENCIL_BACK_VALUE_MASK */
+ 1632, /* GL_STENCIL_BACK_WRITEMASK */
+ 465, /* GL_DRAW_FRAMEBUFFER_BINDING */
+ 1419, /* GL_RENDERBUFFER_BINDING */
+ 1396, /* GL_READ_FRAMEBUFFER */
+ 464, /* GL_DRAW_FRAMEBUFFER */
+ 1397, /* GL_READ_FRAMEBUFFER_BINDING */
+ 1438, /* GL_RENDERBUFFER_SAMPLES */
+ 574, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */
+ 571, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */
+ 586, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */
+ 581, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */
+ 584, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */
+ 592, /* GL_FRAMEBUFFER_COMPLETE */
+ 597, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */
+ 609, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */
+ 606, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */
+ 601, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */
+ 607, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */
+ 603, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */
+ 614, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */
+ 620, /* GL_FRAMEBUFFER_UNSUPPORTED */
+ 618, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */
+ 925, /* GL_MAX_COLOR_ATTACHMENTS */
+ 167, /* GL_COLOR_ATTACHMENT0 */
+ 170, /* GL_COLOR_ATTACHMENT1 */
+ 184, /* GL_COLOR_ATTACHMENT2 */
+ 186, /* GL_COLOR_ATTACHMENT3 */
+ 188, /* GL_COLOR_ATTACHMENT4 */
+ 190, /* GL_COLOR_ATTACHMENT5 */
+ 192, /* GL_COLOR_ATTACHMENT6 */
+ 194, /* GL_COLOR_ATTACHMENT7 */
+ 196, /* GL_COLOR_ATTACHMENT8 */
+ 198, /* GL_COLOR_ATTACHMENT9 */
+ 171, /* GL_COLOR_ATTACHMENT10 */
+ 173, /* GL_COLOR_ATTACHMENT11 */
+ 175, /* GL_COLOR_ATTACHMENT12 */
+ 177, /* GL_COLOR_ATTACHMENT13 */
+ 179, /* GL_COLOR_ATTACHMENT14 */
+ 181, /* GL_COLOR_ATTACHMENT15 */
+ 365, /* GL_DEPTH_ATTACHMENT */
+ 1619, /* GL_STENCIL_ATTACHMENT */
+ 564, /* GL_FRAMEBUFFER */
+ 1416, /* GL_RENDERBUFFER */
+ 1442, /* GL_RENDERBUFFER_WIDTH */
+ 1429, /* GL_RENDERBUFFER_HEIGHT */
+ 1432, /* GL_RENDERBUFFER_INTERNAL_FORMAT */
+ 1650, /* GL_STENCIL_INDEX_EXT */
+ 1639, /* GL_STENCIL_INDEX1 */
+ 1644, /* GL_STENCIL_INDEX4 */
+ 1647, /* GL_STENCIL_INDEX8 */
+ 1640, /* GL_STENCIL_INDEX16 */
+ 1436, /* GL_RENDERBUFFER_RED_SIZE */
+ 1427, /* GL_RENDERBUFFER_GREEN_SIZE */
+ 1422, /* GL_RENDERBUFFER_BLUE_SIZE */
+ 1417, /* GL_RENDERBUFFER_ALPHA_SIZE */
+ 1424, /* GL_RENDERBUFFER_DEPTH_SIZE */
+ 1440, /* GL_RENDERBUFFER_STENCIL_SIZE */
+ 612, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */
+ 987, /* GL_MAX_SAMPLES */
+ 1842, /* GL_TEXTURE_GEN_STR_OES */
+ 648, /* GL_HALF_FLOAT_OES */
+ 1470, /* GL_RGB565_OES */
+ 776, /* GL_LOW_FLOAT */
+ 1021, /* GL_MEDIUM_FLOAT */
+ 649, /* GL_HIGH_FLOAT */
+ 777, /* GL_LOW_INT */
+ 1022, /* GL_MEDIUM_INT */
+ 650, /* GL_HIGH_INT */
+ 1933, /* GL_UNSIGNED_INT_10_10_10_2_OES */
+ 709, /* GL_INT_10_10_10_2_OES */
+ 1547, /* GL_SHADER_BINARY_FORMATS */
+ 1118, /* GL_NUM_SHADER_BINARY_FORMATS */
+ 1548, /* GL_SHADER_COMPILER */
+ 1017, /* GL_MAX_VERTEX_UNIFORM_VECTORS */
+ 1010, /* GL_MAX_VARYING_VECTORS */
+ 947, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */
+ 1390, /* GL_QUERY_WAIT_NV */
+ 1385, /* GL_QUERY_NO_WAIT_NV */
+ 1382, /* GL_QUERY_BY_REGION_WAIT_NV */
+ 1381, /* GL_QUERY_BY_REGION_NO_WAIT_NV */
+ 1377, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */
+ 507, /* GL_FIRST_VERTEX_CONVENTION */
+ 726, /* GL_LAST_VERTEX_CONVENTION */
+ 1354, /* GL_PROVOKING_VERTEX */
+ 316, /* GL_COPY_READ_BUFFER */
+ 317, /* GL_COPY_WRITE_BUFFER */
+ 1497, /* GL_RGBA_SNORM */
+ 1493, /* GL_RGBA8_SNORM */
+ 1559, /* GL_SIGNED_NORMALIZED */
+ 989, /* GL_MAX_SERVER_WAIT_TIMEOUT */
+ 1132, /* GL_OBJECT_TYPE */
+ 1671, /* GL_SYNC_CONDITION */
+ 1676, /* GL_SYNC_STATUS */
+ 1673, /* GL_SYNC_FLAGS */
+ 1672, /* GL_SYNC_FENCE */
+ 1675, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
+ 1927, /* GL_UNSIGNALED */
+ 1558, /* GL_SIGNALED */
46, /* GL_ALREADY_SIGNALED */
- 1766, /* GL_TIMEOUT_EXPIRED */
- 271, /* GL_CONDITION_SATISFIED */
- 1888, /* GL_WAIT_FAILED */
- 472, /* GL_EVAL_BIT */
- 1311, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
- 720, /* GL_LIST_BIT */
- 1660, /* GL_TEXTURE_BIT */
- 1427, /* GL_SCISSOR_BIT */
+ 1890, /* GL_TIMEOUT_EXPIRED */
+ 283, /* GL_CONDITION_SATISFIED */
+ 2017, /* GL_WAIT_FAILED */
+ 492, /* GL_EVAL_BIT */
+ 1394, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
+ 769, /* GL_LIST_BIT */
+ 1771, /* GL_TEXTURE_BIT */
+ 1529, /* GL_SCISSOR_BIT */
29, /* GL_ALL_ATTRIB_BITS */
- 1014, /* GL_MULTISAMPLE_BIT */
+ 1084, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
};
@@ -5279,7 +5581,7 @@ const char *_mesa_lookup_enum_by_nr( int nr )
}
else {
/* this is not re-entrant safe, no big deal here */
- sprintf(token_tmp, "0x%x", nr);
+ _mesa_snprintf(token_tmp, sizeof(token_tmp), "0x%x", nr);
return token_tmp;
}
}
diff --git a/src/mesa/main/es_generator.py b/src/mesa/main/es_generator.py
new file mode 100644
index 0000000000..8f08a3a6f9
--- /dev/null
+++ b/src/mesa/main/es_generator.py
@@ -0,0 +1,730 @@
+#*************************************************************************
+# Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
+# All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
+# TUNGSTEN GRAPHICS 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, os
+import APIspecutil as apiutil
+
+# These dictionary entries are used for automatic conversion.
+# The string will be used as a format string with the conversion
+# variable.
+Converters = {
+ 'GLfloat': {
+ 'GLdouble': "(GLdouble) (%s)",
+ 'GLfixed' : "(GLint) (%s * 65536)",
+ },
+ 'GLfixed': {
+ 'GLfloat': "(GLfloat) (%s / 65536.0f)",
+ 'GLdouble': "(GLdouble) (%s / 65536.0)",
+ },
+ 'GLdouble': {
+ 'GLfloat': "(GLfloat) (%s)",
+ 'GLfixed': "(GLfixed) (%s * 65536)",
+ },
+ 'GLclampf': {
+ 'GLclampd': "(GLclampd) (%s)",
+ 'GLclampx': "(GLclampx) (%s * 65536)",
+ },
+ 'GLclampx': {
+ 'GLclampf': "(GLclampf) (%s / 65536.0f)",
+ 'GLclampd': "(GLclampd) (%s / 65536.0)",
+ },
+ 'GLubyte': {
+ 'GLfloat': "(GLfloat) (%s / 255.0f)",
+ },
+}
+
+def GetBaseType(type):
+ typeTokens = type.split(' ')
+ baseType = None
+ typeModifiers = []
+ for t in typeTokens:
+ if t in ['const', '*']:
+ typeModifiers.append(t)
+ else:
+ baseType = t
+ return (baseType, typeModifiers)
+
+def ConvertValue(value, fromType, toType):
+ """Returns a string that represents the given parameter string,
+ type-converted if necessary."""
+
+ if not Converters.has_key(fromType):
+ print >> sys.stderr, "No base converter for type '%s' found. Ignoring." % fromType
+ return value
+
+ if not Converters[fromType].has_key(toType):
+ print >> sys.stderr, "No converter found for type '%s' to type '%s'. Ignoring." % (fromType, toType)
+ return value
+
+ # This part is simple. Return the proper conversion.
+ conversionString = Converters[fromType][toType]
+ return conversionString % value
+
+FormatStrings = {
+ 'GLenum' : '0x%x',
+ 'GLfloat' : '%f',
+ 'GLint' : '%d',
+ 'GLbitfield' : '0x%x',
+}
+def GetFormatString(type):
+ if FormatStrings.has_key(type):
+ return FormatStrings[type]
+ else:
+ return None
+
+
+######################################################################
+# Version-specific values to be used in the main script
+# header: which header file to include
+# api: what text specifies an API-level function
+VersionSpecificValues = {
+ 'GLES1.1' : {
+ 'description' : 'GLES1.1 functions',
+ 'header' : 'GLES/gl.h',
+ 'extheader' : 'GLES/glext.h',
+ 'shortname' : 'es1'
+ },
+ 'GLES2.0': {
+ 'description' : 'GLES2.0 functions',
+ 'header' : 'GLES2/gl2.h',
+ 'extheader' : 'GLES2/gl2ext.h',
+ 'shortname' : 'es2'
+ }
+}
+
+
+######################################################################
+# Main code for the script begins here.
+
+# Get the name of the program (without the directory part) for use in
+# error messages.
+program = os.path.basename(sys.argv[0])
+
+# Set default values
+verbose = 0
+functionList = "APIspec.xml"
+version = "GLES1.1"
+
+# Allow for command-line switches
+import getopt, time
+options = "hvV:S:"
+try:
+ optlist, args = getopt.getopt(sys.argv[1:], options)
+except getopt.GetoptError, message:
+ sys.stderr.write("%s: %s. Use -h for help.\n" % (program, message))
+ sys.exit(1)
+
+for option, optarg in optlist:
+ if option == "-h":
+ sys.stderr.write("Usage: %s [-%s]\n" % (program, options))
+ sys.stderr.write("Parse an API specification file and generate wrapper functions for a given GLES version\n")
+ sys.stderr.write("-h gives help\n")
+ sys.stderr.write("-v is verbose\n")
+ sys.stderr.write("-V specifies GLES version to generate [%s]:\n" % version)
+ for key in VersionSpecificValues.keys():
+ sys.stderr.write(" %s - %s\n" % (key, VersionSpecificValues[key]['description']))
+ sys.stderr.write("-S specifies API specification file to use [%s]\n" % functionList)
+ sys.exit(1)
+ elif option == "-v":
+ verbose += 1
+ elif option == "-V":
+ version = optarg
+ elif option == "-S":
+ functionList = optarg
+
+# Beyond switches, we support no further command-line arguments
+if len(args) > 0:
+ sys.stderr.write("%s: only switch arguments are supported - use -h for help\n" % program)
+ sys.exit(1)
+
+# If we don't have a valid version, abort.
+if not VersionSpecificValues.has_key(version):
+ sys.stderr.write("%s: version '%s' is not valid - use -h for help\n" % (program, version))
+ sys.exit(1)
+
+# Grab the version-specific items we need to use
+versionHeader = VersionSpecificValues[version]['header']
+versionExtHeader = VersionSpecificValues[version]['extheader']
+shortname = VersionSpecificValues[version]['shortname']
+
+# If we get to here, we're good to go. The "version" parameter
+# directs GetDispatchedFunctions to only allow functions from
+# that "category" (version in our parlance). This allows
+# functions with different declarations in different categories
+# to exist (glTexImage2D, for example, is different between
+# GLES1 and GLES2).
+keys = apiutil.GetAllFunctions(functionList, version)
+
+allSpecials = apiutil.AllSpecials()
+
+print """/* DO NOT EDIT *************************************************
+ * THIS FILE AUTOMATICALLY GENERATED BY THE %s SCRIPT
+ * API specification file: %s
+ * GLES version: %s
+ * date: %s
+ */
+""" % (program, functionList, version, time.strftime("%Y-%m-%d %H:%M:%S"))
+
+# The headers we choose are version-specific.
+print """
+#include "%s"
+#include "%s"
+""" % (versionHeader, versionExtHeader)
+
+# Everyone needs these types.
+print """
+/* These types are needed for the Mesa veneer, but are not defined in
+ * the standard GLES headers.
+ */
+typedef double GLdouble;
+typedef double GLclampd;
+
+/* This type is normally in glext.h, but needed here */
+typedef char GLchar;
+
+/* Mesa error handling requires these */
+extern void *_mesa_get_current_context(void);
+extern void _mesa_error(void *ctx, GLenum error, const char *fmtString, ... );
+
+#include "main/compiler.h"
+#include "main/api_exec.h"
+#include "main/remap.h"
+
+#ifdef IN_DRI_DRIVER
+#define _GLAPI_USE_REMAP_TABLE
+#endif
+
+#include "es/glapi/glapi-%s/glapi/glapitable.h"
+#include "es/glapi/glapi-%s/glapi/glapioffsets.h"
+#include "es/glapi/glapi-%s/glapi/glapidispatch.h"
+
+#if FEATURE_remap_table
+
+#define need_MESA_remap_table
+
+#include "es/glapi/glapi-%s/main/remap_helper.h"
+
+void
+_mesa_init_remap_table_%s(void)
+{
+ _mesa_do_init_remap_table(_mesa_function_pool,
+ driDispatchRemapTable_size,
+ MESA_remap_table_functions);
+}
+
+void
+_mesa_map_static_functions_%s(void)
+{
+}
+
+#endif
+
+typedef void (*_glapi_proc)(void); /* generic function pointer */
+""" % (shortname, shortname, shortname, shortname, shortname, shortname);
+
+# Finally we get to the all-important functions
+print """/*************************************************************
+ * Generated functions begin here
+ */
+"""
+for funcName in keys:
+ if verbose > 0: sys.stderr.write("%s: processing function %s\n" % (program, funcName))
+
+ # start figuring out what this function will look like.
+ returnType = apiutil.ReturnType(funcName)
+ props = apiutil.Properties(funcName)
+ params = apiutil.Parameters(funcName)
+ declarationString = apiutil.MakeDeclarationString(params)
+
+ # In case of error, a function may have to return. Make
+ # sure we have valid return values in this case.
+ if returnType == "void":
+ errorReturn = "return"
+ elif returnType == "GLboolean":
+ errorReturn = "return GL_FALSE"
+ else:
+ errorReturn = "return (%s) 0" % returnType
+
+ # These are the output of this large calculation block.
+ # passthroughDeclarationString: a typed set of parameters that
+ # will be used to create the "extern" reference for the
+ # underlying Mesa or support function. Note that as generated
+ # these have an extra ", " at the beginning, which will be
+ # removed before use.
+ #
+ # passthroughDeclarationString: an untyped list of parameters
+ # that will be used to call the underlying Mesa or support
+ # function (including references to converted parameters).
+ # This will also be generated with an extra ", " at the
+ # beginning, which will be removed before use.
+ #
+ # variables: C code to create any local variables determined to
+ # be necessary.
+ # conversionCodeOutgoing: C code to convert application parameters
+ # to a necessary type before calling the underlying support code.
+ # May be empty if no conversion is required.
+ # conversionCodeIncoming: C code to do the converse: convert
+ # values returned by underlying Mesa code to the types needed
+ # by the application.
+ # Note that *either* the conversionCodeIncoming will be used (for
+ # generated query functions), *or* the conversionCodeOutgoing will
+ # be used (for generated non-query functions), never both.
+ passthroughFuncName = ""
+ passthroughDeclarationString = ""
+ passthroughCallString = ""
+ prefixOverride = None
+ variables = []
+ conversionCodeOutgoing = []
+ conversionCodeIncoming = []
+ switchCode = []
+
+ # Calculate the name of the underlying support function to call.
+ # By default, the passthrough function is named _mesa_<funcName>.
+ # We're allowed to override the prefix and/or the function name
+ # for each function record, though. The "ConversionFunction"
+ # utility is poorly named, BTW...
+ if funcName in allSpecials:
+ # perform checks and pass through
+ funcPrefix = "_check_"
+ aliasprefix = "_es_"
+ else:
+ funcPrefix = "_es_"
+ aliasprefix = apiutil.AliasPrefix(funcName)
+ alias = apiutil.ConversionFunction(funcName)
+ prefixOverride = apiutil.FunctionPrefix(funcName)
+ if prefixOverride != "_mesa_":
+ aliasprefix = apiutil.FunctionPrefix(funcName)
+ if not alias:
+ # There may still be a Mesa alias for the function
+ if apiutil.Alias(funcName):
+ passthroughFuncName = "%s%s" % (aliasprefix, apiutil.Alias(funcName))
+ else:
+ passthroughFuncName = "%s%s" % (aliasprefix, funcName)
+ else: # a specific alias is provided
+ passthroughFuncName = "%s%s" % (aliasprefix, alias)
+
+ # Look at every parameter: each one may have only specific
+ # allowed values, or dependent parameters to check, or
+ # variant-sized vector arrays to calculate
+ for (paramName, paramType, paramMaxVecSize, paramConvertToType, paramValidValues, paramValueConversion) in params:
+ # We'll need this below if we're doing conversions
+ (paramBaseType, paramTypeModifiers) = GetBaseType(paramType)
+
+ # Conversion management.
+ # We'll handle three cases, easiest to hardest: a parameter
+ # that doesn't require conversion, a scalar parameter that
+ # requires conversion, and a vector parameter that requires
+ # conversion.
+ if paramConvertToType == None:
+ # Unconverted parameters are easy, whether they're vector
+ # or scalar - just add them to the call list. No conversions
+ # or anything to worry about.
+ passthroughDeclarationString += ", %s %s" % (paramType, paramName)
+ passthroughCallString += ", %s" % paramName
+
+ elif paramMaxVecSize == 0: # a scalar parameter that needs conversion
+ # A scalar to hold a converted parameter
+ variables.append(" %s converted_%s;" % (paramConvertToType, paramName))
+
+ # Outgoing conversion depends on whether we have to conditionally
+ # perform value conversion.
+ if paramValueConversion == "none":
+ conversionCodeOutgoing.append(" converted_%s = (%s) %s;" % (paramName, paramConvertToType, paramName))
+ elif paramValueConversion == "some":
+ # We'll need a conditional variable to keep track of
+ # whether we're converting values or not.
+ if (" int convert_%s_value = 1;" % paramName) not in variables:
+ variables.append(" int convert_%s_value = 1;" % paramName)
+
+ # Write code based on that conditional.
+ conversionCodeOutgoing.append(" if (convert_%s_value) {" % paramName)
+ conversionCodeOutgoing.append(" converted_%s = %s;" % (paramName, ConvertValue(paramName, paramBaseType, paramConvertToType)))
+ conversionCodeOutgoing.append(" } else {")
+ conversionCodeOutgoing.append(" converted_%s = (%s) %s;" % (paramName, paramConvertToType, paramName))
+ conversionCodeOutgoing.append(" }")
+ else: # paramValueConversion == "all"
+ conversionCodeOutgoing.append(" converted_%s = %s;" % (paramName, ConvertValue(paramName, paramBaseType, paramConvertToType)))
+
+ # Note that there can be no incoming conversion for a
+ # scalar parameter; changing the scalar will only change
+ # the local value, and won't ultimately change anything
+ # that passes back to the application.
+
+ # Call strings. The unusual " ".join() call will join the
+ # array of parameter modifiers with spaces as separators.
+ passthroughDeclarationString += ", %s %s %s" % (paramConvertToType, " ".join(paramTypeModifiers), paramName)
+ passthroughCallString += ", converted_%s" % paramName
+
+ else: # a vector parameter that needs conversion
+ # We'll need an index variable for conversions
+ if " register unsigned int i;" not in variables:
+ variables.append(" register unsigned int i;")
+
+ # This variable will hold the (possibly variant) size of
+ # this array needing conversion. By default, we'll set
+ # it to the maximal size (which is correct for functions
+ # with a constant-sized vector parameter); for true
+ # variant arrays, we'll modify it with other code.
+ variables.append(" unsigned int n_%s = %d;" % (paramName, paramMaxVecSize))
+
+ # This array will hold the actual converted values.
+ variables.append(" %s converted_%s[%d];" % (paramConvertToType, paramName, paramMaxVecSize))
+
+ # Again, we choose the conversion code based on whether we
+ # have to always convert values, never convert values, or
+ # conditionally convert values.
+ if paramValueConversion == "none":
+ conversionCodeOutgoing.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeOutgoing.append(" converted_%s[i] = (%s) %s[i];" % (paramName, paramConvertToType, paramName))
+ conversionCodeOutgoing.append(" }")
+ elif paramValueConversion == "some":
+ # We'll need a conditional variable to keep track of
+ # whether we're converting values or not.
+ if (" int convert_%s_value = 1;" % paramName) not in variables:
+ variables.append(" int convert_%s_value = 1;" % paramName)
+ # Write code based on that conditional.
+ conversionCodeOutgoing.append(" if (convert_%s_value) {" % paramName)
+ conversionCodeOutgoing.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeOutgoing.append(" converted_%s[i] = %s;" % (paramName, ConvertValue("%s[i]" % paramName, paramBaseType, paramConvertToType)))
+ conversionCodeOutgoing.append(" }")
+ conversionCodeOutgoing.append(" } else {")
+ conversionCodeOutgoing.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeOutgoing.append(" converted_%s[i] = (%s) %s[i];" % (paramName, paramConvertToType, paramName))
+ conversionCodeOutgoing.append(" }")
+ conversionCodeOutgoing.append(" }")
+ else: # paramValueConversion == "all"
+ conversionCodeOutgoing.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeOutgoing.append(" converted_%s[i] = %s;" % (paramName, ConvertValue("%s[i]" % paramName, paramBaseType, paramConvertToType)))
+
+ conversionCodeOutgoing.append(" }")
+
+ # If instead we need an incoming conversion (i.e. results
+ # from Mesa have to be converted before handing back
+ # to the application), this is it. Fortunately, we don't
+ # have to worry about conditional value conversion - the
+ # functions that do (e.g. glGetFixedv()) are handled
+ # specially, outside this code generation.
+ #
+ # Whether we use incoming conversion or outgoing conversion
+ # is determined later - we only ever use one or the other.
+
+ if paramValueConversion == "none":
+ conversionCodeIncoming.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeIncoming.append(" %s[i] = (%s) converted_%s[i];" % (paramName, paramConvertToType, paramName))
+ conversionCodeIncoming.append(" }")
+ elif paramValueConversion == "some":
+ # We'll need a conditional variable to keep track of
+ # whether we're converting values or not.
+ if (" int convert_%s_value = 1;" % paramName) not in variables:
+ variables.append(" int convert_%s_value = 1;" % paramName)
+
+ # Write code based on that conditional.
+ conversionCodeIncoming.append(" if (convert_%s_value) {" % paramName)
+ conversionCodeIncoming.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeIncoming.append(" %s[i] = %s;" % (paramName, ConvertValue("converted_%s[i]" % paramName, paramConvertToType, paramBaseType)))
+ conversionCodeIncoming.append(" }")
+ conversionCodeIncoming.append(" } else {")
+ conversionCodeIncoming.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeIncoming.append(" %s[i] = (%s) converted_%s[i];" % (paramName, paramBaseType, paramName))
+ conversionCodeIncoming.append(" }")
+ conversionCodeIncoming.append(" }")
+ else: # paramValueConversion == "all"
+ conversionCodeIncoming.append(" for (i = 0; i < n_%s; i++) {" % paramName)
+ conversionCodeIncoming.append(" %s[i] = %s;" % (paramName, ConvertValue("converted_%s[i]" % paramName, paramConvertToType, paramBaseType)))
+ conversionCodeIncoming.append(" }")
+
+ # Call strings. The unusual " ".join() call will join the
+ # array of parameter modifiers with spaces as separators.
+ passthroughDeclarationString += ", %s %s %s" % (paramConvertToType, " ".join(paramTypeModifiers), paramName)
+ passthroughCallString += ", converted_%s" % paramName
+
+ # endif conversion management
+
+ # Parameter checking. If the parameter has a specific list of
+ # valid values, we have to make sure that the passed-in values
+ # match these, or we make an error.
+ if len(paramValidValues) > 0:
+ # We're about to make a big switch statement with an
+ # error at the end. By default, the error is GL_INVALID_ENUM,
+ # unless we find a "case" statement in the middle with a
+ # non-GLenum value.
+ errorDefaultCase = "GL_INVALID_ENUM"
+
+ # This parameter has specific valid values. Make a big
+ # switch statement to handle it. Note that the original
+ # parameters are always what is checked, not the
+ # converted parameters.
+ switchCode.append(" switch(%s) {" % paramName)
+
+ for valueIndex in range(len(paramValidValues)):
+ (paramValue, dependentVecSize, dependentParamName, dependentValidValues, errorCode, valueConvert) = paramValidValues[valueIndex]
+
+ # We're going to need information on the dependent param
+ # as well.
+ if dependentParamName:
+ depParamIndex = apiutil.FindParamIndex(params, dependentParamName)
+ if depParamIndex == None:
+ sys.stderr.write("%s: can't find dependent param '%s' for function '%s'\n" % (program, dependentParamName, funcName))
+
+ (depParamName, depParamType, depParamMaxVecSize, depParamConvertToType, depParamValidValues, depParamValueConversion) = params[depParamIndex]
+ else:
+ (depParamName, depParamType, depParamMaxVecSize, depParamConvertToType, depParamValidValues, depParamValueConversion) = (None, None, None, None, [], None)
+
+ # This is a sneaky trick. It's valid syntax for a parameter
+ # that is *not* going to be converted to be declared
+ # with a dependent vector size; but in this case, the
+ # dependent vector size is unused and unnecessary.
+ # So check for this and ignore the dependent vector size
+ # if the parameter is not going to be converted.
+ if depParamConvertToType:
+ usedDependentVecSize = dependentVecSize
+ else:
+ usedDependentVecSize = None
+
+ # We'll peek ahead at the next parameter, to see whether
+ # we can combine cases
+ if valueIndex + 1 < len(paramValidValues) :
+ (nextParamValue, nextDependentVecSize, nextDependentParamName, nextDependentValidValues, nextErrorCode, nextValueConvert) = paramValidValues[valueIndex + 1]
+ if depParamConvertToType:
+ usedNextDependentVecSize = nextDependentVecSize
+ else:
+ usedNextDependentVecSize = None
+
+ # Create a case for this value. As a mnemonic,
+ # if we have a dependent vector size that we're ignoring,
+ # add it as a comment.
+ if usedDependentVecSize == None and dependentVecSize != None:
+ switchCode.append(" case %s: /* size %s */" % (paramValue, dependentVecSize))
+ else:
+ switchCode.append(" case %s:" % paramValue)
+
+ # If this is not a GLenum case, then switch our error
+ # if no value is matched to be GL_INVALID_VALUE instead
+ # of GL_INVALID_ENUM. (Yes, this does get confused
+ # if there are both values and GLenums in the same
+ # switch statement, which shouldn't happen.)
+ if paramValue[0:3] != "GL_":
+ errorDefaultCase = "GL_INVALID_VALUE"
+
+ # If all the remaining parameters are identical to the
+ # next set, then we're done - we'll just create the
+ # official code on the next pass through, and the two
+ # cases will share the code.
+ if valueIndex + 1 < len(paramValidValues) and usedDependentVecSize == usedNextDependentVecSize and dependentParamName == nextDependentParamName and dependentValidValues == nextDependentValidValues and errorCode == nextErrorCode and valueConvert == nextValueConvert:
+ continue
+
+ # Otherwise, we'll have to generate code for this case.
+ # Start off with a check: if there is a dependent parameter,
+ # and a list of valid values for that parameter, we need
+ # to generate an error if something other than one
+ # of those values is passed.
+ if len(dependentValidValues) > 0:
+ conditional=""
+
+ # If the parameter being checked is actually an array,
+ # check only its first element.
+ if depParamMaxVecSize == 0:
+ valueToCheck = dependentParamName
+ else:
+ valueToCheck = "%s[0]" % dependentParamName
+
+ for v in dependentValidValues:
+ conditional += " && %s != %s" % (valueToCheck, v)
+ switchCode.append(" if (%s) {" % conditional[4:])
+ if errorCode == None:
+ errorCode = "GL_INVALID_ENUM"
+ switchCode.append(' _mesa_error(_mesa_get_current_context(), %s, "gl%s(%s=0x%s)", %s);' % (errorCode, funcName, paramName, "%x", paramName))
+ switchCode.append(" %s;" % errorReturn)
+ switchCode.append(" }")
+ # endif there are dependent valid values
+
+ # The dependent parameter may require conditional
+ # value conversion. If it does, and we don't want
+ # to convert values, we'll have to generate code for that
+ if depParamValueConversion == "some" and valueConvert == "noconvert":
+ switchCode.append(" convert_%s_value = 0;" % dependentParamName)
+
+ # If there's a dependent vector size for this parameter
+ # that we're actually going to use (i.e. we need conversion),
+ # mark it.
+ if usedDependentVecSize:
+ switchCode.append(" n_%s = %s;" % (dependentParamName, dependentVecSize))
+
+ # In all cases, break out of the switch if any valid
+ # value is found.
+ switchCode.append(" break;")
+
+
+ # Need a default case to catch all the other, invalid
+ # parameter values. These will all generate errors.
+ switchCode.append(" default:")
+ if errorCode == None:
+ errorCode = "GL_INVALID_ENUM"
+ formatString = GetFormatString(paramType)
+ if formatString == None:
+ switchCode.append(' _mesa_error(_mesa_get_current_context(), %s, "gl%s(%s)");' % (errorCode, funcName, paramName))
+ else:
+ switchCode.append(' _mesa_error(_mesa_get_current_context(), %s, "gl%s(%s=%s)", %s);' % (errorCode, funcName, paramName, formatString, paramName))
+ switchCode.append(" %s;" % errorReturn)
+
+ # End of our switch code.
+ switchCode.append(" }")
+
+ # endfor every recognized parameter value
+
+ # endfor every param
+
+ # Here, the passthroughDeclarationString and passthroughCallString
+ # are complete; remove the extra ", " at the front of each.
+ passthroughDeclarationString = passthroughDeclarationString[2:]
+ passthroughCallString = passthroughCallString[2:]
+
+ # The Mesa functions are scattered across all the Mesa
+ # header files. The easiest way to manage declarations
+ # is to create them ourselves.
+ if funcName in allSpecials:
+ print "/* this function is special and is defined elsewhere */"
+ print "extern %s GLAPIENTRY %s(%s);" % (returnType, passthroughFuncName, passthroughDeclarationString)
+
+ # A function may be a core function (i.e. it exists in
+ # the core specification), a core addition (extension
+ # functions added officially to the core), a required
+ # extension (usually an extension for an earlier version
+ # that has been officially adopted), or an optional extension.
+ #
+ # Core functions have a simple category (e.g. "GLES1.1");
+ # we generate only a simple callback for them.
+ #
+ # Core additions have two category listings, one simple
+ # and one compound (e.g. ["GLES1.1", "GLES1.1:OES_fixed_point"]).
+ # We generate the core function, and also an extension function.
+ #
+ # Required extensions and implemented optional extensions
+ # have a single compound category "GLES1.1:OES_point_size_array".
+ # For these we generate just the extension function.
+ for categorySpec in apiutil.Categories(funcName):
+ compoundCategory = categorySpec.split(":")
+
+ # This category isn't for us, if the base category doesn't match
+ # our version
+ if compoundCategory[0] != version:
+ continue
+
+ # Otherwise, determine if we're writing code for a core
+ # function (no suffix) or an extension function.
+ if len(compoundCategory) == 1:
+ # This is a core function
+ extensionName = None
+ extensionSuffix = ""
+ else:
+ # This is an extension function. We'll need to append
+ # the extension suffix.
+ extensionName = compoundCategory[1]
+ extensionSuffix = extensionName.split("_")[0]
+ fullFuncName = funcPrefix + funcName + extensionSuffix
+
+ # Now the generated function. The text used to mark an API-level
+ # function, oddly, is version-specific.
+ if extensionName:
+ print "/* Extension %s */" % extensionName
+
+ if (not variables and
+ not switchCode and
+ not conversionCodeOutgoing and
+ not conversionCodeIncoming):
+ # pass through directly
+ print "#define %s %s" % (fullFuncName, passthroughFuncName)
+ print
+ continue
+
+ print "static %s %s(%s)" % (returnType, fullFuncName, declarationString)
+ print "{"
+
+ # Start printing our code pieces. Start with any local
+ # variables we need. This unusual syntax joins the
+ # lines in the variables[] array with the "\n" separator.
+ if len(variables) > 0:
+ print "\n".join(variables) + "\n"
+
+ # If there's any sort of parameter checking or variable
+ # array sizing, the switch code will contain it.
+ if len(switchCode) > 0:
+ print "\n".join(switchCode) + "\n"
+
+ # In the case of an outgoing conversion (i.e. parameters must
+ # be converted before calling the underlying Mesa function),
+ # use the appropriate code.
+ if "get" not in props and len(conversionCodeOutgoing) > 0:
+ print "\n".join(conversionCodeOutgoing) + "\n"
+
+ # Call the Mesa function. Note that there are very few functions
+ # that return a value (i.e. returnType is not "void"), and that
+ # none of them require incoming translation; so we're safe
+ # to generate code that directly returns in those cases,
+ # even though it's not completely independent.
+
+ if returnType == "void":
+ print " %s(%s);" % (passthroughFuncName, passthroughCallString)
+ else:
+ print " return %s(%s);" % (passthroughFuncName, passthroughCallString)
+
+ # If the function is one that returns values (i.e. "get" in props),
+ # it might return values of a different type than we need, that
+ # require conversion before passing back to the application.
+ if "get" in props and len(conversionCodeIncoming) > 0:
+ print "\n".join(conversionCodeIncoming)
+
+ # All done.
+ print "}"
+ print
+ # end for each category provided for a function
+
+# end for each function
+
+print """
+struct _glapi_table *
+_mesa_create_exec_table_%s(void)
+{
+ struct _glapi_table *exec;
+ exec = _mesa_alloc_dispatch_table(sizeof *exec);
+ if (exec == NULL)
+ return NULL;
+
+""" % shortname
+
+for func in keys:
+ prefix = "_es_" if func not in allSpecials else "_check_"
+ for spec in apiutil.Categories(func):
+ ext = spec.split(":")
+ # version does not match
+ if ext.pop(0) != version:
+ continue
+ entry = func
+ if ext:
+ suffix = ext[0].split("_")[0]
+ entry += suffix
+ print " SET_%s(exec, %s%s);" % (entry, prefix, entry)
+print ""
+print " return exec;"
+print "}"
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 208069c1db..4c8d4ccfa2 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -495,7 +495,6 @@ _mesa_enable_2_1_extensions(GLcontext *ctx)
}
-
/**
* Either enable or disable the named extension.
* \return GL_TRUE for success, GL_FALSE if invalid extension name
@@ -681,8 +680,8 @@ _mesa_init_extensions( GLcontext *ctx )
* Construct the GL_EXTENSIONS string. Called the first time that
* glGetString(GL_EXTENSIONS) is called.
*/
-GLubyte *
-_mesa_make_extension_string( GLcontext *ctx )
+static GLubyte *
+compute_extensions( GLcontext *ctx )
{
const char *extraExt = get_extension_override(ctx);
GLuint extStrLen = 0;
@@ -727,6 +726,206 @@ _mesa_make_extension_string( GLcontext *ctx )
return (GLubyte *) s;
}
+static size_t
+append_extension(GLubyte **str, const char *ext)
+{
+ GLubyte *s = *str;
+ size_t len = strlen(ext);
+
+ if (s) {
+ memcpy(s, ext, len);
+ s[len++] = ' ';
+ s[len] = '\0';
+
+ *str += len;
+ }
+ else {
+ len++;
+ }
+
+ return len;
+}
+
+
+static size_t
+make_extension_string_es1(const GLcontext *ctx, GLubyte *str)
+{
+ size_t len = 0;
+
+ /* Core additions */
+ len += append_extension(&str, "GL_OES_byte_coordinates");
+ len += append_extension(&str, "GL_OES_fixed_point");
+ len += append_extension(&str, "GL_OES_single_precision");
+ len += append_extension(&str, "GL_OES_matrix_get");
+
+ /* 1.1 required extensions */
+ len += append_extension(&str, "GL_OES_read_format");
+ len += append_extension(&str, "GL_OES_compressed_paletted_texture");
+ len += append_extension(&str, "GL_OES_point_size_array");
+ len += append_extension(&str, "GL_OES_point_sprite");
+
+ /* 1.1 deprecated extensions */
+ len += append_extension(&str, "GL_OES_query_matrix");
+
+#if FEATURE_OES_draw_texture
+ if (ctx->Extensions.OES_draw_texture)
+ len += append_extension(&str, "GL_OES_draw_texture");
+#endif
+
+ if (ctx->Extensions.EXT_blend_equation_separate)
+ len += append_extension(&str, "GL_OES_blend_equation_separate");
+ if (ctx->Extensions.EXT_blend_func_separate)
+ len += append_extension(&str, "GL_OES_blend_func_separate");
+ if (ctx->Extensions.EXT_blend_subtract)
+ len += append_extension(&str, "GL_OES_blend_subtract");
+
+ if (ctx->Extensions.EXT_stencil_wrap)
+ len += append_extension(&str, "GL_OES_stencil_wrap");
+
+ if (ctx->Extensions.ARB_texture_cube_map)
+ len += append_extension(&str, "GL_OES_texture_cube_map");
+ if (ctx->Extensions.ARB_texture_env_crossbar)
+ len += append_extension(&str, "GL_OES_texture_env_crossbar");
+ if (ctx->Extensions.ARB_texture_mirrored_repeat)
+ len += append_extension(&str, "GL_OES_texture_mirrored_repeat");
+
+ if (ctx->Extensions.ARB_framebuffer_object) {
+ len += append_extension(&str, "GL_OES_framebuffer_object");
+ len += append_extension(&str, "GL_OES_depth24");
+ len += append_extension(&str, "GL_OES_depth32");
+ len += append_extension(&str, "GL_OES_fbo_render_mipmap");
+ len += append_extension(&str, "GL_OES_rgb8_rgba8");
+ len += append_extension(&str, "GL_OES_stencil1");
+ len += append_extension(&str, "GL_OES_stencil4");
+ len += append_extension(&str, "GL_OES_stencil8");
+ }
+
+ if (ctx->Extensions.EXT_vertex_array)
+ len += append_extension(&str, "GL_OES_element_index_uint");
+ if (ctx->Extensions.ARB_vertex_buffer_object)
+ len += append_extension(&str, "GL_OES_mapbuffer");
+ if (ctx->Extensions.EXT_texture_filter_anisotropic)
+ len += append_extension(&str, "GL_EXT_texture_filter_anisotropic");
+
+ /* some applications check this for NPOT support */
+ if (ctx->Extensions.ARB_texture_non_power_of_two)
+ len += append_extension(&str, "GL_ARB_texture_non_power_of_two");
+
+ if (ctx->Extensions.EXT_texture_compression_s3tc)
+ len += append_extension(&str, "GL_EXT_texture_compression_dxt1");
+ if (ctx->Extensions.EXT_texture_lod_bias)
+ len += append_extension(&str, "GL_EXT_texture_lod_bias");
+ if (ctx->Extensions.EXT_blend_minmax)
+ len += append_extension(&str, "GL_EXT_blend_minmax");
+ if (ctx->Extensions.EXT_multi_draw_arrays)
+ len += append_extension(&str, "GL_EXT_multi_draw_arrays");
+
+#if FEATURE_OES_EGL_image
+ if (ctx->Extensions.OES_EGL_image)
+ len += append_extension(&str, "GL_OES_EGL_image");
+#endif
+
+ return len;
+}
+
+
+static GLubyte *
+compute_extensions_es1(const GLcontext *ctx)
+{
+ GLubyte *s;
+ unsigned int len;
+
+ len = make_extension_string_es1(ctx, NULL);
+ s = malloc(len + 1);
+ if (!s)
+ return NULL;
+ make_extension_string_es1(ctx, s);
+
+ return s;
+}
+
+static size_t
+make_extension_string_es2(const GLcontext *ctx, GLubyte *str)
+{
+ size_t len = 0;
+
+ len += append_extension(&str, "GL_OES_compressed_paletted_texture");
+
+ if (ctx->Extensions.ARB_framebuffer_object) {
+ len += append_extension(&str, "GL_OES_depth24");
+ len += append_extension(&str, "GL_OES_depth32");
+ len += append_extension(&str, "GL_OES_fbo_render_mipmap");
+ len += append_extension(&str, "GL_OES_rgb8_rgba8");
+ len += append_extension(&str, "GL_OES_stencil1");
+ len += append_extension(&str, "GL_OES_stencil4");
+ }
+
+ if (ctx->Extensions.EXT_vertex_array)
+ len += append_extension(&str, "GL_OES_element_index_uint");
+ if (ctx->Extensions.ARB_vertex_buffer_object)
+ len += append_extension(&str, "GL_OES_mapbuffer");
+
+ if (ctx->Extensions.EXT_texture3D)
+ len += append_extension(&str, "GL_OES_texture_3D");
+ if (ctx->Extensions.ARB_texture_non_power_of_two)
+ len += append_extension(&str, "GL_OES_texture_npot");
+ if (ctx->Extensions.EXT_texture_filter_anisotropic)
+ len += append_extension(&str, "GL_EXT_texture_filter_anisotropic");
+
+ len += append_extension(&str, "GL_EXT_texture_type_2_10_10_10_REV");
+ if (ctx->Extensions.ARB_depth_texture)
+ len += append_extension(&str, "GL_OES_depth_texture");
+ if (ctx->Extensions.EXT_packed_depth_stencil)
+ len += append_extension(&str, "GL_OES_packed_depth_stencil");
+ if (ctx->Extensions.ARB_fragment_shader)
+ len += append_extension(&str, "GL_OES_standard_derivatives");
+
+ if (ctx->Extensions.EXT_texture_compression_s3tc)
+ len += append_extension(&str, "GL_EXT_texture_compression_dxt1");
+ if (ctx->Extensions.EXT_blend_minmax)
+ len += append_extension(&str, "GL_EXT_blend_minmax");
+ if (ctx->Extensions.EXT_multi_draw_arrays)
+ len += append_extension(&str, "GL_EXT_multi_draw_arrays");
+
+#if FEATURE_OES_EGL_image
+ if (ctx->Extensions.OES_EGL_image)
+ len += append_extension(&str, "GL_OES_EGL_image");
+#endif
+
+ return len;
+}
+
+static GLubyte *
+compute_extensions_es2(GLcontext *ctx)
+{
+ GLubyte *s;
+ unsigned int len;
+
+ len = make_extension_string_es2(ctx, NULL);
+ s = malloc(len + 1);
+ if (!s)
+ return NULL;
+ make_extension_string_es2(ctx, s);
+
+ return s;
+}
+
+
+GLubyte *
+_mesa_make_extension_string(GLcontext *ctx)
+{
+ switch (ctx->API) {
+ case API_OPENGL:
+ return compute_extensions(ctx);
+ case API_OPENGLES2:
+ return compute_extensions_es2(ctx);
+ case API_OPENGLES:
+ return compute_extensions_es1(ctx);
+ default:
+ assert(0);
+ return NULL;
+ }
+}
/**
* Return number of enabled extensions.
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 8d44246618..201a023246 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1110,7 +1110,22 @@ _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
renderbuffer_storage(target, internalFormat, width, height, samples);
}
+void GLAPIENTRY
+_es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
+ GLsizei width, GLsizei height)
+{
+ switch (internalFormat) {
+ case GL_RGB565:
+ /* XXX this confuses GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
+ /* choose a closest format */
+ internalFormat = GL_RGB5;
+ break;
+ default:
+ break;
+ }
+ renderbuffer_storage(target, internalFormat, width, height, 0);
+}
void GLAPIENTRY
_mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params)
diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
index 28f75dfca7..40a18f8341 100644
--- a/src/mesa/main/fbobject.h
+++ b/src/mesa/main/fbobject.h
@@ -89,6 +89,10 @@ _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
GLsizei width, GLsizei height);
extern void GLAPIENTRY
+_es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
+ GLsizei width, GLsizei height);
+
+extern void GLAPIENTRY
_mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
extern void GLAPIENTRY
diff --git a/src/mesa/main/get.h b/src/mesa/main/get.h
index cc426fc0f6..47e549e396 100644
--- a/src/mesa/main/get.h
+++ b/src/mesa/main/get.h
@@ -71,4 +71,27 @@ _mesa_GetStringi(GLenum name, GLuint index);
extern GLenum GLAPIENTRY
_mesa_GetError( void );
+
+extern void GLAPIENTRY
+_es1_GetBooleanv( GLenum pname, GLboolean *params );
+
+extern void GLAPIENTRY
+_es1_GetFloatv( GLenum pname, GLfloat *params );
+
+extern void GLAPIENTRY
+_es1_GetIntegerv( GLenum pname, GLint *params );
+
+extern void GLAPIENTRY
+_es1_GetFixedv( GLenum pname, GLfixed *params );
+
+
+extern void GLAPIENTRY
+_es2_GetBooleanv( GLenum pname, GLboolean *params );
+
+extern void GLAPIENTRY
+_es2_GetFloatv( GLenum pname, GLfloat *params );
+
+extern void GLAPIENTRY
+_es2_GetIntegerv( GLenum pname, GLint *params );
+
#endif
diff --git a/src/mesa/main/get_gen_es.py b/src/mesa/main/get_gen_es.py
new file mode 100644
index 0000000000..5fadfee841
--- /dev/null
+++ b/src/mesa/main/get_gen_es.py
@@ -0,0 +1,807 @@
+#!/usr/bin/env python
+
+# Mesa 3-D graphics library
+#
+# Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
+# BRIAN PAUL 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.
+
+
+# This script is used to generate the get.c file:
+# python get_gen.py > get.c
+
+
+import string
+import sys
+
+
+GLint = 1
+GLenum = 2
+GLfloat = 3
+GLdouble = 4
+GLboolean = 5
+GLfloatN = 6 # A normalized value, such as a color or depth range
+GLfixed = 7
+
+
+TypeStrings = {
+ GLint : "GLint",
+ GLenum : "GLenum",
+ GLfloat : "GLfloat",
+ GLdouble : "GLdouble",
+ GLboolean : "GLboolean",
+ GLfixed : "GLfixed"
+}
+
+
+# Each entry is a tuple of:
+# - the GL state name, such as GL_CURRENT_COLOR
+# - the state datatype, one of GLint, GLfloat, GLboolean or GLenum
+# - list of code fragments to get the state, such as ["ctx->Foo.Bar"]
+# - optional extra code or empty string
+# - optional extensions to check, or None
+#
+
+# Present in ES 1.x and 2.x:
+StateVars_common = [
+ ( "GL_ALPHA_BITS", GLint, ["ctx->DrawBuffer->Visual.alphaBits"],
+ "", None ),
+ ( "GL_BLEND", GLboolean, ["ctx->Color.BlendEnabled"], "", None ),
+ ( "GL_BLEND_SRC", GLenum, ["ctx->Color.BlendSrcRGB"], "", None ),
+ ( "GL_BLUE_BITS", GLint, ["ctx->DrawBuffer->Visual.blueBits"], "", None ),
+ ( "GL_COLOR_CLEAR_VALUE", GLfloatN,
+ [ "ctx->Color.ClearColor[0]",
+ "ctx->Color.ClearColor[1]",
+ "ctx->Color.ClearColor[2]",
+ "ctx->Color.ClearColor[3]" ], "", None ),
+ ( "GL_COLOR_WRITEMASK", GLint,
+ [ "ctx->Color.ColorMask[RCOMP] ? 1 : 0",
+ "ctx->Color.ColorMask[GCOMP] ? 1 : 0",
+ "ctx->Color.ColorMask[BCOMP] ? 1 : 0",
+ "ctx->Color.ColorMask[ACOMP] ? 1 : 0" ], "", None ),
+ ( "GL_CULL_FACE", GLboolean, ["ctx->Polygon.CullFlag"], "", None ),
+ ( "GL_CULL_FACE_MODE", GLenum, ["ctx->Polygon.CullFaceMode"], "", None ),
+ ( "GL_DEPTH_BITS", GLint, ["ctx->DrawBuffer->Visual.depthBits"],
+ "", None ),
+ ( "GL_DEPTH_CLEAR_VALUE", GLfloatN, ["ctx->Depth.Clear"], "", None ),
+ ( "GL_DEPTH_FUNC", GLenum, ["ctx->Depth.Func"], "", None ),
+ ( "GL_DEPTH_RANGE", GLfloatN,
+ [ "ctx->Viewport.Near", "ctx->Viewport.Far" ], "", None ),
+ ( "GL_DEPTH_TEST", GLboolean, ["ctx->Depth.Test"], "", None ),
+ ( "GL_DEPTH_WRITEMASK", GLboolean, ["ctx->Depth.Mask"], "", None ),
+ ( "GL_DITHER", GLboolean, ["ctx->Color.DitherFlag"], "", None ),
+ ( "GL_FRONT_FACE", GLenum, ["ctx->Polygon.FrontFace"], "", None ),
+ ( "GL_GREEN_BITS", GLint, ["ctx->DrawBuffer->Visual.greenBits"],
+ "", None ),
+ ( "GL_LINE_WIDTH", GLfloat, ["ctx->Line.Width"], "", None ),
+ ( "GL_ALIASED_LINE_WIDTH_RANGE", GLfloat,
+ ["ctx->Const.MinLineWidth",
+ "ctx->Const.MaxLineWidth"], "", None ),
+ ( "GL_MAX_ELEMENTS_INDICES", GLint, ["ctx->Const.MaxArrayLockSize"], "", None ),
+ ( "GL_MAX_ELEMENTS_VERTICES", GLint, ["ctx->Const.MaxArrayLockSize"], "", None ),
+
+ ( "GL_MAX_TEXTURE_SIZE", GLint, ["1 << (ctx->Const.MaxTextureLevels - 1)"], "", None ),
+ ( "GL_MAX_VIEWPORT_DIMS", GLint,
+ ["ctx->Const.MaxViewportWidth", "ctx->Const.MaxViewportHeight"],
+ "", None ),
+ ( "GL_PACK_ALIGNMENT", GLint, ["ctx->Pack.Alignment"], "", None ),
+ ( "GL_ALIASED_POINT_SIZE_RANGE", GLfloat,
+ ["ctx->Const.MinPointSize",
+ "ctx->Const.MaxPointSize"], "", None ),
+ ( "GL_POLYGON_OFFSET_FACTOR", GLfloat, ["ctx->Polygon.OffsetFactor "], "", None ),
+ ( "GL_POLYGON_OFFSET_UNITS", GLfloat, ["ctx->Polygon.OffsetUnits "], "", None ),
+ ( "GL_RED_BITS", GLint, ["ctx->DrawBuffer->Visual.redBits"], "", None ),
+ ( "GL_SCISSOR_BOX", GLint,
+ ["ctx->Scissor.X",
+ "ctx->Scissor.Y",
+ "ctx->Scissor.Width",
+ "ctx->Scissor.Height"], "", None ),
+ ( "GL_SCISSOR_TEST", GLboolean, ["ctx->Scissor.Enabled"], "", None ),
+ ( "GL_STENCIL_BITS", GLint, ["ctx->DrawBuffer->Visual.stencilBits"], "", None ),
+ ( "GL_STENCIL_CLEAR_VALUE", GLint, ["ctx->Stencil.Clear"], "", None ),
+ ( "GL_STENCIL_FAIL", GLenum,
+ ["ctx->Stencil.FailFunc[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_FUNC", GLenum,
+ ["ctx->Stencil.Function[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_PASS_DEPTH_FAIL", GLenum,
+ ["ctx->Stencil.ZFailFunc[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_PASS_DEPTH_PASS", GLenum,
+ ["ctx->Stencil.ZPassFunc[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_REF", GLint,
+ ["ctx->Stencil.Ref[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_TEST", GLboolean, ["ctx->Stencil.Enabled"], "", None ),
+ ( "GL_STENCIL_VALUE_MASK", GLint,
+ ["ctx->Stencil.ValueMask[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_STENCIL_WRITEMASK", GLint,
+ ["ctx->Stencil.WriteMask[ctx->Stencil.ActiveFace]"], "", None ),
+ ( "GL_SUBPIXEL_BITS", GLint, ["ctx->Const.SubPixelBits"], "", None ),
+ ( "GL_TEXTURE_BINDING_2D", GLint,
+ ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_2D_INDEX]->Name"], "", None ),
+ ( "GL_UNPACK_ALIGNMENT", GLint, ["ctx->Unpack.Alignment"], "", None ),
+ ( "GL_VIEWPORT", GLint, [ "ctx->Viewport.X", "ctx->Viewport.Y",
+ "ctx->Viewport.Width", "ctx->Viewport.Height" ], "", None ),
+
+ # GL_ARB_multitexture
+ ( "GL_ACTIVE_TEXTURE_ARB", GLint,
+ [ "GL_TEXTURE0_ARB + ctx->Texture.CurrentUnit"], "", ["ARB_multitexture"] ),
+
+ # Note that all the OES_* extensions require that the Mesa
+ # "struct gl_extensions" include a member with the name of
+ # the extension. That structure does not yet include OES
+ # extensions (and we're not sure whether it will). If
+ # it does, all the OES_* extensions below should mark the
+ # dependency.
+
+ # OES_texture_cube_map
+ ( "GL_TEXTURE_BINDING_CUBE_MAP_ARB", GLint,
+ ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_CUBE_INDEX]->Name"],
+ "", None),
+ ( "GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB", GLint,
+ ["(1 << (ctx->Const.MaxCubeTextureLevels - 1))"],
+ "", None),
+
+ # OES_blend_subtract
+ ( "GL_BLEND_SRC_RGB_EXT", GLenum, ["ctx->Color.BlendSrcRGB"], "", None),
+ ( "GL_BLEND_DST_RGB_EXT", GLenum, ["ctx->Color.BlendDstRGB"], "", None),
+ ( "GL_BLEND_SRC_ALPHA_EXT", GLenum, ["ctx->Color.BlendSrcA"], "", None),
+ ( "GL_BLEND_DST_ALPHA_EXT", GLenum, ["ctx->Color.BlendDstA"], "", None),
+
+ # GL_BLEND_EQUATION_RGB, which is what we're really after,
+ # is defined identically to GL_BLEND_EQUATION.
+ ( "GL_BLEND_EQUATION", GLenum, ["ctx->Color.BlendEquationRGB "], "", None),
+ ( "GL_BLEND_EQUATION_ALPHA_EXT", GLenum, ["ctx->Color.BlendEquationA "],
+ "", None),
+
+ # GL_ARB_texture_compression */
+# ( "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", GLint,
+# ["_mesa_get_compressed_formats(ctx, NULL, GL_FALSE)"],
+# "", ["ARB_texture_compression"] ),
+# ( "GL_COMPRESSED_TEXTURE_FORMATS_ARB", GLenum,
+# [],
+# """GLint formats[100];
+# GLuint i, n = _mesa_get_compressed_formats(ctx, formats, GL_FALSE);
+# ASSERT(n <= 100);
+# for (i = 0; i < n; i++)
+# params[i] = ENUM_TO_INT(formats[i]);""",
+# ["ARB_texture_compression"] ),
+
+ # GL_ARB_multisample
+ ( "GL_SAMPLE_ALPHA_TO_COVERAGE_ARB", GLboolean,
+ ["ctx->Multisample.SampleAlphaToCoverage"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLE_COVERAGE_ARB", GLboolean,
+ ["ctx->Multisample.SampleCoverage"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLE_COVERAGE_VALUE_ARB", GLfloat,
+ ["ctx->Multisample.SampleCoverageValue"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLE_COVERAGE_INVERT_ARB", GLboolean,
+ ["ctx->Multisample.SampleCoverageInvert"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLE_BUFFERS_ARB", GLint,
+ ["ctx->DrawBuffer->Visual.sampleBuffers"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLES_ARB", GLint,
+ ["ctx->DrawBuffer->Visual.samples"], "", ["ARB_multisample"] ),
+
+
+ # GL_SGIS_generate_mipmap
+ ( "GL_GENERATE_MIPMAP_HINT_SGIS", GLenum, ["ctx->Hint.GenerateMipmap"],
+ "", ["SGIS_generate_mipmap"] ),
+
+ # GL_ARB_vertex_buffer_object
+ ( "GL_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ArrayBufferObj->Name"], "", ["ARB_vertex_buffer_object"] ),
+ # GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB - not supported
+ ( "GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ElementArrayBufferObj->Name"],
+ "", ["ARB_vertex_buffer_object"] ),
+
+ # GL_OES_read_format
+ ( "GL_IMPLEMENTATION_COLOR_READ_TYPE_OES", GLint,
+ ["_mesa_get_color_read_type(ctx)"], "", ["OES_read_format"] ),
+ ( "GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES", GLint,
+ ["_mesa_get_color_read_format(ctx)"], "", ["OES_read_format"] ),
+
+ # GL_OES_framebuffer_object
+ ( "GL_FRAMEBUFFER_BINDING_EXT", GLint, ["ctx->DrawBuffer->Name"], "",
+ None),
+ ( "GL_RENDERBUFFER_BINDING_EXT", GLint,
+ ["ctx->CurrentRenderbuffer ? ctx->CurrentRenderbuffer->Name : 0"], "",
+ None),
+ ( "GL_MAX_RENDERBUFFER_SIZE_EXT", GLint,
+ ["ctx->Const.MaxRenderbufferSize"], "",
+ None),
+
+ # OpenGL ES 1/2 special:
+ ( "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB", GLint,
+ [ "ARRAY_SIZE(compressed_formats)" ],
+ "",
+ None ),
+
+ ("GL_COMPRESSED_TEXTURE_FORMATS_ARB", GLint,
+ [],
+ """
+ int i;
+ for (i = 0; i < ARRAY_SIZE(compressed_formats); i++) {
+ params[i] = compressed_formats[i];
+ }""",
+ None ),
+
+ ( "GL_POLYGON_OFFSET_FILL", GLboolean, ["ctx->Polygon.OffsetFill"], "", None ),
+
+]
+
+# Only present in ES 1.x:
+StateVars_es1 = [
+ ( "GL_MAX_LIGHTS", GLint, ["ctx->Const.MaxLights"], "", None ),
+ ( "GL_LIGHT0", GLboolean, ["ctx->Light.Light[0].Enabled"], "", None ),
+ ( "GL_LIGHT1", GLboolean, ["ctx->Light.Light[1].Enabled"], "", None ),
+ ( "GL_LIGHT2", GLboolean, ["ctx->Light.Light[2].Enabled"], "", None ),
+ ( "GL_LIGHT3", GLboolean, ["ctx->Light.Light[3].Enabled"], "", None ),
+ ( "GL_LIGHT4", GLboolean, ["ctx->Light.Light[4].Enabled"], "", None ),
+ ( "GL_LIGHT5", GLboolean, ["ctx->Light.Light[5].Enabled"], "", None ),
+ ( "GL_LIGHT6", GLboolean, ["ctx->Light.Light[6].Enabled"], "", None ),
+ ( "GL_LIGHT7", GLboolean, ["ctx->Light.Light[7].Enabled"], "", None ),
+ ( "GL_LIGHTING", GLboolean, ["ctx->Light.Enabled"], "", None ),
+ ( "GL_LIGHT_MODEL_AMBIENT", GLfloatN,
+ ["ctx->Light.Model.Ambient[0]",
+ "ctx->Light.Model.Ambient[1]",
+ "ctx->Light.Model.Ambient[2]",
+ "ctx->Light.Model.Ambient[3]"], "", None ),
+ ( "GL_LIGHT_MODEL_TWO_SIDE", GLboolean, ["ctx->Light.Model.TwoSide"], "", None ),
+ ( "GL_ALPHA_TEST", GLboolean, ["ctx->Color.AlphaEnabled"], "", None ),
+ ( "GL_ALPHA_TEST_FUNC", GLenum, ["ctx->Color.AlphaFunc"], "", None ),
+ ( "GL_ALPHA_TEST_REF", GLfloatN, ["ctx->Color.AlphaRef"], "", None ),
+ ( "GL_BLEND_DST", GLenum, ["ctx->Color.BlendDstRGB"], "", None ),
+ ( "GL_MAX_CLIP_PLANES", GLint, ["ctx->Const.MaxClipPlanes"], "", None ),
+ ( "GL_CLIP_PLANE0", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 0) & 1" ], "", None ),
+ ( "GL_CLIP_PLANE1", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 1) & 1" ], "", None ),
+ ( "GL_CLIP_PLANE2", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 2) & 1" ], "", None ),
+ ( "GL_CLIP_PLANE3", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 3) & 1" ], "", None ),
+ ( "GL_CLIP_PLANE4", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 4) & 1" ], "", None ),
+ ( "GL_CLIP_PLANE5", GLboolean,
+ [ "(ctx->Transform.ClipPlanesEnabled >> 5) & 1" ], "", None ),
+ ( "GL_COLOR_MATERIAL", GLboolean,
+ ["ctx->Light.ColorMaterialEnabled"], "", None ),
+ ( "GL_CURRENT_COLOR", GLfloatN,
+ [ "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]",
+ "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]",
+ "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]",
+ "ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]" ],
+ "FLUSH_CURRENT(ctx, 0);", None ),
+ ( "GL_CURRENT_NORMAL", GLfloatN,
+ [ "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]",
+ "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]",
+ "ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]"],
+ "FLUSH_CURRENT(ctx, 0);", None ),
+ ( "GL_CURRENT_TEXTURE_COORDS", GLfloat,
+ ["ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]",
+ "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]",
+ "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]",
+ "ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]"],
+ "const GLuint texUnit = ctx->Texture.CurrentUnit;", None ),
+ ( "GL_DISTANCE_ATTENUATION_EXT", GLfloat,
+ ["ctx->Point.Params[0]",
+ "ctx->Point.Params[1]",
+ "ctx->Point.Params[2]"], "", None ),
+ ( "GL_FOG", GLboolean, ["ctx->Fog.Enabled"], "", None ),
+ ( "GL_FOG_COLOR", GLfloatN,
+ [ "ctx->Fog.Color[0]",
+ "ctx->Fog.Color[1]",
+ "ctx->Fog.Color[2]",
+ "ctx->Fog.Color[3]" ], "", None ),
+ ( "GL_FOG_DENSITY", GLfloat, ["ctx->Fog.Density"], "", None ),
+ ( "GL_FOG_END", GLfloat, ["ctx->Fog.End"], "", None ),
+ ( "GL_FOG_HINT", GLenum, ["ctx->Hint.Fog"], "", None ),
+ ( "GL_FOG_MODE", GLenum, ["ctx->Fog.Mode"], "", None ),
+ ( "GL_FOG_START", GLfloat, ["ctx->Fog.Start"], "", None ),
+ ( "GL_LINE_SMOOTH", GLboolean, ["ctx->Line.SmoothFlag"], "", None ),
+ ( "GL_LINE_SMOOTH_HINT", GLenum, ["ctx->Hint.LineSmooth"], "", None ),
+ ( "GL_LINE_WIDTH_RANGE", GLfloat,
+ ["ctx->Const.MinLineWidthAA",
+ "ctx->Const.MaxLineWidthAA"], "", None ),
+ ( "GL_COLOR_LOGIC_OP", GLboolean, ["ctx->Color.ColorLogicOpEnabled"], "", None ),
+ ( "GL_LOGIC_OP_MODE", GLenum, ["ctx->Color.LogicOp"], "", None ),
+ ( "GL_MATRIX_MODE", GLenum, ["ctx->Transform.MatrixMode"], "", None ),
+
+ ( "GL_MAX_MODELVIEW_STACK_DEPTH", GLint, ["MAX_MODELVIEW_STACK_DEPTH"], "", None ),
+ ( "GL_MAX_PROJECTION_STACK_DEPTH", GLint, ["MAX_PROJECTION_STACK_DEPTH"], "", None ),
+ ( "GL_MAX_TEXTURE_STACK_DEPTH", GLint, ["MAX_TEXTURE_STACK_DEPTH"], "", None ),
+ ( "GL_MODELVIEW_MATRIX", GLfloat,
+ [ "matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
+ "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
+ "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
+ "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
+ "const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;", None ),
+ ( "GL_MODELVIEW_STACK_DEPTH", GLint, ["ctx->ModelviewMatrixStack.Depth + 1"], "", None ),
+ ( "GL_NORMALIZE", GLboolean, ["ctx->Transform.Normalize"], "", None ),
+ ( "GL_PACK_SKIP_IMAGES_EXT", GLint, ["ctx->Pack.SkipImages"], "", None ),
+ ( "GL_PERSPECTIVE_CORRECTION_HINT", GLenum,
+ ["ctx->Hint.PerspectiveCorrection"], "", None ),
+ ( "GL_POINT_SIZE", GLfloat, ["ctx->Point.Size"], "", None ),
+ ( "GL_POINT_SIZE_RANGE", GLfloat,
+ ["ctx->Const.MinPointSizeAA",
+ "ctx->Const.MaxPointSizeAA"], "", None ),
+ ( "GL_POINT_SMOOTH", GLboolean, ["ctx->Point.SmoothFlag"], "", None ),
+ ( "GL_POINT_SMOOTH_HINT", GLenum, ["ctx->Hint.PointSmooth"], "", None ),
+ ( "GL_POINT_SIZE_MIN_EXT", GLfloat, ["ctx->Point.MinSize"], "", None ),
+ ( "GL_POINT_SIZE_MAX_EXT", GLfloat, ["ctx->Point.MaxSize"], "", None ),
+ ( "GL_POINT_FADE_THRESHOLD_SIZE_EXT", GLfloat,
+ ["ctx->Point.Threshold"], "", None ),
+ ( "GL_PROJECTION_MATRIX", GLfloat,
+ [ "matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
+ "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
+ "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
+ "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
+ "const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;", None ),
+ ( "GL_PROJECTION_STACK_DEPTH", GLint,
+ ["ctx->ProjectionMatrixStack.Depth + 1"], "", None ),
+ ( "GL_RESCALE_NORMAL", GLboolean,
+ ["ctx->Transform.RescaleNormals"], "", None ),
+ ( "GL_SHADE_MODEL", GLenum, ["ctx->Light.ShadeModel"], "", None ),
+ ( "GL_TEXTURE_2D", GLboolean, ["_mesa_IsEnabled(GL_TEXTURE_2D)"], "", None ),
+ ( "GL_TEXTURE_MATRIX", GLfloat,
+ ["matrix[0]", "matrix[1]", "matrix[2]", "matrix[3]",
+ "matrix[4]", "matrix[5]", "matrix[6]", "matrix[7]",
+ "matrix[8]", "matrix[9]", "matrix[10]", "matrix[11]",
+ "matrix[12]", "matrix[13]", "matrix[14]", "matrix[15]" ],
+ "const GLfloat *matrix = ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;", None ),
+ ( "GL_TEXTURE_STACK_DEPTH", GLint,
+ ["ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Depth + 1"], "", None ),
+ ( "GL_VERTEX_ARRAY", GLboolean, ["ctx->Array.ArrayObj->Vertex.Enabled"], "", None ),
+ ( "GL_VERTEX_ARRAY_SIZE", GLint, ["ctx->Array.ArrayObj->Vertex.Size"], "", None ),
+ ( "GL_VERTEX_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Vertex.Type"], "", None ),
+ ( "GL_VERTEX_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Vertex.Stride"], "", None ),
+ ( "GL_NORMAL_ARRAY", GLenum, ["ctx->Array.ArrayObj->Normal.Enabled"], "", None ),
+ ( "GL_NORMAL_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Normal.Type"], "", None ),
+ ( "GL_NORMAL_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Normal.Stride"], "", None ),
+ ( "GL_COLOR_ARRAY", GLboolean, ["ctx->Array.ArrayObj->Color.Enabled"], "", None ),
+ ( "GL_COLOR_ARRAY_SIZE", GLint, ["ctx->Array.ArrayObj->Color.Size"], "", None ),
+ ( "GL_COLOR_ARRAY_TYPE", GLenum, ["ctx->Array.ArrayObj->Color.Type"], "", None ),
+ ( "GL_COLOR_ARRAY_STRIDE", GLint, ["ctx->Array.ArrayObj->Color.Stride"], "", None ),
+ ( "GL_TEXTURE_COORD_ARRAY", GLboolean,
+ ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Enabled"], "", None ),
+ ( "GL_TEXTURE_COORD_ARRAY_SIZE", GLint,
+ ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Size"], "", None ),
+ ( "GL_TEXTURE_COORD_ARRAY_TYPE", GLenum,
+ ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Type"], "", None ),
+ ( "GL_TEXTURE_COORD_ARRAY_STRIDE", GLint,
+ ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].Stride"], "", None ),
+ # GL_ARB_multitexture
+ ( "GL_MAX_TEXTURE_UNITS_ARB", GLint,
+ ["ctx->Const.MaxTextureUnits"], "", ["ARB_multitexture"] ),
+ ( "GL_CLIENT_ACTIVE_TEXTURE_ARB", GLint,
+ ["GL_TEXTURE0_ARB + ctx->Array.ActiveTexture"], "", ["ARB_multitexture"] ),
+ # OES_texture_cube_map
+ ( "GL_TEXTURE_CUBE_MAP_ARB", GLboolean,
+ ["_mesa_IsEnabled(GL_TEXTURE_CUBE_MAP_ARB)"], "", None),
+ ( "GL_TEXTURE_GEN_STR_OES", GLboolean,
+ # S, T, and R are always set at the same time
+ ["((ctx->Texture.Unit[ctx->Texture.CurrentUnit].TexGenEnabled & S_BIT) ? 1 : 0)"], "", None),
+ # ARB_multisample
+ ( "GL_MULTISAMPLE_ARB", GLboolean,
+ ["ctx->Multisample.Enabled"], "", ["ARB_multisample"] ),
+ ( "GL_SAMPLE_ALPHA_TO_ONE_ARB", GLboolean,
+ ["ctx->Multisample.SampleAlphaToOne"], "", ["ARB_multisample"] ),
+
+ ( "GL_VERTEX_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ArrayObj->Vertex.BufferObj->Name"], "", ["ARB_vertex_buffer_object"] ),
+ ( "GL_NORMAL_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ArrayObj->Normal.BufferObj->Name"], "", ["ARB_vertex_buffer_object"] ),
+ ( "GL_COLOR_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ArrayObj->Color.BufferObj->Name"], "", ["ARB_vertex_buffer_object"] ),
+ ( "GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB", GLint,
+ ["ctx->Array.ArrayObj->TexCoord[ctx->Array.ActiveTexture].BufferObj->Name"],
+ "", ["ARB_vertex_buffer_object"] ),
+
+ # OES_point_sprite
+ ( "GL_POINT_SPRITE_NV", GLboolean, ["ctx->Point.PointSprite"], # == GL_POINT_SPRITE_ARB
+ "", None),
+
+ # GL_ARB_fragment_shader
+ ( "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB", GLint,
+ ["ctx->Const.FragmentProgram.MaxUniformComponents"], "",
+ ["ARB_fragment_shader"] ),
+
+ # GL_ARB_vertex_shader
+ ( "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB", GLint,
+ ["ctx->Const.VertexProgram.MaxUniformComponents"], "",
+ ["ARB_vertex_shader"] ),
+ ( "GL_MAX_VARYING_FLOATS_ARB", GLint,
+ ["ctx->Const.MaxVarying * 4"], "", ["ARB_vertex_shader"] ),
+
+ # OES_matrix_get
+ ( "GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES", GLint, [],
+ """
+ /* See GL_OES_matrix_get */
+ {
+ const GLfloat *matrix = ctx->ModelviewMatrixStack.Top->m;
+ memcpy(params, matrix, 16 * sizeof(GLint));
+ }""",
+ None),
+
+ ( "GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES", GLint, [],
+ """
+ /* See GL_OES_matrix_get */
+ {
+ const GLfloat *matrix = ctx->ProjectionMatrixStack.Top->m;
+ memcpy(params, matrix, 16 * sizeof(GLint));
+ }""",
+ None),
+
+ ( "GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES", GLint, [],
+ """
+ /* See GL_OES_matrix_get */
+ {
+ const GLfloat *matrix =
+ ctx->TextureMatrixStack[ctx->Texture.CurrentUnit].Top->m;
+ memcpy(params, matrix, 16 * sizeof(GLint));
+ }""",
+ None),
+
+ # OES_point_size_array
+ ("GL_POINT_SIZE_ARRAY_OES", GLboolean,
+ ["ctx->Array.ArrayObj->PointSize.Enabled"], "", None),
+ ("GL_POINT_SIZE_ARRAY_TYPE_OES", GLenum,
+ ["ctx->Array.ArrayObj->PointSize.Type"], "", None),
+ ("GL_POINT_SIZE_ARRAY_STRIDE_OES", GLint,
+ ["ctx->Array.ArrayObj->PointSize.Stride"], "", None),
+ ("GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES", GLint,
+ ["ctx->Array.ArrayObj->PointSize.BufferObj->Name"], "", None),
+
+ # GL_EXT_texture_lod_bias
+ ( "GL_MAX_TEXTURE_LOD_BIAS_EXT", GLfloat,
+ ["ctx->Const.MaxTextureLodBias"], "", ["EXT_texture_lod_bias"]),
+
+ # GL_EXT_texture_filter_anisotropic
+ ( "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", GLfloat,
+ ["ctx->Const.MaxTextureMaxAnisotropy"], "", ["EXT_texture_filter_anisotropic"]),
+
+]
+
+# Only present in ES 2.x:
+StateVars_es2 = [
+ # XXX These entries are not spec'ed for GLES 2, but are
+ # needed for Mesa's GLSL:
+ ( "GL_MAX_LIGHTS", GLint, ["ctx->Const.MaxLights"], "", None ),
+ ( "GL_MAX_CLIP_PLANES", GLint, ["ctx->Const.MaxClipPlanes"], "", None ),
+ ( "GL_MAX_TEXTURE_COORDS_ARB", GLint, # == GL_MAX_TEXTURE_COORDS_NV
+ ["ctx->Const.MaxTextureCoordUnits"], "",
+ ["ARB_fragment_program", "NV_fragment_program"] ),
+ ( "GL_MAX_DRAW_BUFFERS_ARB", GLint,
+ ["ctx->Const.MaxDrawBuffers"], "", ["ARB_draw_buffers"] ),
+ ( "GL_BLEND_COLOR_EXT", GLfloatN,
+ [ "ctx->Color.BlendColor[0]",
+ "ctx->Color.BlendColor[1]",
+ "ctx->Color.BlendColor[2]",
+ "ctx->Color.BlendColor[3]"], "", None ),
+
+ # This is required for GLES2, but also needed for GLSL:
+ ( "GL_MAX_TEXTURE_IMAGE_UNITS_ARB", GLint, # == GL_MAX_TEXTURE_IMAGE_UNI
+ ["ctx->Const.MaxTextureImageUnits"], "",
+ ["ARB_fragment_program", "NV_fragment_program"] ),
+
+ ( "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB", GLint,
+ ["ctx->Const.MaxVertexTextureImageUnits"], "", ["ARB_vertex_shader"] ),
+ ( "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB", GLint,
+ ["MAX_COMBINED_TEXTURE_IMAGE_UNITS"], "", ["ARB_vertex_shader"] ),
+
+ # GL_ARB_shader_objects
+ # Actually, this token isn't part of GL_ARB_shader_objects, but is
+ # close enough for now.
+ ( "GL_CURRENT_PROGRAM", GLint,
+ ["ctx->Shader.CurrentProgram ? ctx->Shader.CurrentProgram->Name : 0"],
+ "", ["ARB_shader_objects"] ),
+
+ # OpenGL 2.0
+ ( "GL_STENCIL_BACK_FUNC", GLenum, ["ctx->Stencil.Function[1]"], "", None ),
+ ( "GL_STENCIL_BACK_VALUE_MASK", GLint, ["ctx->Stencil.ValueMask[1]"], "", None ),
+ ( "GL_STENCIL_BACK_WRITEMASK", GLint, ["ctx->Stencil.WriteMask[1]"], "", None ),
+ ( "GL_STENCIL_BACK_REF", GLint, ["ctx->Stencil.Ref[1]"], "", None ),
+ ( "GL_STENCIL_BACK_FAIL", GLenum, ["ctx->Stencil.FailFunc[1]"], "", None ),
+ ( "GL_STENCIL_BACK_PASS_DEPTH_FAIL", GLenum, ["ctx->Stencil.ZFailFunc[1]"], "", None ),
+ ( "GL_STENCIL_BACK_PASS_DEPTH_PASS", GLenum, ["ctx->Stencil.ZPassFunc[1]"], "", None ),
+
+ ( "GL_MAX_VERTEX_ATTRIBS_ARB", GLint,
+ ["ctx->Const.VertexProgram.MaxAttribs"], "", ["ARB_vertex_program"] ),
+
+ # OES_texture_3D
+ ( "GL_TEXTURE_BINDING_3D", GLint,
+ ["ctx->Texture.Unit[ctx->Texture.CurrentUnit].CurrentTex[TEXTURE_3D_INDEX]->Name"], "", None),
+ ( "GL_MAX_3D_TEXTURE_SIZE", GLint, ["1 << (ctx->Const.Max3DTextureLevels - 1)"], "", None),
+
+ # OES_standard_derivatives
+ ( "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB", GLenum,
+ ["ctx->Hint.FragmentShaderDerivative"], "", ["ARB_fragment_shader"] ),
+
+ # Unique to ES 2 (not in full GL)
+ ( "GL_MAX_FRAGMENT_UNIFORM_VECTORS", GLint,
+ ["ctx->Const.FragmentProgram.MaxUniformComponents / 4"], "", None),
+ ( "GL_MAX_VARYING_VECTORS", GLint,
+ ["ctx->Const.MaxVarying"], "", None),
+ ( "GL_MAX_VERTEX_UNIFORM_VECTORS", GLint,
+ ["ctx->Const.VertexProgram.MaxUniformComponents / 4"], "", None),
+ ( "GL_SHADER_COMPILER", GLint, ["1"], "", None),
+ # OES_get_program_binary
+ ( "GL_NUM_SHADER_BINARY_FORMATS", GLint, ["0"], "", None),
+ ( "GL_SHADER_BINARY_FORMATS", GLint, [], "", None),
+]
+
+
+
+def ConversionFunc(fromType, toType):
+ """Return the name of the macro to convert between two data types."""
+ if fromType == toType:
+ return ""
+ elif fromType == GLfloat and toType == GLint:
+ return "IROUND"
+ elif fromType == GLfloatN and toType == GLfloat:
+ return ""
+ elif fromType == GLint and toType == GLfloat: # but not GLfloatN!
+ return "(GLfloat)"
+ else:
+ if fromType == GLfloatN:
+ fromType = GLfloat
+ fromStr = TypeStrings[fromType]
+ fromStr = string.upper(fromStr[2:])
+ toStr = TypeStrings[toType]
+ toStr = string.upper(toStr[2:])
+ return fromStr + "_TO_" + toStr
+
+
+def EmitGetFunction(stateVars, returnType, API):
+ """Emit the code to implement glGetBooleanv, glGetIntegerv or glGetFloatv."""
+ assert (returnType == GLboolean or
+ returnType == GLint or
+ returnType == GLfloat or
+ returnType == GLfixed)
+
+ strType = TypeStrings[returnType]
+ # Capitalize first letter of return type
+ if returnType == GLint:
+ function = "_es%d_GetIntegerv" % API
+ elif returnType == GLboolean:
+ function = "_es%d_GetBooleanv" % API
+ elif returnType == GLfloat:
+ function = "_es%d_GetFloatv" % API
+ elif returnType == GLfixed:
+ function = "_es%d_GetFixedv" % API
+ else:
+ abort()
+
+ print "void GLAPIENTRY"
+ print "%s( GLenum pname, %s *params )" % (function, strType)
+ print "{"
+ print " GET_CURRENT_CONTEXT(ctx);"
+ print " ASSERT_OUTSIDE_BEGIN_END(ctx);"
+ print ""
+ print " if (!params)"
+ print " return;"
+ print ""
+ print " if (ctx->NewState)"
+ print " _mesa_update_state(ctx);"
+ print ""
+ print " switch (pname) {"
+
+ for (name, varType, state, optionalCode, extensions) in stateVars:
+ print " case " + name + ":"
+ if extensions:
+ if len(extensions) == 1:
+ print (' CHECK_EXT1(%s, "%s");' %
+ (extensions[0], function))
+ elif len(extensions) == 2:
+ print (' CHECK_EXT2(%s, %s, "%s");' %
+ (extensions[0], extensions[1], function))
+ elif len(extensions) == 3:
+ print (' CHECK_EXT3(%s, %s, %s, "%s");' %
+ (extensions[0], extensions[1], extensions[2], function))
+ else:
+ assert len(extensions) == 4
+ print (' CHECK_EXT4(%s, %s, %s, %s, "%s");' %
+ (extensions[0], extensions[1], extensions[2], extensions[3], function))
+ if optionalCode:
+ print " {"
+ print " " + optionalCode
+ conversion = ConversionFunc(varType, returnType)
+ n = len(state)
+ for i in range(n):
+ if conversion:
+ print " params[%d] = %s(%s);" % (i, conversion, state[i])
+ else:
+ print " params[%d] = %s;" % (i, state[i])
+ if optionalCode:
+ print " }"
+ print " break;"
+
+ print " default:"
+ print ' _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(pname=0x%%x)", pname);' % function
+ print " }"
+ print "}"
+ print ""
+ return
+
+
+
+def EmitHeader():
+ """Print the get.c file header."""
+ print """
+/***
+ *** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
+ ***/
+
+#include "main/glheader.h"
+#include "main/context.h"
+#include "main/enable.h"
+#include "main/extensions.h"
+#include "main/fbobject.h"
+#include "main/get.h"
+#include "main/macros.h"
+#include "main/mtypes.h"
+#include "main/state.h"
+#include "main/texcompress.h"
+#include "main/framebuffer.h"
+
+
+/* ES1 tokens that should be in gl.h but aren't */
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+
+
+/* ES2 special tokens */
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_PLATFORM_BINARY 0x8D63
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+
+
+#ifndef GL_OES_matrix_get
+#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D
+#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E
+#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F
+#endif
+
+#ifndef GL_OES_compressed_paletted_texture
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#endif
+
+/* GL_OES_texture_cube_map */
+#ifndef GL_OES_texture_cube_map
+#define GL_TEXTURE_GEN_STR_OES 0x8D60
+#endif
+
+#define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
+#define FLOAT_TO_FIXED(F) ( ((F) * 65536.0f > INT_MAX) ? INT_MAX : \\
+ ((F) * 65536.0f < INT_MIN) ? INT_MIN : \\
+ (GLint) ((F) * 65536.0f) )
+
+#define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
+#define INT_TO_FIXED(I) ( ((I) > SHRT_MAX) ? INT_MAX : \\
+ ((I) < SHRT_MIN) ? INT_MIN : \\
+ (GLint) ((I) * 65536) )
+
+#define BOOLEAN_TO_INT(B) ( (GLint) (B) )
+#define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
+#define BOOLEAN_TO_FIXED(B) ( (GLint) ((B) ? 1 : 0) << 16 )
+
+#define ENUM_TO_FIXED(E) (E)
+
+
+/*
+ * Check if named extension is enabled, if not generate error and return.
+ */
+#define CHECK_EXT1(EXT1, FUNC) \\
+ if (!ctx->Extensions.EXT1) { \\
+ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
+ return; \\
+ }
+
+/*
+ * Check if either of two extensions is enabled.
+ */
+#define CHECK_EXT2(EXT1, EXT2, FUNC) \\
+ if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) { \\
+ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
+ return; \\
+ }
+
+/*
+ * Check if either of three extensions is enabled.
+ */
+#define CHECK_EXT3(EXT1, EXT2, EXT3, FUNC) \\
+ if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \\
+ !ctx->Extensions.EXT3) { \\
+ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
+ return; \\
+ }
+
+/*
+ * Check if either of four extensions is enabled.
+ */
+#define CHECK_EXT4(EXT1, EXT2, EXT3, EXT4, FUNC) \\
+ if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2 && \\
+ !ctx->Extensions.EXT3 && !ctx->Extensions.EXT4) { \\
+ _mesa_error(ctx, GL_INVALID_ENUM, FUNC "(0x%x)", (int) pname); \\
+ return; \\
+ }
+
+
+
+/**
+ * List of compressed texture formats supported by ES.
+ */
+static GLenum compressed_formats[] = {
+ GL_PALETTE4_RGB8_OES,
+ GL_PALETTE4_RGBA8_OES,
+ GL_PALETTE4_R5_G6_B5_OES,
+ GL_PALETTE4_RGBA4_OES,
+ GL_PALETTE4_RGB5_A1_OES,
+ GL_PALETTE8_RGB8_OES,
+ GL_PALETTE8_RGBA8_OES,
+ GL_PALETTE8_R5_G6_B5_OES,
+ GL_PALETTE8_RGBA4_OES,
+ GL_PALETTE8_RGB5_A1_OES
+};
+
+#define ARRAY_SIZE(A) (sizeof(A) / sizeof(A[0]))
+
+"""
+ return
+
+
+def EmitAll(stateVars, API):
+ EmitHeader()
+ EmitGetFunction(stateVars, GLboolean, API)
+ EmitGetFunction(stateVars, GLfloat, API)
+ EmitGetFunction(stateVars, GLint, API)
+ if API == 1:
+ EmitGetFunction(stateVars, GLfixed, API)
+
+
+def main(args):
+ # Determine whether to generate ES1 or ES2 queries
+ if len(args) > 1 and args[1] == "1":
+ API = 1
+ elif len(args) > 1 and args[1] == "2":
+ API = 2
+ else:
+ API = 1
+ #print "len args = %d API = %d" % (len(args), API)
+
+ if API == 1:
+ vars = StateVars_common + StateVars_es1
+ else:
+ vars = StateVars_common + StateVars_es2
+
+ EmitAll(vars, API)
+
+
+main(sys.argv)
diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index 51dd5f7795..e3a60fa6eb 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -30,6 +30,30 @@
#include "enums.h"
#include "extensions.h"
+static const GLubyte *
+shading_laguage_version(GLcontext *ctx)
+{
+ switch (ctx->API) {
+#if FEATURE_ARB_shading_language_100
+ case API_OPENGL:
+ if (ctx->Extensions.ARB_shading_language_120)
+ return (const GLubyte *) "1.20";
+ else if (ctx->Extensions.ARB_shading_language_100)
+ return (const GLubyte *) "1.10";
+ goto error;
+#endif
+
+ case API_OPENGLES2:
+ return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
+
+ case API_OPENGLES:
+ default:
+ error:
+ _mesa_error( ctx, GL_INVALID_ENUM, "glGetString" );
+ return (const GLubyte *) 0;
+ }
+}
+
/**
* Query string-valued state. The return value should _not_ be freed by
@@ -74,13 +98,9 @@ _mesa_GetString( GLenum name )
if (!ctx->Extensions.String)
ctx->Extensions.String = _mesa_make_extension_string(ctx);
return (const GLubyte *) ctx->Extensions.String;
-#if FEATURE_ARB_shading_language_100
- case GL_SHADING_LANGUAGE_VERSION_ARB:
- if (ctx->Extensions.ARB_shading_language_120)
- return (const GLubyte *) "1.20";
- else if (ctx->Extensions.ARB_shading_language_100)
- return (const GLubyte *) "1.10";
- goto error;
+#if FEATURE_ARB_shading_language_100 || FEATURE_ES2
+ case GL_SHADING_LANGUAGE_VERSION:
+ return shading_laguage_version(ctx);
#endif
#if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program || \
FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program
@@ -93,9 +113,6 @@ _mesa_GetString( GLenum name )
}
/* FALL-THROUGH */
#endif
-#if FEATURE_ARB_shading_language_100
- error:
-#endif
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glGetString" );
return (const GLubyte *) 0;
diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h
index 77544c88c6..5b8e2f2d81 100644
--- a/src/mesa/main/glheader.h
+++ b/src/mesa/main/glheader.h
@@ -85,6 +85,27 @@ typedef void *GLeglImageOES;
#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
#endif
+/* GLES 2.0 tokens */
+#ifndef GL_RGB565
+#define GL_RGB565 0x8D62
+#endif
+
+#ifndef GL_TEXTURE_GEN_STR_OES
+#define GL_TEXTURE_GEN_STR_OES 0x8D60
+#endif
+
+#ifndef GL_OES_compressed_paletted_texture
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#endif
/**
* Special, internal token
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 349d5f51e6..9640b79ea7 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1076,6 +1076,7 @@ typedef enum
#define T_BIT 2
#define R_BIT 4
#define Q_BIT 8
+#define STR_BITS (S_BIT | T_BIT | R_BIT)
/*@}*/
@@ -2869,6 +2870,14 @@ struct gl_dlist_state
} Current;
};
+/**
+ * Enum for the OpenGL APIs we know about and may support.
+ */
+typedef enum {
+ API_OPENGL,
+ API_OPENGLES,
+ API_OPENGLES2,
+} gl_api;
/**
* Mesa rendering context.
@@ -2887,6 +2896,7 @@ struct __GLcontextRec
/** \name API function pointer tables */
/*@{*/
+ gl_api API;
struct _glapi_table *Save; /**< Display list save functions */
struct _glapi_table *Exec; /**< Execute functions */
struct _glapi_table *CurrentDispatch; /**< == Save or Exec !! */
diff --git a/src/mesa/main/querymatrix.c b/src/mesa/main/querymatrix.c
new file mode 100644
index 0000000000..82b6fe7ab9
--- /dev/null
+++ b/src/mesa/main/querymatrix.c
@@ -0,0 +1,199 @@
+/**************************************************************************
+ *
+ * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ **************************************************************************/
+
+
+/**
+ * Code to implement GL_OES_query_matrix. See the spec at:
+ * http://www.khronos.org/registry/gles/extensions/OES/OES_query_matrix.txt
+ */
+
+
+#include <stdlib.h>
+#include <math.h>
+#include "GLES/gl.h"
+#include "GLES/glext.h"
+
+
+/**
+ * This is from the GL_OES_query_matrix extension specification:
+ *
+ * GLbitfield glQueryMatrixxOES( GLfixed mantissa[16],
+ * GLint exponent[16] )
+ * mantissa[16] contains the contents of the current matrix in GLfixed
+ * format. exponent[16] contains the unbiased exponents applied to the
+ * matrix components, so that the internal representation of component i
+ * is close to mantissa[i] * 2^exponent[i]. The function returns a status
+ * word which is zero if all the components are valid. If
+ * status & (1<<i) != 0, the component i is invalid (e.g., NaN, Inf).
+ * The implementations are not required to keep track of overflows. In
+ * that case, the invalid bits are never set.
+ */
+
+#define INT_TO_FIXED(x) ((GLfixed) ((x) << 16))
+#define FLOAT_TO_FIXED(x) ((GLfixed) ((x) * 65536.0))
+
+#if defined(WIN32) || defined(_WIN32_WCE)
+/* Oddly, the fpclassify() function doesn't exist in such a form
+ * on Windows. This is an implementation using slightly different
+ * lower-level Windows functions.
+ */
+#include <float.h>
+
+enum {FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL}
+fpclassify(double x)
+{
+ switch(_fpclass(x)) {
+ case _FPCLASS_SNAN: /* signaling NaN */
+ case _FPCLASS_QNAN: /* quiet NaN */
+ return FP_NAN;
+ case _FPCLASS_NINF: /* negative infinity */
+ case _FPCLASS_PINF: /* positive infinity */
+ return FP_INFINITE;
+ case _FPCLASS_NN: /* negative normal */
+ case _FPCLASS_PN: /* positive normal */
+ return FP_NORMAL;
+ case _FPCLASS_ND: /* negative denormalized */
+ case _FPCLASS_PD: /* positive denormalized */
+ return FP_SUBNORMAL;
+ case _FPCLASS_NZ: /* negative zero */
+ case _FPCLASS_PZ: /* positive zero */
+ return FP_ZERO;
+ default:
+ /* Should never get here; but if we do, this will guarantee
+ * that the pattern is not treated like a number.
+ */
+ return FP_NAN;
+ }
+}
+#endif
+
+extern GLbitfield GL_APIENTRY _es_QueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16]);
+
+/* The Mesa functions we'll need */
+extern void GL_APIENTRY _mesa_GetIntegerv(GLenum pname, GLint *params);
+extern void GL_APIENTRY _mesa_GetFloatv(GLenum pname, GLfloat *params);
+
+GLbitfield GL_APIENTRY _es_QueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16])
+{
+ GLfloat matrix[16];
+ GLint tmp;
+ GLenum currentMode = GL_FALSE;
+ GLenum desiredMatrix = GL_FALSE;
+ /* The bitfield returns 1 for each component that is invalid (i.e.
+ * NaN or Inf). In case of error, everything is invalid.
+ */
+ GLbitfield rv;
+ register unsigned int i;
+ unsigned int bit;
+
+ /* This data structure defines the mapping between the current matrix
+ * mode and the desired matrix identifier.
+ */
+ static struct {
+ GLenum currentMode;
+ GLenum desiredMatrix;
+ } modes[] = {
+ {GL_MODELVIEW, GL_MODELVIEW_MATRIX},
+ {GL_PROJECTION, GL_PROJECTION_MATRIX},
+ {GL_TEXTURE, GL_TEXTURE_MATRIX},
+#if 0
+ /* this doesn't exist in GLES */
+ {GL_COLOR, GL_COLOR_MATRIX},
+#endif
+ };
+
+ /* Call Mesa to get the current matrix in floating-point form. First,
+ * we have to figure out what the current matrix mode is.
+ */
+ _mesa_GetIntegerv(GL_MATRIX_MODE, &tmp);
+ currentMode = (GLenum) tmp;
+
+ /* The mode is either GL_FALSE, if for some reason we failed to query
+ * the mode, or a given mode from the above table. Search for the
+ * returned mode to get the desired matrix; if we don't find it,
+ * we can return immediately, as _mesa_GetInteger() will have
+ * logged the necessary error already.
+ */
+ for (i = 0; i < sizeof(modes)/sizeof(modes[0]); i++) {
+ if (modes[i].currentMode == currentMode) {
+ desiredMatrix = modes[i].desiredMatrix;
+ break;
+ }
+ }
+ if (desiredMatrix == GL_FALSE) {
+ /* Early error means all values are invalid. */
+ return 0xffff;
+ }
+
+ /* Now pull the matrix itself. */
+ _mesa_GetFloatv(desiredMatrix, matrix);
+
+ rv = 0;
+ for (i = 0, bit = 1; i < 16; i++, bit<<=1) {
+ float normalizedFraction;
+ int exp;
+
+ switch (fpclassify(matrix[i])) {
+ /* A "subnormal" or denormalized number is too small to be
+ * represented in normal format; but despite that it's a
+ * valid floating point number. FP_ZERO and FP_NORMAL
+ * are both valid as well. We should be fine treating
+ * these three cases as legitimate floating-point numbers.
+ */
+ case FP_SUBNORMAL:
+ case FP_NORMAL:
+ case FP_ZERO:
+ normalizedFraction = (GLfloat)frexp(matrix[i], &exp);
+ mantissa[i] = FLOAT_TO_FIXED(normalizedFraction);
+ exponent[i] = (GLint) exp;
+ break;
+
+ /* If the entry is not-a-number or an infinity, then the
+ * matrix component is invalid. The invalid flag for
+ * the component is already set; might as well set the
+ * other return values to known values. We'll set
+ * distinct values so that a savvy end user could determine
+ * whether the matrix component was a NaN or an infinity,
+ * but this is more useful for debugging than anything else
+ * since the standard doesn't specify any such magic
+ * values to return.
+ */
+ case FP_NAN:
+ mantissa[i] = INT_TO_FIXED(0);
+ exponent[i] = (GLint) 0;
+ rv |= bit;
+ break;
+
+ case FP_INFINITE:
+ /* Return +/- 1 based on whether it's a positive or
+ * negative infinity.
+ */
+ if (matrix[i] > 0) {
+ mantissa[i] = INT_TO_FIXED(1);
+ }
+ else {
+ mantissa[i] = -INT_TO_FIXED(1);
+ }
+ exponent[i] = (GLint) 0;
+ rv |= bit;
+ break;
+
+ /* We should never get here; but here's a catching case
+ * in case fpclassify() is returnings something unexpected.
+ */
+ default:
+ mantissa[i] = INT_TO_FIXED(2);
+ exponent[i] = (GLint) 0;
+ rv |= bit;
+ break;
+ }
+
+ } /* for each component */
+
+ /* All done */
+ return rv;
+}
diff --git a/src/mesa/main/remap.c b/src/mesa/main/remap.c
index bfceb43c97..2341f8488d 100644
--- a/src/mesa/main/remap.c
+++ b/src/mesa/main/remap.c
@@ -36,25 +36,18 @@
* a dynamic entry, or the corresponding static entry, in glapi.
*/
-#include "remap.h"
-#include "imports.h"
-
-#include "main/dispatch.h"
-
+#include "mfeatures.h"
#if FEATURE_remap_table
-
-#define need_MESA_remap_table
-#include "main/remap_helper.h"
+#include "remap.h"
+#include "imports.h"
+#include "glapi/glapi.h"
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
#define MAX_ENTRY_POINTS 16
-
-/* this is global for quick access */
-int driDispatchRemapTable[driDispatchRemapTable_size];
-
+static const char *_mesa_function_pool;
/**
* Return the spec string associated with the given function index.
@@ -67,10 +60,7 @@ int driDispatchRemapTable[driDispatchRemapTable_size];
const char *
_mesa_get_function_spec(GLint func_index)
{
- if (func_index < ARRAY_SIZE(_mesa_function_pool))
- return _mesa_function_pool + func_index;
- else
- return NULL;
+ return _mesa_function_pool + func_index;
}
@@ -162,32 +152,14 @@ _mesa_map_function_array(const struct gl_function_remap *func_array)
/**
- * Map the functions which are already static.
- *
- * When a extension function are incorporated into the ABI, the
- * extension suffix is usually stripped. Mapping such functions
- * makes sure the alternative names are available.
- *
- * Note that functions mapped by _mesa_init_remap_table() are
- * excluded.
- */
-void
-_mesa_map_static_functions(void)
-{
- /* Remap static functions which have alternative names and are in the ABI.
- * This is to be on the safe side. glapi should have defined those names.
- */
- _mesa_map_function_array(MESA_alt_functions);
-}
-
-
-/**
* Initialize the remap table. This is called in one_time_init().
* The remap table needs to be initialized before calling the
* CALL/GET/SET macros defined in main/dispatch.h.
*/
void
-_mesa_init_remap_table(void)
+_mesa_do_init_remap_table(const char *pool,
+ int size,
+ const struct gl_function_pool_remap *remap)
{
static GLboolean initialized = GL_FALSE;
GLint i;
@@ -195,15 +167,16 @@ _mesa_init_remap_table(void)
if (initialized)
return;
initialized = GL_TRUE;
+ _mesa_function_pool = pool;
/* initialize the remap table */
- for (i = 0; i < ARRAY_SIZE(driDispatchRemapTable); i++) {
+ for (i = 0; i < size; i++) {
GLint offset;
const char *spec;
/* sanity check */
- ASSERT(i == MESA_remap_table_functions[i].remap_index);
- spec = _mesa_function_pool + MESA_remap_table_functions[i].pool_index;
+ ASSERT(i == remap[i].remap_index);
+ spec = _mesa_function_pool + remap[i].pool_index;
offset = _mesa_map_function_spec(spec);
/* store the dispatch offset in the remap table */
diff --git a/src/mesa/main/remap.h b/src/mesa/main/remap.h
index d080188d89..7afdee36f5 100644
--- a/src/mesa/main/remap.h
+++ b/src/mesa/main/remap.h
@@ -28,9 +28,17 @@
#define REMAP_H
-#include "main/mtypes.h"
+#include "main/mfeatures.h"
-struct gl_function_remap;
+struct gl_function_pool_remap {
+ int pool_index;
+ int remap_index;
+};
+
+struct gl_function_remap {
+ int func_index;
+ int dispatch_offset; /* for sanity check */
+};
#if FEATURE_remap_table
@@ -39,9 +47,9 @@ extern int
driDispatchRemapTable[];
extern const char *
-_mesa_get_function_spec(GLint func_index);
+_mesa_get_function_spec(int func_index);
-extern GLint
+extern int
_mesa_map_function_spec(const char *spec);
extern void
@@ -51,17 +59,34 @@ extern void
_mesa_map_static_functions(void);
extern void
+_mesa_map_static_functions_es1(void);
+
+extern void
+_mesa_map_static_functions_es2(void);
+
+extern void
+_mesa_do_init_remap_table(const char *pool,
+ int size,
+ const struct gl_function_pool_remap *remap);
+
+extern void
_mesa_init_remap_table(void);
+extern void
+_mesa_init_remap_table_es1(void);
+
+extern void
+_mesa_init_remap_table_es2(void);
+
#else /* FEATURE_remap_table */
static INLINE const char *
-_mesa_get_function_spec(GLint func_index)
+_mesa_get_function_spec(int func_index)
{
return NULL;
}
-static INLINE GLint
+static INLINE int
_mesa_map_function_spec(const char *spec)
{
return -1;
@@ -77,11 +102,39 @@ _mesa_map_static_functions(void)
{
}
+
+static INLINE void
+_mesa_map_static_functions_es1(void)
+{
+}
+
+static INLINE void
+_mesa_map_static_functions_es2(void)
+{
+}
+
+static INLINE void
+_mesa_do_init_remap_table(const char *pool,
+ int size,
+ const struct gl_function_pool_remap *remap)
+{
+}
+
static INLINE void
_mesa_init_remap_table(void)
{
}
+static INLINE void
+_mesa_init_remap_table_es1(void)
+{
+}
+
+static INLINE void
+_mesa_init_remap_table_es2(void)
+{
+}
+
#endif /* FEATURE_remap_table */
diff --git a/src/mesa/main/remap_helper.h b/src/mesa/main/remap_helper.h
index 52edf67b54..2df11a454d 100644
--- a/src/mesa/main/remap_helper.h
+++ b/src/mesa/main/remap_helper.h
@@ -26,11 +26,7 @@
*/
#include "main/dispatch.h"
-
-struct gl_function_remap {
- GLint func_index;
- GLint dispatch_offset; /* for sanity check */
-};
+#include "main/remap.h"
/* this is internal to remap.c */
#ifdef need_MESA_remap_table
@@ -4427,10 +4423,7 @@ static const char _mesa_function_pool[] =
;
/* these functions need to be remapped */
-static const struct {
- GLint pool_index;
- GLint remap_index;
-} MESA_remap_table_functions[] = {
+static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
{ 1461, AttachShader_remap_index },
{ 8848, CreateProgram_remap_index },
{ 20883, CreateShader_remap_index },
diff --git a/src/mesa/main/shaders.c b/src/mesa/main/shaders.c
index f382680b44..863f878fea 100644
--- a/src/mesa/main/shaders.c
+++ b/src/mesa/main/shaders.c
@@ -485,7 +485,7 @@ _mesa_ShaderSourceARB(GLhandleARB shaderObj, GLsizei count,
checksum = _mesa_str_checksum(source);
- sprintf(filename, "newshader_%d", checksum);
+ _mesa_snprintf(filename, sizeof(filename), "newshader_%d", checksum);
newSource = _mesa_read_shader(filename);
if (newSource) {
@@ -739,3 +739,31 @@ _mesa_ValidateProgramARB(GLhandleARB program)
ctx->Driver.ValidateProgram(ctx, program);
}
+#ifdef FEATURE_ES2
+
+void GLAPIENTRY
+_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
+ GLint* range, GLint* precision)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+
+void GLAPIENTRY
+_mesa_ReleaseShaderCompiler(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+
+void GLAPIENTRY
+_mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat,
+ const void* binary, GLint length)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__);
+}
+
+#endif
diff --git a/src/mesa/main/shaders.h b/src/mesa/main/shaders.h
index 17339ccf62..6ab6d6bfea 100644
--- a/src/mesa/main/shaders.h
+++ b/src/mesa/main/shaders.h
@@ -232,5 +232,16 @@ extern void GLAPIENTRY
_mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
+/* GLES 2.0 */
+extern void GLAPIENTRY
+_mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype,
+ GLint* range, GLint* precision);
+
+extern void GLAPIENTRY
+_mesa_ReleaseShaderCompiler(void);
+
+extern void GLAPIENTRY
+_mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat,
+ const void* binary, GLint length);
#endif /* SHADERS_H */
diff --git a/src/mesa/main/texgen.c b/src/mesa/main/texgen.c
index e70ea30290..108ea4cd42 100644
--- a/src/mesa/main/texgen.c
+++ b/src/mesa/main/texgen.c
@@ -192,6 +192,38 @@ _mesa_TexGend(GLenum coord, GLenum pname, GLdouble param )
_mesa_TexGenfv( coord, pname, p );
}
+#if FEATURE_ES1
+
+void GLAPIENTRY
+_es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params)
+{
+ ASSERT(coord == GL_TEXTURE_GEN_STR_OES);
+ _mesa_GetTexGenfv(GL_S, pname, params);
+}
+
+
+void GLAPIENTRY
+_es_TexGenf(GLenum coord, GLenum pname, GLfloat param)
+{
+ ASSERT(coord == GL_TEXTURE_GEN_STR_OES);
+ /* set S, T, and R at the same time */
+ _mesa_TexGenf(GL_S, pname, param);
+ _mesa_TexGenf(GL_T, pname, param);
+ _mesa_TexGenf(GL_R, pname, param);
+}
+
+
+void GLAPIENTRY
+_es_TexGenfv(GLenum coord, GLenum pname, const GLfloat *params)
+{
+ ASSERT(coord == GL_TEXTURE_GEN_STR_OES);
+ /* set S, T, and R at the same time */
+ _mesa_TexGenfv(GL_S, pname, params);
+ _mesa_TexGenfv(GL_T, pname, params);
+ _mesa_TexGenfv(GL_R, pname, params);
+}
+
+#endif
static void GLAPIENTRY
_mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params )
diff --git a/src/mesa/main/texgen.h b/src/mesa/main/texgen.h
index eb4626033a..397d89e630 100644
--- a/src/mesa/main/texgen.h
+++ b/src/mesa/main/texgen.h
@@ -52,6 +52,17 @@ _mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params );
extern void
_mesa_init_texgen_dispatch(struct _glapi_table *disp);
+
+extern void GLAPIENTRY
+_es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
+
+extern void GLAPIENTRY
+_es_TexGenf(GLenum coord, GLenum pname, GLfloat param);
+
+extern void GLAPIENTRY
+_es_TexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
+
+
#else /* FEATURE_texgen */
#define _MESA_INIT_TEXGEN_FUNCTIONS(driver, impl) do { } while (0)
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index e0c5cf9c37..0b55097bd6 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -46,6 +46,7 @@
#include "texfetch.h"
#include "teximage.h"
#include "texstate.h"
+#include "texpal.h"
#include "mtypes.h"
@@ -1279,8 +1280,8 @@ texture_error_check( GLcontext *ctx, GLenum target,
if (type != GL_UNSIGNED_SHORT_8_8_MESA &&
type != GL_UNSIGNED_SHORT_8_8_REV_MESA) {
char message[100];
- sprintf(message,
- "glTexImage%d(format/type YCBCR mismatch", dimensions);
+ _mesa_snprintf(message, sizeof(message),
+ "glTexImage%d(format/type YCBCR mismatch", dimensions);
_mesa_error(ctx, GL_INVALID_ENUM, message);
return GL_TRUE; /* error */
}
@@ -1295,9 +1296,9 @@ texture_error_check( GLcontext *ctx, GLenum target,
if (border != 0) {
if (!isProxy) {
char message[100];
- sprintf(message,
- "glTexImage%d(format=GL_YCBCR_MESA and border=%d)",
- dimensions, border);
+ _mesa_snprintf(message, sizeof(message),
+ "glTexImage%d(format=GL_YCBCR_MESA and border=%d)",
+ dimensions, border);
_mesa_error(ctx, GL_INVALID_VALUE, message);
}
return GL_TRUE;
@@ -3380,7 +3381,6 @@ _mesa_CompressedTexImage1DARB(GLenum target, GLint level,
}
}
-
void GLAPIENTRY
_mesa_CompressedTexImage2DARB(GLenum target, GLint level,
GLenum internalFormat, GLsizei width,
@@ -3396,6 +3396,24 @@ _mesa_CompressedTexImage2DARB(GLenum target, GLint level,
_mesa_lookup_enum_by_nr(internalFormat),
width, height, border, imageSize, data);
+#if FEATURE_ES
+ switch (internalFormat) {
+ case GL_PALETTE4_RGB8_OES:
+ case GL_PALETTE4_RGBA8_OES:
+ case GL_PALETTE4_R5_G6_B5_OES:
+ case GL_PALETTE4_RGBA4_OES:
+ case GL_PALETTE4_RGB5_A1_OES:
+ case GL_PALETTE8_RGB8_OES:
+ case GL_PALETTE8_RGBA8_OES:
+ case GL_PALETTE8_R5_G6_B5_OES:
+ case GL_PALETTE8_RGBA4_OES:
+ case GL_PALETTE8_RGB5_A1_OES:
+ _mesa_cpal_compressed_teximage2d(target, level, internalFormat,
+ width, height, imageSize, data);
+ return;
+ }
+#endif
+
if (target == GL_TEXTURE_2D ||
(ctx->Extensions.ARB_texture_cube_map &&
target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB &&
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 2753b55c36..de37e34039 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -416,7 +416,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
*/
if ((baseLevel < 0) || (baseLevel >= MAX_TEXTURE_LEVELS)) {
char s[100];
- sprintf(s, "base level = %d is invalid", baseLevel);
+ _mesa_snprintf(s, sizeof(s), "base level = %d is invalid", baseLevel);
incomplete(t, s);
t->_Complete = GL_FALSE;
return;
@@ -425,7 +425,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
/* Always need the base level image */
if (!t->Image[0][baseLevel]) {
char s[100];
- sprintf(s, "Image[baseLevel=%d] == NULL", baseLevel);
+ _mesa_snprintf(s, sizeof(s), "Image[baseLevel=%d] == NULL", baseLevel);
incomplete(t, s);
t->_Complete = GL_FALSE;
return;
diff --git a/src/mesa/main/texpal.c b/src/mesa/main/texpal.c
new file mode 100644
index 0000000000..a25e7aa4ff
--- /dev/null
+++ b/src/mesa/main/texpal.c
@@ -0,0 +1,204 @@
+/**************************************************************************
+ *
+ * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ **************************************************************************/
+
+
+/**
+ * Code to convert compressed/paletted texture images to ordinary images.
+ * See the GL_OES_compressed_paletted_texture spec at
+ * http://khronos.org/registry/gles/extensions/OES/OES_compressed_paletted_texture.txt
+ *
+ * XXX this makes it impossible to add hardware support...
+ */
+
+
+#include "glheader.h"
+#include "compiler.h" /* for ASSERT */
+#include "context.h"
+#include "mtypes.h"
+#include "imports.h"
+#include "pixelstore.h"
+#include "teximage.h"
+#include "texpal.h"
+
+#if FEATURE_ES
+
+
+static const struct cpal_format_info {
+ GLenum cpal_format;
+ GLenum format;
+ GLenum type;
+ GLuint palette_size;
+ GLuint size;
+} formats[] = {
+ { GL_PALETTE4_RGB8_OES, GL_RGB, GL_UNSIGNED_BYTE, 16, 3 },
+ { GL_PALETTE4_RGBA8_OES, GL_RGBA, GL_UNSIGNED_BYTE, 16, 4 },
+ { GL_PALETTE4_R5_G6_B5_OES, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 16, 2 },
+ { GL_PALETTE4_RGBA4_OES, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 16, 2 },
+ { GL_PALETTE4_RGB5_A1_OES, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 16, 2 },
+ { GL_PALETTE8_RGB8_OES, GL_RGB, GL_UNSIGNED_BYTE, 256, 3 },
+ { GL_PALETTE8_RGBA8_OES, GL_RGBA, GL_UNSIGNED_BYTE, 256, 4 },
+ { GL_PALETTE8_R5_G6_B5_OES, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 256, 2 },
+ { GL_PALETTE8_RGBA4_OES, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 256, 2 },
+ { GL_PALETTE8_RGB5_A1_OES, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 256, 2 }
+};
+
+
+/**
+ * Get a color/entry from the palette.
+ */
+static GLuint
+get_palette_entry(const struct cpal_format_info *info, const GLubyte *palette,
+ GLuint index, GLubyte *pixel)
+{
+ memcpy(pixel, palette + info->size * index, info->size);
+ return info->size;
+}
+
+
+/**
+ * Convert paletted texture to color texture.
+ */
+static void
+paletted_to_color(const struct cpal_format_info *info, const GLubyte *palette,
+ const void *indices, GLuint num_pixels, GLubyte *image)
+{
+ GLubyte *pix = image;
+ GLuint remain, i;
+
+ if (info->palette_size == 16) {
+ /* 4 bits per index */
+ const GLubyte *ind = (const GLubyte *) indices;
+
+ /* two pixels per iteration */
+ remain = num_pixels % 2;
+ for (i = 0; i < num_pixels / 2; i++) {
+ pix += get_palette_entry(info, palette, (ind[i] >> 4) & 0xf, pix);
+ pix += get_palette_entry(info, palette, ind[i] & 0xf, pix);
+ }
+ if (remain) {
+ get_palette_entry(info, palette, (ind[i] >> 4) & 0xf, pix);
+ }
+ }
+ else {
+ /* 8 bits per index */
+ const GLubyte *ind = (const GLubyte *) indices;
+ for (i = 0; i < num_pixels; i++)
+ pix += get_palette_entry(info, palette, ind[i], pix);
+ }
+}
+
+
+static const struct cpal_format_info *
+cpal_get_info(GLint level, GLenum internalFormat,
+ GLsizei width, GLsizei height, GLsizei imageSize)
+{
+ const struct cpal_format_info *info;
+ GLint lvl, num_levels;
+ GLsizei w, h, expect_size;
+
+ info = &formats[internalFormat - GL_PALETTE4_RGB8_OES];
+ ASSERT(info->cpal_format == internalFormat);
+
+ if (level > 0) {
+ _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE,
+ "glCompressedTexImage2D(level=%d)", level);
+ return NULL;
+ }
+
+ num_levels = -level + 1;
+ expect_size = info->palette_size * info->size;
+ for (lvl = 0; lvl < num_levels; lvl++) {
+ w = width >> lvl;
+ if (!w)
+ w = 1;
+ h = height >> lvl;
+ if (!h)
+ h = 1;
+
+ if (info->palette_size == 16)
+ expect_size += (w * h + 1) / 2;
+ else
+ expect_size += w * h;
+ }
+ if (expect_size > imageSize) {
+ _mesa_error(_mesa_get_current_context(), GL_INVALID_VALUE,
+ "glCompressedTexImage2D(imageSize=%d)", imageSize);
+ return NULL;
+ }
+ return info;
+}
+
+/**
+ * Convert a call to glCompressedTexImage2D() where internalFormat is a
+ * compressed palette format into a regular GLubyte/RGBA glTexImage2D() call.
+ */
+void
+_mesa_cpal_compressed_teximage2d(GLenum target, GLint level,
+ GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLsizei imageSize, const void *palette)
+{
+ const struct cpal_format_info *info;
+ GLint lvl, num_levels;
+ const GLubyte *indices;
+ GLint saved_align, align;
+ GET_CURRENT_CONTEXT(ctx);
+
+ info = cpal_get_info(level, internalFormat, width, height, imageSize);
+ if (!info)
+ return;
+
+ info = &formats[internalFormat - GL_PALETTE4_RGB8_OES];
+ ASSERT(info->cpal_format == internalFormat);
+ num_levels = -level + 1;
+
+ /* first image follows the palette */
+ indices = (const GLubyte *) palette + info->palette_size * info->size;
+
+ saved_align = ctx->Unpack.Alignment;
+ align = saved_align;
+
+ for (lvl = 0; lvl < num_levels; lvl++) {
+ GLsizei w, h;
+ GLuint num_texels;
+ GLubyte *image = NULL;
+
+ w = width >> lvl;
+ if (!w)
+ w = 1;
+ h = height >> lvl;
+ if (!h)
+ h = 1;
+ num_texels = w * h;
+ if (w * info->size % align) {
+ _mesa_PixelStorei(GL_UNPACK_ALIGNMENT, 1);
+ align = 1;
+ }
+
+ /* allocate and fill dest image buffer */
+ if (palette) {
+ image = (GLubyte *) malloc(num_texels * info->size);
+ paletted_to_color(info, palette, indices, num_texels, image);
+ }
+
+ _mesa_TexImage2D(target, lvl, info->format, w, h, 0,
+ info->format, info->type, image);
+ if (image)
+ free(image);
+
+ /* advance index pointer to point to next src mipmap */
+ if (info->palette_size == 16)
+ indices += (num_texels + 1) / 2;
+ else
+ indices += num_texels;
+ }
+
+ if (saved_align != align)
+ _mesa_PixelStorei(GL_UNPACK_ALIGNMENT, saved_align);
+}
+
+#endif
diff --git a/src/mesa/main/texpal.h b/src/mesa/main/texpal.h
new file mode 100644
index 0000000000..eeff5a9e24
--- /dev/null
+++ b/src/mesa/main/texpal.h
@@ -0,0 +1,38 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.8
+ *
+ * Copyright (C) 1999-2010 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL 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.
+ */
+
+
+#ifndef TEXPAL_H
+#define TEXPAL_H
+
+
+#include "main/glheader.h"
+extern void
+_mesa_cpal_compressed_teximage2d(GLenum target, GLint level,
+ GLenum internalFormat,
+ GLsizei width, GLsizei height,
+ GLsizei imageSize, const void *palette);
+
+
+#endif /* TEXPAL_H */
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a39b680650..dea3019d0b 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -32,8 +32,11 @@
* Return major and minor version numbers.
*/
static void
-compute_version(const GLcontext *ctx, GLuint *major, GLuint *minor)
+compute_version(GLcontext *ctx)
{
+ GLuint major, minor;
+ static const int max = 100;
+
const GLboolean ver_1_3 = (ctx->Extensions.ARB_multisample &&
ctx->Extensions.ARB_multitexture &&
ctx->Extensions.ARB_texture_border_clamp &&
@@ -85,31 +88,111 @@ compute_version(const GLcontext *ctx, GLuint *major, GLuint *minor)
ctx->Extensions.EXT_pixel_buffer_object &&
ctx->Extensions.EXT_texture_sRGB);
if (ver_2_1) {
- *major = 2;
- *minor = 1;
+ major = 2;
+ minor = 1;
}
else if (ver_2_0) {
- *major = 2;
- *minor = 0;
+ major = 2;
+ minor = 0;
}
else if (ver_1_5) {
- *major = 1;
- *minor = 5;
+ major = 1;
+ minor = 5;
}
else if (ver_1_4) {
- *major = 1;
- *minor = 4;
+ major = 1;
+ minor = 4;
}
else if (ver_1_3) {
- *major = 1;
- *minor = 3;
+ major = 1;
+ minor = 3;
}
else {
- *major = 1;
- *minor = 2;
+ major = 1;
+ minor = 2;
+ }
+
+ ctx->VersionMajor = major;
+ ctx->VersionMinor = minor;
+ ctx->VersionString = (char *) malloc(max);
+ if (ctx->VersionString) {
+ _mesa_snprintf(ctx->VersionString, max,
+ "%u.%u Mesa " MESA_VERSION_STRING,
+ ctx->VersionMajor, ctx->VersionMinor);
}
}
+static void
+compute_version_es1(GLcontext *ctx)
+{
+ static const int max = 100;
+
+ /* OpenGL ES 1.0 is derived from OpenGL 1.3 */
+ const GLboolean ver_1_0 = (ctx->Extensions.ARB_multisample &&
+ ctx->Extensions.ARB_multitexture &&
+ ctx->Extensions.ARB_texture_compression &&
+ ctx->Extensions.EXT_texture_env_add &&
+ ctx->Extensions.ARB_texture_env_combine &&
+ ctx->Extensions.ARB_texture_env_dot3);
+ /* OpenGL ES 1.1 is derived from OpenGL 1.5 */
+ const GLboolean ver_1_1 = (ver_1_0 &&
+ ctx->Extensions.EXT_point_parameters &&
+ ctx->Extensions.SGIS_generate_mipmap &&
+ ctx->Extensions.ARB_vertex_buffer_object);
+
+ if (ver_1_1) {
+ ctx->VersionMajor = 1;
+ ctx->VersionMinor = 1;
+ } else if (ver_1_0) {
+ ctx->VersionMajor = 1;
+ ctx->VersionMinor = 0;
+ } else {
+ _mesa_problem(ctx, "Incomplete OpenGL ES 1.0 support.");
+ }
+
+ ctx->VersionString = (char *) malloc(max);
+ if (ctx->VersionString) {
+ _mesa_snprintf(ctx->VersionString, max,
+ "OpenGL ES-CM 1.%d Mesa " MESA_VERSION_STRING,
+ ctx->VersionMinor);
+ }
+}
+
+static void
+compute_version_es2(GLcontext *ctx)
+{
+ static const int max = 100;
+
+ /* OpenGL ES 2.0 is derived from OpenGL 2.0 */
+ const GLboolean ver_2_0 = (ctx->Extensions.ARB_multisample &&
+ ctx->Extensions.ARB_multitexture &&
+ ctx->Extensions.ARB_texture_compression &&
+ ctx->Extensions.ARB_texture_cube_map &&
+ ctx->Extensions.ARB_texture_mirrored_repeat &&
+ ctx->Extensions.EXT_blend_color &&
+ ctx->Extensions.EXT_blend_func_separate &&
+ ctx->Extensions.EXT_blend_minmax &&
+ ctx->Extensions.EXT_blend_subtract &&
+ ctx->Extensions.EXT_stencil_wrap &&
+ ctx->Extensions.ARB_vertex_buffer_object &&
+ ctx->Extensions.ARB_shader_objects &&
+ ctx->Extensions.ARB_vertex_shader &&
+ ctx->Extensions.ARB_fragment_shader &&
+ ctx->Extensions.ARB_texture_non_power_of_two &&
+ ctx->Extensions.EXT_blend_equation_separate);
+ if (ver_2_0) {
+ ctx->VersionMajor = 2;
+ ctx->VersionMinor = 0;
+ } else {
+ _mesa_problem(ctx, "Incomplete OpenGL ES 2.0 support.");
+ }
+
+ ctx->VersionString = (char *) malloc(max);
+ if (ctx->VersionString) {
+ _mesa_snprintf(ctx->VersionString, max,
+ "OpenGL ES 2.0 Mesa " MESA_VERSION_STRING);
+ }
+}
/**
* Set the context's VersionMajor, VersionMinor, VersionString fields.
@@ -118,13 +201,16 @@ compute_version(const GLcontext *ctx, GLuint *major, GLuint *minor)
void
_mesa_compute_version(GLcontext *ctx)
{
- static const int max = 100;
-
- compute_version(ctx, &ctx->VersionMajor, &ctx->VersionMinor);
-
- ctx->VersionString = (char *) malloc(max);
- if (ctx->VersionString) {
- _mesa_snprintf(ctx->VersionString, max, "%u.%u Mesa " MESA_VERSION_STRING,
- ctx->VersionMajor, ctx->VersionMinor);
+ switch (ctx->API) {
+ case API_OPENGL:
+ compute_version(ctx);
+ break;
+ case API_OPENGLES:
+ compute_version_es1(ctx);
+ break;
+ case API_OPENGLES2:
+ compute_version_es2(ctx);
+ break;
}
+
}