diff --git a/binary/any/any.go b/binary/any/any.go
index 3337711..313ab6b 100644
--- a/binary/any/any.go
+++ b/binary/any/any.go
@@ -24,6 +24,7 @@
 // binary: Schema = false
 // binary: java.source = base/rpclib/src/main/java
 // binary: java.package = com.android.tools.rpclib.any
+// binary: java.indent = "    "
 // binary: java.member_prefix = m
 
 // ErrUnboxable is returned when a non-boxable value type is passed to Box.
diff --git a/binary/schema/schema.go b/binary/schema/schema.go
index 1ef6519..cbd0db3 100644
--- a/binary/schema/schema.go
+++ b/binary/schema/schema.go
@@ -23,6 +23,7 @@
 // binary: Schema = false
 // binary: java.source = base/rpclib/src/main/java
 // binary: java.package = com.android.tools.rpclib.schema
+// binary: java.indent = "    "
 // binary: java.member_prefix = m
 
 // Type represents the common interface to all type objects in the schema.
diff --git a/binary/test/test.go b/binary/test/test.go
index 513f901..3fccba4 100644
--- a/binary/test/test.go
+++ b/binary/test/test.go
@@ -25,6 +25,7 @@
 
 // binary: java.source = base/rpclib/src/test/java
 // binary: java.package = com.android.tools.rpclib.binary
+// binary: java.indent = "    "
 // binary: java.member_prefix = m
 
 type TypeA struct {
diff --git a/gfxapi/gles/api/android_extension_pack.api b/gfxapi/gles/api/android_extension_pack.api
new file mode 100644
index 0000000..c6b8b6b
--- /dev/null
+++ b/gfxapi/gles/api/android_extension_pack.api
@@ -0,0 +1,291 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/blend_equation_advanced.txt","GL_KHR_blend_equation_advanced")
+cmd void glBlendBarrierKHR() {
+  requiresExtension(GL_KHR_blend_equation_advanced)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glBlendEquationSeparateiEXT(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glBlendEquationiEXT(GLuint buf, GLenum mode) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glBlendFuncSeparateiEXT(GLuint buf,
+                                 GLenum srcRGB,
+                                 GLenum dstRGB,
+                                 GLenum srcAlpha,
+                                 GLenum dstAlpha) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glBlendFunciEXT(GLuint buf, GLenum src, GLenum dst) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glColorMaskiEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_copy_image.txt","GL_EXT_copy_image")
+cmd void glCopyImageSubDataEXT(GLuint  srcName,
+                               GLenum  srcTarget,
+                               GLint   srcLevel,
+                               GLint   srcX,
+                               GLint   srcY,
+                               GLint   srcZ,
+                               GLuint  dstName,
+                               GLenum  dstTarget,
+                               GLint   dstLevel,
+                               GLint   dstX,
+                               GLint   dstY,
+                               GLint   dstZ,
+                               GLsizei srcWidth,
+                               GLsizei srcHeight,
+                               GLsizei srcDepth) {
+  requiresExtension(GL_EXT_copy_image)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glDebugMessageCallbackKHR(GLDEBUGPROCKHR callback, const void* userParam) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glDebugMessageControlKHR(GLenum        source,
+                                  GLenum        type,
+                                  GLenum        severity,
+                                  GLsizei       count,
+                                  const GLuint* ids,
+                                  GLboolean     enabled) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glDebugMessageInsertKHR(GLenum        source,
+                                 GLenum        type,
+                                 GLuint        id,
+                                 GLenum        severity,
+                                 GLsizei       length,
+                                 const GLchar* buf) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glDisableiEXT(GLenum target, GLuint index) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd void glEnableiEXT(GLenum target, GLuint index) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_shader.txt","GL_EXT_geometry_shader")
+cmd void glFramebufferTextureEXT(GLenum target, GLenum attachment, TextureId texture, GLint level) {
+  requiresExtension(GL_EXT_geometry_shader)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd GLuint glGetDebugMessageLogKHR(GLuint   count,
+                                   GLsizei  bufSize,
+                                   GLenum*  sources,
+                                   GLenum*  types,
+                                   GLuint*  ids,
+                                   GLenum*  severities,
+                                   GLsizei* lengths,
+                                   GLchar*  messageLog) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glGetObjectLabelKHR(GLenum   identifier,
+                             GLuint   name,
+                             GLsizei  bufSize,
+                             GLsizei* length,
+                             GLchar*  label) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glGetObjectPtrLabelKHR(const void* ptr,
+                                GLsizei     bufSize,
+                                GLsizei*    length,
+                                GLchar*     label) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glGetPointervKHR(GLenum pname, void** params) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glGetSamplerParameterIivEXT(SamplerId sampler, GLenum pname, GLint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glGetSamplerParameterIuivEXT(SamplerId sampler, GLenum pname, GLuint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt","GL_EXT_draw_buffers_indexed")
+cmd bool glIsEnablediEXT(GLenum target, GLuint index) {
+  requiresExtension(GL_EXT_draw_buffers_indexed)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_sample_shading.txt","GL_OES_sample_shading")
+cmd void glMinSampleShadingOES(GLfloat value) {
+  requiresExtension(GL_OES_sample_shading)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glObjectLabelKHR(GLenum identifier, GLuint name, GLsizei length, const GLchar* label) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glObjectPtrLabelKHR(const void* ptr, GLsizei length, const GLchar* label) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_shader.txt","GL_EXT_tessellation_shader")
+cmd void glPatchParameteriEXT(GLenum pname, GLint value) {
+  requiresExtension(GL_EXT_tessellation_shader)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glPopDebugGroupKHR() {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_primitive_bounding_box.txt","GL_EXT_primitive_bounding_box")
+cmd void glPrimitiveBoundingBoxEXT(GLfloat minX,
+                                   GLfloat minY,
+                                   GLfloat minZ,
+                                   GLfloat minW,
+                                   GLfloat maxX,
+                                   GLfloat maxY,
+                                   GLfloat maxZ,
+                                   GLfloat maxW) {
+  requiresExtension(GL_EXT_primitive_bounding_box)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/debug.txt","GL_KHR_debug")
+cmd void glPushDebugGroupKHR(GLenum source, GLuint id, GLsizei length, const GLchar* message) {
+  requiresExtension(GL_KHR_debug)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glSamplerParameterIivEXT(SamplerId sampler, GLenum pname, const GLint* param) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glSamplerParameterIuivEXT(SamplerId sampler, GLenum pname, const GLuint* param) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_buffer.txt","GL_EXT_texture_buffer")
+cmd void glTexBufferEXT(GLenum target, GLenum internalformat, BufferId buffer) {
+  requiresExtension(GL_EXT_texture_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_buffer.txt","GL_EXT_texture_buffer")
+cmd void glTexBufferRangeEXT(GLenum     target,
+                             GLenum     internalformat,
+                             BufferId   buffer,
+                             GLintptr   offset,
+                             GLsizeiptr size) {
+  requiresExtension(GL_EXT_texture_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glTexParameterIivEXT(GLenum target, GLenum pname, const GLint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt","GL_EXT_texture_border_clamp")
+cmd void glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint* params) {
+  requiresExtension(GL_EXT_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_storage_multisample_2d_array.txt","GL_OES_texture_storage_multisample_2d_array")
+cmd void glTexStorage3DMultisampleOES(GLenum    target,
+                                      GLsizei   samples,
+                                      GLenum    internalformat,
+                                      GLsizei   width,
+                                      GLsizei   height,
+                                      GLsizei   depth,
+                                      GLboolean fixedsamplelocations) {
+  requiresExtension(GL_OES_texture_storage_multisample_2d_array)
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/asynchronous_queries.api b/gfxapi/gles/api/asynchronous_queries.api
new file mode 100644
index 0000000..41ad05d
--- /dev/null
+++ b/gfxapi/gles/api/asynchronous_queries.api
@@ -0,0 +1,122 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBeginQuery.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBeginQuery.xhtml","OpenGL ES 3.1")
+cmd void glBeginQuery(GLenum target, QueryId query) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+        GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteQueries.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteQueries.xhtml","OpenGL ES 3.1")
+cmd void glDeleteQueries(GLsizei count, const QueryId* queries) {
+  minRequiredVersion(3, 0)
+
+  q := queries[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Queries[q[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBeginQuery.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBeginQuery.xhtml","OpenGL ES 3.1")
+cmd void glEndQuery(GLenum target) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+        GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenQueries.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenQueries.xhtml","OpenGL ES 3.1")
+cmd void glGenQueries(GLsizei count, QueryId* queries) {
+  minRequiredVersion(3, 0)
+
+  q := queries[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!QueryId(?)
+    ctx.Instances.Queries[id] = new!Query()
+    q[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetQueryObjectuiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetQueryObjectuiv.xhtml","OpenGL ES 3.1")
+cmd void glGetQueryObjectuiv(QueryId query, GLenum parameter, GLuint* value) {
+  minRequiredVersion(3, 0)
+  switch (parameter) {
+    case GL_QUERY_RESULT, GL_QUERY_RESULT_AVAILABLE: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetQueryiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetQueryiv.xhtml","OpenGL ES 3.1")
+cmd void glGetQueryiv(GLenum target, GLenum parameter, GLint* value) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+        GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_CURRENT_QUERY: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsQuery.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsQuery.xhtml","OpenGL ES 3.1")
+cmd bool glIsQuery(QueryId query) {
+  minRequiredVersion(3, 0)
+
+  ctx := GetContext()
+  return query in ctx.Instances.Queries
+}
+
diff --git a/gfxapi/gles/api/buffer_objects.api b/gfxapi/gles/api/buffer_objects.api
new file mode 100644
index 0000000..594fa44
--- /dev/null
+++ b/gfxapi/gles/api/buffer_objects.api
@@ -0,0 +1,388 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindBuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindBuffer.xhtml","OpenGL ES 3.1")
+cmd void glBindBuffer(GLenum target, BufferId buffer) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER: {
+      // version 2.0
+    }
+    case GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER,
+        GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER,
+        GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  ctx := GetContext()
+  if !(buffer in ctx.Instances.Buffers) {
+    ctx.Instances.Buffers[buffer] = new!Buffer()
+  }
+  ctx.BoundBuffers[target] = buffer
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindBufferBase.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindBufferBase.xhtml","OpenGL ES 3.1")
+cmd void glBindBufferBase(GLenum target, GLuint index, BufferId buffer) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindBufferRange.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindBufferRange.xhtml","OpenGL ES 3.1")
+cmd void glBindBufferRange(GLenum     target,
+                           GLuint     index,
+                           BufferId   buffer,
+                           GLintptr   offset,
+                           GLsizeiptr size) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBufferData.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBufferData.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBufferData.xhtml","OpenGL ES 3.1")
+cmd void glBufferData(GLenum target, GLsizeiptr size, BufferDataPointer data, GLenum usage) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER: {
+      // version 2.0
+    }
+    case GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER,
+        GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER,
+        GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (usage) {
+    case GL_DYNAMIC_DRAW, GL_STATIC_DRAW, GL_STREAM_DRAW: {
+      // version 2.0
+    }
+    case GL_DYNAMIC_COPY, GL_DYNAMIC_READ, GL_STATIC_COPY, GL_STATIC_READ, GL_STREAM_COPY,
+        GL_STREAM_READ: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(usage)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.BoundBuffers[target]
+  b := ctx.Instances.Buffers[id]
+  b.Data = switch (data != null) {
+    case true:  clone(as!u8*(data)[0:size])
+    case false: make!u8(size)
+  }
+  b.Size = size
+  b.Usage = usage
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBufferSubData.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBufferSubData.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBufferSubData.xhtml","OpenGL ES 3.1")
+cmd void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, BufferDataPointer data) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER: {
+      // version 2.0
+    }
+    case GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER,
+        GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER,
+        GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  read(data[0:size])
+  // TODO: Assignment to subset
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCopyBufferSubData.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCopyBufferSubData.xhtml","OpenGL ES 3.1")
+cmd void glCopyBufferSubData(GLenum     readTarget,
+                             GLenum     writeTarget,
+                             GLintptr   readOffset,
+                             GLintptr   writeOffset,
+                             GLsizeiptr size) {
+  minRequiredVersion(3, 0)
+  switch (readTarget) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(readTarget)
+    }
+  }
+  switch (writeTarget) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(writeTarget)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteBuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteBuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteBuffers.xhtml","OpenGL ES 3.1")
+cmd void glDeleteBuffers(GLsizei count, const BufferId* buffers) {
+  minRequiredVersion(2, 0)
+
+  b := buffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Buffers[b[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenBuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenBuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenBuffers.xhtml","OpenGL ES 3.1")
+cmd void glGenBuffers(GLsizei count, BufferId* buffers) {
+  minRequiredVersion(2, 0)
+
+  b := buffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!BufferId(?)
+    ctx.Instances.Buffers[id] = new!Buffer()
+    b[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetBufferParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetBufferParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_BUFFER_ACCESS_FLAGS, GL_BUFFER_MAPPED, GL_BUFFER_MAP_LENGTH, GL_BUFFER_MAP_OFFSET,
+        GL_BUFFER_SIZE, GL_BUFFER_USAGE: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetBufferParameteriv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetBufferParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetBufferParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetBufferParameteriv(GLenum target, GLenum parameter, GLint* value) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER: {
+      // version 2.0
+    }
+    case GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER,
+        GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_BUFFER_SIZE, GL_BUFFER_USAGE: {
+      // version 2.0
+    }
+    case GL_BUFFER_ACCESS_FLAGS, GL_BUFFER_MAPPED, GL_BUFFER_MAP_LENGTH, GL_BUFFER_MAP_OFFSET: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.BoundBuffers[target]
+  b := ctx.Instances.Buffers[id]
+  value[0] = switch (parameter) {
+    case GL_BUFFER_SIZE:  as!s32(b.Size)
+    case GL_BUFFER_USAGE: as!s32(b.Usage)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetBufferPointerv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetBufferPointerv.xhtml","OpenGL ES 3.1")
+cmd void glGetBufferPointerv(GLenum target, GLenum pname, void** params) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_BUFFER_MAP_POINTER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsBuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsBuffer.xhtml","OpenGL ES 3.1")
+cmd bool glIsBuffer(BufferId buffer) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return buffer in ctx.Instances.Buffers
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glMapBufferRange.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glMapBufferRange.xhtml","OpenGL ES 3.1")
+cmd void* glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER,
+        GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  supportsBits(access, GL_MAP_FLUSH_EXPLICIT_BIT | GL_MAP_INVALIDATE_BUFFER_BIT | GL_MAP_INVALIDATE_RANGE_BIT | GL_MAP_READ_BIT | GL_MAP_UNSYNCHRONIZED_BIT | GL_MAP_WRITE_BIT)
+  if (GL_MAP_FLUSH_EXPLICIT_BIT in access) {
+  }
+  if (GL_MAP_INVALIDATE_BUFFER_BIT in access) {
+  }
+  if (GL_MAP_INVALIDATE_RANGE_BIT in access) {
+  }
+  if (GL_MAP_READ_BIT in access) {
+  }
+  if (GL_MAP_UNSYNCHRONIZED_BIT in access) {
+  }
+  if (GL_MAP_WRITE_BIT in access) {
+  }
+
+  ctx := GetContext()
+  b := ctx.Instances.Buffers[ctx.BoundBuffers[target]]
+
+  ptr := as!u8*(?)
+
+  b.MappingAccess = access
+  b.MappingData = ptr[0:length]
+  if GL_MAP_READ_BIT in access {
+    src := b.Data[offset:offset + length]
+    dst := b.MappingData
+    // copy(dst, src) // TEMP HACK: copy cannot be used here as this is a copy after a fence (ptr := ?)
+    write(dst)
+  }
+
+  return as!void*(ptr)
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glMapBufferRange.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glMapBufferRange.xhtml","OpenGL ES 3.1")
+cmd GLboolean glUnmapBuffer(GLenum target) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    case GL_ATOMIC_COUNTER_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER,
+        GL_SHADER_STORAGE_BUFFER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  ctx := GetContext()
+  b := ctx.Instances.Buffers[ctx.BoundBuffers[target]]
+  // if GL_MAP_WRITE_BIT in b.MappingAccess { // TEMP HACK: Commented as 'fence not allowed in *semantic.Branch'
+  copy(b.Data[b.MappingOffset:b.MappingOffset + len(b.MappingData)], b.MappingData)
+  // }
+}
+
diff --git a/gfxapi/gles/api/draw_commands.api b/gfxapi/gles/api/draw_commands.api
new file mode 100644
index 0000000..8668485
--- /dev/null
+++ b/gfxapi/gles/api/draw_commands.api
@@ -0,0 +1,209 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawArrays.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawArrays.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawArrays.xhtml","OpenGL ES 3.1")
+cmd void glDrawArrays(GLenum draw_mode, GLint first_index, GLsizei index_count) {
+  minRequiredVersion(2, 0)
+  switch (draw_mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(draw_mode)
+    }
+  }
+
+  ctx := GetContext()
+  last_index := first_index + index_count - 1
+  ReadVertexArrays(ctx, as!u32(first_index), as!u32(last_index))
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawArraysIndirect.xhtml","OpenGL ES 3.1")
+cmd void glDrawArraysIndirect(GLenum mode, const void* indirect) {
+  minRequiredVersion(3, 1)
+  switch (mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawArraysInstanced.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawArraysInstanced.xhtml","OpenGL ES 3.1")
+cmd void glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
+  minRequiredVersion(3, 0)
+  switch (mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawBuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawBuffers.xhtml","OpenGL ES 3.1")
+cmd void glDrawBuffers(GLsizei n, const GLenum* bufs) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDrawElements.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawElements.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawElements.xhtml","OpenGL ES 3.1")
+cmd void glDrawElements(GLenum         draw_mode,
+                        GLsizei        element_count,
+                        GLenum         indices_type,
+                        IndicesPointer indices) {
+  minRequiredVersion(2, 0)
+  switch (draw_mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(draw_mode)
+    }
+  }
+  switch (indices_type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT: {
+      // version 2.0
+    }
+    case GL_UNSIGNED_INT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(indices_type)
+    }
+  }
+
+  ctx := GetContext()
+  count := as!u32(element_count)
+  id := ctx.BoundBuffers[GL_ELEMENT_ARRAY_BUFFER]
+  if (id != 0) {
+    // Element array buffer bound - indices is an offset on the buffer.
+    index_data := ctx.Instances.Buffers[id].Data
+    offset := as!u32(as!u64(indices))
+
+    // Read the vertices
+    first := minIndex(as!u8*(index_data), indices_type, offset, count)
+    last := maxIndex(as!u8*(index_data), indices_type, offset, count)
+    ReadVertexArrays(ctx, first, last)
+
+    // No need to read the indices - they're already in a GPU-side buffer.
+  } else {
+    // No element array buffer bound - indices is a pointer.
+    index_data := as!u8*(indices)
+
+    // Read the vertices
+    first := minIndex(index_data, indices_type, 0, count)
+    last := maxIndex(index_data, indices_type, 0, count)
+    ReadVertexArrays(ctx, first, last)
+
+    // Read the indices
+    read(index_data[0:(as!u32(element_count)) * IndexSize(indices_type)])
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawElementsIndirect.xhtml","OpenGL ES 3.1")
+cmd void glDrawElementsIndirect(GLenum mode, GLenum type, const void* indirect) {
+  minRequiredVersion(3, 1)
+  switch (mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_SHORT: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawElementsInstanced.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawElementsInstanced.xhtml","OpenGL ES 3.1")
+cmd void glDrawElementsInstanced(GLenum      mode,
+                                 GLsizei     count,
+                                 GLenum      type,
+                                 const void* indices,
+                                 GLsizei     instancecount) {
+  minRequiredVersion(3, 0)
+  switch (mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_SHORT: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDrawRangeElements.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDrawRangeElements.xhtml","OpenGL ES 3.1")
+cmd void glDrawRangeElements(GLenum      mode,
+                             GLuint      start,
+                             GLuint      end,
+                             GLsizei     count,
+                             GLenum      type,
+                             const void* indices) {
+  minRequiredVersion(3, 0)
+  switch (mode) {
+    case GL_LINES, GL_LINE_LOOP, GL_LINE_STRIP, GL_POINTS, GL_TRIANGLES, GL_TRIANGLE_FAN,
+        GL_TRIANGLE_STRIP: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_SHORT: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/extensions.api b/gfxapi/gles/api/extensions.api
new file mode 100644
index 0000000..3e59541
--- /dev/null
+++ b/gfxapi/gles/api/extensions.api
@@ -0,0 +1,2736 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glActiveShaderProgramEXT(PipelineId pipeline, ProgramId program) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_alpha_test.txt","GL_QCOM_alpha_test")
+cmd void glAlphaFuncQCOM(GLenum func, GLclampf ref) {
+  requiresExtension(GL_QCOM_alpha_test)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conditional_render.txt","GL_NV_conditional_render")
+cmd void glBeginConditionalRenderNV(GLuint id, GLenum mode) {
+  requiresExtension(GL_NV_conditional_render)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glBeginPerfMonitorAMD(GLuint monitor) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glBeginPerfQueryINTEL(GLuint queryHandle) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glBeginQueryEXT(GLenum target, QueryId query) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glBindProgramPipelineEXT(PipelineId pipeline) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glBindVertexArrayOES(VertexArrayId array) {
+  requiresExtension(GL_OES_vertex_array_object)
+
+  ctx := GetContext()
+  if !(array in ctx.Instances.VertexArrays) {
+    ctx.Instances.VertexArrays[array] = new!VertexArray()
+  }
+  ctx.BoundVertexArray = array
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/blend_equation_advanced.txt","GL_NV_blend_equation_advanced")
+cmd void glBlendBarrierNV() {
+  requiresExtension(GL_NV_blend_equation_advanced)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendEquationiOES(GLuint buf, GLenum mode) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendFuncSeparateiOES(GLuint buf,
+                                 GLenum srcRGB,
+                                 GLenum dstRGB,
+                                 GLenum srcAlpha,
+                                 GLenum dstAlpha) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendFunciOES(GLuint buf, GLenum src, GLenum dst) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/blend_equation_advanced.txt","GL_NV_blend_equation_advanced")
+cmd void glBlendParameteriNV(GLenum pname, GLint value) {
+  requiresExtension(GL_NV_blend_equation_advanced)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_blit.txt","GL_ANGLE_framebuffer_blit")
+cmd void glBlitFramebufferANGLE(GLint      srcX0,
+                                GLint      srcY0,
+                                GLint      srcX1,
+                                GLint      srcY1,
+                                GLint      dstX0,
+                                GLint      dstY0,
+                                GLint      dstX1,
+                                GLint      dstY1,
+                                GLbitfield mask,
+                                GLenum     filter) {
+  requiresExtension(GL_ANGLE_framebuffer_blit)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_blit.txt","GL_NV_framebuffer_blit")
+cmd void glBlitFramebufferNV(GLint      srcX0,
+                             GLint      srcY0,
+                             GLint      srcX1,
+                             GLint      srcY1,
+                             GLint      dstX0,
+                             GLint      dstY0,
+                             GLint      dstX1,
+                             GLint      dstY1,
+                             GLbitfield mask,
+                             GLenum     filter) {
+  requiresExtension(GL_NV_framebuffer_blit)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_buffer_storage.txt","GL_EXT_buffer_storage")
+cmd void glBufferStorageEXT(GLenum target, GLsizeiptr size, const void* data, GLbitfield flags) {
+  requiresExtension(GL_EXT_buffer_storage)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd GLenum glClientWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glColorMaskiOES(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCompressedTexImage3DOES(GLenum      target,
+                                   GLint       level,
+                                   GLenum      internalformat,
+                                   GLsizei     width,
+                                   GLsizei     height,
+                                   GLsizei     depth,
+                                   GLint       border,
+                                   GLsizei     imageSize,
+                                   const void* data) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCompressedTexSubImage3DOES(GLenum      target,
+                                      GLint       level,
+                                      GLint       xoffset,
+                                      GLint       yoffset,
+                                      GLint       zoffset,
+                                      GLsizei     width,
+                                      GLsizei     height,
+                                      GLsizei     depth,
+                                      GLenum      format,
+                                      GLsizei     imageSize,
+                                      const void* data) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_copy_buffer.txt","GL_NV_copy_buffer")
+cmd void glCopyBufferSubDataNV(GLenum     readTarget,
+                               GLenum     writeTarget,
+                               GLintptr   readOffset,
+                               GLintptr   writeOffset,
+                               GLsizeiptr size) {
+  requiresExtension(GL_NV_copy_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_copy_image.txt","GL_OES_copy_image")
+cmd void glCopyImageSubDataOES(GLuint  srcName,
+                               GLenum  srcTarget,
+                               GLint   srcLevel,
+                               GLint   srcX,
+                               GLint   srcY,
+                               GLint   srcZ,
+                               GLuint  dstName,
+                               GLenum  dstTarget,
+                               GLint   dstLevel,
+                               GLint   dstX,
+                               GLint   dstY,
+                               GLint   dstZ,
+                               GLsizei srcWidth,
+                               GLsizei srcHeight,
+                               GLsizei srcDepth) {
+  requiresExtension(GL_OES_copy_image)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCopyPathNV(GLuint resultPath, GLuint srcPath) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCopyTexSubImage3DOES(GLenum  target,
+                                GLint   level,
+                                GLint   xoffset,
+                                GLint   yoffset,
+                                GLint   zoffset,
+                                GLint   x,
+                                GLint   y,
+                                GLsizei width,
+                                GLsizei height) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_copy_texture_levels.txt","GL_APPLE_copy_texture_levels")
+cmd void glCopyTextureLevelsAPPLE(GLuint  destinationTexture,
+                                  GLuint  sourceTexture,
+                                  GLint   sourceBaseLevel,
+                                  GLsizei sourceLevelCount) {
+  requiresExtension(GL_APPLE_copy_texture_levels)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverFillPathInstancedNV(GLsizei        numPaths,
+                                    GLenum         pathNameType,
+                                    const void*    paths,
+                                    GLuint         pathBase,
+                                    GLenum         coverMode,
+                                    GLenum         transformType,
+                                    const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverFillPathNV(GLuint path, GLenum coverMode) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverStrokePathInstancedNV(GLsizei        numPaths,
+                                      GLenum         pathNameType,
+                                      const void*    paths,
+                                      GLuint         pathBase,
+                                      GLenum         coverMode,
+                                      GLenum         transformType,
+                                      const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverStrokePathNV(GLuint path, GLenum coverMode) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/EGL_NV_coverage_sample.txt","GL_NV_coverage_sample")
+cmd void glCoverageMaskNV(GLboolean mask) {
+  requiresExtension(GL_NV_coverage_sample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/EGL_NV_coverage_sample.txt","GL_NV_coverage_sample")
+cmd void glCoverageOperationNV(GLenum operation) {
+  requiresExtension(GL_NV_coverage_sample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glCreatePerfQueryINTEL(GLuint queryId, GLuint* queryHandle) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd GLuint glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar** strings) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glDeleteFencesNV(GLsizei n, const GLuint* fences) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glDeletePathsNV(GLuint path, GLsizei range) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glDeletePerfQueryINTEL(GLuint queryHandle) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glDeleteProgramPipelinesEXT(GLsizei n, const PipelineId* pipelines) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glDeleteQueriesEXT(GLsizei count, const QueryId* queries) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+  q := queries[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Queries[q[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glDeleteSyncAPPLE(GLsync sync) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glDeleteVertexArraysOES(GLsizei count, const VertexArrayId* arrays) {
+  requiresExtension(GL_OES_vertex_array_object)
+
+  ctx := GetContext()
+  a := arrays[0:count]
+  for i in (0 .. count) {
+    ctx.Instances.VertexArrays[a[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDepthRangeArrayfvNV(GLuint first, GLsizei count, const GLfloat* v) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDepthRangeIndexedfNV(GLuint index, GLfloat n, GLfloat f) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glDisableDriverControlQCOM(GLuint driverControl) {
+  requiresExtension(GL_QCOM_driver_control)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDisableiNV(GLenum target, GLuint index) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glDisableiOES(GLenum target, GLuint index) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt","GL_EXT_discard_framebuffer")
+cmd void glDiscardFramebufferEXT(GLenum        target,
+                                 GLsizei       numAttachments,
+                                 const GLenum* attachments) {
+  requiresExtension(GL_EXT_discard_framebuffer)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+  requiresExtension(GL_ANGLE_instanced_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawArraysInstancedBaseInstanceEXT(GLenum  mode,
+                                              GLint   first,
+                                              GLsizei count,
+                                              GLsizei instancecount,
+                                              GLuint  baseinstance) {
+  requiresExtension(GL_EXT_base_instance)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/draw_instanced.txt","GL_EXT_draw_instanced")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount) {
+  requiresExtension(GL_EXT_draw_instanced)
+  requiresExtension(GL_EXT_instanced_arrays)
+  // TODO: Multiple extensions
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt","GL_NV_draw_instanced")
+cmd void glDrawArraysInstancedNV(GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+  requiresExtension(GL_NV_draw_instanced)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers.txt","GL_EXT_draw_buffers")
+cmd void glDrawBuffersEXT(GLsizei n, const GLenum* bufs) {
+  requiresExtension(GL_EXT_draw_buffers)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glDrawBuffersIndexedEXT(GLint n, const GLenum* location, const GLint* indices) {
+  requiresExtension(GL_EXT_multiview_draw_buffers)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_buffers.txt","GL_NV_draw_buffers")
+cmd void glDrawBuffersNV(GLsizei n, const GLenum* bufs) {
+  requiresExtension(GL_NV_draw_buffers)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawElementsBaseVertexEXT(GLenum      mode,
+                                     GLsizei     count,
+                                     GLenum      type,
+                                     const void* indices,
+                                     GLint       basevertex) {
+  requiresExtension(GL_EXT_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawElementsBaseVertexOES(GLenum      mode,
+                                     GLsizei     count,
+                                     GLenum      type,
+                                     const void* indices,
+                                     GLint       basevertex) {
+  requiresExtension(GL_OES_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glDrawElementsInstancedANGLE(GLenum      mode,
+                                      GLsizei     count,
+                                      GLenum      type,
+                                      const void* indices,
+                                      GLsizei     primcount) {
+  requiresExtension(GL_ANGLE_instanced_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawElementsInstancedBaseInstanceEXT(GLenum      mode,
+                                                GLsizei     count,
+                                                GLenum      type,
+                                                const void* indices,
+                                                GLsizei     instancecount,
+                                                GLuint      baseinstance) {
+  requiresExtension(GL_EXT_base_instance)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawElementsInstancedBaseVertexEXT(GLenum      mode,
+                                              GLsizei     count,
+                                              GLenum      type,
+                                              const void* indices,
+                                              GLsizei     instancecount,
+                                              GLint       basevertex) {
+  requiresExtension(GL_EXT_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawElementsInstancedBaseVertexOES(GLenum      mode,
+                                              GLsizei     count,
+                                              GLenum      type,
+                                              const void* indices,
+                                              GLsizei     instancecount,
+                                              GLint       basevertex) {
+  requiresExtension(GL_OES_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawElementsInstancedBaseVertexBaseInstanceEXT(GLenum      mode,
+                                                          GLsizei     count,
+                                                          GLenum      type,
+                                                          const void* indices,
+                                                          GLsizei     instancecount,
+                                                          GLint       basevertex,
+                                                          GLuint      baseinstance) {
+  requiresExtension(GL_EXT_base_instance)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/draw_instanced.txt","GL_EXT_draw_instanced")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glDrawElementsInstancedEXT(GLenum      mode,
+                                    GLsizei     count,
+                                    GLenum      type,
+                                    const void* indices,
+                                    GLsizei     primcount) {
+  requiresExtension(GL_EXT_draw_instanced)
+  requiresExtension(GL_EXT_instanced_arrays)
+  // TODO: Multiple extensions
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt","GL_NV_draw_instanced")
+cmd void glDrawElementsInstancedNV(GLenum      mode,
+                                   GLsizei     count,
+                                   GLenum      type,
+                                   const void* indices,
+                                   GLsizei     primcount) {
+  requiresExtension(GL_NV_draw_instanced)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawRangeElementsBaseVertexEXT(GLenum      mode,
+                                          GLuint      start,
+                                          GLuint      end,
+                                          GLsizei     count,
+                                          GLenum      type,
+                                          const void* indices,
+                                          GLint       basevertex) {
+  requiresExtension(GL_EXT_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawRangeElementsBaseVertexOES(GLenum      mode,
+                                          GLuint      start,
+                                          GLuint      end,
+                                          GLsizei     count,
+                                          GLenum      type,
+                                          const void* indices,
+                                          GLint       basevertex) {
+  requiresExtension(GL_OES_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt","GL_OES_EGL_image")
+cmd void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) {
+  requiresExtension(GL_OES_EGL_image)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt","GL_OES_EGL_image")
+cmd void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {
+  requiresExtension(GL_OES_EGL_image)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glEnableDriverControlQCOM(GLuint driverControl) {
+  requiresExtension(GL_QCOM_driver_control)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glEnableiNV(GLenum target, GLuint index) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glEnableiOES(GLenum target, GLuint index) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conditional_render.txt","GL_NV_conditional_render")
+cmd void glEndConditionalRenderNV() {
+  requiresExtension(GL_NV_conditional_render)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glEndPerfMonitorAMD(GLuint monitor) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glEndPerfQueryINTEL(GLuint queryHandle) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glEndQueryEXT(GLenum target) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt","GL_QCOM_tiled_rendering")
+cmd void glEndTilingQCOM(GLbitfield preserve_mask) {
+  requiresExtension(GL_QCOM_tiled_rendering)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetBufferPointervQCOM(GLenum target, void** params) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetBuffersQCOM(BufferId* buffers, GLint maxBuffers, GLint* numBuffers) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetFramebuffersQCOM(FramebufferId* framebuffers,
+                                  GLint          maxFramebuffers,
+                                  GLint*         numFramebuffers) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetProgramBinarySourceQCOM(ProgramId program,
+                                         GLenum    shadertype,
+                                         GLchar*   source,
+                                         GLint*    length) {
+  requiresExtension(GL_QCOM_extended_get2)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetProgramsQCOM(ProgramId* programs, GLint maxPrograms, GLint* numPrograms) {
+  requiresExtension(GL_QCOM_extended_get2)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetRenderbuffersQCOM(RenderbufferId* renderbuffers,
+                                   GLint           maxRenderbuffers,
+                                   GLint*          numRenderbuffers) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetShadersQCOM(ShaderId* shaders, GLint maxShaders, GLint* numShaders) {
+  requiresExtension(GL_QCOM_extended_get2)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexLevelParameterivQCOM(TextureId texture,
+                                         GLenum    face,
+                                         GLint     level,
+                                         GLenum    pname,
+                                         GLint*    params) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexSubImageQCOM(GLenum  target,
+                                 GLint   level,
+                                 GLint   xoffset,
+                                 GLint   yoffset,
+                                 GLint   zoffset,
+                                 GLsizei width,
+                                 GLsizei height,
+                                 GLsizei depth,
+                                 GLenum  format,
+                                 GLenum  type,
+                                 void*   texels) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexturesQCOM(TextureId* textures, GLint maxTextures, GLint* numTextures) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd GLboolean glExtIsProgramBinaryQCOM(ProgramId program) {
+  requiresExtension(GL_QCOM_extended_get2)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param) {
+  requiresExtension(GL_QCOM_extended_get)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd GLsync glFenceSyncAPPLE(GLenum condition, GLbitfield flags) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glFinishFenceNV(GLuint fence) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt","GL_EXT_map_buffer_range")
+cmd void glFlushMappedBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length) {
+  requiresExtension(GL_EXT_map_buffer_range)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt","GL_EXT_multisampled_render_to_texture")
+cmd void glFramebufferTexture2DMultisampleEXT(GLenum    target,
+                                              GLenum    attachment,
+                                              GLenum    textarget,
+                                              TextureId texture,
+                                              GLint     level,
+                                              GLsizei   samples) {
+  requiresExtension(GL_EXT_multisampled_render_to_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt","GL_IMG_multisampled_render_to_texture")
+cmd void glFramebufferTexture2DMultisampleIMG(GLenum    target,
+                                              GLenum    attachment,
+                                              GLenum    textarget,
+                                              TextureId texture,
+                                              GLint     level,
+                                              GLsizei   samples) {
+  requiresExtension(GL_IMG_multisampled_render_to_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glFramebufferTexture3DOES(GLenum    target,
+                                   GLenum    attachment,
+                                   GLenum    textarget,
+                                   TextureId texture,
+                                   GLint     level,
+                                   GLint     zoffset) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt","GL_OES_geometry_shader")
+cmd void glFramebufferTextureOES(GLenum target, GLenum attachment, TextureId texture, GLint level) {
+  requiresExtension(GL_OES_geometry_shader)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OVR/multiview.txt","GL_OVR_multiview")
+cmd void glFramebufferTextureMultiviewOVR(GLenum    target,
+                                          GLenum    attachment,
+                                          TextureId texture,
+                                          GLint     level,
+                                          GLint     baseViewIndex,
+                                          GLsizei   numViews) {
+  requiresExtension(GL_OVR_multiview)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glGenFencesNV(GLsizei n, GLuint* fences) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLuint glGenPathsNV(GLsizei range) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGenProgramPipelinesEXT(GLsizei n, PipelineId* pipelines) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGenQueriesEXT(GLsizei count, QueryId* queries) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+  q := queries[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!QueryId(?)
+    ctx.Instances.Queries[id] = new!Query()
+    q[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glGenVertexArraysOES(GLsizei count, VertexArrayId* arrays) {
+  requiresExtension(GL_OES_vertex_array_object)
+
+  a := arrays[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!VertexArrayId(?)
+    ctx.Instances.VertexArrays[id] = new!VertexArray()
+    a[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd void glGetBufferPointervOES(GLenum target, GLenum pname, void** params) {
+  requiresExtension(GL_OES_mapbuffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glGetDriverControlStringQCOM(GLuint   driverControl,
+                                      GLsizei  bufSize,
+                                      GLsizei* length,
+                                      GLchar*  driverControlString) {
+  requiresExtension(GL_QCOM_driver_control)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls) {
+  requiresExtension(GL_QCOM_driver_control)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetFirstPerfQueryIdINTEL(GLuint* queryId) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glGetFloati_vNV(GLenum target, GLuint index, GLfloat* data) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd GLenum glGetGraphicsResetStatusEXT() {
+  requiresExtension(GL_EXT_robustness)
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd GLenum glGetGraphicsResetStatusKHR() {
+  requiresExtension(GL_KHR_robustness)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetImageHandleNV(TextureId texture,
+                                GLint     level,
+                                GLboolean layered,
+                                GLint     layer,
+                                GLenum    format) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glGetInteger64vAPPLE(GLenum pname, GLint64* params) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glGetIntegeri_vEXT(GLenum target, GLuint index, GLint* data) {
+  requiresExtension(GL_EXT_multiview_draw_buffers)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/internalformat_sample_query.txt","GL_NV_internalformat_sample_query")
+cmd void glGetInternalformatSampleivNV(GLenum  target,
+                                       GLenum  internalformat,
+                                       GLsizei samples,
+                                       GLenum  pname,
+                                       GLsizei bufSize,
+                                       GLint*  params) {
+  requiresExtension(GL_NV_internalformat_sample_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetNextPerfQueryIdINTEL(GLuint queryId, GLuint* nextQueryId) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt","GL_EXT_debug_label")
+cmd void glGetObjectLabelEXT(GLenum   type,
+                             GLuint   object,
+                             GLsizei  bufSize,
+                             GLsizei* length,
+                             GLchar*  label) {
+  requiresExtension(GL_EXT_debug_label)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathCommandsNV(GLuint path, GLubyte* commands) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathCoordsNV(GLuint path, GLfloat* coords) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathDashArrayNV(GLuint path, GLfloat* dashArray) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLfloat glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathMetricRangeNV(GLbitfield metricQueryMask,
+                                GLuint     firstPathName,
+                                GLsizei    numPaths,
+                                GLsizei    stride,
+                                GLfloat*   metrics) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathMetricsNV(GLbitfield  metricQueryMask,
+                            GLsizei     numPaths,
+                            GLenum      pathNameType,
+                            const void* paths,
+                            GLuint      pathBase,
+                            GLsizei     stride,
+                            GLfloat*    metrics) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathParameterfvNV(GLuint path, GLenum pname, GLfloat* value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathParameterivNV(GLuint path, GLenum pname, GLint* value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathSpacingNV(GLenum      pathListMode,
+                            GLsizei     numPaths,
+                            GLenum      pathNameType,
+                            const void* paths,
+                            GLuint      pathBase,
+                            GLfloat     advanceScale,
+                            GLfloat     kerningScale,
+                            GLenum      transformType,
+                            GLfloat*    returnedSpacing) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfCounterInfoINTEL(GLuint    queryId,
+                                   GLuint    counterId,
+                                   GLuint    counterNameLength,
+                                   GLchar*   counterName,
+                                   GLuint    counterDescLength,
+                                   GLchar*   counterDesc,
+                                   GLuint*   counterOffset,
+                                   GLuint*   counterDataSize,
+                                   GLuint*   counterTypeEnum,
+                                   GLuint*   counterDataTypeEnum,
+                                   GLuint64* rawCounterMaxValue) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterDataAMD(GLuint  monitor,
+                                        GLenum  pname,
+                                        GLsizei dataSize,
+                                        GLuint* data,
+                                        GLint*  bytesWritten) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, void* data) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterStringAMD(GLuint   group,
+                                          GLuint   counter,
+                                          GLsizei  bufSize,
+                                          GLsizei* length,
+                                          GLchar*  counterString) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCountersAMD(GLuint  group,
+                                     GLint*  numCounters,
+                                     GLint*  maxActiveCounters,
+                                     GLsizei counterSize,
+                                     GLuint* counters) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorGroupStringAMD(GLuint   group,
+                                        GLsizei  bufSize,
+                                        GLsizei* length,
+                                        GLchar*  groupString) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryDataINTEL(GLuint  queryHandle,
+                                 GLuint  flags,
+                                 GLsizei dataSize,
+                                 GLvoid* data,
+                                 GLuint* bytesWritten) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryIdByNameINTEL(GLchar* queryName, GLuint* queryId) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryInfoINTEL(GLuint  queryId,
+                                 GLuint  queryNameLength,
+                                 GLchar* queryName,
+                                 GLuint* dataSize,
+                                 GLuint* noCounters,
+                                 GLuint* noInstances,
+                                 GLuint* capsMask) {
+  requiresExtension(GL_INTEL_performance_query)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt","GL_OES_get_program_binary")
+cmd void glGetProgramBinaryOES(ProgramId program,
+                               GLsizei   buffer_size,
+                               GLsizei*  bytes_written,
+                               GLenum*   binary_format,
+                               void*     binary) {
+  requiresExtension(GL_OES_get_program_binary)
+
+  l := as!s32(?)
+  bytes_written[0] = l
+  binary_format[0] = ?
+  write(binary[0:l])
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGetProgramPipelineInfoLogEXT(PipelineId pipeline,
+                                        GLsizei    bufSize,
+                                        GLsizei*   length,
+                                        GLchar*    infoLog) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGetProgramPipelineivEXT(PipelineId pipeline, GLenum pname, GLint* params) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetProgramResourcefvNV(ProgramId     program,
+                                  GLenum        programInterface,
+                                  GLuint        index,
+                                  GLsizei       propCount,
+                                  const GLenum* props,
+                                  GLsizei       bufSize,
+                                  GLsizei*      length,
+                                  GLfloat*      params) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjecti64vEXT(QueryId query, GLenum parameter, GLint64* value) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjectivEXT(QueryId query, GLenum parameter, GLint* value) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjectui64vEXT(QueryId query, GLenum parameter, GLuint64* value) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGetQueryObjectuivEXT(QueryId query, GLenum parameter, GLuint* value) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGetQueryivEXT(GLenum target, GLenum parameter, GLint* value) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetSamplerParameterIivOES(SamplerId sampler, GLenum pname, GLint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetSamplerParameterIuivOES(SamplerId sampler, GLenum pname, GLuint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glGetSyncivAPPLE(GLsync   sync,
+                          GLenum   pname,
+                          GLsizei  bufSize,
+                          GLsizei* length,
+                          GLint*   values) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetTexParameterIivOES(GLenum target, GLenum pname, GLint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetTexParameterIuivOES(GLenum target, GLenum pname, GLuint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetTextureHandleNV(TextureId texture) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetTextureSamplerHandleNV(TextureId texture, SamplerId sampler) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_translated_shader_source.txt","GL_ANGLE_translated_shader_source")
+cmd void glGetTranslatedShaderSourceANGLE(ShaderId shader,
+                                          GLsizei  bufsize,
+                                          GLsizei* length,
+                                          GLchar*  source) {
+  requiresExtension(GL_ANGLE_translated_shader_source)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glGetnUniformfvEXT(ProgramId       program,
+                            UniformLocation location,
+                            GLsizei         bufSize,
+                            GLfloat*        params) {
+  requiresExtension(GL_EXT_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformfvKHR(ProgramId       program,
+                            UniformLocation location,
+                            GLsizei         bufSize,
+                            GLfloat*        params) {
+  requiresExtension(GL_KHR_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glGetnUniformivEXT(ProgramId       program,
+                            UniformLocation location,
+                            GLsizei         bufSize,
+                            GLint*          params) {
+  requiresExtension(GL_EXT_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformivKHR(ProgramId       program,
+                            UniformLocation location,
+                            GLsizei         bufSize,
+                            GLint*          params) {
+  requiresExtension(GL_KHR_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformuivKHR(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         bufSize,
+                             GLuint*         params) {
+  requiresExtension(GL_KHR_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glInsertEventMarkerEXT(GLsizei length, const GLchar* marker) {
+  requiresExtension(GL_EXT_debug_marker)
+
+  if length > 0 {
+    read(marker[0:length])
+  } else {
+    _ = as!string(marker)
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd bool glIsEnablediOES(GLenum target, GLuint index) {
+  requiresExtension(GL_OES_draw_buffers_indexed)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd bool glIsEnablediNV(GLenum target, GLuint index) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd bool glIsFenceNV(GLuint fence) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd bool glIsImageHandleResidentNV(GLuint64 handle) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPathNV(GLuint path) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd bool glIsProgramPipelineEXT(PipelineId pipeline) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd bool glIsQueryEXT(QueryId query) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+  requiresExtension(GL_EXT_occlusion_query_boolean)
+  // TODO: Multiple extensions
+
+  ctx := GetContext()
+  return query in ctx.Instances.Queries
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd bool glIsSyncAPPLE(GLsync sync) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd bool glIsTextureHandleResidentNV(GLuint64 handle) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd bool glIsVertexArrayOES(VertexArrayId array) {
+  requiresExtension(GL_OES_vertex_array_object)
+
+  ctx := GetContext()
+  return array in ctx.Instances.VertexArrays
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt","GL_EXT_debug_label")
+cmd void glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar* label) {
+  requiresExtension(GL_EXT_debug_label)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeImageHandleNonResidentNV(GLuint64 handle) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeImageHandleResidentNV(GLuint64 handle, GLenum access) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeTextureHandleNonResidentNV(GLuint64 handle) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeTextureHandleResidentNV(GLuint64 handle) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd void* glMapBufferOES(GLenum target, GLenum access) {
+  requiresExtension(GL_OES_mapbuffer)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt","GL_EXT_map_buffer_range")
+cmd void* glMapBufferRangeEXT(GLenum     target,
+                              GLintptr   offset,
+                              GLsizeiptr length,
+                              GLbitfield access) {
+  requiresExtension(GL_EXT_map_buffer_range)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoad3x2fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoad3x3fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoadTranspose3x3fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMult3x2fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMult3x3fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMultTranspose3x3fNV(GLenum matrixMode, const GLfloat* m) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/multi_draw_arrays.txt","GL_EXT_multi_draw_arrays")
+cmd void glMultiDrawArraysEXT(GLenum         mode,
+                              const GLint*   first,
+                              const GLsizei* count,
+                              GLsizei        primcount) {
+  requiresExtension(GL_EXT_multi_draw_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multi_draw_indirect.txt","GL_EXT_multi_draw_indirect")
+cmd void glMultiDrawArraysIndirectEXT(GLenum      mode,
+                                      const void* indirect,
+                                      GLsizei     drawcount,
+                                      GLsizei     stride) {
+  requiresExtension(GL_EXT_multi_draw_indirect)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glMultiDrawElementsBaseVertexEXT(GLenum             mode,
+                                          const GLsizei*     count,
+                                          GLenum             type,
+                                          const void* const* indices,
+                                          GLsizei            primcount,
+                                          const GLint*       basevertex) {
+  requiresExtension(GL_EXT_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glMultiDrawElementsBaseVertexOES(GLenum             mode,
+                                          const GLsizei*     count,
+                                          GLenum             type,
+                                          const void* const* indices,
+                                          GLsizei            primcount,
+                                          const GLint*       basevertex) {
+  requiresExtension(GL_OES_draw_elements_base_vertex)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/multi_draw_arrays.txt","GL_EXT_multi_draw_arrays")
+cmd void glMultiDrawElementsEXT(GLenum             mode,
+                                const GLsizei*     count,
+                                GLenum             type,
+                                const void* const* indices,
+                                GLsizei            primcount) {
+  requiresExtension(GL_EXT_multi_draw_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multi_draw_indirect.txt","GL_EXT_multi_draw_indirect")
+cmd void glMultiDrawElementsIndirectEXT(GLenum      mode,
+                                        GLenum      type,
+                                        const void* indirect,
+                                        GLsizei     drawcount,
+                                        GLsizei     stride) {
+  requiresExtension(GL_EXT_multi_draw_indirect)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt","GL_OES_tessellation_shader")
+cmd void glPatchParameteriOES(GLenum pname, GLint value) {
+  requiresExtension(GL_OES_tessellation_shader)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCommandsNV(GLuint         path,
+                          GLsizei        numCommands,
+                          const GLubyte* commands,
+                          GLsizei        numCoords,
+                          GLenum         coordType,
+                          const void*    coords) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const void* coords) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCoverDepthFuncNV(GLenum func) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat* dashArray) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathGlyphIndexArrayNV(GLuint      firstPathName,
+                                   GLenum      fontTarget,
+                                   const void* fontName,
+                                   GLbitfield  fontStyle,
+                                   GLuint      firstGlyphIndex,
+                                   GLsizei     numGlyphs,
+                                   GLuint      pathParameterTemplate,
+                                   GLfloat     emScale) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathGlyphIndexRangeNV(GLenum      fontTarget,
+                                   const void* fontName,
+                                   GLbitfield  fontStyle,
+                                   GLuint      pathParameterTemplate,
+                                   GLfloat     emScale,
+                                   GLuint      baseAndCount) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathGlyphRangeNV(GLuint      firstPathName,
+                            GLenum      fontTarget,
+                            const void* fontName,
+                            GLbitfield  fontStyle,
+                            GLuint      firstGlyph,
+                            GLsizei     numGlyphs,
+                            GLenum      handleMissingGlyphs,
+                            GLuint      pathParameterTemplate,
+                            GLfloat     emScale) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathGlyphsNV(GLuint      firstPathName,
+                        GLenum      fontTarget,
+                        const void* fontName,
+                        GLbitfield  fontStyle,
+                        GLsizei     numGlyphs,
+                        GLenum      type,
+                        const void* charcodes,
+                        GLenum      handleMissingGlyphs,
+                        GLuint      pathParameterTemplate,
+                        GLfloat     emScale) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathMemoryGlyphIndexArrayNV(GLuint      firstPathName,
+                                         GLenum      fontTarget,
+                                         GLsizeiptr  fontSize,
+                                         const void* fontData,
+                                         GLsizei     faceIndex,
+                                         GLuint      firstGlyphIndex,
+                                         GLsizei     numGlyphs,
+                                         GLuint      pathParameterTemplate,
+                                         GLfloat     emScale) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterfNV(GLuint path, GLenum pname, GLfloat value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat* value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameteriNV(GLuint path, GLenum pname, GLint value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterivNV(GLuint path, GLenum pname, const GLint* value) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStringNV(GLuint path, GLenum format, GLsizei length, const void* pathString) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathSubCommandsNV(GLuint         path,
+                             GLsizei        commandStart,
+                             GLsizei        commandsToDelete,
+                             GLsizei        numCommands,
+                             const GLubyte* commands,
+                             GLsizei        numCoords,
+                             GLenum         coordType,
+                             const void*    coords) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathSubCoordsNV(GLuint      path,
+                           GLsizei     coordStart,
+                           GLsizei     numCoords,
+                           GLenum      coordType,
+                           const void* coords) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLboolean glPointAlongPathNV(GLuint   path,
+                                 GLsizei  startSegment,
+                                 GLsizei  numSegments,
+                                 GLfloat  distance,
+                                 GLfloat* x,
+                                 GLfloat* y,
+                                 GLfloat* tangentX,
+                                 GLfloat* tangentY) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt","GL_NV_polygon_mode")
+cmd void glPolygonModeNV(GLenum face, GLenum mode) {
+  requiresExtension(GL_NV_polygon_mode)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glPopGroupMarkerEXT() {
+  requiresExtension(GL_EXT_debug_marker)
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_primitive_bounding_box.txt","GL_OES_primitive_bounding_box")
+cmd void glPrimitiveBoundingBoxOES(GLfloat minX,
+                                   GLfloat minY,
+                                   GLfloat minZ,
+                                   GLfloat minW,
+                                   GLfloat maxX,
+                                   GLfloat maxY,
+                                   GLfloat maxZ,
+                                   GLfloat maxW) {
+  requiresExtension(GL_OES_primitive_bounding_box)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt","GL_OES_get_program_binary")
+cmd void glProgramBinaryOES(ProgramId   program,
+                            GLenum      binary_format,
+                            const void* binary,
+                            GLint       binary_size) {
+  requiresExtension(GL_OES_get_program_binary)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramParameteriEXT(ProgramId program, GLenum pname, GLint value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glProgramPathFragmentInputGenNV(ProgramId      program,
+                                         GLint          location,
+                                         GLenum         genMode,
+                                         GLint          components,
+                                         const GLfloat* coeffs) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1fEXT(ProgramId program, UniformLocation location, GLfloat v0) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1fvEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1iEXT(ProgramId program, UniformLocation location, GLint v0) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1ivEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLint*    value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1uiEXT(ProgramId program, UniformLocation location, GLuint v0) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1uivEXT(ProgramId       program,
+                                 UniformLocation location,
+                                 GLsizei         count,
+                                 const GLuint*   value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2fEXT(ProgramId       program,
+                               UniformLocation location,
+                               GLfloat         v0,
+                               GLfloat         v1) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2fvEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2iEXT(ProgramId program, UniformLocation location, GLint v0, GLint v1) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2ivEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLint*    value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2uiEXT(ProgramId program, UniformLocation location, GLuint v0, GLuint v1) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2uivEXT(ProgramId       program,
+                                 UniformLocation location,
+                                 GLsizei         count,
+                                 const GLuint*   value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3fEXT(ProgramId       program,
+                               UniformLocation location,
+                               GLfloat         v0,
+                               GLfloat         v1,
+                               GLfloat         v2) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3fvEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3iEXT(ProgramId       program,
+                               UniformLocation location,
+                               GLint           v0,
+                               GLint           v1,
+                               GLint           v2) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3ivEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLint*    value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3uiEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLuint          v0,
+                                GLuint          v1,
+                                GLuint          v2) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3uivEXT(ProgramId       program,
+                                 UniformLocation location,
+                                 GLsizei         count,
+                                 const GLuint*   value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4fEXT(ProgramId       program,
+                               UniformLocation location,
+                               GLfloat         v0,
+                               GLfloat         v1,
+                               GLfloat         v2,
+                               GLfloat         v3) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4fvEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4iEXT(ProgramId       program,
+                               UniformLocation location,
+                               GLint           v0,
+                               GLint           v1,
+                               GLint           v2,
+                               GLint           v3) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4ivEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLsizei         count,
+                                const GLint*    value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4uiEXT(ProgramId       program,
+                                UniformLocation location,
+                                GLuint          v0,
+                                GLuint          v1,
+                                GLuint          v2,
+                                GLuint          v3) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4uivEXT(ProgramId       program,
+                                 UniformLocation location,
+                                 GLsizei         count,
+                                 const GLuint*   value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glProgramUniformHandleui64NV(ProgramId program, UniformLocation location, GLuint64 value) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glProgramUniformHandleui64vNV(ProgramId       program,
+                                       UniformLocation location,
+                                       GLsizei         count,
+                                       const GLuint64* values) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2fvEXT(ProgramId       program,
+                                      UniformLocation location,
+                                      GLsizei         count,
+                                      GLboolean       transpose,
+                                      const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2x3fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2x4fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3fvEXT(ProgramId       program,
+                                      UniformLocation location,
+                                      GLsizei         count,
+                                      GLboolean       transpose,
+                                      const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3x2fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3x4fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4fvEXT(ProgramId       program,
+                                      UniformLocation location,
+                                      GLsizei         count,
+                                      GLboolean       transpose,
+                                      const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4x2fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4x3fvEXT(ProgramId       program,
+                                        UniformLocation location,
+                                        GLsizei         count,
+                                        GLboolean       transpose,
+                                        const GLfloat*  value) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glPushGroupMarkerEXT(GLsizei length, const GLchar* marker) {
+  requiresExtension(GL_EXT_debug_marker)
+
+  if length > 0 {
+    read(marker[0:length])
+  } else {
+    _ = as!string(marker)
+  }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glQueryCounterEXT(QueryId query, GLenum target) {
+  requiresExtension(GL_EXT_disjoint_timer_query)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glReadBufferIndexedEXT(GLenum src, GLint index) {
+  requiresExtension(GL_EXT_multiview_draw_buffers)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt","GL_NV_read_buffer")
+cmd void glReadBufferNV(GLenum mode) {
+  requiresExtension(GL_NV_read_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glReadnPixelsEXT(GLint   x,
+                          GLint   y,
+                          GLsizei width,
+                          GLsizei height,
+                          GLenum  format,
+                          GLenum  type,
+                          GLsizei bufSize,
+                          void*   data) {
+  requiresExtension(GL_EXT_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glReadnPixelsKHR(GLint   x,
+                          GLint   y,
+                          GLsizei width,
+                          GLsizei height,
+                          GLenum  format,
+                          GLenum  type,
+                          GLsizei bufSize,
+                          void*   data) {
+  requiresExtension(GL_KHR_robustness)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_multisample.txt","GL_ANGLE_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleANGLE(GLenum  target,
+                                               GLsizei samples,
+                                               GLenum  internalformat,
+                                               GLsizei width,
+                                               GLsizei height) {
+  requiresExtension(GL_ANGLE_framebuffer_multisample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt","GL_APPLE_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleAPPLE(GLenum  target,
+                                               GLsizei samples,
+                                               GLenum  internalformat,
+                                               GLsizei width,
+                                               GLsizei height) {
+  requiresExtension(GL_APPLE_framebuffer_multisample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt","GL_EXT_multisampled_render_to_texture")
+cmd void glRenderbufferStorageMultisampleEXT(GLenum  target,
+                                             GLsizei samples,
+                                             GLenum  internalformat,
+                                             GLsizei width,
+                                             GLsizei height) {
+  requiresExtension(GL_EXT_multisampled_render_to_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt","GL_IMG_multisampled_render_to_texture")
+cmd void glRenderbufferStorageMultisampleIMG(GLenum  target,
+                                             GLsizei samples,
+                                             GLenum  internalformat,
+                                             GLsizei width,
+                                             GLsizei height) {
+  requiresExtension(GL_IMG_multisampled_render_to_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_multisample.txt","GL_NV_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleNV(GLenum  target,
+                                            GLsizei samples,
+                                            GLenum  internalformat,
+                                            GLsizei width,
+                                            GLsizei height) {
+  requiresExtension(GL_NV_framebuffer_multisample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt","GL_APPLE_framebuffer_multisample")
+cmd void glResolveMultisampleFramebufferAPPLE() {
+  requiresExtension(GL_APPLE_framebuffer_multisample)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glSamplerParameterIivOES(SamplerId sampler, GLenum pname, const GLint* param) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glSamplerParameterIuivOES(SamplerId sampler, GLenum pname, const GLuint* param) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorArrayvNV(GLuint first, GLsizei count, const GLint* v) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorIndexedNV(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorIndexedvNV(GLuint index, const GLint* v) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glSelectPerfMonitorCountersAMD(GLuint    monitor,
+                                        GLboolean enable,
+                                        GLuint    group,
+                                        GLint     numCounters,
+                                        GLuint*   counterList) {
+  requiresExtension(GL_AMD_performance_monitor)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glSetFenceNV(GLuint fence, GLenum condition) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt","GL_QCOM_tiled_rendering")
+cmd void glStartTilingQCOM(GLuint     x,
+                           GLuint     y,
+                           GLuint     width,
+                           GLuint     height,
+                           GLbitfield preserveMask) {
+  requiresExtension(GL_QCOM_tiled_rendering)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilFillPathInstancedNV(GLsizei        numPaths,
+                                      GLenum         pathNameType,
+                                      const void*    paths,
+                                      GLuint         pathBase,
+                                      GLenum         fillMode,
+                                      GLuint         mask,
+                                      GLenum         transformType,
+                                      const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilStrokePathInstancedNV(GLsizei        numPaths,
+                                        GLenum         pathNameType,
+                                        const void*    paths,
+                                        GLuint         pathBase,
+                                        GLint          reference,
+                                        GLuint         mask,
+                                        GLenum         transformType,
+                                        const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverFillPathInstancedNV(GLsizei        numPaths,
+                                               GLenum         pathNameType,
+                                               const void*    paths,
+                                               GLuint         pathBase,
+                                               GLenum         fillMode,
+                                               GLuint         mask,
+                                               GLenum         coverMode,
+                                               GLenum         transformType,
+                                               const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverFillPathNV(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverStrokePathInstancedNV(GLsizei        numPaths,
+                                                 GLenum         pathNameType,
+                                                 const void*    paths,
+                                                 GLuint         pathBase,
+                                                 GLint          reference,
+                                                 GLuint         mask,
+                                                 GLenum         coverMode,
+                                                 GLenum         transformType,
+                                                 const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverStrokePathNV(GLuint path,
+                                        GLint  reference,
+                                        GLuint mask,
+                                        GLenum coverMode) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd GLboolean glTestFenceNV(GLuint fence) {
+  requiresExtension(GL_NV_fence)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt","GL_OES_texture_buffer")
+cmd void glTexBufferOES(GLenum target, GLenum internalformat, BufferId buffer) {
+  requiresExtension(GL_OES_texture_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt","GL_OES_texture_buffer")
+cmd void glTexBufferRangeOES(GLenum     target,
+                             GLenum     internalformat,
+                             BufferId   buffer,
+                             GLintptr   offset,
+                             GLsizeiptr size) {
+  requiresExtension(GL_OES_texture_buffer)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glTexImage3DOES(GLenum      target,
+                         GLint       level,
+                         GLenum      internalformat,
+                         GLsizei     width,
+                         GLsizei     height,
+                         GLsizei     depth,
+                         GLint       border,
+                         GLenum      format,
+                         GLenum      type,
+                         const void* pixels) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_sparse_texture.txt","GL_EXT_sparse_texture")
+cmd void glTexPageCommitmentARB(GLenum    target,
+                                GLint     level,
+                                GLint     xoffset,
+                                GLint     yoffset,
+                                GLint     zoffset,
+                                GLsizei   width,
+                                GLsizei   height,
+                                GLsizei   depth,
+                                GLboolean commit) {
+  requiresExtension(GL_EXT_sparse_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glTexParameterIivOES(GLenum target, GLenum pname, const GLint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glTexParameterIuivOES(GLenum target, GLenum pname, const GLuint* params) {
+  requiresExtension(GL_OES_texture_border_clamp)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum format, GLsizei width) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage2DEXT(GLenum  target,
+                           GLsizei levels,
+                           GLenum  format,
+                           GLsizei width,
+                           GLsizei height) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage3DEXT(GLenum  target,
+                           GLsizei levels,
+                           GLenum  format,
+                           GLsizei width,
+                           GLsizei height,
+                           GLsizei depth) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glTexSubImage3DOES(GLenum      target,
+                            GLint       level,
+                            GLint       xoffset,
+                            GLint       yoffset,
+                            GLint       zoffset,
+                            GLsizei     width,
+                            GLsizei     height,
+                            GLsizei     depth,
+                            GLenum      format,
+                            GLenum      type,
+                            const void* pixels) {
+  requiresExtension(GL_OES_texture_3D)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage1DEXT(TextureId texture,
+                               GLenum    target,
+                               GLsizei   levels,
+                               GLenum    format,
+                               GLsizei   width) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage2DEXT(TextureId texture,
+                               GLenum    target,
+                               GLsizei   levels,
+                               GLenum    format,
+                               GLsizei   width,
+                               GLsizei   height) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage3DEXT(TextureId texture,
+                               GLenum    target,
+                               GLsizei   levels,
+                               GLenum    format,
+                               GLsizei   width,
+                               GLsizei   height,
+                               GLsizei   depth) {
+  requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_view.txt","GL_EXT_texture_view")
+cmd void glTextureViewEXT(TextureId texture,
+                          GLenum    target,
+                          GLuint    origtexture,
+                          GLenum    internalformat,
+                          GLuint    minlevel,
+                          GLuint    numlevels,
+                          GLuint    minlayer,
+                          GLuint    numlayers) {
+  requiresExtension(GL_EXT_texture_view)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_view.txt","GL_OES_texture_view")
+cmd void glTextureViewOES(TextureId texture,
+                          GLenum    target,
+                          GLuint    origtexture,
+                          GLenum    internalformat,
+                          GLuint    minlevel,
+                          GLuint    numlevels,
+                          GLuint    minlayer,
+                          GLuint    numlayers) {
+  requiresExtension(GL_OES_texture_view)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glTransformPathNV(GLuint         resultPath,
+                           GLuint         srcPath,
+                           GLenum         transformType,
+                           const GLfloat* transformValues) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glUniformHandleui64NV(UniformLocation location, GLuint64 value) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glUniformHandleui64vNV(UniformLocation location, GLsizei count, const GLuint64* value) {
+  requiresExtension(GL_NV_bindless_texture)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix2x3fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix2x4fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix3x2fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix3x4fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix4x2fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix4x3fvNV(UniformLocation location,
+                                GLsizei         count,
+                                GLboolean       transpose,
+                                const GLfloat*  value) {
+  requiresExtension(GL_NV_non_square_matrices)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd GLboolean glUnmapBufferOES(GLenum target) {
+  requiresExtension(GL_OES_mapbuffer)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glUseProgramStagesEXT(PipelineId pipeline, GLbitfield stages, ProgramId program) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glValidateProgramPipelineEXT(PipelineId pipeline) {
+  requiresExtension(GL_EXT_separate_shader_objects)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glVertexAttribDivisorANGLE(AttributeLocation index, GLuint divisor) {
+  requiresExtension(GL_ANGLE_instanced_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glVertexAttribDivisorEXT(AttributeLocation index, GLuint divisor) {
+  requiresExtension(GL_EXT_instanced_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_instanced_arrays.txt","GL_NV_instanced_arrays")
+cmd void glVertexAttribDivisorNV(AttributeLocation index, GLuint divisor) {
+  requiresExtension(GL_NV_instanced_arrays)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportArrayvNV(GLuint first, GLsizei count, const GLfloat* v) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportIndexedfNV(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportIndexedfvNV(GLuint index, const GLfloat* v) {
+  requiresExtension(GL_NV_viewport_array)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+  requiresExtension(GL_APPLE_sync)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glWeightPathsNV(GLuint         resultPath,
+                         GLsizei        numPaths,
+                         const GLuint*  paths,
+                         const GLfloat* weights) {
+  requiresExtension(GL_NV_path_rendering)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glCoverageModulationNV(GLenum components) {
+  requiresExtension(GL_NV_framebuffer_mixed_samples)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glCoverageModulationTableNV(GLsizei n, const GLfloat* v) {
+  requiresExtension(GL_NV_framebuffer_mixed_samples)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fragment_coverage_to_color.txt","GL_NV_fragment_coverage_to_color")
+cmd void glFragmentCoverageColorNV(GLuint color) {
+  requiresExtension(GL_NV_fragment_coverage_to_color)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glFramebufferSampleLocationsfvNV(GLenum         target,
+                                          GLuint         start,
+                                          GLsizei        count,
+                                          const GLfloat* v) {
+  requiresExtension(GL_NV_sample_locations)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glGetCoverageModulationTableNV(GLsizei bufsize, GLfloat* v) {
+  requiresExtension(GL_NV_framebuffer_mixed_samples)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glNamedFramebufferSampleLocationsfvNV(FramebufferId  framebuffer,
+                                               GLuint         start,
+                                               GLsizei        count,
+                                               const GLfloat* v) {
+  requiresExtension(GL_NV_sample_locations)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/raster_multisample.txt","GL_EXT_raster_multisample")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/texture_filter_minmax.txt","GL_EXT_texture_filter_minmax")
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glRasterSamplesEXT(GLuint samples, GLboolean fixedsamplelocations) {
+  requiresExtension(GL_EXT_raster_multisample)
+  requiresExtension(GL_EXT_texture_filter_minmax)
+  requiresExtension(GL_NV_framebuffer_mixed_samples)
+  // TODO: Multiple extensions
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glResolveDepthValuesNV() {
+  requiresExtension(GL_NV_sample_locations)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conservative_raster.txt","GL_NV_conservative_raster")
+cmd void glSubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits) {
+  requiresExtension(GL_NV_conservative_raster)
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/fragment_operations.api b/gfxapi/gles/api/fragment_operations.api
new file mode 100644
index 0000000..ce1f329
--- /dev/null
+++ b/gfxapi/gles/api/fragment_operations.api
@@ -0,0 +1,339 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendColor.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendColor.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlendColor.xhtml","OpenGL ES 3.1")
+cmd void glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Blending.BlendColor = Color(
+    Red:    red,
+    Green:  green,
+    Blue:   blue,
+    Alpha:  alpha,
+  )
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendEquation.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendEquation.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlendEquation.xhtml","OpenGL ES 3.1")
+cmd void glBlendEquation(GLenum equation) {
+  minRequiredVersion(2, 0)
+  switch (equation) {
+    case GL_FUNC_ADD, GL_FUNC_REVERSE_SUBTRACT, GL_FUNC_SUBTRACT: {
+      // version 2.0
+    }
+    case GL_MAX, GL_MIN: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(equation)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Blending.BlendEquationRgb = equation
+  ctx.Blending.BlendEquationAlpha = equation
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendEquationSeparate.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendEquationSeparate.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlendEquationSeparate.xhtml","OpenGL ES 3.1")
+cmd void glBlendEquationSeparate(GLenum rgb, GLenum alpha) {
+  minRequiredVersion(2, 0)
+  switch (rgb) {
+    case GL_FUNC_ADD, GL_FUNC_REVERSE_SUBTRACT, GL_FUNC_SUBTRACT: {
+      // version 2.0
+    }
+    case GL_MAX, GL_MIN: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(rgb)
+    }
+  }
+  switch (alpha) {
+    case GL_FUNC_ADD, GL_FUNC_REVERSE_SUBTRACT, GL_FUNC_SUBTRACT: {
+      // version 2.0
+    }
+    case GL_MAX, GL_MIN: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(alpha)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Blending.BlendEquationRgb = rgb
+  ctx.Blending.BlendEquationAlpha = alpha
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendFunc.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendFunc.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlendFunc.xhtml","OpenGL ES 3.1")
+cmd void glBlendFunc(GLenum src_factor, GLenum dst_factor) {
+  minRequiredVersion(2, 0)
+  switch (src_factor) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_ALPHA_SATURATE, GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(src_factor)
+    }
+  }
+  switch (dst_factor) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(dst_factor)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Blending.SrcRgbBlendFactor = src_factor
+  ctx.Blending.SrcAlphaBlendFactor = src_factor
+  ctx.Blending.DstRgbBlendFactor = dst_factor
+  ctx.Blending.DstAlphaBlendFactor = dst_factor
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBlendFuncSeparate.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlendFuncSeparate.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlendFuncSeparate.xhtml","OpenGL ES 3.1")
+cmd void glBlendFuncSeparate(GLenum src_factor_rgb,
+                             GLenum dst_factor_rgb,
+                             GLenum src_factor_alpha,
+                             GLenum dst_factor_alpha) {
+  minRequiredVersion(2, 0)
+  switch (src_factor_rgb) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_ALPHA_SATURATE, GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(src_factor_rgb)
+    }
+  }
+  switch (dst_factor_rgb) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(dst_factor_rgb)
+    }
+  }
+  switch (src_factor_alpha) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_ALPHA_SATURATE, GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(src_factor_alpha)
+    }
+  }
+  switch (dst_factor_alpha) {
+    case GL_CONSTANT_ALPHA, GL_CONSTANT_COLOR, GL_DST_ALPHA, GL_DST_COLOR, GL_ONE,
+        GL_ONE_MINUS_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_COLOR, GL_ONE_MINUS_DST_ALPHA,
+        GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA,
+        GL_SRC_COLOR, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(dst_factor_alpha)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Blending.SrcRgbBlendFactor = src_factor_rgb
+  ctx.Blending.DstRgbBlendFactor = dst_factor_rgb
+  ctx.Blending.SrcAlphaBlendFactor = src_factor_alpha
+  ctx.Blending.DstAlphaBlendFactor = dst_factor_alpha
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDepthFunc.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDepthFunc.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDepthFunc.xhtml","OpenGL ES 3.1")
+cmd void glDepthFunc(GLenum function) {
+  minRequiredVersion(2, 0)
+  switch (function) {
+    case GL_ALWAYS, GL_EQUAL, GL_GEQUAL, GL_GREATER, GL_LEQUAL, GL_LESS, GL_NEVER, GL_NOTEQUAL: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(function)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Rasterizing.DepthTestFunction = function
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glSampleCoverage.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glSampleCoverage.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSampleCoverage.xhtml","OpenGL ES 3.1")
+cmd void glSampleCoverage(GLfloat value, GLboolean invert) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.SampleCoverageValue = value
+  ctx.Rasterizing.SampleCoverageInvert = invert
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSampleMaski.xhtml","OpenGL ES 3.1")
+cmd void glSampleMaski(GLuint maskNumber, GLbitfield mask) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glScissor.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glScissor.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glScissor.xhtml","OpenGL ES 3.1")
+cmd void glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.Scissor = Rect(x, y, width, height)
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilFunc.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilFunc.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilFunc.xhtml","OpenGL ES 3.1")
+cmd void glStencilFunc(GLenum func, GLint ref, GLuint mask) {
+  minRequiredVersion(2, 0)
+  switch (func) {
+    case GL_ALWAYS, GL_EQUAL, GL_GEQUAL, GL_GREATER, GL_LEQUAL, GL_LESS, GL_NEVER, GL_NOTEQUAL: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(func)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilFuncSeparate.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilFuncSeparate.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilFuncSeparate.xhtml","OpenGL ES 3.1")
+cmd void glStencilFuncSeparate(GLenum face, GLenum function, GLint reference_value, GLuint mask) {
+  minRequiredVersion(2, 0)
+  switch (face) {
+    case GL_BACK, GL_FRONT, GL_FRONT_AND_BACK: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(face)
+    }
+  }
+  switch (function) {
+    case GL_ALWAYS, GL_EQUAL, GL_GEQUAL, GL_GREATER, GL_LEQUAL, GL_LESS, GL_NEVER, GL_NOTEQUAL: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(function)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilOp.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilOp.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilOp.xhtml","OpenGL ES 3.1")
+cmd void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
+  minRequiredVersion(2, 0)
+  switch (fail) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(fail)
+    }
+  }
+  switch (zfail) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(zfail)
+    }
+  }
+  switch (zpass) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(zpass)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilOpSeparate.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilOpSeparate.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilOpSeparate.xhtml","OpenGL ES 3.1")
+cmd void glStencilOpSeparate(GLenum face,
+                             GLenum stencil_fail,
+                             GLenum stencil_pass_depth_fail,
+                             GLenum stencil_pass_depth_pass) {
+  minRequiredVersion(2, 0)
+  switch (face) {
+    case GL_BACK, GL_FRONT, GL_FRONT_AND_BACK: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(face)
+    }
+  }
+  switch (stencil_fail) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(stencil_fail)
+    }
+  }
+  switch (stencil_pass_depth_fail) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(stencil_pass_depth_fail)
+    }
+  }
+  switch (stencil_pass_depth_pass) {
+    case GL_DECR, GL_DECR_WRAP, GL_INCR, GL_INCR_WRAP, GL_INVERT, GL_KEEP, GL_REPLACE, GL_ZERO: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(stencil_pass_depth_pass)
+    }
+  }
+
+}
+
diff --git a/gfxapi/gles/api/framebuffer.api b/gfxapi/gles/api/framebuffer.api
new file mode 100644
index 0000000..3e7e900
--- /dev/null
+++ b/gfxapi/gles/api/framebuffer.api
@@ -0,0 +1,858 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindFramebuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindFramebuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindFramebuffer.xhtml","OpenGL ES 3.1")
+cmd void glBindFramebuffer(GLenum target, FramebufferId framebuffer) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_FRAMEBUFFER: {
+      // version 2.0
+    }
+    case GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  ctx := GetContext()
+  if !(framebuffer in ctx.Instances.Framebuffers) {
+    ctx.Instances.Framebuffers[framebuffer] = new!Framebuffer()
+  }
+  if target == GL_FRAMEBUFFER {
+    ctx.BoundFramebuffers[GL_READ_FRAMEBUFFER] = framebuffer
+    ctx.BoundFramebuffers[GL_DRAW_FRAMEBUFFER] = framebuffer
+  } else {
+    ctx.BoundFramebuffers[target] = framebuffer
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindRenderbuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindRenderbuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindRenderbuffer.xhtml","OpenGL ES 3.1")
+cmd void glBindRenderbuffer(GLenum target, RenderbufferId renderbuffer) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_RENDERBUFFER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  ctx := GetContext()
+  if !(renderbuffer in ctx.Instances.Renderbuffers) {
+    ctx.Instances.Renderbuffers[renderbuffer] = new!Renderbuffer()
+  }
+  ctx.BoundRenderbuffers[target] = renderbuffer
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBlitFramebuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBlitFramebuffer.xhtml","OpenGL ES 3.1")
+cmd void glBlitFramebuffer(GLint      srcX0,
+                           GLint      srcY0,
+                           GLint      srcX1,
+                           GLint      srcY1,
+                           GLint      dstX0,
+                           GLint      dstY0,
+                           GLint      dstX1,
+                           GLint      dstY1,
+                           GLbitfield mask,
+                           GLenum     filter) {
+  minRequiredVersion(3, 0)
+  supportsBits(mask, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
+  if (GL_COLOR_BUFFER_BIT in mask) {
+  }
+  if (GL_DEPTH_BUFFER_BIT in mask) {
+  }
+  if (GL_STENCIL_BUFFER_BIT in mask) {
+  }
+  switch (filter) {
+    case GL_LINEAR, GL_NEAREST: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(filter)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCheckFramebufferStatus.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCheckFramebufferStatus.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCheckFramebufferStatus.xhtml","OpenGL ES 3.1")
+cmd GLenum glCheckFramebufferStatus(GLenum target) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_FRAMEBUFFER: {
+      // version 2.0
+    }
+    case GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glClear.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClear.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClear.xhtml","OpenGL ES 3.1")
+cmd void glClear(GLbitfield mask) {
+  minRequiredVersion(2, 0)
+  supportsBits(mask, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
+  if (GL_COLOR_BUFFER_BIT in mask) {
+  }
+  if (GL_DEPTH_BUFFER_BIT in mask) {
+  }
+  if (GL_STENCIL_BUFFER_BIT in mask) {
+  }
+
+  // TODO: use(Clearing.ClearColor) when mask[GL_COLOR_BUFFER_BIT] == true
+  if (GL_COLOR_BUFFER_BIT in mask) {
+    // color := BoundFramebuffers[GL_FRAMEBUFFER].Attachments[GL_COLOR_ATTACHMENT0]
+    // error("Attempting to clear missing color buffer") if !exists(color)
+    // modifies(color.Levels[0].Data) // COMPILATION ERROR
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearBuffer.xhtml","OpenGL ES 3.1")
+cmd void glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
+  minRequiredVersion(3, 0)
+  switch (buffer) {
+    case GL_DEPTH_STENCIL: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(buffer)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearBuffer.xhtml","OpenGL ES 3.1")
+cmd void glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value) {
+  minRequiredVersion(3, 0)
+  switch (buffer) {
+    case GL_COLOR, GL_DEPTH: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(buffer)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearBuffer.xhtml","OpenGL ES 3.1")
+cmd void glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value) {
+  minRequiredVersion(3, 0)
+  switch (buffer) {
+    case GL_COLOR, GL_STENCIL: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(buffer)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearBuffer.xhtml","OpenGL ES 3.1")
+cmd void glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value) {
+  minRequiredVersion(3, 0)
+  switch (buffer) {
+    case GL_COLOR: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(buffer)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearColor.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearColor.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearColor.xhtml","OpenGL ES 3.1")
+cmd void glClearColor(GLfloat r, GLfloat g, GLfloat b, GLfloat a) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Clearing.ClearColor = Color(r, g, b, a)
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearDepthf.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearDepthf.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearDepthf.xhtml","OpenGL ES 3.1")
+cmd void glClearDepthf(GLfloat depth) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Clearing.ClearDepth = depth
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearStencil.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClearStencil.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClearStencil.xhtml","OpenGL ES 3.1")
+cmd void glClearStencil(GLint stencil) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Clearing.ClearStencil = stencil
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glColorMask.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glColorMask.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glColorMask.xhtml","OpenGL ES 3.1")
+cmd void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.ColorMaskRed = red
+  ctx.Rasterizing.ColorMaskGreen = green
+  ctx.Rasterizing.ColorMaskBlue = blue
+  ctx.Rasterizing.ColorMaskAlpha = alpha
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteFramebuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteFramebuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteFramebuffers.xhtml","OpenGL ES 3.1")
+cmd void glDeleteFramebuffers(GLsizei count, const FramebufferId* framebuffers) {
+  minRequiredVersion(2, 0)
+
+  f := framebuffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Framebuffers[f[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteRenderbuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteRenderbuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteRenderbuffers.xhtml","OpenGL ES 3.1")
+cmd void glDeleteRenderbuffers(GLsizei count, const RenderbufferId* renderbuffers) {
+  minRequiredVersion(2, 0)
+
+  r := renderbuffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Renderbuffers[r[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDepthMask.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDepthMask.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDepthMask.xhtml","OpenGL ES 3.1")
+cmd void glDepthMask(GLboolean enabled) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.DepthMask = enabled
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFramebufferParameteri.xhtml","OpenGL ES 3.1")
+cmd void glFramebufferParameteri(GLenum target, GLenum pname, GLint param) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS, GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+        GL_FRAMEBUFFER_DEFAULT_SAMPLES, GL_FRAMEBUFFER_DEFAULT_WIDTH: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glFramebufferRenderbuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFramebufferRenderbuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFramebufferRenderbuffer.xhtml","OpenGL ES 3.1")
+cmd void glFramebufferRenderbuffer(GLenum         framebuffer_target,
+                                   GLenum         framebuffer_attachment,
+                                   GLenum         renderbuffer_target,
+                                   RenderbufferId renderbuffer) {
+  minRequiredVersion(2, 0)
+  switch (framebuffer_target) {
+    case GL_FRAMEBUFFER: {
+      // version 2.0
+    }
+    case GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(framebuffer_target)
+    }
+  }
+  switch (framebuffer_attachment) {
+    case GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT: {
+      // version 2.0
+    }
+    case GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT10, GL_COLOR_ATTACHMENT11, GL_COLOR_ATTACHMENT12,
+        GL_COLOR_ATTACHMENT13, GL_COLOR_ATTACHMENT14, GL_COLOR_ATTACHMENT15, GL_COLOR_ATTACHMENT2,
+        GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4, GL_COLOR_ATTACHMENT5, GL_COLOR_ATTACHMENT6,
+        GL_COLOR_ATTACHMENT7, GL_COLOR_ATTACHMENT8, GL_COLOR_ATTACHMENT9,
+        GL_DEPTH_STENCIL_ATTACHMENT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(framebuffer_attachment)
+    }
+  }
+  switch (renderbuffer_target) {
+    case GL_RENDERBUFFER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(renderbuffer_target)
+    }
+  }
+
+  ctx := GetContext()
+  target := switch (framebuffer_target) {
+    case GL_FRAMEBUFFER:      as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_DRAW_FRAMEBUFFER: as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_READ_FRAMEBUFFER: as!GLenum(GL_READ_FRAMEBUFFER)
+  }
+  framebufferId := ctx.BoundFramebuffers[target]
+  framebuffer := ctx.Instances.Framebuffers[framebufferId]
+  attachment := framebuffer.Attachments[framebuffer_attachment]
+  if (renderbuffer == 0) {
+    attachment.Type = GL_NONE
+  } else {
+    attachment.Type = GL_RENDERBUFFER
+  }
+  attachment.Object = as!u32(renderbuffer)
+  attachment.TextureLevel = 0
+  attachment.CubeMapFace = GL_TEXTURE_CUBE_MAP_POSITIVE_X
+  framebuffer.Attachments[framebuffer_attachment] = attachment
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glFramebufferTexture2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFramebufferTexture2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFramebufferTexture2D.xhtml","OpenGL ES 3.1")
+cmd void glFramebufferTexture2D(GLenum    framebuffer_target,
+                                GLenum    framebuffer_attachment,
+                                GLenum    texture_target,
+                                TextureId texture,
+                                GLint     level) {
+  minRequiredVersion(2, 0)
+  switch (framebuffer_target) {
+    case GL_FRAMEBUFFER: {
+      // version 2.0
+    }
+    case GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(framebuffer_target)
+    }
+  }
+  switch (framebuffer_attachment) {
+    case GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT: {
+      // version 2.0
+    }
+    case GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT10, GL_COLOR_ATTACHMENT11, GL_COLOR_ATTACHMENT12,
+        GL_COLOR_ATTACHMENT13, GL_COLOR_ATTACHMENT14, GL_COLOR_ATTACHMENT15, GL_COLOR_ATTACHMENT2,
+        GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4, GL_COLOR_ATTACHMENT5, GL_COLOR_ATTACHMENT6,
+        GL_COLOR_ATTACHMENT7, GL_COLOR_ATTACHMENT8, GL_COLOR_ATTACHMENT9,
+        GL_DEPTH_STENCIL_ATTACHMENT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(framebuffer_attachment)
+    }
+  }
+  switch (texture_target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(texture_target)
+    }
+  }
+
+  ctx := GetContext()
+  target := switch (framebuffer_target) {
+    case GL_FRAMEBUFFER:      as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_DRAW_FRAMEBUFFER: as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_READ_FRAMEBUFFER: as!GLenum(GL_READ_FRAMEBUFFER)
+  }
+  framebufferId := ctx.BoundFramebuffers[target]
+  framebuffer := ctx.Instances.Framebuffers[framebufferId]
+  attachment := framebuffer.Attachments[framebuffer_attachment]
+  if (texture == 0) {
+    attachment.Type = GL_NONE
+    attachment.Object = 0
+    attachment.TextureLevel = 0
+    attachment.CubeMapFace = GL_TEXTURE_CUBE_MAP_POSITIVE_X
+  } else {
+    attachment.Type = GL_TEXTURE
+    attachment.Object = as!u32(texture)
+    attachment.TextureLevel = level
+    attachment.CubeMapFace = switch (texture_target) {
+      case GL_TEXTURE_2D:                  GL_TEXTURE_CUBE_MAP_POSITIVE_X
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_X: GL_TEXTURE_CUBE_MAP_POSITIVE_X
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: GL_TEXTURE_CUBE_MAP_POSITIVE_Y
+      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: GL_TEXTURE_CUBE_MAP_POSITIVE_Z
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: GL_TEXTURE_CUBE_MAP_NEGATIVE_X
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
+      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
+    }
+  }
+  framebuffer.Attachments[framebuffer_attachment] = attachment
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFramebufferTextureLayer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFramebufferTextureLayer.xhtml","OpenGL ES 3.1")
+cmd void glFramebufferTextureLayer(GLenum    target,
+                                   GLenum    attachment,
+                                   TextureId texture,
+                                   GLint     level,
+                                   GLint     layer) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (attachment) {
+    case GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT10, GL_COLOR_ATTACHMENT11,
+        GL_COLOR_ATTACHMENT12, GL_COLOR_ATTACHMENT13, GL_COLOR_ATTACHMENT14, GL_COLOR_ATTACHMENT15,
+        GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4, GL_COLOR_ATTACHMENT5,
+        GL_COLOR_ATTACHMENT6, GL_COLOR_ATTACHMENT7, GL_COLOR_ATTACHMENT8, GL_COLOR_ATTACHMENT9,
+        GL_DEPTH_ATTACHMENT, GL_DEPTH_STENCIL_ATTACHMENT, GL_STENCIL_ATTACHMENT: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(attachment)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenFramebuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenFramebuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenFramebuffers.xhtml","OpenGL ES 3.1")
+cmd void glGenFramebuffers(GLsizei count, FramebufferId* framebuffers) {
+  minRequiredVersion(2, 0)
+
+  f := framebuffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!FramebufferId(?)
+    ctx.Instances.Framebuffers[id] = new!Framebuffer()
+    f[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenRenderbuffers.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenRenderbuffers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenRenderbuffers.xhtml","OpenGL ES 3.1")
+cmd void glGenRenderbuffers(GLsizei count, RenderbufferId* renderbuffers) {
+  minRequiredVersion(2, 0)
+
+  r := renderbuffers[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!RenderbufferId(?)
+    ctx.Instances.Renderbuffers[id] = new!Renderbuffer()
+    r[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetFramebufferAttachmentParameteriv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetFramebufferAttachmentParameteriv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetFramebufferAttachmentParameteriv.xhtml","OpenGL ES 3.1")
+cmd void glGetFramebufferAttachmentParameteriv(GLenum framebuffer_target,
+                                               GLenum attachment,
+                                               GLenum parameter,
+                                               GLint* value) {
+  minRequiredVersion(2, 0)
+  switch (framebuffer_target) {
+    case GL_FRAMEBUFFER: {
+      // version 2.0
+    }
+    case GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(framebuffer_target)
+    }
+  }
+  switch (attachment) {
+    case GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT: {
+      // version 2.0
+    }
+    case GL_BACK, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT10, GL_COLOR_ATTACHMENT11,
+        GL_COLOR_ATTACHMENT12, GL_COLOR_ATTACHMENT13, GL_COLOR_ATTACHMENT14, GL_COLOR_ATTACHMENT15,
+        GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4, GL_COLOR_ATTACHMENT5,
+        GL_COLOR_ATTACHMENT6, GL_COLOR_ATTACHMENT7, GL_COLOR_ATTACHMENT8, GL_COLOR_ATTACHMENT9,
+        GL_DEPTH, GL_DEPTH_STENCIL_ATTACHMENT, GL_STENCIL: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(attachment)
+    }
+  }
+  switch (parameter) {
+    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+        GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE, GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: {
+      // version 2.0
+    }
+    case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+        GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+        GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+        GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+        GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  target := switch (framebuffer_target) {
+    case GL_FRAMEBUFFER:      as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_DRAW_FRAMEBUFFER: as!GLenum(GL_DRAW_FRAMEBUFFER)
+    case GL_READ_FRAMEBUFFER: as!GLenum(GL_READ_FRAMEBUFFER)
+  }
+  framebufferId := ctx.BoundFramebuffers[target]
+  framebuffer := ctx.Instances.Framebuffers[framebufferId]
+  a := framebuffer.Attachments[attachment]
+  value[0] = switch (parameter) {
+    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:           as!s32(a.Type)
+    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:           as!s32(a.Object)
+    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:         as!s32(a.TextureLevel)
+    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: as!s32(a.CubeMapFace)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetFramebufferParameteriv.xhtml","OpenGL ES 3.1")
+cmd void glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint* params) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS, GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+        GL_FRAMEBUFFER_DEFAULT_SAMPLES, GL_FRAMEBUFFER_DEFAULT_WIDTH: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetRenderbufferParameteriv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetRenderbufferParameteriv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetRenderbufferParameteriv.xhtml","OpenGL ES 3.1")
+cmd void glGetRenderbufferParameteriv(GLenum target, GLenum parameter, GLint* values) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_RENDERBUFFER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_RENDERBUFFER_ALPHA_SIZE, GL_RENDERBUFFER_BLUE_SIZE, GL_RENDERBUFFER_DEPTH_SIZE,
+        GL_RENDERBUFFER_GREEN_SIZE, GL_RENDERBUFFER_HEIGHT, GL_RENDERBUFFER_INTERNAL_FORMAT,
+        GL_RENDERBUFFER_RED_SIZE, GL_RENDERBUFFER_STENCIL_SIZE, GL_RENDERBUFFER_WIDTH: {
+      // version 2.0
+    }
+    case GL_RENDERBUFFER_SAMPLES: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.BoundRenderbuffers[target]
+  rb := ctx.Instances.Renderbuffers[id]
+  values[0] = switch (parameter) {
+    case GL_RENDERBUFFER_WIDTH:           rb.Width
+    case GL_RENDERBUFFER_HEIGHT:          rb.Height
+    case GL_RENDERBUFFER_INTERNAL_FORMAT: as!s32(rb.Format)
+  // TODO:
+  // case GL_RENDERBUFFER_RED_SIZE:        ?
+  // case GL_RENDERBUFFER_GREEN_SIZE:      ?
+  // case GL_RENDERBUFFER_BLUE_SIZE:       ?
+  // case GL_RENDERBUFFER_ALPHA_SIZE:      ?
+  // case GL_RENDERBUFFER_DEPTH_SIZE:      ?
+  // case GL_RENDERBUFFER_STENCIL_SIZE:    ?
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glInvalidateFramebuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glInvalidateFramebuffer.xhtml","OpenGL ES 3.1")
+cmd void glInvalidateFramebuffer(GLenum target, GLsizei count, const GLenum* attachments) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_FRAMEBUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glInvalidateSubFramebuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glInvalidateSubFramebuffer.xhtml","OpenGL ES 3.1")
+cmd void glInvalidateSubFramebuffer(GLenum        target,
+                                    GLsizei       numAttachments,
+                                    const GLenum* attachments,
+                                    GLint         x,
+                                    GLint         y,
+                                    GLsizei       width,
+                                    GLsizei       height) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_FRAMEBUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsFramebuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsFramebuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsFramebuffer.xhtml","OpenGL ES 3.1")
+cmd bool glIsFramebuffer(FramebufferId framebuffer) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return framebuffer in ctx.Instances.Framebuffers
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsRenderbuffer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsRenderbuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsRenderbuffer.xhtml","OpenGL ES 3.1")
+cmd bool glIsRenderbuffer(RenderbufferId renderbuffer) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return renderbuffer in ctx.Instances.Renderbuffers
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glReadBuffer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glReadBuffer.xhtml","OpenGL ES 3.1")
+cmd void glReadBuffer(GLenum src) {
+  minRequiredVersion(3, 0)
+  switch (src) {
+    case GL_BACK, GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT10,
+        GL_COLOR_ATTACHMENT11, GL_COLOR_ATTACHMENT12, GL_COLOR_ATTACHMENT13, GL_COLOR_ATTACHMENT14,
+        GL_COLOR_ATTACHMENT15, GL_COLOR_ATTACHMENT2, GL_COLOR_ATTACHMENT3, GL_COLOR_ATTACHMENT4,
+        GL_COLOR_ATTACHMENT5, GL_COLOR_ATTACHMENT6, GL_COLOR_ATTACHMENT7, GL_COLOR_ATTACHMENT8,
+        GL_COLOR_ATTACHMENT9, GL_NONE: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(src)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glReadPixels.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glReadPixels.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glReadPixels.xhtml","OpenGL ES 3.1")
+cmd void glReadPixels(GLint   x,
+                      GLint   y,
+                      GLsizei width,
+                      GLsizei height,
+                      GLenum  format,
+                      GLenum  type,
+                      void*   data) {
+  minRequiredVersion(2, 0)
+  switch (format) {
+    case GL_ALPHA, GL_RGB, GL_RGBA: {
+      // version 2.0
+    }
+    case GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RED, GL_RED_INTEGER, GL_RG, GL_RGBA_INTEGER,
+        GL_RGB_INTEGER, GL_RG_INTEGER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1,
+        GL_UNSIGNED_SHORT_5_6_5: {
+      // version 2.0
+    }
+    case GL_BYTE, GL_FLOAT, GL_HALF_FLOAT, GL_INT, GL_UNSIGNED_INT,
+        GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_2_10_10_10_REV,
+        GL_UNSIGNED_INT_5_9_9_9_REV: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+
+  write(data[0:imageSize(as!u32(width), as!u32(height), as!GLenum(format), type)])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glRenderbufferStorage.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glRenderbufferStorage.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glRenderbufferStorage.xhtml","OpenGL ES 3.1")
+cmd void glRenderbufferStorage(GLenum target, GLenum format, GLsizei width, GLsizei height) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_RENDERBUFFER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_DEPTH_COMPONENT16, GL_RGB565, GL_RGB5_A1, GL_RGBA4, GL_STENCIL_INDEX8: {
+      // version 2.0
+    }
+    case GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32F,
+        GL_R16I, GL_R16UI, GL_R32I, GL_R32UI, GL_R8, GL_R8I, GL_R8UI, GL_RG16I, GL_RG16UI,
+        GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_RGB10_A2, GL_RGB10_A2UI, GL_RGB8,
+        GL_RGBA16I, GL_RGBA16UI, GL_RGBA32I, GL_RGBA32UI, GL_RGBA8, GL_RGBA8I, GL_RGBA8UI,
+        GL_SRGB8_ALPHA8: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.BoundRenderbuffers[target]
+  rb := ctx.Instances.Renderbuffers[id]
+  rb.Format = format
+  rb.Width = width
+  rb.Height = height
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glRenderbufferStorageMultisample.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glRenderbufferStorageMultisample.xhtml","OpenGL ES 3.1")
+cmd void glRenderbufferStorageMultisample(GLenum  target,
+                                          GLsizei samples,
+                                          GLenum  format,
+                                          GLsizei width,
+                                          GLsizei height) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_RENDERBUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24,
+        GL_DEPTH_COMPONENT32F, GL_R16I, GL_R16UI, GL_R32I, GL_R32UI, GL_R8, GL_R8I, GL_R8UI,
+        GL_RG16I, GL_RG16UI, GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_RGB10_A2,
+        GL_RGB10_A2UI, GL_RGB565, GL_RGB5_A1, GL_RGB8, GL_RGBA16I, GL_RGBA16UI, GL_RGBA32I,
+        GL_RGBA32UI, GL_RGBA4, GL_RGBA8, GL_RGBA8I, GL_RGBA8UI, GL_SRGB8_ALPHA8, GL_STENCIL_INDEX8:
+    {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilMask.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilMask.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilMask.xhtml","OpenGL ES 3.1")
+cmd void glStencilMask(GLuint mask) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.StencilMask[GL_FRONT] = mask
+  ctx.Rasterizing.StencilMask[GL_BACK] = mask
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glStencilMaskSeparate.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glStencilMaskSeparate.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glStencilMaskSeparate.xhtml","OpenGL ES 3.1")
+cmd void glStencilMaskSeparate(GLenum face, GLuint mask) {
+  minRequiredVersion(2, 0)
+  switch (face) {
+    case GL_BACK, GL_FRONT, GL_FRONT_AND_BACK: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(face)
+    }
+  }
+
+  ctx := GetContext()
+  switch (face) {
+    case GL_FRONT:          ctx.Rasterizing.StencilMask[GL_FRONT] = mask
+    case GL_BACK:           ctx.Rasterizing.StencilMask[GL_BACK] = mask
+    case GL_FRONT_AND_BACK: {
+      ctx.Rasterizing.StencilMask[GL_FRONT] = mask
+      ctx.Rasterizing.StencilMask[GL_BACK] = mask
+    }
+  }
+}
+
diff --git a/gfxapi/gles/api/glbitfield.api b/gfxapi/gles/api/glbitfield.api
new file mode 100644
index 0000000..3e57ce9
--- /dev/null
+++ b/gfxapi/gles/api/glbitfield.api
@@ -0,0 +1,224 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+bitfield GLbitfield {
+  GL_CURRENT_BIT                             = 0x00000001,
+  GL_POINT_BIT                               = 0x00000002,
+  GL_LINE_BIT                                = 0x00000004,
+  GL_POLYGON_BIT                             = 0x00000008,
+  GL_POLYGON_STIPPLE_BIT                     = 0x00000010,
+  GL_PIXEL_MODE_BIT                          = 0x00000020,
+  GL_LIGHTING_BIT                            = 0x00000040,
+  GL_FOG_BIT                                 = 0x00000080,
+  GL_DEPTH_BUFFER_BIT                        = 0x00000100,
+  GL_ACCUM_BUFFER_BIT                        = 0x00000200,
+  GL_STENCIL_BUFFER_BIT                      = 0x00000400,
+  GL_VIEWPORT_BIT                            = 0x00000800,
+  GL_TRANSFORM_BIT                           = 0x00001000,
+  GL_ENABLE_BIT                              = 0x00002000,
+  GL_COLOR_BUFFER_BIT                        = 0x00004000,
+  GL_HINT_BIT                                = 0x00008000,
+  GL_EVAL_BIT                                = 0x00010000,
+  GL_LIST_BIT                                = 0x00020000,
+  GL_TEXTURE_BIT                             = 0x00040000,
+  GL_SCISSOR_BIT                             = 0x00080000,
+  GL_MULTISAMPLE_BIT                         = 0x20000000,
+  GL_MULTISAMPLE_BIT_ARB                     = 0x20000000,
+  GL_MULTISAMPLE_BIT_EXT                     = 0x20000000,
+  GL_MULTISAMPLE_BIT_3DFX                    = 0x20000000,
+  GL_ALL_ATTRIB_BITS                         = 0xFFFFFFFF,
+  GL_COVERAGE_BUFFER_BIT_NV                  = 0x00008000,
+  GL_CLIENT_PIXEL_STORE_BIT                  = 0x00000001,
+  GL_CLIENT_VERTEX_ARRAY_BIT                 = 0x00000002,
+  GL_CLIENT_ALL_ATTRIB_BITS                  = 0xFFFFFFFF,
+  GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT     = 0x00000001,
+  GL_CONTEXT_FLAG_DEBUG_BIT                  = 0x00000002,
+  GL_CONTEXT_FLAG_DEBUG_BIT_KHR              = 0x00000002,
+  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB      = 0x00000004,
+  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT          = 0x00000004,
+  GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR           = 0x00000008,
+  GL_CONTEXT_CORE_PROFILE_BIT                = 0x00000001,
+  GL_CONTEXT_COMPATIBILITY_PROFILE_BIT       = 0x00000002,
+  GL_MAP_READ_BIT                            = 0x00000001,
+  GL_MAP_READ_BIT_EXT                        = 0x00000001,
+  GL_MAP_WRITE_BIT                           = 0x00000002,
+  GL_MAP_WRITE_BIT_EXT                       = 0x00000002,
+  GL_MAP_INVALIDATE_RANGE_BIT                = 0x00000004,
+  GL_MAP_INVALIDATE_RANGE_BIT_EXT            = 0x00000004,
+  GL_MAP_INVALIDATE_BUFFER_BIT               = 0x00000008,
+  GL_MAP_INVALIDATE_BUFFER_BIT_EXT           = 0x00000008,
+  GL_MAP_FLUSH_EXPLICIT_BIT                  = 0x00000010,
+  GL_MAP_FLUSH_EXPLICIT_BIT_EXT              = 0x00000010,
+  GL_MAP_UNSYNCHRONIZED_BIT                  = 0x00000020,
+  GL_MAP_UNSYNCHRONIZED_BIT_EXT              = 0x00000020,
+  GL_MAP_PERSISTENT_BIT                      = 0x00000040,
+  GL_MAP_PERSISTENT_BIT_EXT                  = 0x00000040,
+  GL_MAP_COHERENT_BIT                        = 0x00000080,
+  GL_MAP_COHERENT_BIT_EXT                    = 0x00000080,
+  GL_DYNAMIC_STORAGE_BIT                     = 0x00000100,
+  GL_DYNAMIC_STORAGE_BIT_EXT                 = 0x00000100,
+  GL_CLIENT_STORAGE_BIT                      = 0x00000200,
+  GL_CLIENT_STORAGE_BIT_EXT                  = 0x00000200,
+  GL_SPARSE_STORAGE_BIT_ARB                  = 0x00000400,
+  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT         = 0x00000001,
+  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT     = 0x00000001,
+  GL_ELEMENT_ARRAY_BARRIER_BIT               = 0x00000002,
+  GL_ELEMENT_ARRAY_BARRIER_BIT_EXT           = 0x00000002,
+  GL_UNIFORM_BARRIER_BIT                     = 0x00000004,
+  GL_UNIFORM_BARRIER_BIT_EXT                 = 0x00000004,
+  GL_TEXTURE_FETCH_BARRIER_BIT               = 0x00000008,
+  GL_TEXTURE_FETCH_BARRIER_BIT_EXT           = 0x00000008,
+  GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV     = 0x00000010,
+  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT         = 0x00000020,
+  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT     = 0x00000020,
+  GL_COMMAND_BARRIER_BIT                     = 0x00000040,
+  GL_COMMAND_BARRIER_BIT_EXT                 = 0x00000040,
+  GL_PIXEL_BUFFER_BARRIER_BIT                = 0x00000080,
+  GL_PIXEL_BUFFER_BARRIER_BIT_EXT            = 0x00000080,
+  GL_TEXTURE_UPDATE_BARRIER_BIT              = 0x00000100,
+  GL_TEXTURE_UPDATE_BARRIER_BIT_EXT          = 0x00000100,
+  GL_BUFFER_UPDATE_BARRIER_BIT               = 0x00000200,
+  GL_BUFFER_UPDATE_BARRIER_BIT_EXT           = 0x00000200,
+  GL_FRAMEBUFFER_BARRIER_BIT                 = 0x00000400,
+  GL_FRAMEBUFFER_BARRIER_BIT_EXT             = 0x00000400,
+  GL_TRANSFORM_FEEDBACK_BARRIER_BIT          = 0x00000800,
+  GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT      = 0x00000800,
+  GL_ATOMIC_COUNTER_BARRIER_BIT              = 0x00001000,
+  GL_ATOMIC_COUNTER_BARRIER_BIT_EXT          = 0x00001000,
+  GL_SHADER_STORAGE_BARRIER_BIT              = 0x00002000,
+  GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT        = 0x00004000,
+  GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT    = 0x00004000,
+  GL_QUERY_BUFFER_BARRIER_BIT                = 0x00008000,
+  GL_ALL_BARRIER_BITS                        = 0xFFFFFFFF,
+  GL_ALL_BARRIER_BITS_EXT                    = 0xFFFFFFFF,
+  GL_SYNC_FLUSH_COMMANDS_BIT                 = 0x00000001,
+  GL_SYNC_FLUSH_COMMANDS_BIT_APPLE           = 0x00000001,
+  GL_VERTEX_SHADER_BIT                       = 0x00000001,
+  GL_VERTEX_SHADER_BIT_EXT                   = 0x00000001,
+  GL_FRAGMENT_SHADER_BIT                     = 0x00000002,
+  GL_FRAGMENT_SHADER_BIT_EXT                 = 0x00000002,
+  GL_GEOMETRY_SHADER_BIT                     = 0x00000004,
+  GL_GEOMETRY_SHADER_BIT_EXT                 = 0x00000004,
+  GL_GEOMETRY_SHADER_BIT_OES                 = 0x00000004,
+  GL_TESS_CONTROL_SHADER_BIT                 = 0x00000008,
+  GL_TESS_CONTROL_SHADER_BIT_EXT             = 0x00000008,
+  GL_TESS_CONTROL_SHADER_BIT_OES             = 0x00000008,
+  GL_TESS_EVALUATION_SHADER_BIT              = 0x00000010,
+  GL_TESS_EVALUATION_SHADER_BIT_EXT          = 0x00000010,
+  GL_TESS_EVALUATION_SHADER_BIT_OES          = 0x00000010,
+  GL_COMPUTE_SHADER_BIT                      = 0x00000020,
+  GL_ALL_SHADER_BITS                         = 0xFFFFFFFF,
+  GL_ALL_SHADER_BITS_EXT                     = 0xFFFFFFFF,
+  GL_TEXTURE_STORAGE_SPARSE_BIT_AMD          = 0x00000001,
+  GL_RED_BIT_ATI                             = 0x00000001,
+  GL_GREEN_BIT_ATI                           = 0x00000002,
+  GL_BLUE_BIT_ATI                            = 0x00000004,
+  GL_2X_BIT_ATI                              = 0x00000001,
+  GL_4X_BIT_ATI                              = 0x00000002,
+  GL_8X_BIT_ATI                              = 0x00000004,
+  GL_HALF_BIT_ATI                            = 0x00000008,
+  GL_QUARTER_BIT_ATI                         = 0x00000010,
+  GL_EIGHTH_BIT_ATI                          = 0x00000020,
+  GL_SATURATE_BIT_ATI                        = 0x00000040,
+  GL_COMP_BIT_ATI                            = 0x00000002,
+  GL_NEGATE_BIT_ATI                          = 0x00000004,
+  GL_BIAS_BIT_ATI                            = 0x00000008,
+  GL_TRACE_OPERATIONS_BIT_MESA               = 0x00000001,
+  GL_TRACE_PRIMITIVES_BIT_MESA               = 0x00000002,
+  GL_TRACE_ARRAYS_BIT_MESA                   = 0x00000004,
+  GL_TRACE_TEXTURES_BIT_MESA                 = 0x00000008,
+  GL_TRACE_PIXELS_BIT_MESA                   = 0x00000010,
+  GL_TRACE_ERRORS_BIT_MESA                   = 0x00000020,
+  GL_TRACE_ALL_BITS_MESA                     = 0x0000FFFF,
+  GL_BOLD_BIT_NV                             = 0x00000001,
+  GL_ITALIC_BIT_NV                           = 0x00000002,
+  GL_GLYPH_WIDTH_BIT_NV                      = 0x00000001,
+  GL_GLYPH_HEIGHT_BIT_NV                     = 0x00000002,
+  GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV       = 0x00000004,
+  GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV       = 0x00000008,
+  GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x00000010,
+  GL_GLYPH_VERTICAL_BEARING_X_BIT_NV         = 0x00000020,
+  GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV         = 0x00000040,
+  GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV   = 0x00000080,
+  GL_GLYPH_HAS_KERNING_BIT_NV                = 0x00000100,
+  GL_FONT_X_MIN_BOUNDS_BIT_NV                = 0x00010000,
+  GL_FONT_Y_MIN_BOUNDS_BIT_NV                = 0x00020000,
+  GL_FONT_X_MAX_BOUNDS_BIT_NV                = 0x00040000,
+  GL_FONT_Y_MAX_BOUNDS_BIT_NV                = 0x00080000,
+  GL_FONT_UNITS_PER_EM_BIT_NV                = 0x00100000,
+  GL_FONT_ASCENDER_BIT_NV                    = 0x00200000,
+  GL_FONT_DESCENDER_BIT_NV                   = 0x00400000,
+  GL_FONT_HEIGHT_BIT_NV                      = 0x00800000,
+  GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV           = 0x01000000,
+  GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV          = 0x02000000,
+  GL_FONT_UNDERLINE_POSITION_BIT_NV          = 0x04000000,
+  GL_FONT_UNDERLINE_THICKNESS_BIT_NV         = 0x08000000,
+  GL_FONT_HAS_KERNING_BIT_NV                 = 0x10000000,
+  GL_FONT_NUM_GLYPH_INDICES_BIT_NV           = 0x20000000,
+  GL_PERFQUERY_SINGLE_CONTEXT_INTEL          = 0x00000000,
+  GL_PERFQUERY_GLOBAL_CONTEXT_INTEL          = 0x00000001,
+  GL_VERTEX23_BIT_PGI                        = 0x00000004,
+  GL_VERTEX4_BIT_PGI                         = 0x00000008,
+  GL_COLOR3_BIT_PGI                          = 0x00010000,
+  GL_COLOR4_BIT_PGI                          = 0x00020000,
+  GL_EDGEFLAG_BIT_PGI                        = 0x00040000,
+  GL_INDEX_BIT_PGI                           = 0x00080000,
+  GL_MAT_AMBIENT_BIT_PGI                     = 0x00100000,
+  GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI         = 0x00200000,
+  GL_MAT_DIFFUSE_BIT_PGI                     = 0x00400000,
+  GL_MAT_EMISSION_BIT_PGI                    = 0x00800000,
+  GL_MAT_COLOR_INDEXES_BIT_PGI               = 0x01000000,
+  GL_MAT_SHININESS_BIT_PGI                   = 0x02000000,
+  GL_MAT_SPECULAR_BIT_PGI                    = 0x04000000,
+  GL_NORMAL_BIT_PGI                          = 0x08000000,
+  GL_TEXCOORD1_BIT_PGI                       = 0x10000000,
+  GL_TEXCOORD2_BIT_PGI                       = 0x20000000,
+  GL_TEXCOORD3_BIT_PGI                       = 0x40000000,
+  GL_TEXCOORD4_BIT_PGI                       = 0x80000000,
+  GL_COLOR_BUFFER_BIT0_QCOM                  = 0x00000001,
+  GL_COLOR_BUFFER_BIT1_QCOM                  = 0x00000002,
+  GL_COLOR_BUFFER_BIT2_QCOM                  = 0x00000004,
+  GL_COLOR_BUFFER_BIT3_QCOM                  = 0x00000008,
+  GL_COLOR_BUFFER_BIT4_QCOM                  = 0x00000010,
+  GL_COLOR_BUFFER_BIT5_QCOM                  = 0x00000020,
+  GL_COLOR_BUFFER_BIT6_QCOM                  = 0x00000040,
+  GL_COLOR_BUFFER_BIT7_QCOM                  = 0x00000080,
+  GL_DEPTH_BUFFER_BIT0_QCOM                  = 0x00000100,
+  GL_DEPTH_BUFFER_BIT1_QCOM                  = 0x00000200,
+  GL_DEPTH_BUFFER_BIT2_QCOM                  = 0x00000400,
+  GL_DEPTH_BUFFER_BIT3_QCOM                  = 0x00000800,
+  GL_DEPTH_BUFFER_BIT4_QCOM                  = 0x00001000,
+  GL_DEPTH_BUFFER_BIT5_QCOM                  = 0x00002000,
+  GL_DEPTH_BUFFER_BIT6_QCOM                  = 0x00004000,
+  GL_DEPTH_BUFFER_BIT7_QCOM                  = 0x00008000,
+  GL_STENCIL_BUFFER_BIT0_QCOM                = 0x00010000,
+  GL_STENCIL_BUFFER_BIT1_QCOM                = 0x00020000,
+  GL_STENCIL_BUFFER_BIT2_QCOM                = 0x00040000,
+  GL_STENCIL_BUFFER_BIT3_QCOM                = 0x00080000,
+  GL_STENCIL_BUFFER_BIT4_QCOM                = 0x00100000,
+  GL_STENCIL_BUFFER_BIT5_QCOM                = 0x00200000,
+  GL_STENCIL_BUFFER_BIT6_QCOM                = 0x00400000,
+  GL_STENCIL_BUFFER_BIT7_QCOM                = 0x00800000,
+  GL_MULTISAMPLE_BUFFER_BIT0_QCOM            = 0x01000000,
+  GL_MULTISAMPLE_BUFFER_BIT1_QCOM            = 0x02000000,
+  GL_MULTISAMPLE_BUFFER_BIT2_QCOM            = 0x04000000,
+  GL_MULTISAMPLE_BUFFER_BIT3_QCOM            = 0x08000000,
+  GL_MULTISAMPLE_BUFFER_BIT4_QCOM            = 0x10000000,
+  GL_MULTISAMPLE_BUFFER_BIT5_QCOM            = 0x20000000,
+  GL_MULTISAMPLE_BUFFER_BIT6_QCOM            = 0x40000000,
+  GL_MULTISAMPLE_BUFFER_BIT7_QCOM            = 0x80000000,
+  GL_TEXTURE_DEFORMATION_BIT_SGIX            = 0x00000001,
+  GL_GEOMETRY_DEFORMATION_BIT_SGIX           = 0x00000002,
+}
+
diff --git a/gfxapi/gles/api/glenum.api b/gfxapi/gles/api/glenum.api
new file mode 100644
index 0000000..75f4bc1
--- /dev/null
+++ b/gfxapi/gles/api/glenum.api
@@ -0,0 +1,5329 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+enum GLenum {
+  GL_TERMINATE_SEQUENCE_COMMAND_NV                              = 0x00000000,
+  GL_NOP_COMMAND_NV                                             = 0x00000001,
+  GL_DRAW_ELEMENTS_COMMAND_NV                                   = 0x00000002,
+  GL_DRAW_ARRAYS_COMMAND_NV                                     = 0x00000003,
+  GL_DRAW_ELEMENTS_STRIP_COMMAND_NV                             = 0x00000004,
+  GL_DRAW_ARRAYS_STRIP_COMMAND_NV                               = 0x00000005,
+  GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV                         = 0x00000006,
+  GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV                           = 0x00000007,
+  GL_ELEMENT_ADDRESS_COMMAND_NV                                 = 0x00000008,
+  GL_ATTRIBUTE_ADDRESS_COMMAND_NV                               = 0x00000009,
+  GL_UNIFORM_ADDRESS_COMMAND_NV                                 = 0x0000000A,
+  GL_BLEND_COLOR_COMMAND_NV                                     = 0x0000000B,
+  GL_STENCIL_REF_COMMAND_NV                                     = 0x0000000C,
+  GL_LINE_WIDTH_COMMAND_NV                                      = 0x0000000D,
+  GL_POLYGON_OFFSET_COMMAND_NV                                  = 0x0000000E,
+  GL_ALPHA_REF_COMMAND_NV                                       = 0x0000000F,
+  GL_VIEWPORT_COMMAND_NV                                        = 0x00000010,
+  GL_SCISSOR_COMMAND_NV                                         = 0x00000011,
+  GL_FRONT_FACE_COMMAND_NV                                      = 0x00000012,
+  GL_LAYOUT_DEFAULT_INTEL                                       = 0x00000000,
+  GL_LAYOUT_LINEAR_INTEL                                        = 0x00000001,
+  GL_LAYOUT_LINEAR_CPU_CACHED_INTEL                             = 0x00000002,
+  GL_CLOSE_PATH_NV                                              = 0x00000000,
+  GL_MOVE_TO_NV                                                 = 0x00000002,
+  GL_RELATIVE_MOVE_TO_NV                                        = 0x00000003,
+  GL_LINE_TO_NV                                                 = 0x00000004,
+  GL_RELATIVE_LINE_TO_NV                                        = 0x00000005,
+  GL_HORIZONTAL_LINE_TO_NV                                      = 0x00000006,
+  GL_RELATIVE_HORIZONTAL_LINE_TO_NV                             = 0x00000007,
+  GL_VERTICAL_LINE_TO_NV                                        = 0x00000008,
+  GL_RELATIVE_VERTICAL_LINE_TO_NV                               = 0x00000009,
+  GL_QUADRATIC_CURVE_TO_NV                                      = 0x0000000A,
+  GL_RELATIVE_QUADRATIC_CURVE_TO_NV                             = 0x0000000B,
+  GL_CUBIC_CURVE_TO_NV                                          = 0x0000000C,
+  GL_RELATIVE_CUBIC_CURVE_TO_NV                                 = 0x0000000D,
+  GL_SMOOTH_QUADRATIC_CURVE_TO_NV                               = 0x0000000E,
+  GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV                      = 0x0000000F,
+  GL_SMOOTH_CUBIC_CURVE_TO_NV                                   = 0x00000010,
+  GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV                          = 0x00000011,
+  GL_SMALL_CCW_ARC_TO_NV                                        = 0x00000012,
+  GL_RELATIVE_SMALL_CCW_ARC_TO_NV                               = 0x00000013,
+  GL_SMALL_CW_ARC_TO_NV                                         = 0x00000014,
+  GL_RELATIVE_SMALL_CW_ARC_TO_NV                                = 0x00000015,
+  GL_LARGE_CCW_ARC_TO_NV                                        = 0x00000016,
+  GL_RELATIVE_LARGE_CCW_ARC_TO_NV                               = 0x00000017,
+  GL_LARGE_CW_ARC_TO_NV                                         = 0x00000018,
+  GL_RELATIVE_LARGE_CW_ARC_TO_NV                                = 0x00000019,
+  GL_CONIC_CURVE_TO_NV                                          = 0x0000001A,
+  GL_RELATIVE_CONIC_CURVE_TO_NV                                 = 0x0000001B,
+  GL_SHARED_EDGE_NV                                             = 0x000000C0,
+  GL_ROUNDED_RECT_NV                                            = 0x000000E8,
+  GL_RELATIVE_ROUNDED_RECT_NV                                   = 0x000000E9,
+  GL_ROUNDED_RECT2_NV                                           = 0x000000EA,
+  GL_RELATIVE_ROUNDED_RECT2_NV                                  = 0x000000EB,
+  GL_ROUNDED_RECT4_NV                                           = 0x000000EC,
+  GL_RELATIVE_ROUNDED_RECT4_NV                                  = 0x000000ED,
+  GL_ROUNDED_RECT8_NV                                           = 0x000000EE,
+  GL_RELATIVE_ROUNDED_RECT8_NV                                  = 0x000000EF,
+  GL_RESTART_PATH_NV                                            = 0x000000F0,
+  GL_DUP_FIRST_CUBIC_CURVE_TO_NV                                = 0x000000F2,
+  GL_DUP_LAST_CUBIC_CURVE_TO_NV                                 = 0x000000F4,
+  GL_RECT_NV                                                    = 0x000000F6,
+  GL_RELATIVE_RECT_NV                                           = 0x000000F7,
+  GL_CIRCULAR_CCW_ARC_TO_NV                                     = 0x000000F8,
+  GL_CIRCULAR_CW_ARC_TO_NV                                      = 0x000000FA,
+  GL_CIRCULAR_TANGENT_ARC_TO_NV                                 = 0x000000FC,
+  GL_ARC_TO_NV                                                  = 0x000000FE,
+  GL_RELATIVE_ARC_TO_NV                                         = 0x000000FF,
+  GL_NEXT_BUFFER_NV                                             = 0xFFFFFFFE,
+  GL_SKIP_COMPONENTS4_NV                                        = 0xFFFFFFFD,
+  GL_SKIP_COMPONENTS3_NV                                        = 0xFFFFFFFC,
+  GL_SKIP_COMPONENTS2_NV                                        = 0xFFFFFFFB,
+  GL_SKIP_COMPONENTS1_NV                                        = 0xFFFFFFFA,
+  GL_RESTART_SUN                                                = 0x00000001,
+  GL_REPLACE_MIDDLE_SUN                                         = 0x00000002,
+  GL_REPLACE_OLDEST_SUN                                         = 0x00000003,
+  GL_FALSE                                                      = 0x00000000,
+  GL_NO_ERROR                                                   = 0x00000000,
+  GL_ZERO                                                       = 0x00000000,
+  GL_NONE                                                       = 0x00000000,
+  GL_NONE_OES                                                   = 0x00000000,
+  GL_TRUE                                                       = 0x00000001,
+  GL_ONE                                                        = 0x00000001,
+  GL_INVALID_INDEX                                              = 0xFFFFFFFF,
+  GL_VERSION_ES_CL_1_0                                          = 0x00000001,
+  GL_VERSION_ES_CM_1_1                                          = 0x00000001,
+  GL_VERSION_ES_CL_1_1                                          = 0x00000001,
+  GL_POINTS                                                     = 0x00000000,
+  GL_LINES                                                      = 0x00000001,
+  GL_LINE_LOOP                                                  = 0x00000002,
+  GL_LINE_STRIP                                                 = 0x00000003,
+  GL_TRIANGLES                                                  = 0x00000004,
+  GL_TRIANGLE_STRIP                                             = 0x00000005,
+  GL_TRIANGLE_FAN                                               = 0x00000006,
+  GL_QUADS                                                      = 0x00000007,
+  GL_QUADS_EXT                                                  = 0x00000007,
+  GL_QUADS_OES                                                  = 0x00000007,
+  GL_QUAD_STRIP                                                 = 0x00000008,
+  GL_POLYGON                                                    = 0x00000009,
+  GL_LINES_ADJACENCY                                            = 0x0000000A,
+  GL_LINES_ADJACENCY_ARB                                        = 0x0000000A,
+  GL_LINES_ADJACENCY_EXT                                        = 0x0000000A,
+  GL_LINES_ADJACENCY_OES                                        = 0x0000000A,
+  GL_LINE_STRIP_ADJACENCY                                       = 0x0000000B,
+  GL_LINE_STRIP_ADJACENCY_ARB                                   = 0x0000000B,
+  GL_LINE_STRIP_ADJACENCY_EXT                                   = 0x0000000B,
+  GL_LINE_STRIP_ADJACENCY_OES                                   = 0x0000000B,
+  GL_TRIANGLES_ADJACENCY                                        = 0x0000000C,
+  GL_TRIANGLES_ADJACENCY_ARB                                    = 0x0000000C,
+  GL_TRIANGLES_ADJACENCY_EXT                                    = 0x0000000C,
+  GL_TRIANGLES_ADJACENCY_OES                                    = 0x0000000C,
+  GL_TRIANGLE_STRIP_ADJACENCY                                   = 0x0000000D,
+  GL_TRIANGLE_STRIP_ADJACENCY_ARB                               = 0x0000000D,
+  GL_TRIANGLE_STRIP_ADJACENCY_EXT                               = 0x0000000D,
+  GL_TRIANGLE_STRIP_ADJACENCY_OES                               = 0x0000000D,
+  GL_PATCHES                                                    = 0x0000000E,
+  GL_PATCHES_EXT                                                = 0x0000000E,
+  GL_PATCHES_OES                                                = 0x0000000E,
+  GL_ACCUM                                                      = 0x00000100,
+  GL_LOAD                                                       = 0x00000101,
+  GL_RETURN                                                     = 0x00000102,
+  GL_MULT                                                       = 0x00000103,
+  GL_ADD                                                        = 0x00000104,
+  GL_NEVER                                                      = 0x00000200,
+  GL_LESS                                                       = 0x00000201,
+  GL_EQUAL                                                      = 0x00000202,
+  GL_LEQUAL                                                     = 0x00000203,
+  GL_GREATER                                                    = 0x00000204,
+  GL_NOTEQUAL                                                   = 0x00000205,
+  GL_GEQUAL                                                     = 0x00000206,
+  GL_ALWAYS                                                     = 0x00000207,
+  GL_SRC_COLOR                                                  = 0x00000300,
+  GL_ONE_MINUS_SRC_COLOR                                        = 0x00000301,
+  GL_SRC_ALPHA                                                  = 0x00000302,
+  GL_ONE_MINUS_SRC_ALPHA                                        = 0x00000303,
+  GL_DST_ALPHA                                                  = 0x00000304,
+  GL_ONE_MINUS_DST_ALPHA                                        = 0x00000305,
+  GL_DST_COLOR                                                  = 0x00000306,
+  GL_ONE_MINUS_DST_COLOR                                        = 0x00000307,
+  GL_SRC_ALPHA_SATURATE                                         = 0x00000308,
+  GL_FRONT_LEFT                                                 = 0x00000400,
+  GL_FRONT_RIGHT                                                = 0x00000401,
+  GL_BACK_LEFT                                                  = 0x00000402,
+  GL_BACK_RIGHT                                                 = 0x00000403,
+  GL_FRONT                                                      = 0x00000404,
+  GL_BACK                                                       = 0x00000405,
+  GL_LEFT                                                       = 0x00000406,
+  GL_RIGHT                                                      = 0x00000407,
+  GL_FRONT_AND_BACK                                             = 0x00000408,
+  GL_AUX0                                                       = 0x00000409,
+  GL_AUX1                                                       = 0x0000040A,
+  GL_AUX2                                                       = 0x0000040B,
+  GL_AUX3                                                       = 0x0000040C,
+  GL_INVALID_ENUM                                               = 0x00000500,
+  GL_INVALID_VALUE                                              = 0x00000501,
+  GL_INVALID_OPERATION                                          = 0x00000502,
+  GL_STACK_OVERFLOW                                             = 0x00000503,
+  GL_STACK_OVERFLOW_KHR                                         = 0x00000503,
+  GL_STACK_UNDERFLOW                                            = 0x00000504,
+  GL_STACK_UNDERFLOW_KHR                                        = 0x00000504,
+  GL_OUT_OF_MEMORY                                              = 0x00000505,
+  GL_INVALID_FRAMEBUFFER_OPERATION                              = 0x00000506,
+  GL_INVALID_FRAMEBUFFER_OPERATION_EXT                          = 0x00000506,
+  GL_INVALID_FRAMEBUFFER_OPERATION_OES                          = 0x00000506,
+  GL_CONTEXT_LOST                                               = 0x00000507,
+  GL_CONTEXT_LOST_KHR                                           = 0x00000507,
+  GL_2D                                                         = 0x00000600,
+  GL_3D                                                         = 0x00000601,
+  GL_3D_COLOR                                                   = 0x00000602,
+  GL_3D_COLOR_TEXTURE                                           = 0x00000603,
+  GL_4D_COLOR_TEXTURE                                           = 0x00000604,
+  GL_PASS_THROUGH_TOKEN                                         = 0x00000700,
+  GL_POINT_TOKEN                                                = 0x00000701,
+  GL_LINE_TOKEN                                                 = 0x00000702,
+  GL_POLYGON_TOKEN                                              = 0x00000703,
+  GL_BITMAP_TOKEN                                               = 0x00000704,
+  GL_DRAW_PIXEL_TOKEN                                           = 0x00000705,
+  GL_COPY_PIXEL_TOKEN                                           = 0x00000706,
+  GL_LINE_RESET_TOKEN                                           = 0x00000707,
+  GL_EXP                                                        = 0x00000800,
+  GL_EXP2                                                       = 0x00000801,
+  GL_CW                                                         = 0x00000900,
+  GL_CCW                                                        = 0x00000901,
+  GL_COEFF                                                      = 0x00000A00,
+  GL_ORDER                                                      = 0x00000A01,
+  GL_DOMAIN                                                     = 0x00000A02,
+  GL_CURRENT_COLOR                                              = 0x00000B00,
+  GL_CURRENT_INDEX                                              = 0x00000B01,
+  GL_CURRENT_NORMAL                                             = 0x00000B02,
+  GL_CURRENT_TEXTURE_COORDS                                     = 0x00000B03,
+  GL_CURRENT_RASTER_COLOR                                       = 0x00000B04,
+  GL_CURRENT_RASTER_INDEX                                       = 0x00000B05,
+  GL_CURRENT_RASTER_TEXTURE_COORDS                              = 0x00000B06,
+  GL_CURRENT_RASTER_POSITION                                    = 0x00000B07,
+  GL_CURRENT_RASTER_POSITION_VALID                              = 0x00000B08,
+  GL_CURRENT_RASTER_DISTANCE                                    = 0x00000B09,
+  GL_POINT_SMOOTH                                               = 0x00000B10,
+  GL_POINT_SIZE                                                 = 0x00000B11,
+  GL_POINT_SIZE_RANGE                                           = 0x00000B12,
+  GL_SMOOTH_POINT_SIZE_RANGE                                    = 0x00000B12,
+  GL_POINT_SIZE_GRANULARITY                                     = 0x00000B13,
+  GL_SMOOTH_POINT_SIZE_GRANULARITY                              = 0x00000B13,
+  GL_LINE_SMOOTH                                                = 0x00000B20,
+  GL_LINE_WIDTH                                                 = 0x00000B21,
+  GL_LINE_WIDTH_RANGE                                           = 0x00000B22,
+  GL_SMOOTH_LINE_WIDTH_RANGE                                    = 0x00000B22,
+  GL_LINE_WIDTH_GRANULARITY                                     = 0x00000B23,
+  GL_SMOOTH_LINE_WIDTH_GRANULARITY                              = 0x00000B23,
+  GL_LINE_STIPPLE                                               = 0x00000B24,
+  GL_LINE_STIPPLE_PATTERN                                       = 0x00000B25,
+  GL_LINE_STIPPLE_REPEAT                                        = 0x00000B26,
+  GL_LIST_MODE                                                  = 0x00000B30,
+  GL_MAX_LIST_NESTING                                           = 0x00000B31,
+  GL_LIST_BASE                                                  = 0x00000B32,
+  GL_LIST_INDEX                                                 = 0x00000B33,
+  GL_POLYGON_MODE                                               = 0x00000B40,
+  GL_POLYGON_MODE_NV                                            = 0x00000B40,
+  GL_POLYGON_SMOOTH                                             = 0x00000B41,
+  GL_POLYGON_STIPPLE                                            = 0x00000B42,
+  GL_EDGE_FLAG                                                  = 0x00000B43,
+  GL_CULL_FACE                                                  = 0x00000B44,
+  GL_CULL_FACE_MODE                                             = 0x00000B45,
+  GL_FRONT_FACE                                                 = 0x00000B46,
+  GL_LIGHTING                                                   = 0x00000B50,
+  GL_LIGHT_MODEL_LOCAL_VIEWER                                   = 0x00000B51,
+  GL_LIGHT_MODEL_TWO_SIDE                                       = 0x00000B52,
+  GL_LIGHT_MODEL_AMBIENT                                        = 0x00000B53,
+  GL_SHADE_MODEL                                                = 0x00000B54,
+  GL_COLOR_MATERIAL_FACE                                        = 0x00000B55,
+  GL_COLOR_MATERIAL_PARAMETER                                   = 0x00000B56,
+  GL_COLOR_MATERIAL                                             = 0x00000B57,
+  GL_FOG                                                        = 0x00000B60,
+  GL_FOG_INDEX                                                  = 0x00000B61,
+  GL_FOG_DENSITY                                                = 0x00000B62,
+  GL_FOG_START                                                  = 0x00000B63,
+  GL_FOG_END                                                    = 0x00000B64,
+  GL_FOG_MODE                                                   = 0x00000B65,
+  GL_FOG_COLOR                                                  = 0x00000B66,
+  GL_DEPTH_RANGE                                                = 0x00000B70,
+  GL_DEPTH_TEST                                                 = 0x00000B71,
+  GL_DEPTH_WRITEMASK                                            = 0x00000B72,
+  GL_DEPTH_CLEAR_VALUE                                          = 0x00000B73,
+  GL_DEPTH_FUNC                                                 = 0x00000B74,
+  GL_ACCUM_CLEAR_VALUE                                          = 0x00000B80,
+  GL_STENCIL_TEST                                               = 0x00000B90,
+  GL_STENCIL_CLEAR_VALUE                                        = 0x00000B91,
+  GL_STENCIL_FUNC                                               = 0x00000B92,
+  GL_STENCIL_VALUE_MASK                                         = 0x00000B93,
+  GL_STENCIL_FAIL                                               = 0x00000B94,
+  GL_STENCIL_PASS_DEPTH_FAIL                                    = 0x00000B95,
+  GL_STENCIL_PASS_DEPTH_PASS                                    = 0x00000B96,
+  GL_STENCIL_REF                                                = 0x00000B97,
+  GL_STENCIL_WRITEMASK                                          = 0x00000B98,
+  GL_MATRIX_MODE                                                = 0x00000BA0,
+  GL_NORMALIZE                                                  = 0x00000BA1,
+  GL_VIEWPORT                                                   = 0x00000BA2,
+  GL_MODELVIEW_STACK_DEPTH                                      = 0x00000BA3,
+  GL_MODELVIEW0_STACK_DEPTH_EXT                                 = 0x00000BA3,
+  GL_PATH_MODELVIEW_STACK_DEPTH_NV                              = 0x00000BA3,
+  GL_PROJECTION_STACK_DEPTH                                     = 0x00000BA4,
+  GL_PATH_PROJECTION_STACK_DEPTH_NV                             = 0x00000BA4,
+  GL_TEXTURE_STACK_DEPTH                                        = 0x00000BA5,
+  GL_MODELVIEW_MATRIX                                           = 0x00000BA6,
+  GL_MODELVIEW0_MATRIX_EXT                                      = 0x00000BA6,
+  GL_PATH_MODELVIEW_MATRIX_NV                                   = 0x00000BA6,
+  GL_PROJECTION_MATRIX                                          = 0x00000BA7,
+  GL_PATH_PROJECTION_MATRIX_NV                                  = 0x00000BA7,
+  GL_TEXTURE_MATRIX                                             = 0x00000BA8,
+  GL_ATTRIB_STACK_DEPTH                                         = 0x00000BB0,
+  GL_CLIENT_ATTRIB_STACK_DEPTH                                  = 0x00000BB1,
+  GL_ALPHA_TEST                                                 = 0x00000BC0,
+  GL_ALPHA_TEST_QCOM                                            = 0x00000BC0,
+  GL_ALPHA_TEST_FUNC                                            = 0x00000BC1,
+  GL_ALPHA_TEST_FUNC_QCOM                                       = 0x00000BC1,
+  GL_ALPHA_TEST_REF                                             = 0x00000BC2,
+  GL_ALPHA_TEST_REF_QCOM                                        = 0x00000BC2,
+  GL_DITHER                                                     = 0x00000BD0,
+  GL_BLEND_DST                                                  = 0x00000BE0,
+  GL_BLEND_SRC                                                  = 0x00000BE1,
+  GL_BLEND                                                      = 0x00000BE2,
+  GL_LOGIC_OP_MODE                                              = 0x00000BF0,
+  GL_INDEX_LOGIC_OP                                             = 0x00000BF1,
+  GL_LOGIC_OP                                                   = 0x00000BF1,
+  GL_COLOR_LOGIC_OP                                             = 0x00000BF2,
+  GL_AUX_BUFFERS                                                = 0x00000C00,
+  GL_DRAW_BUFFER                                                = 0x00000C01,
+  GL_DRAW_BUFFER_EXT                                            = 0x00000C01,
+  GL_READ_BUFFER                                                = 0x00000C02,
+  GL_READ_BUFFER_EXT                                            = 0x00000C02,
+  GL_READ_BUFFER_NV                                             = 0x00000C02,
+  GL_SCISSOR_BOX                                                = 0x00000C10,
+  GL_SCISSOR_TEST                                               = 0x00000C11,
+  GL_INDEX_CLEAR_VALUE                                          = 0x00000C20,
+  GL_INDEX_WRITEMASK                                            = 0x00000C21,
+  GL_COLOR_CLEAR_VALUE                                          = 0x00000C22,
+  GL_COLOR_WRITEMASK                                            = 0x00000C23,
+  GL_INDEX_MODE                                                 = 0x00000C30,
+  GL_RGBA_MODE                                                  = 0x00000C31,
+  GL_DOUBLEBUFFER                                               = 0x00000C32,
+  GL_STEREO                                                     = 0x00000C33,
+  GL_RENDER_MODE                                                = 0x00000C40,
+  GL_PERSPECTIVE_CORRECTION_HINT                                = 0x00000C50,
+  GL_POINT_SMOOTH_HINT                                          = 0x00000C51,
+  GL_LINE_SMOOTH_HINT                                           = 0x00000C52,
+  GL_POLYGON_SMOOTH_HINT                                        = 0x00000C53,
+  GL_FOG_HINT                                                   = 0x00000C54,
+  GL_TEXTURE_GEN_S                                              = 0x00000C60,
+  GL_TEXTURE_GEN_T                                              = 0x00000C61,
+  GL_TEXTURE_GEN_R                                              = 0x00000C62,
+  GL_TEXTURE_GEN_Q                                              = 0x00000C63,
+  GL_PIXEL_MAP_I_TO_I                                           = 0x00000C70,
+  GL_PIXEL_MAP_S_TO_S                                           = 0x00000C71,
+  GL_PIXEL_MAP_I_TO_R                                           = 0x00000C72,
+  GL_PIXEL_MAP_I_TO_G                                           = 0x00000C73,
+  GL_PIXEL_MAP_I_TO_B                                           = 0x00000C74,
+  GL_PIXEL_MAP_I_TO_A                                           = 0x00000C75,
+  GL_PIXEL_MAP_R_TO_R                                           = 0x00000C76,
+  GL_PIXEL_MAP_G_TO_G                                           = 0x00000C77,
+  GL_PIXEL_MAP_B_TO_B                                           = 0x00000C78,
+  GL_PIXEL_MAP_A_TO_A                                           = 0x00000C79,
+  GL_PIXEL_MAP_I_TO_I_SIZE                                      = 0x00000CB0,
+  GL_PIXEL_MAP_S_TO_S_SIZE                                      = 0x00000CB1,
+  GL_PIXEL_MAP_I_TO_R_SIZE                                      = 0x00000CB2,
+  GL_PIXEL_MAP_I_TO_G_SIZE                                      = 0x00000CB3,
+  GL_PIXEL_MAP_I_TO_B_SIZE                                      = 0x00000CB4,
+  GL_PIXEL_MAP_I_TO_A_SIZE                                      = 0x00000CB5,
+  GL_PIXEL_MAP_R_TO_R_SIZE                                      = 0x00000CB6,
+  GL_PIXEL_MAP_G_TO_G_SIZE                                      = 0x00000CB7,
+  GL_PIXEL_MAP_B_TO_B_SIZE                                      = 0x00000CB8,
+  GL_PIXEL_MAP_A_TO_A_SIZE                                      = 0x00000CB9,
+  GL_UNPACK_SWAP_BYTES                                          = 0x00000CF0,
+  GL_UNPACK_LSB_FIRST                                           = 0x00000CF1,
+  GL_UNPACK_ROW_LENGTH                                          = 0x00000CF2,
+  GL_UNPACK_ROW_LENGTH_EXT                                      = 0x00000CF2,
+  GL_UNPACK_SKIP_ROWS                                           = 0x00000CF3,
+  GL_UNPACK_SKIP_ROWS_EXT                                       = 0x00000CF3,
+  GL_UNPACK_SKIP_PIXELS                                         = 0x00000CF4,
+  GL_UNPACK_SKIP_PIXELS_EXT                                     = 0x00000CF4,
+  GL_UNPACK_ALIGNMENT                                           = 0x00000CF5,
+  GL_PACK_SWAP_BYTES                                            = 0x00000D00,
+  GL_PACK_LSB_FIRST                                             = 0x00000D01,
+  GL_PACK_ROW_LENGTH                                            = 0x00000D02,
+  GL_PACK_SKIP_ROWS                                             = 0x00000D03,
+  GL_PACK_SKIP_PIXELS                                           = 0x00000D04,
+  GL_PACK_ALIGNMENT                                             = 0x00000D05,
+  GL_MAP_COLOR                                                  = 0x00000D10,
+  GL_MAP_STENCIL                                                = 0x00000D11,
+  GL_INDEX_SHIFT                                                = 0x00000D12,
+  GL_INDEX_OFFSET                                               = 0x00000D13,
+  GL_RED_SCALE                                                  = 0x00000D14,
+  GL_RED_BIAS                                                   = 0x00000D15,
+  GL_ZOOM_X                                                     = 0x00000D16,
+  GL_ZOOM_Y                                                     = 0x00000D17,
+  GL_GREEN_SCALE                                                = 0x00000D18,
+  GL_GREEN_BIAS                                                 = 0x00000D19,
+  GL_BLUE_SCALE                                                 = 0x00000D1A,
+  GL_BLUE_BIAS                                                  = 0x00000D1B,
+  GL_ALPHA_SCALE                                                = 0x00000D1C,
+  GL_ALPHA_BIAS                                                 = 0x00000D1D,
+  GL_DEPTH_SCALE                                                = 0x00000D1E,
+  GL_DEPTH_BIAS                                                 = 0x00000D1F,
+  GL_MAX_EVAL_ORDER                                             = 0x00000D30,
+  GL_MAX_LIGHTS                                                 = 0x00000D31,
+  GL_MAX_CLIP_PLANES                                            = 0x00000D32,
+  GL_MAX_CLIP_PLANES_IMG                                        = 0x00000D32,
+  GL_MAX_CLIP_DISTANCES                                         = 0x00000D32,
+  GL_MAX_CLIP_DISTANCES_APPLE                                   = 0x00000D32,
+  GL_MAX_TEXTURE_SIZE                                           = 0x00000D33,
+  GL_MAX_PIXEL_MAP_TABLE                                        = 0x00000D34,
+  GL_MAX_ATTRIB_STACK_DEPTH                                     = 0x00000D35,
+  GL_MAX_MODELVIEW_STACK_DEPTH                                  = 0x00000D36,
+  GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV                          = 0x00000D36,
+  GL_MAX_NAME_STACK_DEPTH                                       = 0x00000D37,
+  GL_MAX_PROJECTION_STACK_DEPTH                                 = 0x00000D38,
+  GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV                         = 0x00000D38,
+  GL_MAX_TEXTURE_STACK_DEPTH                                    = 0x00000D39,
+  GL_MAX_VIEWPORT_DIMS                                          = 0x00000D3A,
+  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH                              = 0x00000D3B,
+  GL_SUBPIXEL_BITS                                              = 0x00000D50,
+  GL_INDEX_BITS                                                 = 0x00000D51,
+  GL_RED_BITS                                                   = 0x00000D52,
+  GL_GREEN_BITS                                                 = 0x00000D53,
+  GL_BLUE_BITS                                                  = 0x00000D54,
+  GL_ALPHA_BITS                                                 = 0x00000D55,
+  GL_DEPTH_BITS                                                 = 0x00000D56,
+  GL_STENCIL_BITS                                               = 0x00000D57,
+  GL_ACCUM_RED_BITS                                             = 0x00000D58,
+  GL_ACCUM_GREEN_BITS                                           = 0x00000D59,
+  GL_ACCUM_BLUE_BITS                                            = 0x00000D5A,
+  GL_ACCUM_ALPHA_BITS                                           = 0x00000D5B,
+  GL_NAME_STACK_DEPTH                                           = 0x00000D70,
+  GL_AUTO_NORMAL                                                = 0x00000D80,
+  GL_MAP1_COLOR_4                                               = 0x00000D90,
+  GL_MAP1_INDEX                                                 = 0x00000D91,
+  GL_MAP1_NORMAL                                                = 0x00000D92,
+  GL_MAP1_TEXTURE_COORD_1                                       = 0x00000D93,
+  GL_MAP1_TEXTURE_COORD_2                                       = 0x00000D94,
+  GL_MAP1_TEXTURE_COORD_3                                       = 0x00000D95,
+  GL_MAP1_TEXTURE_COORD_4                                       = 0x00000D96,
+  GL_MAP1_VERTEX_3                                              = 0x00000D97,
+  GL_MAP1_VERTEX_4                                              = 0x00000D98,
+  GL_MAP2_COLOR_4                                               = 0x00000DB0,
+  GL_MAP2_INDEX                                                 = 0x00000DB1,
+  GL_MAP2_NORMAL                                                = 0x00000DB2,
+  GL_MAP2_TEXTURE_COORD_1                                       = 0x00000DB3,
+  GL_MAP2_TEXTURE_COORD_2                                       = 0x00000DB4,
+  GL_MAP2_TEXTURE_COORD_3                                       = 0x00000DB5,
+  GL_MAP2_TEXTURE_COORD_4                                       = 0x00000DB6,
+  GL_MAP2_VERTEX_3                                              = 0x00000DB7,
+  GL_MAP2_VERTEX_4                                              = 0x00000DB8,
+  GL_MAP1_GRID_DOMAIN                                           = 0x00000DD0,
+  GL_MAP1_GRID_SEGMENTS                                         = 0x00000DD1,
+  GL_MAP2_GRID_DOMAIN                                           = 0x00000DD2,
+  GL_MAP2_GRID_SEGMENTS                                         = 0x00000DD3,
+  GL_TEXTURE_1D                                                 = 0x00000DE0,
+  GL_TEXTURE_2D                                                 = 0x00000DE1,
+  GL_FEEDBACK_BUFFER_POINTER                                    = 0x00000DF0,
+  GL_FEEDBACK_BUFFER_SIZE                                       = 0x00000DF1,
+  GL_FEEDBACK_BUFFER_TYPE                                       = 0x00000DF2,
+  GL_SELECTION_BUFFER_POINTER                                   = 0x00000DF3,
+  GL_SELECTION_BUFFER_SIZE                                      = 0x00000DF4,
+  GL_TEXTURE_WIDTH                                              = 0x00001000,
+  GL_TEXTURE_HEIGHT                                             = 0x00001001,
+  GL_TEXTURE_INTERNAL_FORMAT                                    = 0x00001003,
+  GL_TEXTURE_COMPONENTS                                         = 0x00001003,
+  GL_TEXTURE_BORDER_COLOR                                       = 0x00001004,
+  GL_TEXTURE_BORDER_COLOR_EXT                                   = 0x00001004,
+  GL_TEXTURE_BORDER_COLOR_NV                                    = 0x00001004,
+  GL_TEXTURE_BORDER_COLOR_OES                                   = 0x00001004,
+  GL_TEXTURE_BORDER                                             = 0x00001005,
+  GL_TEXTURE_TARGET                                             = 0x00001006,
+  GL_DONT_CARE                                                  = 0x00001100,
+  GL_FASTEST                                                    = 0x00001101,
+  GL_NICEST                                                     = 0x00001102,
+  GL_AMBIENT                                                    = 0x00001200,
+  GL_DIFFUSE                                                    = 0x00001201,
+  GL_SPECULAR                                                   = 0x00001202,
+  GL_POSITION                                                   = 0x00001203,
+  GL_SPOT_DIRECTION                                             = 0x00001204,
+  GL_SPOT_EXPONENT                                              = 0x00001205,
+  GL_SPOT_CUTOFF                                                = 0x00001206,
+  GL_CONSTANT_ATTENUATION                                       = 0x00001207,
+  GL_LINEAR_ATTENUATION                                         = 0x00001208,
+  GL_QUADRATIC_ATTENUATION                                      = 0x00001209,
+  GL_COMPILE                                                    = 0x00001300,
+  GL_COMPILE_AND_EXECUTE                                        = 0x00001301,
+  GL_BYTE                                                       = 0x00001400,
+  GL_UNSIGNED_BYTE                                              = 0x00001401,
+  GL_SHORT                                                      = 0x00001402,
+  GL_UNSIGNED_SHORT                                             = 0x00001403,
+  GL_INT                                                        = 0x00001404,
+  GL_UNSIGNED_INT                                               = 0x00001405,
+  GL_FLOAT                                                      = 0x00001406,
+  GL_2_BYTES                                                    = 0x00001407,
+  GL_2_BYTES_NV                                                 = 0x00001407,
+  GL_3_BYTES                                                    = 0x00001408,
+  GL_3_BYTES_NV                                                 = 0x00001408,
+  GL_4_BYTES                                                    = 0x00001409,
+  GL_4_BYTES_NV                                                 = 0x00001409,
+  GL_DOUBLE                                                     = 0x0000140A,
+  GL_DOUBLE_EXT                                                 = 0x0000140A,
+  GL_HALF_FLOAT                                                 = 0x0000140B,
+  GL_HALF_FLOAT_ARB                                             = 0x0000140B,
+  GL_HALF_FLOAT_NV                                              = 0x0000140B,
+  GL_HALF_APPLE                                                 = 0x0000140B,
+  GL_FIXED                                                      = 0x0000140C,
+  GL_FIXED_OES                                                  = 0x0000140C,
+  GL_INT64_NV                                                   = 0x0000140E,
+  GL_UNSIGNED_INT64_ARB                                         = 0x0000140F,
+  GL_UNSIGNED_INT64_NV                                          = 0x0000140F,
+  GL_CLEAR                                                      = 0x00001500,
+  GL_AND                                                        = 0x00001501,
+  GL_AND_REVERSE                                                = 0x00001502,
+  GL_COPY                                                       = 0x00001503,
+  GL_AND_INVERTED                                               = 0x00001504,
+  GL_NOOP                                                       = 0x00001505,
+  GL_XOR                                                        = 0x00001506,
+  GL_XOR_NV                                                     = 0x00001506,
+  GL_OR                                                         = 0x00001507,
+  GL_NOR                                                        = 0x00001508,
+  GL_EQUIV                                                      = 0x00001509,
+  GL_INVERT                                                     = 0x0000150A,
+  GL_OR_REVERSE                                                 = 0x0000150B,
+  GL_COPY_INVERTED                                              = 0x0000150C,
+  GL_OR_INVERTED                                                = 0x0000150D,
+  GL_NAND                                                       = 0x0000150E,
+  GL_SET                                                        = 0x0000150F,
+  GL_EMISSION                                                   = 0x00001600,
+  GL_SHININESS                                                  = 0x00001601,
+  GL_AMBIENT_AND_DIFFUSE                                        = 0x00001602,
+  GL_COLOR_INDEXES                                              = 0x00001603,
+  GL_MODELVIEW                                                  = 0x00001700,
+  GL_MODELVIEW0_ARB                                             = 0x00001700,
+  GL_MODELVIEW0_EXT                                             = 0x00001700,
+  GL_PATH_MODELVIEW_NV                                          = 0x00001700,
+  GL_PROJECTION                                                 = 0x00001701,
+  GL_PATH_PROJECTION_NV                                         = 0x00001701,
+  GL_TEXTURE                                                    = 0x00001702,
+  GL_COLOR                                                      = 0x00001800,
+  GL_COLOR_EXT                                                  = 0x00001800,
+  GL_DEPTH                                                      = 0x00001801,
+  GL_DEPTH_EXT                                                  = 0x00001801,
+  GL_STENCIL                                                    = 0x00001802,
+  GL_STENCIL_EXT                                                = 0x00001802,
+  GL_COLOR_INDEX                                                = 0x00001900,
+  GL_STENCIL_INDEX                                              = 0x00001901,
+  GL_STENCIL_INDEX_OES                                          = 0x00001901,
+  GL_DEPTH_COMPONENT                                            = 0x00001902,
+  GL_RED                                                        = 0x00001903,
+  GL_RED_EXT                                                    = 0x00001903,
+  GL_RED_NV                                                     = 0x00001903,
+  GL_GREEN                                                      = 0x00001904,
+  GL_GREEN_NV                                                   = 0x00001904,
+  GL_BLUE                                                       = 0x00001905,
+  GL_BLUE_NV                                                    = 0x00001905,
+  GL_ALPHA                                                      = 0x00001906,
+  GL_RGB                                                        = 0x00001907,
+  GL_RGBA                                                       = 0x00001908,
+  GL_LUMINANCE                                                  = 0x00001909,
+  GL_LUMINANCE_ALPHA                                            = 0x0000190A,
+  GL_BITMAP                                                     = 0x00001A00,
+  GL_POINT                                                      = 0x00001B00,
+  GL_POINT_NV                                                   = 0x00001B00,
+  GL_LINE                                                       = 0x00001B01,
+  GL_LINE_NV                                                    = 0x00001B01,
+  GL_FILL                                                       = 0x00001B02,
+  GL_FILL_NV                                                    = 0x00001B02,
+  GL_RENDER                                                     = 0x00001C00,
+  GL_FEEDBACK                                                   = 0x00001C01,
+  GL_SELECT                                                     = 0x00001C02,
+  GL_FLAT                                                       = 0x00001D00,
+  GL_SMOOTH                                                     = 0x00001D01,
+  GL_KEEP                                                       = 0x00001E00,
+  GL_REPLACE                                                    = 0x00001E01,
+  GL_INCR                                                       = 0x00001E02,
+  GL_DECR                                                       = 0x00001E03,
+  GL_VENDOR                                                     = 0x00001F00,
+  GL_RENDERER                                                   = 0x00001F01,
+  GL_VERSION                                                    = 0x00001F02,
+  GL_EXTENSIONS                                                 = 0x00001F03,
+  GL_S                                                          = 0x00002000,
+  GL_T                                                          = 0x00002001,
+  GL_R                                                          = 0x00002002,
+  GL_Q                                                          = 0x00002003,
+  GL_MODULATE                                                   = 0x00002100,
+  GL_DECAL                                                      = 0x00002101,
+  GL_TEXTURE_ENV_MODE                                           = 0x00002200,
+  GL_TEXTURE_ENV_COLOR                                          = 0x00002201,
+  GL_TEXTURE_ENV                                                = 0x00002300,
+  GL_EYE_LINEAR                                                 = 0x00002400,
+  GL_EYE_LINEAR_NV                                              = 0x00002400,
+  GL_OBJECT_LINEAR                                              = 0x00002401,
+  GL_OBJECT_LINEAR_NV                                           = 0x00002401,
+  GL_SPHERE_MAP                                                 = 0x00002402,
+  GL_TEXTURE_GEN_MODE                                           = 0x00002500,
+  GL_TEXTURE_GEN_MODE_OES                                       = 0x00002500,
+  GL_OBJECT_PLANE                                               = 0x00002501,
+  GL_EYE_PLANE                                                  = 0x00002502,
+  GL_NEAREST                                                    = 0x00002600,
+  GL_LINEAR                                                     = 0x00002601,
+  GL_NEAREST_MIPMAP_NEAREST                                     = 0x00002700,
+  GL_LINEAR_MIPMAP_NEAREST                                      = 0x00002701,
+  GL_NEAREST_MIPMAP_LINEAR                                      = 0x00002702,
+  GL_LINEAR_MIPMAP_LINEAR                                       = 0x00002703,
+  GL_TEXTURE_MAG_FILTER                                         = 0x00002800,
+  GL_TEXTURE_MIN_FILTER                                         = 0x00002801,
+  GL_TEXTURE_WRAP_S                                             = 0x00002802,
+  GL_TEXTURE_WRAP_T                                             = 0x00002803,
+  GL_CLAMP                                                      = 0x00002900,
+  GL_REPEAT                                                     = 0x00002901,
+  GL_POLYGON_OFFSET_UNITS                                       = 0x00002A00,
+  GL_POLYGON_OFFSET_POINT                                       = 0x00002A01,
+  GL_POLYGON_OFFSET_POINT_NV                                    = 0x00002A01,
+  GL_POLYGON_OFFSET_LINE                                        = 0x00002A02,
+  GL_POLYGON_OFFSET_LINE_NV                                     = 0x00002A02,
+  GL_R3_G3_B2                                                   = 0x00002A10,
+  GL_V2F                                                        = 0x00002A20,
+  GL_V3F                                                        = 0x00002A21,
+  GL_C4UB_V2F                                                   = 0x00002A22,
+  GL_C4UB_V3F                                                   = 0x00002A23,
+  GL_C3F_V3F                                                    = 0x00002A24,
+  GL_N3F_V3F                                                    = 0x00002A25,
+  GL_C4F_N3F_V3F                                                = 0x00002A26,
+  GL_T2F_V3F                                                    = 0x00002A27,
+  GL_T4F_V4F                                                    = 0x00002A28,
+  GL_T2F_C4UB_V3F                                               = 0x00002A29,
+  GL_T2F_C3F_V3F                                                = 0x00002A2A,
+  GL_T2F_N3F_V3F                                                = 0x00002A2B,
+  GL_T2F_C4F_N3F_V3F                                            = 0x00002A2C,
+  GL_T4F_C4F_N3F_V4F                                            = 0x00002A2D,
+  GL_CLIP_PLANE0                                                = 0x00003000,
+  GL_CLIP_PLANE0_IMG                                            = 0x00003000,
+  GL_CLIP_DISTANCE0                                             = 0x00003000,
+  GL_CLIP_DISTANCE0_APPLE                                       = 0x00003000,
+  GL_CLIP_PLANE1                                                = 0x00003001,
+  GL_CLIP_PLANE1_IMG                                            = 0x00003001,
+  GL_CLIP_DISTANCE1                                             = 0x00003001,
+  GL_CLIP_DISTANCE1_APPLE                                       = 0x00003001,
+  GL_CLIP_PLANE2                                                = 0x00003002,
+  GL_CLIP_PLANE2_IMG                                            = 0x00003002,
+  GL_CLIP_DISTANCE2                                             = 0x00003002,
+  GL_CLIP_DISTANCE2_APPLE                                       = 0x00003002,
+  GL_CLIP_PLANE3                                                = 0x00003003,
+  GL_CLIP_PLANE3_IMG                                            = 0x00003003,
+  GL_CLIP_DISTANCE3                                             = 0x00003003,
+  GL_CLIP_DISTANCE3_APPLE                                       = 0x00003003,
+  GL_CLIP_PLANE4                                                = 0x00003004,
+  GL_CLIP_PLANE4_IMG                                            = 0x00003004,
+  GL_CLIP_DISTANCE4                                             = 0x00003004,
+  GL_CLIP_DISTANCE4_APPLE                                       = 0x00003004,
+  GL_CLIP_PLANE5                                                = 0x00003005,
+  GL_CLIP_PLANE5_IMG                                            = 0x00003005,
+  GL_CLIP_DISTANCE5                                             = 0x00003005,
+  GL_CLIP_DISTANCE5_APPLE                                       = 0x00003005,
+  GL_CLIP_DISTANCE6                                             = 0x00003006,
+  GL_CLIP_DISTANCE6_APPLE                                       = 0x00003006,
+  GL_CLIP_DISTANCE7                                             = 0x00003007,
+  GL_CLIP_DISTANCE7_APPLE                                       = 0x00003007,
+  GL_LIGHT0                                                     = 0x00004000,
+  GL_LIGHT1                                                     = 0x00004001,
+  GL_LIGHT2                                                     = 0x00004002,
+  GL_LIGHT3                                                     = 0x00004003,
+  GL_LIGHT4                                                     = 0x00004004,
+  GL_LIGHT5                                                     = 0x00004005,
+  GL_LIGHT6                                                     = 0x00004006,
+  GL_LIGHT7                                                     = 0x00004007,
+  GL_ABGR_EXT                                                   = 0x00008000,
+  GL_CONSTANT_COLOR                                             = 0x00008001,
+  GL_CONSTANT_COLOR_EXT                                         = 0x00008001,
+  GL_ONE_MINUS_CONSTANT_COLOR                                   = 0x00008002,
+  GL_ONE_MINUS_CONSTANT_COLOR_EXT                               = 0x00008002,
+  GL_CONSTANT_ALPHA                                             = 0x00008003,
+  GL_CONSTANT_ALPHA_EXT                                         = 0x00008003,
+  GL_ONE_MINUS_CONSTANT_ALPHA                                   = 0x00008004,
+  GL_ONE_MINUS_CONSTANT_ALPHA_EXT                               = 0x00008004,
+  GL_BLEND_COLOR                                                = 0x00008005,
+  GL_BLEND_COLOR_EXT                                            = 0x00008005,
+  GL_FUNC_ADD                                                   = 0x00008006,
+  GL_FUNC_ADD_EXT                                               = 0x00008006,
+  GL_FUNC_ADD_OES                                               = 0x00008006,
+  GL_MIN                                                        = 0x00008007,
+  GL_MIN_EXT                                                    = 0x00008007,
+  GL_MAX                                                        = 0x00008008,
+  GL_MAX_EXT                                                    = 0x00008008,
+  GL_BLEND_EQUATION                                             = 0x00008009,
+  GL_BLEND_EQUATION_EXT                                         = 0x00008009,
+  GL_BLEND_EQUATION_OES                                         = 0x00008009,
+  GL_BLEND_EQUATION_RGB                                         = 0x00008009,
+  GL_BLEND_EQUATION_RGB_EXT                                     = 0x00008009,
+  GL_BLEND_EQUATION_RGB_OES                                     = 0x00008009,
+  GL_FUNC_SUBTRACT                                              = 0x0000800A,
+  GL_FUNC_SUBTRACT_EXT                                          = 0x0000800A,
+  GL_FUNC_SUBTRACT_OES                                          = 0x0000800A,
+  GL_FUNC_REVERSE_SUBTRACT                                      = 0x0000800B,
+  GL_FUNC_REVERSE_SUBTRACT_EXT                                  = 0x0000800B,
+  GL_FUNC_REVERSE_SUBTRACT_OES                                  = 0x0000800B,
+  GL_CMYK_EXT                                                   = 0x0000800C,
+  GL_CMYKA_EXT                                                  = 0x0000800D,
+  GL_PACK_CMYK_HINT_EXT                                         = 0x0000800E,
+  GL_UNPACK_CMYK_HINT_EXT                                       = 0x0000800F,
+  GL_CONVOLUTION_1D                                             = 0x00008010,
+  GL_CONVOLUTION_1D_EXT                                         = 0x00008010,
+  GL_CONVOLUTION_2D                                             = 0x00008011,
+  GL_CONVOLUTION_2D_EXT                                         = 0x00008011,
+  GL_SEPARABLE_2D                                               = 0x00008012,
+  GL_SEPARABLE_2D_EXT                                           = 0x00008012,
+  GL_CONVOLUTION_BORDER_MODE                                    = 0x00008013,
+  GL_CONVOLUTION_BORDER_MODE_EXT                                = 0x00008013,
+  GL_CONVOLUTION_FILTER_SCALE                                   = 0x00008014,
+  GL_CONVOLUTION_FILTER_SCALE_EXT                               = 0x00008014,
+  GL_CONVOLUTION_FILTER_BIAS                                    = 0x00008015,
+  GL_CONVOLUTION_FILTER_BIAS_EXT                                = 0x00008015,
+  GL_REDUCE                                                     = 0x00008016,
+  GL_REDUCE_EXT                                                 = 0x00008016,
+  GL_CONVOLUTION_FORMAT                                         = 0x00008017,
+  GL_CONVOLUTION_FORMAT_EXT                                     = 0x00008017,
+  GL_CONVOLUTION_WIDTH                                          = 0x00008018,
+  GL_CONVOLUTION_WIDTH_EXT                                      = 0x00008018,
+  GL_CONVOLUTION_HEIGHT                                         = 0x00008019,
+  GL_CONVOLUTION_HEIGHT_EXT                                     = 0x00008019,
+  GL_MAX_CONVOLUTION_WIDTH                                      = 0x0000801A,
+  GL_MAX_CONVOLUTION_WIDTH_EXT                                  = 0x0000801A,
+  GL_MAX_CONVOLUTION_HEIGHT                                     = 0x0000801B,
+  GL_MAX_CONVOLUTION_HEIGHT_EXT                                 = 0x0000801B,
+  GL_POST_CONVOLUTION_RED_SCALE                                 = 0x0000801C,
+  GL_POST_CONVOLUTION_RED_SCALE_EXT                             = 0x0000801C,
+  GL_POST_CONVOLUTION_GREEN_SCALE                               = 0x0000801D,
+  GL_POST_CONVOLUTION_GREEN_SCALE_EXT                           = 0x0000801D,
+  GL_POST_CONVOLUTION_BLUE_SCALE                                = 0x0000801E,
+  GL_POST_CONVOLUTION_BLUE_SCALE_EXT                            = 0x0000801E,
+  GL_POST_CONVOLUTION_ALPHA_SCALE                               = 0x0000801F,
+  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT                           = 0x0000801F,
+  GL_POST_CONVOLUTION_RED_BIAS                                  = 0x00008020,
+  GL_POST_CONVOLUTION_RED_BIAS_EXT                              = 0x00008020,
+  GL_POST_CONVOLUTION_GREEN_BIAS                                = 0x00008021,
+  GL_POST_CONVOLUTION_GREEN_BIAS_EXT                            = 0x00008021,
+  GL_POST_CONVOLUTION_BLUE_BIAS                                 = 0x00008022,
+  GL_POST_CONVOLUTION_BLUE_BIAS_EXT                             = 0x00008022,
+  GL_POST_CONVOLUTION_ALPHA_BIAS                                = 0x00008023,
+  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT                            = 0x00008023,
+  GL_HISTOGRAM                                                  = 0x00008024,
+  GL_HISTOGRAM_EXT                                              = 0x00008024,
+  GL_PROXY_HISTOGRAM                                            = 0x00008025,
+  GL_PROXY_HISTOGRAM_EXT                                        = 0x00008025,
+  GL_HISTOGRAM_WIDTH                                            = 0x00008026,
+  GL_HISTOGRAM_WIDTH_EXT                                        = 0x00008026,
+  GL_HISTOGRAM_FORMAT                                           = 0x00008027,
+  GL_HISTOGRAM_FORMAT_EXT                                       = 0x00008027,
+  GL_HISTOGRAM_RED_SIZE                                         = 0x00008028,
+  GL_HISTOGRAM_RED_SIZE_EXT                                     = 0x00008028,
+  GL_HISTOGRAM_GREEN_SIZE                                       = 0x00008029,
+  GL_HISTOGRAM_GREEN_SIZE_EXT                                   = 0x00008029,
+  GL_HISTOGRAM_BLUE_SIZE                                        = 0x0000802A,
+  GL_HISTOGRAM_BLUE_SIZE_EXT                                    = 0x0000802A,
+  GL_HISTOGRAM_ALPHA_SIZE                                       = 0x0000802B,
+  GL_HISTOGRAM_ALPHA_SIZE_EXT                                   = 0x0000802B,
+  GL_HISTOGRAM_LUMINANCE_SIZE                                   = 0x0000802C,
+  GL_HISTOGRAM_LUMINANCE_SIZE_EXT                               = 0x0000802C,
+  GL_HISTOGRAM_SINK                                             = 0x0000802D,
+  GL_HISTOGRAM_SINK_EXT                                         = 0x0000802D,
+  GL_MINMAX                                                     = 0x0000802E,
+  GL_MINMAX_EXT                                                 = 0x0000802E,
+  GL_MINMAX_FORMAT                                              = 0x0000802F,
+  GL_MINMAX_FORMAT_EXT                                          = 0x0000802F,
+  GL_MINMAX_SINK                                                = 0x00008030,
+  GL_MINMAX_SINK_EXT                                            = 0x00008030,
+  GL_TABLE_TOO_LARGE_EXT                                        = 0x00008031,
+  GL_TABLE_TOO_LARGE                                            = 0x00008031,
+  GL_UNSIGNED_BYTE_3_3_2                                        = 0x00008032,
+  GL_UNSIGNED_BYTE_3_3_2_EXT                                    = 0x00008032,
+  GL_UNSIGNED_SHORT_4_4_4_4                                     = 0x00008033,
+  GL_UNSIGNED_SHORT_4_4_4_4_EXT                                 = 0x00008033,
+  GL_UNSIGNED_SHORT_5_5_5_1                                     = 0x00008034,
+  GL_UNSIGNED_SHORT_5_5_5_1_EXT                                 = 0x00008034,
+  GL_UNSIGNED_INT_8_8_8_8                                       = 0x00008035,
+  GL_UNSIGNED_INT_8_8_8_8_EXT                                   = 0x00008035,
+  GL_UNSIGNED_INT_10_10_10_2                                    = 0x00008036,
+  GL_UNSIGNED_INT_10_10_10_2_EXT                                = 0x00008036,
+  GL_POLYGON_OFFSET_EXT                                         = 0x00008037,
+  GL_POLYGON_OFFSET_FILL                                        = 0x00008037,
+  GL_POLYGON_OFFSET_FACTOR                                      = 0x00008038,
+  GL_POLYGON_OFFSET_FACTOR_EXT                                  = 0x00008038,
+  GL_POLYGON_OFFSET_BIAS_EXT                                    = 0x00008039,
+  GL_RESCALE_NORMAL                                             = 0x0000803A,
+  GL_RESCALE_NORMAL_EXT                                         = 0x0000803A,
+  GL_ALPHA4                                                     = 0x0000803B,
+  GL_ALPHA4_EXT                                                 = 0x0000803B,
+  GL_ALPHA8                                                     = 0x0000803C,
+  GL_ALPHA8_EXT                                                 = 0x0000803C,
+  GL_ALPHA8_OES                                                 = 0x0000803C,
+  GL_ALPHA12                                                    = 0x0000803D,
+  GL_ALPHA12_EXT                                                = 0x0000803D,
+  GL_ALPHA16                                                    = 0x0000803E,
+  GL_ALPHA16_EXT                                                = 0x0000803E,
+  GL_LUMINANCE4                                                 = 0x0000803F,
+  GL_LUMINANCE4_EXT                                             = 0x0000803F,
+  GL_LUMINANCE8                                                 = 0x00008040,
+  GL_LUMINANCE8_EXT                                             = 0x00008040,
+  GL_LUMINANCE8_OES                                             = 0x00008040,
+  GL_LUMINANCE12                                                = 0x00008041,
+  GL_LUMINANCE12_EXT                                            = 0x00008041,
+  GL_LUMINANCE16                                                = 0x00008042,
+  GL_LUMINANCE16_EXT                                            = 0x00008042,
+  GL_LUMINANCE4_ALPHA4                                          = 0x00008043,
+  GL_LUMINANCE4_ALPHA4_EXT                                      = 0x00008043,
+  GL_LUMINANCE4_ALPHA4_OES                                      = 0x00008043,
+  GL_LUMINANCE6_ALPHA2                                          = 0x00008044,
+  GL_LUMINANCE6_ALPHA2_EXT                                      = 0x00008044,
+  GL_LUMINANCE8_ALPHA8                                          = 0x00008045,
+  GL_LUMINANCE8_ALPHA8_EXT                                      = 0x00008045,
+  GL_LUMINANCE8_ALPHA8_OES                                      = 0x00008045,
+  GL_LUMINANCE12_ALPHA4                                         = 0x00008046,
+  GL_LUMINANCE12_ALPHA4_EXT                                     = 0x00008046,
+  GL_LUMINANCE12_ALPHA12                                        = 0x00008047,
+  GL_LUMINANCE12_ALPHA12_EXT                                    = 0x00008047,
+  GL_LUMINANCE16_ALPHA16                                        = 0x00008048,
+  GL_LUMINANCE16_ALPHA16_EXT                                    = 0x00008048,
+  GL_INTENSITY                                                  = 0x00008049,
+  GL_INTENSITY_EXT                                              = 0x00008049,
+  GL_INTENSITY4                                                 = 0x0000804A,
+  GL_INTENSITY4_EXT                                             = 0x0000804A,
+  GL_INTENSITY8                                                 = 0x0000804B,
+  GL_INTENSITY8_EXT                                             = 0x0000804B,
+  GL_INTENSITY12                                                = 0x0000804C,
+  GL_INTENSITY12_EXT                                            = 0x0000804C,
+  GL_INTENSITY16                                                = 0x0000804D,
+  GL_INTENSITY16_EXT                                            = 0x0000804D,
+  GL_RGB2_EXT                                                   = 0x0000804E,
+  GL_RGB4                                                       = 0x0000804F,
+  GL_RGB4_EXT                                                   = 0x0000804F,
+  GL_RGB5                                                       = 0x00008050,
+  GL_RGB5_EXT                                                   = 0x00008050,
+  GL_RGB8                                                       = 0x00008051,
+  GL_RGB8_EXT                                                   = 0x00008051,
+  GL_RGB8_OES                                                   = 0x00008051,
+  GL_RGB10                                                      = 0x00008052,
+  GL_RGB10_EXT                                                  = 0x00008052,
+  GL_RGB12                                                      = 0x00008053,
+  GL_RGB12_EXT                                                  = 0x00008053,
+  GL_RGB16                                                      = 0x00008054,
+  GL_RGB16_EXT                                                  = 0x00008054,
+  GL_RGBA2                                                      = 0x00008055,
+  GL_RGBA2_EXT                                                  = 0x00008055,
+  GL_RGBA4                                                      = 0x00008056,
+  GL_RGBA4_EXT                                                  = 0x00008056,
+  GL_RGBA4_OES                                                  = 0x00008056,
+  GL_RGB5_A1                                                    = 0x00008057,
+  GL_RGB5_A1_EXT                                                = 0x00008057,
+  GL_RGB5_A1_OES                                                = 0x00008057,
+  GL_RGBA8                                                      = 0x00008058,
+  GL_RGBA8_EXT                                                  = 0x00008058,
+  GL_RGBA8_OES                                                  = 0x00008058,
+  GL_RGB10_A2                                                   = 0x00008059,
+  GL_RGB10_A2_EXT                                               = 0x00008059,
+  GL_RGBA12                                                     = 0x0000805A,
+  GL_RGBA12_EXT                                                 = 0x0000805A,
+  GL_RGBA16                                                     = 0x0000805B,
+  GL_RGBA16_EXT                                                 = 0x0000805B,
+  GL_TEXTURE_RED_SIZE                                           = 0x0000805C,
+  GL_TEXTURE_RED_SIZE_EXT                                       = 0x0000805C,
+  GL_TEXTURE_GREEN_SIZE                                         = 0x0000805D,
+  GL_TEXTURE_GREEN_SIZE_EXT                                     = 0x0000805D,
+  GL_TEXTURE_BLUE_SIZE                                          = 0x0000805E,
+  GL_TEXTURE_BLUE_SIZE_EXT                                      = 0x0000805E,
+  GL_TEXTURE_ALPHA_SIZE                                         = 0x0000805F,
+  GL_TEXTURE_ALPHA_SIZE_EXT                                     = 0x0000805F,
+  GL_TEXTURE_LUMINANCE_SIZE                                     = 0x00008060,
+  GL_TEXTURE_LUMINANCE_SIZE_EXT                                 = 0x00008060,
+  GL_TEXTURE_INTENSITY_SIZE                                     = 0x00008061,
+  GL_TEXTURE_INTENSITY_SIZE_EXT                                 = 0x00008061,
+  GL_REPLACE_EXT                                                = 0x00008062,
+  GL_PROXY_TEXTURE_1D                                           = 0x00008063,
+  GL_PROXY_TEXTURE_1D_EXT                                       = 0x00008063,
+  GL_PROXY_TEXTURE_2D                                           = 0x00008064,
+  GL_PROXY_TEXTURE_2D_EXT                                       = 0x00008064,
+  GL_TEXTURE_TOO_LARGE_EXT                                      = 0x00008065,
+  GL_TEXTURE_PRIORITY                                           = 0x00008066,
+  GL_TEXTURE_PRIORITY_EXT                                       = 0x00008066,
+  GL_TEXTURE_RESIDENT                                           = 0x00008067,
+  GL_TEXTURE_RESIDENT_EXT                                       = 0x00008067,
+  GL_TEXTURE_1D_BINDING_EXT                                     = 0x00008068,
+  GL_TEXTURE_BINDING_1D                                         = 0x00008068,
+  GL_TEXTURE_2D_BINDING_EXT                                     = 0x00008069,
+  GL_TEXTURE_BINDING_2D                                         = 0x00008069,
+  GL_TEXTURE_3D_BINDING_EXT                                     = 0x0000806A,
+  GL_TEXTURE_3D_BINDING_OES                                     = 0x0000806A,
+  GL_TEXTURE_BINDING_3D                                         = 0x0000806A,
+  GL_TEXTURE_BINDING_3D_OES                                     = 0x0000806A,
+  GL_PACK_SKIP_IMAGES                                           = 0x0000806B,
+  GL_PACK_SKIP_IMAGES_EXT                                       = 0x0000806B,
+  GL_PACK_IMAGE_HEIGHT                                          = 0x0000806C,
+  GL_PACK_IMAGE_HEIGHT_EXT                                      = 0x0000806C,
+  GL_UNPACK_SKIP_IMAGES                                         = 0x0000806D,
+  GL_UNPACK_SKIP_IMAGES_EXT                                     = 0x0000806D,
+  GL_UNPACK_IMAGE_HEIGHT                                        = 0x0000806E,
+  GL_UNPACK_IMAGE_HEIGHT_EXT                                    = 0x0000806E,
+  GL_TEXTURE_3D                                                 = 0x0000806F,
+  GL_TEXTURE_3D_EXT                                             = 0x0000806F,
+  GL_TEXTURE_3D_OES                                             = 0x0000806F,
+  GL_PROXY_TEXTURE_3D                                           = 0x00008070,
+  GL_PROXY_TEXTURE_3D_EXT                                       = 0x00008070,
+  GL_TEXTURE_DEPTH                                              = 0x00008071,
+  GL_TEXTURE_DEPTH_EXT                                          = 0x00008071,
+  GL_TEXTURE_WRAP_R                                             = 0x00008072,
+  GL_TEXTURE_WRAP_R_EXT                                         = 0x00008072,
+  GL_TEXTURE_WRAP_R_OES                                         = 0x00008072,
+  GL_MAX_3D_TEXTURE_SIZE                                        = 0x00008073,
+  GL_MAX_3D_TEXTURE_SIZE_EXT                                    = 0x00008073,
+  GL_MAX_3D_TEXTURE_SIZE_OES                                    = 0x00008073,
+  GL_VERTEX_ARRAY                                               = 0x00008074,
+  GL_VERTEX_ARRAY_EXT                                           = 0x00008074,
+  GL_VERTEX_ARRAY_KHR                                           = 0x00008074,
+  GL_NORMAL_ARRAY                                               = 0x00008075,
+  GL_NORMAL_ARRAY_EXT                                           = 0x00008075,
+  GL_COLOR_ARRAY                                                = 0x00008076,
+  GL_COLOR_ARRAY_EXT                                            = 0x00008076,
+  GL_INDEX_ARRAY                                                = 0x00008077,
+  GL_INDEX_ARRAY_EXT                                            = 0x00008077,
+  GL_TEXTURE_COORD_ARRAY                                        = 0x00008078,
+  GL_TEXTURE_COORD_ARRAY_EXT                                    = 0x00008078,
+  GL_EDGE_FLAG_ARRAY                                            = 0x00008079,
+  GL_EDGE_FLAG_ARRAY_EXT                                        = 0x00008079,
+  GL_VERTEX_ARRAY_SIZE                                          = 0x0000807A,
+  GL_VERTEX_ARRAY_SIZE_EXT                                      = 0x0000807A,
+  GL_VERTEX_ARRAY_TYPE                                          = 0x0000807B,
+  GL_VERTEX_ARRAY_TYPE_EXT                                      = 0x0000807B,
+  GL_VERTEX_ARRAY_STRIDE                                        = 0x0000807C,
+  GL_VERTEX_ARRAY_STRIDE_EXT                                    = 0x0000807C,
+  GL_VERTEX_ARRAY_COUNT_EXT                                     = 0x0000807D,
+  GL_NORMAL_ARRAY_TYPE                                          = 0x0000807E,
+  GL_NORMAL_ARRAY_TYPE_EXT                                      = 0x0000807E,
+  GL_NORMAL_ARRAY_STRIDE                                        = 0x0000807F,
+  GL_NORMAL_ARRAY_STRIDE_EXT                                    = 0x0000807F,
+  GL_NORMAL_ARRAY_COUNT_EXT                                     = 0x00008080,
+  GL_COLOR_ARRAY_SIZE                                           = 0x00008081,
+  GL_COLOR_ARRAY_SIZE_EXT                                       = 0x00008081,
+  GL_COLOR_ARRAY_TYPE                                           = 0x00008082,
+  GL_COLOR_ARRAY_TYPE_EXT                                       = 0x00008082,
+  GL_COLOR_ARRAY_STRIDE                                         = 0x00008083,
+  GL_COLOR_ARRAY_STRIDE_EXT                                     = 0x00008083,
+  GL_COLOR_ARRAY_COUNT_EXT                                      = 0x00008084,
+  GL_INDEX_ARRAY_TYPE                                           = 0x00008085,
+  GL_INDEX_ARRAY_TYPE_EXT                                       = 0x00008085,
+  GL_INDEX_ARRAY_STRIDE                                         = 0x00008086,
+  GL_INDEX_ARRAY_STRIDE_EXT                                     = 0x00008086,
+  GL_INDEX_ARRAY_COUNT_EXT                                      = 0x00008087,
+  GL_TEXTURE_COORD_ARRAY_SIZE                                   = 0x00008088,
+  GL_TEXTURE_COORD_ARRAY_SIZE_EXT                               = 0x00008088,
+  GL_TEXTURE_COORD_ARRAY_TYPE                                   = 0x00008089,
+  GL_TEXTURE_COORD_ARRAY_TYPE_EXT                               = 0x00008089,
+  GL_TEXTURE_COORD_ARRAY_STRIDE                                 = 0x0000808A,
+  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT                             = 0x0000808A,
+  GL_TEXTURE_COORD_ARRAY_COUNT_EXT                              = 0x0000808B,
+  GL_EDGE_FLAG_ARRAY_STRIDE                                     = 0x0000808C,
+  GL_EDGE_FLAG_ARRAY_STRIDE_EXT                                 = 0x0000808C,
+  GL_EDGE_FLAG_ARRAY_COUNT_EXT                                  = 0x0000808D,
+  GL_VERTEX_ARRAY_POINTER                                       = 0x0000808E,
+  GL_VERTEX_ARRAY_POINTER_EXT                                   = 0x0000808E,
+  GL_NORMAL_ARRAY_POINTER                                       = 0x0000808F,
+  GL_NORMAL_ARRAY_POINTER_EXT                                   = 0x0000808F,
+  GL_COLOR_ARRAY_POINTER                                        = 0x00008090,
+  GL_COLOR_ARRAY_POINTER_EXT                                    = 0x00008090,
+  GL_INDEX_ARRAY_POINTER                                        = 0x00008091,
+  GL_INDEX_ARRAY_POINTER_EXT                                    = 0x00008091,
+  GL_TEXTURE_COORD_ARRAY_POINTER                                = 0x00008092,
+  GL_TEXTURE_COORD_ARRAY_POINTER_EXT                            = 0x00008092,
+  GL_EDGE_FLAG_ARRAY_POINTER                                    = 0x00008093,
+  GL_EDGE_FLAG_ARRAY_POINTER_EXT                                = 0x00008093,
+  GL_INTERLACE_SGIX                                             = 0x00008094,
+  GL_DETAIL_TEXTURE_2D_SGIS                                     = 0x00008095,
+  GL_DETAIL_TEXTURE_2D_BINDING_SGIS                             = 0x00008096,
+  GL_LINEAR_DETAIL_SGIS                                         = 0x00008097,
+  GL_LINEAR_DETAIL_ALPHA_SGIS                                   = 0x00008098,
+  GL_LINEAR_DETAIL_COLOR_SGIS                                   = 0x00008099,
+  GL_DETAIL_TEXTURE_LEVEL_SGIS                                  = 0x0000809A,
+  GL_DETAIL_TEXTURE_MODE_SGIS                                   = 0x0000809B,
+  GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS                            = 0x0000809C,
+  GL_MULTISAMPLE                                                = 0x0000809D,
+  GL_MULTISAMPLE_ARB                                            = 0x0000809D,
+  GL_MULTISAMPLE_EXT                                            = 0x0000809D,
+  GL_MULTISAMPLE_SGIS                                           = 0x0000809D,
+  GL_SAMPLE_ALPHA_TO_COVERAGE                                   = 0x0000809E,
+  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB                               = 0x0000809E,
+  GL_SAMPLE_ALPHA_TO_MASK_EXT                                   = 0x0000809E,
+  GL_SAMPLE_ALPHA_TO_MASK_SGIS                                  = 0x0000809E,
+  GL_SAMPLE_ALPHA_TO_ONE                                        = 0x0000809F,
+  GL_SAMPLE_ALPHA_TO_ONE_ARB                                    = 0x0000809F,
+  GL_SAMPLE_ALPHA_TO_ONE_EXT                                    = 0x0000809F,
+  GL_SAMPLE_ALPHA_TO_ONE_SGIS                                   = 0x0000809F,
+  GL_SAMPLE_COVERAGE                                            = 0x000080A0,
+  GL_SAMPLE_COVERAGE_ARB                                        = 0x000080A0,
+  GL_SAMPLE_MASK_EXT                                            = 0x000080A0,
+  GL_SAMPLE_MASK_SGIS                                           = 0x000080A0,
+  GL_1PASS_EXT                                                  = 0x000080A1,
+  GL_1PASS_SGIS                                                 = 0x000080A1,
+  GL_2PASS_0_EXT                                                = 0x000080A2,
+  GL_2PASS_0_SGIS                                               = 0x000080A2,
+  GL_2PASS_1_EXT                                                = 0x000080A3,
+  GL_2PASS_1_SGIS                                               = 0x000080A3,
+  GL_4PASS_0_EXT                                                = 0x000080A4,
+  GL_4PASS_0_SGIS                                               = 0x000080A4,
+  GL_4PASS_1_EXT                                                = 0x000080A5,
+  GL_4PASS_1_SGIS                                               = 0x000080A5,
+  GL_4PASS_2_EXT                                                = 0x000080A6,
+  GL_4PASS_2_SGIS                                               = 0x000080A6,
+  GL_4PASS_3_EXT                                                = 0x000080A7,
+  GL_4PASS_3_SGIS                                               = 0x000080A7,
+  GL_SAMPLE_BUFFERS                                             = 0x000080A8,
+  GL_SAMPLE_BUFFERS_ARB                                         = 0x000080A8,
+  GL_SAMPLE_BUFFERS_EXT                                         = 0x000080A8,
+  GL_SAMPLE_BUFFERS_SGIS                                        = 0x000080A8,
+  GL_SAMPLES                                                    = 0x000080A9,
+  GL_SAMPLES_ARB                                                = 0x000080A9,
+  GL_SAMPLES_EXT                                                = 0x000080A9,
+  GL_SAMPLES_SGIS                                               = 0x000080A9,
+  GL_SAMPLE_COVERAGE_VALUE                                      = 0x000080AA,
+  GL_SAMPLE_COVERAGE_VALUE_ARB                                  = 0x000080AA,
+  GL_SAMPLE_MASK_VALUE_EXT                                      = 0x000080AA,
+  GL_SAMPLE_MASK_VALUE_SGIS                                     = 0x000080AA,
+  GL_SAMPLE_COVERAGE_INVERT                                     = 0x000080AB,
+  GL_SAMPLE_COVERAGE_INVERT_ARB                                 = 0x000080AB,
+  GL_SAMPLE_MASK_INVERT_EXT                                     = 0x000080AB,
+  GL_SAMPLE_MASK_INVERT_SGIS                                    = 0x000080AB,
+  GL_SAMPLE_PATTERN_EXT                                         = 0x000080AC,
+  GL_SAMPLE_PATTERN_SGIS                                        = 0x000080AC,
+  GL_LINEAR_SHARPEN_SGIS                                        = 0x000080AD,
+  GL_LINEAR_SHARPEN_ALPHA_SGIS                                  = 0x000080AE,
+  GL_LINEAR_SHARPEN_COLOR_SGIS                                  = 0x000080AF,
+  GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS                           = 0x000080B0,
+  GL_COLOR_MATRIX                                               = 0x000080B1,
+  GL_COLOR_MATRIX_SGI                                           = 0x000080B1,
+  GL_COLOR_MATRIX_STACK_DEPTH                                   = 0x000080B2,
+  GL_COLOR_MATRIX_STACK_DEPTH_SGI                               = 0x000080B2,
+  GL_MAX_COLOR_MATRIX_STACK_DEPTH                               = 0x000080B3,
+  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI                           = 0x000080B3,
+  GL_POST_COLOR_MATRIX_RED_SCALE                                = 0x000080B4,
+  GL_POST_COLOR_MATRIX_RED_SCALE_SGI                            = 0x000080B4,
+  GL_POST_COLOR_MATRIX_GREEN_SCALE                              = 0x000080B5,
+  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI                          = 0x000080B5,
+  GL_POST_COLOR_MATRIX_BLUE_SCALE                               = 0x000080B6,
+  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI                           = 0x000080B6,
+  GL_POST_COLOR_MATRIX_ALPHA_SCALE                              = 0x000080B7,
+  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI                          = 0x000080B7,
+  GL_POST_COLOR_MATRIX_RED_BIAS                                 = 0x000080B8,
+  GL_POST_COLOR_MATRIX_RED_BIAS_SGI                             = 0x000080B8,
+  GL_POST_COLOR_MATRIX_GREEN_BIAS                               = 0x000080B9,
+  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI                           = 0x000080B9,
+  GL_POST_COLOR_MATRIX_BLUE_BIAS                                = 0x000080BA,
+  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI                            = 0x000080BA,
+  GL_POST_COLOR_MATRIX_ALPHA_BIAS                               = 0x000080BB,
+  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI                           = 0x000080BB,
+  GL_TEXTURE_COLOR_TABLE_SGI                                    = 0x000080BC,
+  GL_PROXY_TEXTURE_COLOR_TABLE_SGI                              = 0x000080BD,
+  GL_TEXTURE_ENV_BIAS_SGIX                                      = 0x000080BE,
+  GL_SHADOW_AMBIENT_SGIX                                        = 0x000080BF,
+  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB                             = 0x000080BF,
+  GL_BLEND_DST_RGB                                              = 0x000080C8,
+  GL_BLEND_DST_RGB_EXT                                          = 0x000080C8,
+  GL_BLEND_DST_RGB_OES                                          = 0x000080C8,
+  GL_BLEND_SRC_RGB                                              = 0x000080C9,
+  GL_BLEND_SRC_RGB_EXT                                          = 0x000080C9,
+  GL_BLEND_SRC_RGB_OES                                          = 0x000080C9,
+  GL_BLEND_DST_ALPHA                                            = 0x000080CA,
+  GL_BLEND_DST_ALPHA_EXT                                        = 0x000080CA,
+  GL_BLEND_DST_ALPHA_OES                                        = 0x000080CA,
+  GL_BLEND_SRC_ALPHA                                            = 0x000080CB,
+  GL_BLEND_SRC_ALPHA_EXT                                        = 0x000080CB,
+  GL_BLEND_SRC_ALPHA_OES                                        = 0x000080CB,
+  GL_422_EXT                                                    = 0x000080CC,
+  GL_422_REV_EXT                                                = 0x000080CD,
+  GL_422_AVERAGE_EXT                                            = 0x000080CE,
+  GL_422_REV_AVERAGE_EXT                                        = 0x000080CF,
+  GL_COLOR_TABLE                                                = 0x000080D0,
+  GL_COLOR_TABLE_SGI                                            = 0x000080D0,
+  GL_POST_CONVOLUTION_COLOR_TABLE                               = 0x000080D1,
+  GL_POST_CONVOLUTION_COLOR_TABLE_SGI                           = 0x000080D1,
+  GL_POST_COLOR_MATRIX_COLOR_TABLE                              = 0x000080D2,
+  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI                          = 0x000080D2,
+  GL_PROXY_COLOR_TABLE                                          = 0x000080D3,
+  GL_PROXY_COLOR_TABLE_SGI                                      = 0x000080D3,
+  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE                         = 0x000080D4,
+  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI                     = 0x000080D4,
+  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE                        = 0x000080D5,
+  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI                    = 0x000080D5,
+  GL_COLOR_TABLE_SCALE                                          = 0x000080D6,
+  GL_COLOR_TABLE_SCALE_SGI                                      = 0x000080D6,
+  GL_COLOR_TABLE_BIAS                                           = 0x000080D7,
+  GL_COLOR_TABLE_BIAS_SGI                                       = 0x000080D7,
+  GL_COLOR_TABLE_FORMAT                                         = 0x000080D8,
+  GL_COLOR_TABLE_FORMAT_SGI                                     = 0x000080D8,
+  GL_COLOR_TABLE_WIDTH                                          = 0x000080D9,
+  GL_COLOR_TABLE_WIDTH_SGI                                      = 0x000080D9,
+  GL_COLOR_TABLE_RED_SIZE                                       = 0x000080DA,
+  GL_COLOR_TABLE_RED_SIZE_SGI                                   = 0x000080DA,
+  GL_COLOR_TABLE_GREEN_SIZE                                     = 0x000080DB,
+  GL_COLOR_TABLE_GREEN_SIZE_SGI                                 = 0x000080DB,
+  GL_COLOR_TABLE_BLUE_SIZE                                      = 0x000080DC,
+  GL_COLOR_TABLE_BLUE_SIZE_SGI                                  = 0x000080DC,
+  GL_COLOR_TABLE_ALPHA_SIZE                                     = 0x000080DD,
+  GL_COLOR_TABLE_ALPHA_SIZE_SGI                                 = 0x000080DD,
+  GL_COLOR_TABLE_LUMINANCE_SIZE                                 = 0x000080DE,
+  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI                             = 0x000080DE,
+  GL_COLOR_TABLE_INTENSITY_SIZE                                 = 0x000080DF,
+  GL_COLOR_TABLE_INTENSITY_SIZE_SGI                             = 0x000080DF,
+  GL_BGR                                                        = 0x000080E0,
+  GL_BGR_EXT                                                    = 0x000080E0,
+  GL_BGRA                                                       = 0x000080E1,
+  GL_BGRA_EXT                                                   = 0x000080E1,
+  GL_BGRA_IMG                                                   = 0x000080E1,
+  GL_COLOR_INDEX1_EXT                                           = 0x000080E2,
+  GL_COLOR_INDEX2_EXT                                           = 0x000080E3,
+  GL_COLOR_INDEX4_EXT                                           = 0x000080E4,
+  GL_COLOR_INDEX8_EXT                                           = 0x000080E5,
+  GL_COLOR_INDEX12_EXT                                          = 0x000080E6,
+  GL_COLOR_INDEX16_EXT                                          = 0x000080E7,
+  GL_MAX_ELEMENTS_VERTICES                                      = 0x000080E8,
+  GL_MAX_ELEMENTS_VERTICES_EXT                                  = 0x000080E8,
+  GL_MAX_ELEMENTS_INDICES                                       = 0x000080E9,
+  GL_MAX_ELEMENTS_INDICES_EXT                                   = 0x000080E9,
+  GL_PHONG_WIN                                                  = 0x000080EA,
+  GL_PHONG_HINT_WIN                                             = 0x000080EB,
+  GL_FOG_SPECULAR_TEXTURE_WIN                                   = 0x000080EC,
+  GL_TEXTURE_INDEX_SIZE_EXT                                     = 0x000080ED,
+  GL_PARAMETER_BUFFER_ARB                                       = 0x000080EE,
+  GL_PARAMETER_BUFFER_BINDING_ARB                               = 0x000080EF,
+  GL_CLIP_VOLUME_CLIPPING_HINT_EXT                              = 0x000080F0,
+  GL_DUAL_ALPHA4_SGIS                                           = 0x00008110,
+  GL_DUAL_ALPHA8_SGIS                                           = 0x00008111,
+  GL_DUAL_ALPHA12_SGIS                                          = 0x00008112,
+  GL_DUAL_ALPHA16_SGIS                                          = 0x00008113,
+  GL_DUAL_LUMINANCE4_SGIS                                       = 0x00008114,
+  GL_DUAL_LUMINANCE8_SGIS                                       = 0x00008115,
+  GL_DUAL_LUMINANCE12_SGIS                                      = 0x00008116,
+  GL_DUAL_LUMINANCE16_SGIS                                      = 0x00008117,
+  GL_DUAL_INTENSITY4_SGIS                                       = 0x00008118,
+  GL_DUAL_INTENSITY8_SGIS                                       = 0x00008119,
+  GL_DUAL_INTENSITY12_SGIS                                      = 0x0000811A,
+  GL_DUAL_INTENSITY16_SGIS                                      = 0x0000811B,
+  GL_DUAL_LUMINANCE_ALPHA4_SGIS                                 = 0x0000811C,
+  GL_DUAL_LUMINANCE_ALPHA8_SGIS                                 = 0x0000811D,
+  GL_QUAD_ALPHA4_SGIS                                           = 0x0000811E,
+  GL_QUAD_ALPHA8_SGIS                                           = 0x0000811F,
+  GL_QUAD_LUMINANCE4_SGIS                                       = 0x00008120,
+  GL_QUAD_LUMINANCE8_SGIS                                       = 0x00008121,
+  GL_QUAD_INTENSITY4_SGIS                                       = 0x00008122,
+  GL_QUAD_INTENSITY8_SGIS                                       = 0x00008123,
+  GL_DUAL_TEXTURE_SELECT_SGIS                                   = 0x00008124,
+  GL_QUAD_TEXTURE_SELECT_SGIS                                   = 0x00008125,
+  GL_POINT_SIZE_MIN                                             = 0x00008126,
+  GL_POINT_SIZE_MIN_ARB                                         = 0x00008126,
+  GL_POINT_SIZE_MIN_EXT                                         = 0x00008126,
+  GL_POINT_SIZE_MIN_SGIS                                        = 0x00008126,
+  GL_POINT_SIZE_MAX                                             = 0x00008127,
+  GL_POINT_SIZE_MAX_ARB                                         = 0x00008127,
+  GL_POINT_SIZE_MAX_EXT                                         = 0x00008127,
+  GL_POINT_SIZE_MAX_SGIS                                        = 0x00008127,
+  GL_POINT_FADE_THRESHOLD_SIZE                                  = 0x00008128,
+  GL_POINT_FADE_THRESHOLD_SIZE_ARB                              = 0x00008128,
+  GL_POINT_FADE_THRESHOLD_SIZE_EXT                              = 0x00008128,
+  GL_POINT_FADE_THRESHOLD_SIZE_SGIS                             = 0x00008128,
+  GL_DISTANCE_ATTENUATION_EXT                                   = 0x00008129,
+  GL_DISTANCE_ATTENUATION_SGIS                                  = 0x00008129,
+  GL_POINT_DISTANCE_ATTENUATION                                 = 0x00008129,
+  GL_POINT_DISTANCE_ATTENUATION_ARB                             = 0x00008129,
+  GL_FOG_FUNC_SGIS                                              = 0x0000812A,
+  GL_FOG_FUNC_POINTS_SGIS                                       = 0x0000812B,
+  GL_MAX_FOG_FUNC_POINTS_SGIS                                   = 0x0000812C,
+  GL_CLAMP_TO_BORDER                                            = 0x0000812D,
+  GL_CLAMP_TO_BORDER_ARB                                        = 0x0000812D,
+  GL_CLAMP_TO_BORDER_EXT                                        = 0x0000812D,
+  GL_CLAMP_TO_BORDER_NV                                         = 0x0000812D,
+  GL_CLAMP_TO_BORDER_SGIS                                       = 0x0000812D,
+  GL_CLAMP_TO_BORDER_OES                                        = 0x0000812D,
+  GL_TEXTURE_MULTI_BUFFER_HINT_SGIX                             = 0x0000812E,
+  GL_CLAMP_TO_EDGE                                              = 0x0000812F,
+  GL_CLAMP_TO_EDGE_SGIS                                         = 0x0000812F,
+  GL_PACK_SKIP_VOLUMES_SGIS                                     = 0x00008130,
+  GL_PACK_IMAGE_DEPTH_SGIS                                      = 0x00008131,
+  GL_UNPACK_SKIP_VOLUMES_SGIS                                   = 0x00008132,
+  GL_UNPACK_IMAGE_DEPTH_SGIS                                    = 0x00008133,
+  GL_TEXTURE_4D_SGIS                                            = 0x00008134,
+  GL_PROXY_TEXTURE_4D_SGIS                                      = 0x00008135,
+  GL_TEXTURE_4DSIZE_SGIS                                        = 0x00008136,
+  GL_TEXTURE_WRAP_Q_SGIS                                        = 0x00008137,
+  GL_MAX_4D_TEXTURE_SIZE_SGIS                                   = 0x00008138,
+  GL_PIXEL_TEX_GEN_SGIX                                         = 0x00008139,
+  GL_TEXTURE_MIN_LOD                                            = 0x0000813A,
+  GL_TEXTURE_MIN_LOD_SGIS                                       = 0x0000813A,
+  GL_TEXTURE_MAX_LOD                                            = 0x0000813B,
+  GL_TEXTURE_MAX_LOD_SGIS                                       = 0x0000813B,
+  GL_TEXTURE_BASE_LEVEL                                         = 0x0000813C,
+  GL_TEXTURE_BASE_LEVEL_SGIS                                    = 0x0000813C,
+  GL_TEXTURE_MAX_LEVEL                                          = 0x0000813D,
+  GL_TEXTURE_MAX_LEVEL_APPLE                                    = 0x0000813D,
+  GL_TEXTURE_MAX_LEVEL_SGIS                                     = 0x0000813D,
+  GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX                             = 0x0000813E,
+  GL_PIXEL_TILE_CACHE_INCREMENT_SGIX                            = 0x0000813F,
+  GL_PIXEL_TILE_WIDTH_SGIX                                      = 0x00008140,
+  GL_PIXEL_TILE_HEIGHT_SGIX                                     = 0x00008141,
+  GL_PIXEL_TILE_GRID_WIDTH_SGIX                                 = 0x00008142,
+  GL_PIXEL_TILE_GRID_HEIGHT_SGIX                                = 0x00008143,
+  GL_PIXEL_TILE_GRID_DEPTH_SGIX                                 = 0x00008144,
+  GL_PIXEL_TILE_CACHE_SIZE_SGIX                                 = 0x00008145,
+  GL_FILTER4_SGIS                                               = 0x00008146,
+  GL_TEXTURE_FILTER4_SIZE_SGIS                                  = 0x00008147,
+  GL_SPRITE_SGIX                                                = 0x00008148,
+  GL_SPRITE_MODE_SGIX                                           = 0x00008149,
+  GL_SPRITE_AXIS_SGIX                                           = 0x0000814A,
+  GL_SPRITE_TRANSLATION_SGIX                                    = 0x0000814B,
+  GL_SPRITE_AXIAL_SGIX                                          = 0x0000814C,
+  GL_SPRITE_OBJECT_ALIGNED_SGIX                                 = 0x0000814D,
+  GL_SPRITE_EYE_ALIGNED_SGIX                                    = 0x0000814E,
+  GL_TEXTURE_4D_BINDING_SGIS                                    = 0x0000814F,
+  GL_IGNORE_BORDER_HP                                           = 0x00008150,
+  GL_CONSTANT_BORDER                                            = 0x00008151,
+  GL_CONSTANT_BORDER_HP                                         = 0x00008151,
+  GL_REPLICATE_BORDER                                           = 0x00008153,
+  GL_REPLICATE_BORDER_HP                                        = 0x00008153,
+  GL_CONVOLUTION_BORDER_COLOR                                   = 0x00008154,
+  GL_CONVOLUTION_BORDER_COLOR_HP                                = 0x00008154,
+  GL_IMAGE_SCALE_X_HP                                           = 0x00008155,
+  GL_IMAGE_SCALE_Y_HP                                           = 0x00008156,
+  GL_IMAGE_TRANSLATE_X_HP                                       = 0x00008157,
+  GL_IMAGE_TRANSLATE_Y_HP                                       = 0x00008158,
+  GL_IMAGE_ROTATE_ANGLE_HP                                      = 0x00008159,
+  GL_IMAGE_ROTATE_ORIGIN_X_HP                                   = 0x0000815A,
+  GL_IMAGE_ROTATE_ORIGIN_Y_HP                                   = 0x0000815B,
+  GL_IMAGE_MAG_FILTER_HP                                        = 0x0000815C,
+  GL_IMAGE_MIN_FILTER_HP                                        = 0x0000815D,
+  GL_IMAGE_CUBIC_WEIGHT_HP                                      = 0x0000815E,
+  GL_CUBIC_HP                                                   = 0x0000815F,
+  GL_AVERAGE_HP                                                 = 0x00008160,
+  GL_IMAGE_TRANSFORM_2D_HP                                      = 0x00008161,
+  GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP                        = 0x00008162,
+  GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP                  = 0x00008163,
+  GL_OCCLUSION_TEST_HP                                          = 0x00008165,
+  GL_OCCLUSION_TEST_RESULT_HP                                   = 0x00008166,
+  GL_TEXTURE_LIGHTING_MODE_HP                                   = 0x00008167,
+  GL_TEXTURE_POST_SPECULAR_HP                                   = 0x00008168,
+  GL_TEXTURE_PRE_SPECULAR_HP                                    = 0x00008169,
+  GL_LINEAR_CLIPMAP_LINEAR_SGIX                                 = 0x00008170,
+  GL_TEXTURE_CLIPMAP_CENTER_SGIX                                = 0x00008171,
+  GL_TEXTURE_CLIPMAP_FRAME_SGIX                                 = 0x00008172,
+  GL_TEXTURE_CLIPMAP_OFFSET_SGIX                                = 0x00008173,
+  GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX                         = 0x00008174,
+  GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX                            = 0x00008175,
+  GL_TEXTURE_CLIPMAP_DEPTH_SGIX                                 = 0x00008176,
+  GL_MAX_CLIPMAP_DEPTH_SGIX                                     = 0x00008177,
+  GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX                             = 0x00008178,
+  GL_POST_TEXTURE_FILTER_BIAS_SGIX                              = 0x00008179,
+  GL_POST_TEXTURE_FILTER_SCALE_SGIX                             = 0x0000817A,
+  GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX                        = 0x0000817B,
+  GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX                       = 0x0000817C,
+  GL_REFERENCE_PLANE_SGIX                                       = 0x0000817D,
+  GL_REFERENCE_PLANE_EQUATION_SGIX                              = 0x0000817E,
+  GL_IR_INSTRUMENT1_SGIX                                        = 0x0000817F,
+  GL_INSTRUMENT_BUFFER_POINTER_SGIX                             = 0x00008180,
+  GL_INSTRUMENT_MEASUREMENTS_SGIX                               = 0x00008181,
+  GL_LIST_PRIORITY_SGIX                                         = 0x00008182,
+  GL_CALLIGRAPHIC_FRAGMENT_SGIX                                 = 0x00008183,
+  GL_PIXEL_TEX_GEN_Q_CEILING_SGIX                               = 0x00008184,
+  GL_PIXEL_TEX_GEN_Q_ROUND_SGIX                                 = 0x00008185,
+  GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX                                 = 0x00008186,
+  GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX                           = 0x00008187,
+  GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX                        = 0x00008188,
+  GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX                                = 0x00008189,
+  GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX                                = 0x0000818A,
+  GL_FRAMEZOOM_SGIX                                             = 0x0000818B,
+  GL_FRAMEZOOM_FACTOR_SGIX                                      = 0x0000818C,
+  GL_MAX_FRAMEZOOM_FACTOR_SGIX                                  = 0x0000818D,
+  GL_TEXTURE_LOD_BIAS_S_SGIX                                    = 0x0000818E,
+  GL_TEXTURE_LOD_BIAS_T_SGIX                                    = 0x0000818F,
+  GL_TEXTURE_LOD_BIAS_R_SGIX                                    = 0x00008190,
+  GL_GENERATE_MIPMAP                                            = 0x00008191,
+  GL_GENERATE_MIPMAP_SGIS                                       = 0x00008191,
+  GL_GENERATE_MIPMAP_HINT                                       = 0x00008192,
+  GL_GENERATE_MIPMAP_HINT_SGIS                                  = 0x00008192,
+  GL_GEOMETRY_DEFORMATION_SGIX                                  = 0x00008194,
+  GL_TEXTURE_DEFORMATION_SGIX                                   = 0x00008195,
+  GL_DEFORMATIONS_MASK_SGIX                                     = 0x00008196,
+  GL_MAX_DEFORMATION_ORDER_SGIX                                 = 0x00008197,
+  GL_FOG_OFFSET_SGIX                                            = 0x00008198,
+  GL_FOG_OFFSET_VALUE_SGIX                                      = 0x00008199,
+  GL_TEXTURE_COMPARE_SGIX                                       = 0x0000819A,
+  GL_TEXTURE_COMPARE_OPERATOR_SGIX                              = 0x0000819B,
+  GL_TEXTURE_LEQUAL_R_SGIX                                      = 0x0000819C,
+  GL_TEXTURE_GEQUAL_R_SGIX                                      = 0x0000819D,
+  GL_DEPTH_COMPONENT16                                          = 0x000081A5,
+  GL_DEPTH_COMPONENT16_ARB                                      = 0x000081A5,
+  GL_DEPTH_COMPONENT16_OES                                      = 0x000081A5,
+  GL_DEPTH_COMPONENT16_SGIX                                     = 0x000081A5,
+  GL_DEPTH_COMPONENT24                                          = 0x000081A6,
+  GL_DEPTH_COMPONENT24_ARB                                      = 0x000081A6,
+  GL_DEPTH_COMPONENT24_OES                                      = 0x000081A6,
+  GL_DEPTH_COMPONENT24_SGIX                                     = 0x000081A6,
+  GL_DEPTH_COMPONENT32                                          = 0x000081A7,
+  GL_DEPTH_COMPONENT32_ARB                                      = 0x000081A7,
+  GL_DEPTH_COMPONENT32_OES                                      = 0x000081A7,
+  GL_DEPTH_COMPONENT32_SGIX                                     = 0x000081A7,
+  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT                               = 0x000081A8,
+  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT                               = 0x000081A9,
+  GL_CULL_VERTEX_EXT                                            = 0x000081AA,
+  GL_CULL_VERTEX_EYE_POSITION_EXT                               = 0x000081AB,
+  GL_CULL_VERTEX_OBJECT_POSITION_EXT                            = 0x000081AC,
+  GL_IUI_V2F_EXT                                                = 0x000081AD,
+  GL_IUI_V3F_EXT                                                = 0x000081AE,
+  GL_IUI_N3F_V2F_EXT                                            = 0x000081AF,
+  GL_IUI_N3F_V3F_EXT                                            = 0x000081B0,
+  GL_T2F_IUI_V2F_EXT                                            = 0x000081B1,
+  GL_T2F_IUI_V3F_EXT                                            = 0x000081B2,
+  GL_T2F_IUI_N3F_V2F_EXT                                        = 0x000081B3,
+  GL_T2F_IUI_N3F_V3F_EXT                                        = 0x000081B4,
+  GL_INDEX_TEST_EXT                                             = 0x000081B5,
+  GL_INDEX_TEST_FUNC_EXT                                        = 0x000081B6,
+  GL_INDEX_TEST_REF_EXT                                         = 0x000081B7,
+  GL_INDEX_MATERIAL_EXT                                         = 0x000081B8,
+  GL_INDEX_MATERIAL_PARAMETER_EXT                               = 0x000081B9,
+  GL_INDEX_MATERIAL_FACE_EXT                                    = 0x000081BA,
+  GL_YCRCB_422_SGIX                                             = 0x000081BB,
+  GL_YCRCB_444_SGIX                                             = 0x000081BC,
+  GL_WRAP_BORDER_SUN                                            = 0x000081D4,
+  GL_UNPACK_CONSTANT_DATA_SUNX                                  = 0x000081D5,
+  GL_TEXTURE_CONSTANT_DATA_SUNX                                 = 0x000081D6,
+  GL_TRIANGLE_LIST_SUN                                          = 0x000081D7,
+  GL_REPLACEMENT_CODE_SUN                                       = 0x000081D8,
+  GL_GLOBAL_ALPHA_SUN                                           = 0x000081D9,
+  GL_GLOBAL_ALPHA_FACTOR_SUN                                    = 0x000081DA,
+  GL_TEXTURE_COLOR_WRITEMASK_SGIS                               = 0x000081EF,
+  GL_EYE_DISTANCE_TO_POINT_SGIS                                 = 0x000081F0,
+  GL_OBJECT_DISTANCE_TO_POINT_SGIS                              = 0x000081F1,
+  GL_EYE_DISTANCE_TO_LINE_SGIS                                  = 0x000081F2,
+  GL_OBJECT_DISTANCE_TO_LINE_SGIS                               = 0x000081F3,
+  GL_EYE_POINT_SGIS                                             = 0x000081F4,
+  GL_OBJECT_POINT_SGIS                                          = 0x000081F5,
+  GL_EYE_LINE_SGIS                                              = 0x000081F6,
+  GL_OBJECT_LINE_SGIS                                           = 0x000081F7,
+  GL_LIGHT_MODEL_COLOR_CONTROL                                  = 0x000081F8,
+  GL_LIGHT_MODEL_COLOR_CONTROL_EXT                              = 0x000081F8,
+  GL_SINGLE_COLOR                                               = 0x000081F9,
+  GL_SINGLE_COLOR_EXT                                           = 0x000081F9,
+  GL_SEPARATE_SPECULAR_COLOR                                    = 0x000081FA,
+  GL_SEPARATE_SPECULAR_COLOR_EXT                                = 0x000081FA,
+  GL_SHARED_TEXTURE_PALETTE_EXT                                 = 0x000081FB,
+  GL_TEXT_FRAGMENT_SHADER_ATI                                   = 0x00008200,
+  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING                      = 0x00008210,
+  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT                  = 0x00008210,
+  GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE                      = 0x00008211,
+  GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT                  = 0x00008211,
+  GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE                            = 0x00008212,
+  GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE                          = 0x00008213,
+  GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE                           = 0x00008214,
+  GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE                          = 0x00008215,
+  GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE                          = 0x00008216,
+  GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE                        = 0x00008217,
+  GL_FRAMEBUFFER_DEFAULT                                        = 0x00008218,
+  GL_FRAMEBUFFER_UNDEFINED                                      = 0x00008219,
+  GL_FRAMEBUFFER_UNDEFINED_OES                                  = 0x00008219,
+  GL_DEPTH_STENCIL_ATTACHMENT                                   = 0x0000821A,
+  GL_MAJOR_VERSION                                              = 0x0000821B,
+  GL_MINOR_VERSION                                              = 0x0000821C,
+  GL_NUM_EXTENSIONS                                             = 0x0000821D,
+  GL_CONTEXT_FLAGS                                              = 0x0000821E,
+  GL_BUFFER_IMMUTABLE_STORAGE                                   = 0x0000821F,
+  GL_BUFFER_IMMUTABLE_STORAGE_EXT                               = 0x0000821F,
+  GL_BUFFER_STORAGE_FLAGS                                       = 0x00008220,
+  GL_BUFFER_STORAGE_FLAGS_EXT                                   = 0x00008220,
+  GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED                    = 0x00008221,
+  GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES                = 0x00008221,
+  GL_INDEX                                                      = 0x00008222,
+  GL_COMPRESSED_RED                                             = 0x00008225,
+  GL_COMPRESSED_RG                                              = 0x00008226,
+  GL_RG                                                         = 0x00008227,
+  GL_RG_EXT                                                     = 0x00008227,
+  GL_RG_INTEGER                                                 = 0x00008228,
+  GL_R8                                                         = 0x00008229,
+  GL_R8_EXT                                                     = 0x00008229,
+  GL_R16                                                        = 0x0000822A,
+  GL_R16_EXT                                                    = 0x0000822A,
+  GL_RG8                                                        = 0x0000822B,
+  GL_RG8_EXT                                                    = 0x0000822B,
+  GL_RG16                                                       = 0x0000822C,
+  GL_RG16_EXT                                                   = 0x0000822C,
+  GL_R16F                                                       = 0x0000822D,
+  GL_R16F_EXT                                                   = 0x0000822D,
+  GL_R32F                                                       = 0x0000822E,
+  GL_R32F_EXT                                                   = 0x0000822E,
+  GL_RG16F                                                      = 0x0000822F,
+  GL_RG16F_EXT                                                  = 0x0000822F,
+  GL_RG32F                                                      = 0x00008230,
+  GL_RG32F_EXT                                                  = 0x00008230,
+  GL_R8I                                                        = 0x00008231,
+  GL_R8UI                                                       = 0x00008232,
+  GL_R16I                                                       = 0x00008233,
+  GL_R16UI                                                      = 0x00008234,
+  GL_R32I                                                       = 0x00008235,
+  GL_R32UI                                                      = 0x00008236,
+  GL_RG8I                                                       = 0x00008237,
+  GL_RG8UI                                                      = 0x00008238,
+  GL_RG16I                                                      = 0x00008239,
+  GL_RG16UI                                                     = 0x0000823A,
+  GL_RG32I                                                      = 0x0000823B,
+  GL_RG32UI                                                     = 0x0000823C,
+  GL_SYNC_CL_EVENT_ARB                                          = 0x00008240,
+  GL_SYNC_CL_EVENT_COMPLETE_ARB                                 = 0x00008241,
+  GL_DEBUG_OUTPUT_SYNCHRONOUS                                   = 0x00008242,
+  GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB                               = 0x00008242,
+  GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR                               = 0x00008242,
+  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH                           = 0x00008243,
+  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB                       = 0x00008243,
+  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR                       = 0x00008243,
+  GL_DEBUG_CALLBACK_FUNCTION                                    = 0x00008244,
+  GL_DEBUG_CALLBACK_FUNCTION_ARB                                = 0x00008244,
+  GL_DEBUG_CALLBACK_FUNCTION_KHR                                = 0x00008244,
+  GL_DEBUG_CALLBACK_USER_PARAM                                  = 0x00008245,
+  GL_DEBUG_CALLBACK_USER_PARAM_ARB                              = 0x00008245,
+  GL_DEBUG_CALLBACK_USER_PARAM_KHR                              = 0x00008245,
+  GL_DEBUG_SOURCE_API                                           = 0x00008246,
+  GL_DEBUG_SOURCE_API_ARB                                       = 0x00008246,
+  GL_DEBUG_SOURCE_API_KHR                                       = 0x00008246,
+  GL_DEBUG_SOURCE_WINDOW_SYSTEM                                 = 0x00008247,
+  GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB                             = 0x00008247,
+  GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR                             = 0x00008247,
+  GL_DEBUG_SOURCE_SHADER_COMPILER                               = 0x00008248,
+  GL_DEBUG_SOURCE_SHADER_COMPILER_ARB                           = 0x00008248,
+  GL_DEBUG_SOURCE_SHADER_COMPILER_KHR                           = 0x00008248,
+  GL_DEBUG_SOURCE_THIRD_PARTY                                   = 0x00008249,
+  GL_DEBUG_SOURCE_THIRD_PARTY_ARB                               = 0x00008249,
+  GL_DEBUG_SOURCE_THIRD_PARTY_KHR                               = 0x00008249,
+  GL_DEBUG_SOURCE_APPLICATION                                   = 0x0000824A,
+  GL_DEBUG_SOURCE_APPLICATION_ARB                               = 0x0000824A,
+  GL_DEBUG_SOURCE_APPLICATION_KHR                               = 0x0000824A,
+  GL_DEBUG_SOURCE_OTHER                                         = 0x0000824B,
+  GL_DEBUG_SOURCE_OTHER_ARB                                     = 0x0000824B,
+  GL_DEBUG_SOURCE_OTHER_KHR                                     = 0x0000824B,
+  GL_DEBUG_TYPE_ERROR                                           = 0x0000824C,
+  GL_DEBUG_TYPE_ERROR_ARB                                       = 0x0000824C,
+  GL_DEBUG_TYPE_ERROR_KHR                                       = 0x0000824C,
+  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR                             = 0x0000824D,
+  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB                         = 0x0000824D,
+  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR                         = 0x0000824D,
+  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR                              = 0x0000824E,
+  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB                          = 0x0000824E,
+  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR                          = 0x0000824E,
+  GL_DEBUG_TYPE_PORTABILITY                                     = 0x0000824F,
+  GL_DEBUG_TYPE_PORTABILITY_ARB                                 = 0x0000824F,
+  GL_DEBUG_TYPE_PORTABILITY_KHR                                 = 0x0000824F,
+  GL_DEBUG_TYPE_PERFORMANCE                                     = 0x00008250,
+  GL_DEBUG_TYPE_PERFORMANCE_ARB                                 = 0x00008250,
+  GL_DEBUG_TYPE_PERFORMANCE_KHR                                 = 0x00008250,
+  GL_DEBUG_TYPE_OTHER                                           = 0x00008251,
+  GL_DEBUG_TYPE_OTHER_ARB                                       = 0x00008251,
+  GL_DEBUG_TYPE_OTHER_KHR                                       = 0x00008251,
+  GL_LOSE_CONTEXT_ON_RESET                                      = 0x00008252,
+  GL_LOSE_CONTEXT_ON_RESET_ARB                                  = 0x00008252,
+  GL_LOSE_CONTEXT_ON_RESET_EXT                                  = 0x00008252,
+  GL_LOSE_CONTEXT_ON_RESET_KHR                                  = 0x00008252,
+  GL_GUILTY_CONTEXT_RESET                                       = 0x00008253,
+  GL_GUILTY_CONTEXT_RESET_ARB                                   = 0x00008253,
+  GL_GUILTY_CONTEXT_RESET_EXT                                   = 0x00008253,
+  GL_GUILTY_CONTEXT_RESET_KHR                                   = 0x00008253,
+  GL_INNOCENT_CONTEXT_RESET                                     = 0x00008254,
+  GL_INNOCENT_CONTEXT_RESET_ARB                                 = 0x00008254,
+  GL_INNOCENT_CONTEXT_RESET_EXT                                 = 0x00008254,
+  GL_INNOCENT_CONTEXT_RESET_KHR                                 = 0x00008254,
+  GL_UNKNOWN_CONTEXT_RESET                                      = 0x00008255,
+  GL_UNKNOWN_CONTEXT_RESET_ARB                                  = 0x00008255,
+  GL_UNKNOWN_CONTEXT_RESET_EXT                                  = 0x00008255,
+  GL_UNKNOWN_CONTEXT_RESET_KHR                                  = 0x00008255,
+  GL_RESET_NOTIFICATION_STRATEGY                                = 0x00008256,
+  GL_RESET_NOTIFICATION_STRATEGY_ARB                            = 0x00008256,
+  GL_RESET_NOTIFICATION_STRATEGY_EXT                            = 0x00008256,
+  GL_RESET_NOTIFICATION_STRATEGY_KHR                            = 0x00008256,
+  GL_PROGRAM_BINARY_RETRIEVABLE_HINT                            = 0x00008257,
+  GL_PROGRAM_SEPARABLE                                          = 0x00008258,
+  GL_PROGRAM_SEPARABLE_EXT                                      = 0x00008258,
+  GL_ACTIVE_PROGRAM                                             = 0x00008259,
+  GL_ACTIVE_PROGRAM_EXT                                         = 0x00008259,
+  GL_PROGRAM_PIPELINE_BINDING                                   = 0x0000825A,
+  GL_PROGRAM_PIPELINE_BINDING_EXT                               = 0x0000825A,
+  GL_MAX_VIEWPORTS                                              = 0x0000825B,
+  GL_MAX_VIEWPORTS_NV                                           = 0x0000825B,
+  GL_VIEWPORT_SUBPIXEL_BITS                                     = 0x0000825C,
+  GL_VIEWPORT_SUBPIXEL_BITS_EXT                                 = 0x0000825C,
+  GL_VIEWPORT_SUBPIXEL_BITS_NV                                  = 0x0000825C,
+  GL_VIEWPORT_BOUNDS_RANGE                                      = 0x0000825D,
+  GL_VIEWPORT_BOUNDS_RANGE_EXT                                  = 0x0000825D,
+  GL_VIEWPORT_BOUNDS_RANGE_NV                                   = 0x0000825D,
+  GL_LAYER_PROVOKING_VERTEX                                     = 0x0000825E,
+  GL_LAYER_PROVOKING_VERTEX_EXT                                 = 0x0000825E,
+  GL_LAYER_PROVOKING_VERTEX_OES                                 = 0x0000825E,
+  GL_VIEWPORT_INDEX_PROVOKING_VERTEX                            = 0x0000825F,
+  GL_VIEWPORT_INDEX_PROVOKING_VERTEX_EXT                        = 0x0000825F,
+  GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV                         = 0x0000825F,
+  GL_UNDEFINED_VERTEX                                           = 0x00008260,
+  GL_UNDEFINED_VERTEX_EXT                                       = 0x00008260,
+  GL_UNDEFINED_VERTEX_OES                                       = 0x00008260,
+  GL_NO_RESET_NOTIFICATION                                      = 0x00008261,
+  GL_NO_RESET_NOTIFICATION_ARB                                  = 0x00008261,
+  GL_NO_RESET_NOTIFICATION_EXT                                  = 0x00008261,
+  GL_NO_RESET_NOTIFICATION_KHR                                  = 0x00008261,
+  GL_MAX_COMPUTE_SHARED_MEMORY_SIZE                             = 0x00008262,
+  GL_MAX_COMPUTE_UNIFORM_COMPONENTS                             = 0x00008263,
+  GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS                         = 0x00008264,
+  GL_MAX_COMPUTE_ATOMIC_COUNTERS                                = 0x00008265,
+  GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS                    = 0x00008266,
+  GL_COMPUTE_WORK_GROUP_SIZE                                    = 0x00008267,
+  GL_DEBUG_TYPE_MARKER                                          = 0x00008268,
+  GL_DEBUG_TYPE_MARKER_KHR                                      = 0x00008268,
+  GL_DEBUG_TYPE_PUSH_GROUP                                      = 0x00008269,
+  GL_DEBUG_TYPE_PUSH_GROUP_KHR                                  = 0x00008269,
+  GL_DEBUG_TYPE_POP_GROUP                                       = 0x0000826A,
+  GL_DEBUG_TYPE_POP_GROUP_KHR                                   = 0x0000826A,
+  GL_DEBUG_SEVERITY_NOTIFICATION                                = 0x0000826B,
+  GL_DEBUG_SEVERITY_NOTIFICATION_KHR                            = 0x0000826B,
+  GL_MAX_DEBUG_GROUP_STACK_DEPTH                                = 0x0000826C,
+  GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR                            = 0x0000826C,
+  GL_DEBUG_GROUP_STACK_DEPTH                                    = 0x0000826D,
+  GL_DEBUG_GROUP_STACK_DEPTH_KHR                                = 0x0000826D,
+  GL_MAX_UNIFORM_LOCATIONS                                      = 0x0000826E,
+  GL_INTERNALFORMAT_SUPPORTED                                   = 0x0000826F,
+  GL_INTERNALFORMAT_PREFERRED                                   = 0x00008270,
+  GL_INTERNALFORMAT_RED_SIZE                                    = 0x00008271,
+  GL_INTERNALFORMAT_GREEN_SIZE                                  = 0x00008272,
+  GL_INTERNALFORMAT_BLUE_SIZE                                   = 0x00008273,
+  GL_INTERNALFORMAT_ALPHA_SIZE                                  = 0x00008274,
+  GL_INTERNALFORMAT_DEPTH_SIZE                                  = 0x00008275,
+  GL_INTERNALFORMAT_STENCIL_SIZE                                = 0x00008276,
+  GL_INTERNALFORMAT_SHARED_SIZE                                 = 0x00008277,
+  GL_INTERNALFORMAT_RED_TYPE                                    = 0x00008278,
+  GL_INTERNALFORMAT_GREEN_TYPE                                  = 0x00008279,
+  GL_INTERNALFORMAT_BLUE_TYPE                                   = 0x0000827A,
+  GL_INTERNALFORMAT_ALPHA_TYPE                                  = 0x0000827B,
+  GL_INTERNALFORMAT_DEPTH_TYPE                                  = 0x0000827C,
+  GL_INTERNALFORMAT_STENCIL_TYPE                                = 0x0000827D,
+  GL_MAX_WIDTH                                                  = 0x0000827E,
+  GL_MAX_HEIGHT                                                 = 0x0000827F,
+  GL_MAX_DEPTH                                                  = 0x00008280,
+  GL_MAX_LAYERS                                                 = 0x00008281,
+  GL_MAX_COMBINED_DIMENSIONS                                    = 0x00008282,
+  GL_COLOR_COMPONENTS                                           = 0x00008283,
+  GL_DEPTH_COMPONENTS                                           = 0x00008284,
+  GL_STENCIL_COMPONENTS                                         = 0x00008285,
+  GL_COLOR_RENDERABLE                                           = 0x00008286,
+  GL_DEPTH_RENDERABLE                                           = 0x00008287,
+  GL_STENCIL_RENDERABLE                                         = 0x00008288,
+  GL_FRAMEBUFFER_RENDERABLE                                     = 0x00008289,
+  GL_FRAMEBUFFER_RENDERABLE_LAYERED                             = 0x0000828A,
+  GL_FRAMEBUFFER_BLEND                                          = 0x0000828B,
+  GL_READ_PIXELS                                                = 0x0000828C,
+  GL_READ_PIXELS_FORMAT                                         = 0x0000828D,
+  GL_READ_PIXELS_TYPE                                           = 0x0000828E,
+  GL_TEXTURE_IMAGE_FORMAT                                       = 0x0000828F,
+  GL_TEXTURE_IMAGE_TYPE                                         = 0x00008290,
+  GL_GET_TEXTURE_IMAGE_FORMAT                                   = 0x00008291,
+  GL_GET_TEXTURE_IMAGE_TYPE                                     = 0x00008292,
+  GL_MIPMAP                                                     = 0x00008293,
+  GL_MANUAL_GENERATE_MIPMAP                                     = 0x00008294,
+  GL_AUTO_GENERATE_MIPMAP                                       = 0x00008295,
+  GL_COLOR_ENCODING                                             = 0x00008296,
+  GL_SRGB_READ                                                  = 0x00008297,
+  GL_SRGB_WRITE                                                 = 0x00008298,
+  GL_SRGB_DECODE_ARB                                            = 0x00008299,
+  GL_FILTER                                                     = 0x0000829A,
+  GL_VERTEX_TEXTURE                                             = 0x0000829B,
+  GL_TESS_CONTROL_TEXTURE                                       = 0x0000829C,
+  GL_TESS_EVALUATION_TEXTURE                                    = 0x0000829D,
+  GL_GEOMETRY_TEXTURE                                           = 0x0000829E,
+  GL_FRAGMENT_TEXTURE                                           = 0x0000829F,
+  GL_COMPUTE_TEXTURE                                            = 0x000082A0,
+  GL_TEXTURE_SHADOW                                             = 0x000082A1,
+  GL_TEXTURE_GATHER                                             = 0x000082A2,
+  GL_TEXTURE_GATHER_SHADOW                                      = 0x000082A3,
+  GL_SHADER_IMAGE_LOAD                                          = 0x000082A4,
+  GL_SHADER_IMAGE_STORE                                         = 0x000082A5,
+  GL_SHADER_IMAGE_ATOMIC                                        = 0x000082A6,
+  GL_IMAGE_TEXEL_SIZE                                           = 0x000082A7,
+  GL_IMAGE_COMPATIBILITY_CLASS                                  = 0x000082A8,
+  GL_IMAGE_PIXEL_FORMAT                                         = 0x000082A9,
+  GL_IMAGE_PIXEL_TYPE                                           = 0x000082AA,
+  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST                        = 0x000082AC,
+  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST                      = 0x000082AD,
+  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE                       = 0x000082AE,
+  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE                     = 0x000082AF,
+  GL_TEXTURE_COMPRESSED_BLOCK_WIDTH                             = 0x000082B1,
+  GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT                            = 0x000082B2,
+  GL_TEXTURE_COMPRESSED_BLOCK_SIZE                              = 0x000082B3,
+  GL_CLEAR_BUFFER                                               = 0x000082B4,
+  GL_TEXTURE_VIEW                                               = 0x000082B5,
+  GL_VIEW_COMPATIBILITY_CLASS                                   = 0x000082B6,
+  GL_FULL_SUPPORT                                               = 0x000082B7,
+  GL_CAVEAT_SUPPORT                                             = 0x000082B8,
+  GL_IMAGE_CLASS_4_X_32                                         = 0x000082B9,
+  GL_IMAGE_CLASS_2_X_32                                         = 0x000082BA,
+  GL_IMAGE_CLASS_1_X_32                                         = 0x000082BB,
+  GL_IMAGE_CLASS_4_X_16                                         = 0x000082BC,
+  GL_IMAGE_CLASS_2_X_16                                         = 0x000082BD,
+  GL_IMAGE_CLASS_1_X_16                                         = 0x000082BE,
+  GL_IMAGE_CLASS_4_X_8                                          = 0x000082BF,
+  GL_IMAGE_CLASS_2_X_8                                          = 0x000082C0,
+  GL_IMAGE_CLASS_1_X_8                                          = 0x000082C1,
+  GL_IMAGE_CLASS_11_11_10                                       = 0x000082C2,
+  GL_IMAGE_CLASS_10_10_10_2                                     = 0x000082C3,
+  GL_VIEW_CLASS_128_BITS                                        = 0x000082C4,
+  GL_VIEW_CLASS_96_BITS                                         = 0x000082C5,
+  GL_VIEW_CLASS_64_BITS                                         = 0x000082C6,
+  GL_VIEW_CLASS_48_BITS                                         = 0x000082C7,
+  GL_VIEW_CLASS_32_BITS                                         = 0x000082C8,
+  GL_VIEW_CLASS_24_BITS                                         = 0x000082C9,
+  GL_VIEW_CLASS_16_BITS                                         = 0x000082CA,
+  GL_VIEW_CLASS_8_BITS                                          = 0x000082CB,
+  GL_VIEW_CLASS_S3TC_DXT1_RGB                                   = 0x000082CC,
+  GL_VIEW_CLASS_S3TC_DXT1_RGBA                                  = 0x000082CD,
+  GL_VIEW_CLASS_S3TC_DXT3_RGBA                                  = 0x000082CE,
+  GL_VIEW_CLASS_S3TC_DXT5_RGBA                                  = 0x000082CF,
+  GL_VIEW_CLASS_RGTC1_RED                                       = 0x000082D0,
+  GL_VIEW_CLASS_RGTC2_RG                                        = 0x000082D1,
+  GL_VIEW_CLASS_BPTC_UNORM                                      = 0x000082D2,
+  GL_VIEW_CLASS_BPTC_FLOAT                                      = 0x000082D3,
+  GL_VERTEX_ATTRIB_BINDING                                      = 0x000082D4,
+  GL_VERTEX_ATTRIB_RELATIVE_OFFSET                              = 0x000082D5,
+  GL_VERTEX_BINDING_DIVISOR                                     = 0x000082D6,
+  GL_VERTEX_BINDING_OFFSET                                      = 0x000082D7,
+  GL_VERTEX_BINDING_STRIDE                                      = 0x000082D8,
+  GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET                          = 0x000082D9,
+  GL_MAX_VERTEX_ATTRIB_BINDINGS                                 = 0x000082DA,
+  GL_TEXTURE_VIEW_MIN_LEVEL                                     = 0x000082DB,
+  GL_TEXTURE_VIEW_MIN_LEVEL_EXT                                 = 0x000082DB,
+  GL_TEXTURE_VIEW_MIN_LEVEL_OES                                 = 0x000082DB,
+  GL_TEXTURE_VIEW_NUM_LEVELS                                    = 0x000082DC,
+  GL_TEXTURE_VIEW_NUM_LEVELS_EXT                                = 0x000082DC,
+  GL_TEXTURE_VIEW_NUM_LEVELS_OES                                = 0x000082DC,
+  GL_TEXTURE_VIEW_MIN_LAYER                                     = 0x000082DD,
+  GL_TEXTURE_VIEW_MIN_LAYER_EXT                                 = 0x000082DD,
+  GL_TEXTURE_VIEW_MIN_LAYER_OES                                 = 0x000082DD,
+  GL_TEXTURE_VIEW_NUM_LAYERS                                    = 0x000082DE,
+  GL_TEXTURE_VIEW_NUM_LAYERS_EXT                                = 0x000082DE,
+  GL_TEXTURE_VIEW_NUM_LAYERS_OES                                = 0x000082DE,
+  GL_TEXTURE_IMMUTABLE_LEVELS                                   = 0x000082DF,
+  GL_BUFFER                                                     = 0x000082E0,
+  GL_BUFFER_KHR                                                 = 0x000082E0,
+  GL_SHADER                                                     = 0x000082E1,
+  GL_SHADER_KHR                                                 = 0x000082E1,
+  GL_PROGRAM                                                    = 0x000082E2,
+  GL_PROGRAM_KHR                                                = 0x000082E2,
+  GL_QUERY                                                      = 0x000082E3,
+  GL_QUERY_KHR                                                  = 0x000082E3,
+  GL_PROGRAM_PIPELINE                                           = 0x000082E4,
+  GL_PROGRAM_PIPELINE_KHR                                       = 0x000082E4,
+  GL_MAX_VERTEX_ATTRIB_STRIDE                                   = 0x000082E5,
+  GL_SAMPLER                                                    = 0x000082E6,
+  GL_SAMPLER_KHR                                                = 0x000082E6,
+  GL_DISPLAY_LIST                                               = 0x000082E7,
+  GL_MAX_LABEL_LENGTH                                           = 0x000082E8,
+  GL_MAX_LABEL_LENGTH_KHR                                       = 0x000082E8,
+  GL_NUM_SHADING_LANGUAGE_VERSIONS                              = 0x000082E9,
+  GL_QUERY_TARGET                                               = 0x000082EA,
+  GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB                            = 0x000082EC,
+  GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB                     = 0x000082ED,
+  GL_VERTICES_SUBMITTED_ARB                                     = 0x000082EE,
+  GL_PRIMITIVES_SUBMITTED_ARB                                   = 0x000082EF,
+  GL_VERTEX_SHADER_INVOCATIONS_ARB                              = 0x000082F0,
+  GL_TESS_CONTROL_SHADER_PATCHES_ARB                            = 0x000082F1,
+  GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB                     = 0x000082F2,
+  GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB                     = 0x000082F3,
+  GL_FRAGMENT_SHADER_INVOCATIONS_ARB                            = 0x000082F4,
+  GL_COMPUTE_SHADER_INVOCATIONS_ARB                             = 0x000082F5,
+  GL_CLIPPING_INPUT_PRIMITIVES_ARB                              = 0x000082F6,
+  GL_CLIPPING_OUTPUT_PRIMITIVES_ARB                             = 0x000082F7,
+  GL_SPARSE_BUFFER_PAGE_SIZE_ARB                                = 0x000082F8,
+  GL_MAX_CULL_DISTANCES                                         = 0x000082F9,
+  GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES                       = 0x000082FA,
+  GL_CONTEXT_RELEASE_BEHAVIOR                                   = 0x000082FB,
+  GL_CONTEXT_RELEASE_BEHAVIOR_KHR                               = 0x000082FB,
+  GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH                             = 0x000082FC,
+  GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR                         = 0x000082FC,
+  GL_DEPTH_PASS_INSTRUMENT_SGIX                                 = 0x00008310,
+  GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX                        = 0x00008311,
+  GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX                             = 0x00008312,
+  GL_FRAGMENTS_INSTRUMENT_SGIX                                  = 0x00008313,
+  GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX                         = 0x00008314,
+  GL_FRAGMENTS_INSTRUMENT_MAX_SGIX                              = 0x00008315,
+  GL_CONVOLUTION_HINT_SGIX                                      = 0x00008316,
+  GL_YCRCB_SGIX                                                 = 0x00008318,
+  GL_YCRCBA_SGIX                                                = 0x00008319,
+  GL_UNPACK_COMPRESSED_SIZE_SGIX                                = 0x0000831A,
+  GL_PACK_MAX_COMPRESSED_SIZE_SGIX                              = 0x0000831B,
+  GL_PACK_COMPRESSED_SIZE_SGIX                                  = 0x0000831C,
+  GL_SLIM8U_SGIX                                                = 0x0000831D,
+  GL_SLIM10U_SGIX                                               = 0x0000831E,
+  GL_SLIM12S_SGIX                                               = 0x0000831F,
+  GL_ALPHA_MIN_SGIX                                             = 0x00008320,
+  GL_ALPHA_MAX_SGIX                                             = 0x00008321,
+  GL_SCALEBIAS_HINT_SGIX                                        = 0x00008322,
+  GL_ASYNC_MARKER_SGIX                                          = 0x00008329,
+  GL_PIXEL_TEX_GEN_MODE_SGIX                                    = 0x0000832B,
+  GL_ASYNC_HISTOGRAM_SGIX                                       = 0x0000832C,
+  GL_MAX_ASYNC_HISTOGRAM_SGIX                                   = 0x0000832D,
+  GL_PIXEL_TRANSFORM_2D_EXT                                     = 0x00008330,
+  GL_PIXEL_MAG_FILTER_EXT                                       = 0x00008331,
+  GL_PIXEL_MIN_FILTER_EXT                                       = 0x00008332,
+  GL_PIXEL_CUBIC_WEIGHT_EXT                                     = 0x00008333,
+  GL_CUBIC_EXT                                                  = 0x00008334,
+  GL_AVERAGE_EXT                                                = 0x00008335,
+  GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT                         = 0x00008336,
+  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT                     = 0x00008337,
+  GL_PIXEL_TRANSFORM_2D_MATRIX_EXT                              = 0x00008338,
+  GL_FRAGMENT_MATERIAL_EXT                                      = 0x00008349,
+  GL_FRAGMENT_NORMAL_EXT                                        = 0x0000834A,
+  GL_FRAGMENT_COLOR_EXT                                         = 0x0000834C,
+  GL_ATTENUATION_EXT                                            = 0x0000834D,
+  GL_SHADOW_ATTENUATION_EXT                                     = 0x0000834E,
+  GL_TEXTURE_APPLICATION_MODE_EXT                               = 0x0000834F,
+  GL_TEXTURE_LIGHT_EXT                                          = 0x00008350,
+  GL_TEXTURE_MATERIAL_FACE_EXT                                  = 0x00008351,
+  GL_TEXTURE_MATERIAL_PARAMETER_EXT                             = 0x00008352,
+  GL_PIXEL_TEXTURE_SGIS                                         = 0x00008353,
+  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS                             = 0x00008354,
+  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS                           = 0x00008355,
+  GL_PIXEL_GROUP_COLOR_SGIS                                     = 0x00008356,
+  GL_LINE_QUALITY_HINT_SGIX                                     = 0x0000835B,
+  GL_ASYNC_TEX_IMAGE_SGIX                                       = 0x0000835C,
+  GL_ASYNC_DRAW_PIXELS_SGIX                                     = 0x0000835D,
+  GL_ASYNC_READ_PIXELS_SGIX                                     = 0x0000835E,
+  GL_MAX_ASYNC_TEX_IMAGE_SGIX                                   = 0x0000835F,
+  GL_MAX_ASYNC_DRAW_PIXELS_SGIX                                 = 0x00008360,
+  GL_MAX_ASYNC_READ_PIXELS_SGIX                                 = 0x00008361,
+  GL_UNSIGNED_BYTE_2_3_3_REV                                    = 0x00008362,
+  GL_UNSIGNED_BYTE_2_3_3_REV_EXT                                = 0x00008362,
+  GL_UNSIGNED_SHORT_5_6_5                                       = 0x00008363,
+  GL_UNSIGNED_SHORT_5_6_5_EXT                                   = 0x00008363,
+  GL_UNSIGNED_SHORT_5_6_5_REV                                   = 0x00008364,
+  GL_UNSIGNED_SHORT_5_6_5_REV_EXT                               = 0x00008364,
+  GL_UNSIGNED_SHORT_4_4_4_4_REV                                 = 0x00008365,
+  GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                             = 0x00008365,
+  GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                             = 0x00008365,
+  GL_UNSIGNED_SHORT_1_5_5_5_REV                                 = 0x00008366,
+  GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                             = 0x00008366,
+  GL_UNSIGNED_INT_8_8_8_8_REV                                   = 0x00008367,
+  GL_UNSIGNED_INT_8_8_8_8_REV_EXT                               = 0x00008367,
+  GL_UNSIGNED_INT_2_10_10_10_REV                                = 0x00008368,
+  GL_UNSIGNED_INT_2_10_10_10_REV_EXT                            = 0x00008368,
+  GL_TEXTURE_MAX_CLAMP_S_SGIX                                   = 0x00008369,
+  GL_TEXTURE_MAX_CLAMP_T_SGIX                                   = 0x0000836A,
+  GL_TEXTURE_MAX_CLAMP_R_SGIX                                   = 0x0000836B,
+  GL_MIRRORED_REPEAT                                            = 0x00008370,
+  GL_MIRRORED_REPEAT_ARB                                        = 0x00008370,
+  GL_MIRRORED_REPEAT_IBM                                        = 0x00008370,
+  GL_MIRRORED_REPEAT_OES                                        = 0x00008370,
+  GL_RGB_S3TC                                                   = 0x000083A0,
+  GL_RGB4_S3TC                                                  = 0x000083A1,
+  GL_RGBA_S3TC                                                  = 0x000083A2,
+  GL_RGBA4_S3TC                                                 = 0x000083A3,
+  GL_RGBA_DXT5_S3TC                                             = 0x000083A4,
+  GL_RGBA4_DXT5_S3TC                                            = 0x000083A5,
+  GL_VERTEX_PRECLIP_SGIX                                        = 0x000083EE,
+  GL_VERTEX_PRECLIP_HINT_SGIX                                   = 0x000083EF,
+  GL_COMPRESSED_RGB_S3TC_DXT1_EXT                               = 0x000083F0,
+  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                              = 0x000083F1,
+  GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE                            = 0x000083F2,
+  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT                              = 0x000083F2,
+  GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE                            = 0x000083F3,
+  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT                              = 0x000083F3,
+  GL_PARALLEL_ARRAYS_INTEL                                      = 0x000083F4,
+  GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL                       = 0x000083F5,
+  GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL                       = 0x000083F6,
+  GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL                        = 0x000083F7,
+  GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL                = 0x000083F8,
+  GL_PERFQUERY_DONOT_FLUSH_INTEL                                = 0x000083F9,
+  GL_PERFQUERY_FLUSH_INTEL                                      = 0x000083FA,
+  GL_PERFQUERY_WAIT_INTEL                                       = 0x000083FB,
+  GL_TEXTURE_MEMORY_LAYOUT_INTEL                                = 0x000083FF,
+  GL_FRAGMENT_LIGHTING_SGIX                                     = 0x00008400,
+  GL_FRAGMENT_COLOR_MATERIAL_SGIX                               = 0x00008401,
+  GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX                          = 0x00008402,
+  GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX                     = 0x00008403,
+  GL_MAX_FRAGMENT_LIGHTS_SGIX                                   = 0x00008404,
+  GL_MAX_ACTIVE_LIGHTS_SGIX                                     = 0x00008405,
+  GL_CURRENT_RASTER_NORMAL_SGIX                                 = 0x00008406,
+  GL_LIGHT_ENV_MODE_SGIX                                        = 0x00008407,
+  GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX                     = 0x00008408,
+  GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX                         = 0x00008409,
+  GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX                          = 0x0000840A,
+  GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX             = 0x0000840B,
+  GL_FRAGMENT_LIGHT0_SGIX                                       = 0x0000840C,
+  GL_FRAGMENT_LIGHT1_SGIX                                       = 0x0000840D,
+  GL_FRAGMENT_LIGHT2_SGIX                                       = 0x0000840E,
+  GL_FRAGMENT_LIGHT3_SGIX                                       = 0x0000840F,
+  GL_FRAGMENT_LIGHT4_SGIX                                       = 0x00008410,
+  GL_FRAGMENT_LIGHT5_SGIX                                       = 0x00008411,
+  GL_FRAGMENT_LIGHT6_SGIX                                       = 0x00008412,
+  GL_FRAGMENT_LIGHT7_SGIX                                       = 0x00008413,
+  GL_PACK_RESAMPLE_SGIX                                         = 0x0000842E,
+  GL_UNPACK_RESAMPLE_SGIX                                       = 0x0000842F,
+  GL_RESAMPLE_DECIMATE_SGIX                                     = 0x00008430,
+  GL_RESAMPLE_REPLICATE_SGIX                                    = 0x00008433,
+  GL_RESAMPLE_ZERO_FILL_SGIX                                    = 0x00008434,
+  GL_TANGENT_ARRAY_EXT                                          = 0x00008439,
+  GL_BINORMAL_ARRAY_EXT                                         = 0x0000843A,
+  GL_CURRENT_TANGENT_EXT                                        = 0x0000843B,
+  GL_CURRENT_BINORMAL_EXT                                       = 0x0000843C,
+  GL_TANGENT_ARRAY_TYPE_EXT                                     = 0x0000843E,
+  GL_TANGENT_ARRAY_STRIDE_EXT                                   = 0x0000843F,
+  GL_BINORMAL_ARRAY_TYPE_EXT                                    = 0x00008440,
+  GL_BINORMAL_ARRAY_STRIDE_EXT                                  = 0x00008441,
+  GL_TANGENT_ARRAY_POINTER_EXT                                  = 0x00008442,
+  GL_BINORMAL_ARRAY_POINTER_EXT                                 = 0x00008443,
+  GL_MAP1_TANGENT_EXT                                           = 0x00008444,
+  GL_MAP2_TANGENT_EXT                                           = 0x00008445,
+  GL_MAP1_BINORMAL_EXT                                          = 0x00008446,
+  GL_MAP2_BINORMAL_EXT                                          = 0x00008447,
+  GL_NEAREST_CLIPMAP_NEAREST_SGIX                               = 0x0000844D,
+  GL_NEAREST_CLIPMAP_LINEAR_SGIX                                = 0x0000844E,
+  GL_LINEAR_CLIPMAP_NEAREST_SGIX                                = 0x0000844F,
+  GL_FOG_COORDINATE_SOURCE                                      = 0x00008450,
+  GL_FOG_COORDINATE_SOURCE_EXT                                  = 0x00008450,
+  GL_FOG_COORD_SRC                                              = 0x00008450,
+  GL_FOG_COORDINATE                                             = 0x00008451,
+  GL_FOG_COORD                                                  = 0x00008451,
+  GL_FOG_COORDINATE_EXT                                         = 0x00008451,
+  GL_FRAGMENT_DEPTH                                             = 0x00008452,
+  GL_FRAGMENT_DEPTH_EXT                                         = 0x00008452,
+  GL_CURRENT_FOG_COORDINATE                                     = 0x00008453,
+  GL_CURRENT_FOG_COORD                                          = 0x00008453,
+  GL_CURRENT_FOG_COORDINATE_EXT                                 = 0x00008453,
+  GL_FOG_COORDINATE_ARRAY_TYPE                                  = 0x00008454,
+  GL_FOG_COORDINATE_ARRAY_TYPE_EXT                              = 0x00008454,
+  GL_FOG_COORD_ARRAY_TYPE                                       = 0x00008454,
+  GL_FOG_COORDINATE_ARRAY_STRIDE                                = 0x00008455,
+  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT                            = 0x00008455,
+  GL_FOG_COORD_ARRAY_STRIDE                                     = 0x00008455,
+  GL_FOG_COORDINATE_ARRAY_POINTER                               = 0x00008456,
+  GL_FOG_COORDINATE_ARRAY_POINTER_EXT                           = 0x00008456,
+  GL_FOG_COORD_ARRAY_POINTER                                    = 0x00008456,
+  GL_FOG_COORDINATE_ARRAY                                       = 0x00008457,
+  GL_FOG_COORDINATE_ARRAY_EXT                                   = 0x00008457,
+  GL_FOG_COORD_ARRAY                                            = 0x00008457,
+  GL_COLOR_SUM                                                  = 0x00008458,
+  GL_COLOR_SUM_ARB                                              = 0x00008458,
+  GL_COLOR_SUM_EXT                                              = 0x00008458,
+  GL_CURRENT_SECONDARY_COLOR                                    = 0x00008459,
+  GL_CURRENT_SECONDARY_COLOR_EXT                                = 0x00008459,
+  GL_SECONDARY_COLOR_ARRAY_SIZE                                 = 0x0000845A,
+  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT                             = 0x0000845A,
+  GL_SECONDARY_COLOR_ARRAY_TYPE                                 = 0x0000845B,
+  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT                             = 0x0000845B,
+  GL_SECONDARY_COLOR_ARRAY_STRIDE                               = 0x0000845C,
+  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT                           = 0x0000845C,
+  GL_SECONDARY_COLOR_ARRAY_POINTER                              = 0x0000845D,
+  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT                          = 0x0000845D,
+  GL_SECONDARY_COLOR_ARRAY                                      = 0x0000845E,
+  GL_SECONDARY_COLOR_ARRAY_EXT                                  = 0x0000845E,
+  GL_CURRENT_RASTER_SECONDARY_COLOR                             = 0x0000845F,
+  GL_ALIASED_POINT_SIZE_RANGE                                   = 0x0000846D,
+  GL_ALIASED_LINE_WIDTH_RANGE                                   = 0x0000846E,
+  GL_SCREEN_COORDINATES_REND                                    = 0x00008490,
+  GL_INVERTED_SCREEN_W_REND                                     = 0x00008491,
+  GL_TEXTURE0                                                   = 0x000084C0,
+  GL_TEXTURE0_ARB                                               = 0x000084C0,
+  GL_TEXTURE1                                                   = 0x000084C1,
+  GL_TEXTURE1_ARB                                               = 0x000084C1,
+  GL_TEXTURE2                                                   = 0x000084C2,
+  GL_TEXTURE2_ARB                                               = 0x000084C2,
+  GL_TEXTURE3                                                   = 0x000084C3,
+  GL_TEXTURE3_ARB                                               = 0x000084C3,
+  GL_TEXTURE4                                                   = 0x000084C4,
+  GL_TEXTURE4_ARB                                               = 0x000084C4,
+  GL_TEXTURE5                                                   = 0x000084C5,
+  GL_TEXTURE5_ARB                                               = 0x000084C5,
+  GL_TEXTURE6                                                   = 0x000084C6,
+  GL_TEXTURE6_ARB                                               = 0x000084C6,
+  GL_TEXTURE7                                                   = 0x000084C7,
+  GL_TEXTURE7_ARB                                               = 0x000084C7,
+  GL_TEXTURE8                                                   = 0x000084C8,
+  GL_TEXTURE8_ARB                                               = 0x000084C8,
+  GL_TEXTURE9                                                   = 0x000084C9,
+  GL_TEXTURE9_ARB                                               = 0x000084C9,
+  GL_TEXTURE10                                                  = 0x000084CA,
+  GL_TEXTURE10_ARB                                              = 0x000084CA,
+  GL_TEXTURE11                                                  = 0x000084CB,
+  GL_TEXTURE11_ARB                                              = 0x000084CB,
+  GL_TEXTURE12                                                  = 0x000084CC,
+  GL_TEXTURE12_ARB                                              = 0x000084CC,
+  GL_TEXTURE13                                                  = 0x000084CD,
+  GL_TEXTURE13_ARB                                              = 0x000084CD,
+  GL_TEXTURE14                                                  = 0x000084CE,
+  GL_TEXTURE14_ARB                                              = 0x000084CE,
+  GL_TEXTURE15                                                  = 0x000084CF,
+  GL_TEXTURE15_ARB                                              = 0x000084CF,
+  GL_TEXTURE16                                                  = 0x000084D0,
+  GL_TEXTURE16_ARB                                              = 0x000084D0,
+  GL_TEXTURE17                                                  = 0x000084D1,
+  GL_TEXTURE17_ARB                                              = 0x000084D1,
+  GL_TEXTURE18                                                  = 0x000084D2,
+  GL_TEXTURE18_ARB                                              = 0x000084D2,
+  GL_TEXTURE19                                                  = 0x000084D3,
+  GL_TEXTURE19_ARB                                              = 0x000084D3,
+  GL_TEXTURE20                                                  = 0x000084D4,
+  GL_TEXTURE20_ARB                                              = 0x000084D4,
+  GL_TEXTURE21                                                  = 0x000084D5,
+  GL_TEXTURE21_ARB                                              = 0x000084D5,
+  GL_TEXTURE22                                                  = 0x000084D6,
+  GL_TEXTURE22_ARB                                              = 0x000084D6,
+  GL_TEXTURE23                                                  = 0x000084D7,
+  GL_TEXTURE23_ARB                                              = 0x000084D7,
+  GL_TEXTURE24                                                  = 0x000084D8,
+  GL_TEXTURE24_ARB                                              = 0x000084D8,
+  GL_TEXTURE25                                                  = 0x000084D9,
+  GL_TEXTURE25_ARB                                              = 0x000084D9,
+  GL_TEXTURE26                                                  = 0x000084DA,
+  GL_TEXTURE26_ARB                                              = 0x000084DA,
+  GL_TEXTURE27                                                  = 0x000084DB,
+  GL_TEXTURE27_ARB                                              = 0x000084DB,
+  GL_TEXTURE28                                                  = 0x000084DC,
+  GL_TEXTURE28_ARB                                              = 0x000084DC,
+  GL_TEXTURE29                                                  = 0x000084DD,
+  GL_TEXTURE29_ARB                                              = 0x000084DD,
+  GL_TEXTURE30                                                  = 0x000084DE,
+  GL_TEXTURE30_ARB                                              = 0x000084DE,
+  GL_TEXTURE31                                                  = 0x000084DF,
+  GL_TEXTURE31_ARB                                              = 0x000084DF,
+  GL_ACTIVE_TEXTURE                                             = 0x000084E0,
+  GL_ACTIVE_TEXTURE_ARB                                         = 0x000084E0,
+  GL_CLIENT_ACTIVE_TEXTURE                                      = 0x000084E1,
+  GL_CLIENT_ACTIVE_TEXTURE_ARB                                  = 0x000084E1,
+  GL_MAX_TEXTURE_UNITS                                          = 0x000084E2,
+  GL_MAX_TEXTURE_UNITS_ARB                                      = 0x000084E2,
+  GL_TRANSPOSE_MODELVIEW_MATRIX                                 = 0x000084E3,
+  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB                             = 0x000084E3,
+  GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV                         = 0x000084E3,
+  GL_TRANSPOSE_PROJECTION_MATRIX                                = 0x000084E4,
+  GL_TRANSPOSE_PROJECTION_MATRIX_ARB                            = 0x000084E4,
+  GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV                        = 0x000084E4,
+  GL_TRANSPOSE_TEXTURE_MATRIX                                   = 0x000084E5,
+  GL_TRANSPOSE_TEXTURE_MATRIX_ARB                               = 0x000084E5,
+  GL_TRANSPOSE_COLOR_MATRIX                                     = 0x000084E6,
+  GL_TRANSPOSE_COLOR_MATRIX_ARB                                 = 0x000084E6,
+  GL_SUBTRACT                                                   = 0x000084E7,
+  GL_SUBTRACT_ARB                                               = 0x000084E7,
+  GL_MAX_RENDERBUFFER_SIZE                                      = 0x000084E8,
+  GL_MAX_RENDERBUFFER_SIZE_EXT                                  = 0x000084E8,
+  GL_MAX_RENDERBUFFER_SIZE_OES                                  = 0x000084E8,
+  GL_COMPRESSED_ALPHA                                           = 0x000084E9,
+  GL_COMPRESSED_ALPHA_ARB                                       = 0x000084E9,
+  GL_COMPRESSED_LUMINANCE                                       = 0x000084EA,
+  GL_COMPRESSED_LUMINANCE_ARB                                   = 0x000084EA,
+  GL_COMPRESSED_LUMINANCE_ALPHA                                 = 0x000084EB,
+  GL_COMPRESSED_LUMINANCE_ALPHA_ARB                             = 0x000084EB,
+  GL_COMPRESSED_INTENSITY                                       = 0x000084EC,
+  GL_COMPRESSED_INTENSITY_ARB                                   = 0x000084EC,
+  GL_COMPRESSED_RGB                                             = 0x000084ED,
+  GL_COMPRESSED_RGB_ARB                                         = 0x000084ED,
+  GL_COMPRESSED_RGBA                                            = 0x000084EE,
+  GL_COMPRESSED_RGBA_ARB                                        = 0x000084EE,
+  GL_TEXTURE_COMPRESSION_HINT                                   = 0x000084EF,
+  GL_TEXTURE_COMPRESSION_HINT_ARB                               = 0x000084EF,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER            = 0x000084F0,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER         = 0x000084F1,
+  GL_ALL_COMPLETED_NV                                           = 0x000084F2,
+  GL_FENCE_STATUS_NV                                            = 0x000084F3,
+  GL_FENCE_CONDITION_NV                                         = 0x000084F4,
+  GL_TEXTURE_RECTANGLE                                          = 0x000084F5,
+  GL_TEXTURE_RECTANGLE_ARB                                      = 0x000084F5,
+  GL_TEXTURE_RECTANGLE_NV                                       = 0x000084F5,
+  GL_TEXTURE_BINDING_RECTANGLE                                  = 0x000084F6,
+  GL_TEXTURE_BINDING_RECTANGLE_ARB                              = 0x000084F6,
+  GL_TEXTURE_BINDING_RECTANGLE_NV                               = 0x000084F6,
+  GL_PROXY_TEXTURE_RECTANGLE                                    = 0x000084F7,
+  GL_PROXY_TEXTURE_RECTANGLE_ARB                                = 0x000084F7,
+  GL_PROXY_TEXTURE_RECTANGLE_NV                                 = 0x000084F7,
+  GL_MAX_RECTANGLE_TEXTURE_SIZE                                 = 0x000084F8,
+  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB                             = 0x000084F8,
+  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV                              = 0x000084F8,
+  GL_DEPTH_STENCIL                                              = 0x000084F9,
+  GL_DEPTH_STENCIL_EXT                                          = 0x000084F9,
+  GL_DEPTH_STENCIL_NV                                           = 0x000084F9,
+  GL_DEPTH_STENCIL_OES                                          = 0x000084F9,
+  GL_UNSIGNED_INT_24_8                                          = 0x000084FA,
+  GL_UNSIGNED_INT_24_8_EXT                                      = 0x000084FA,
+  GL_UNSIGNED_INT_24_8_NV                                       = 0x000084FA,
+  GL_UNSIGNED_INT_24_8_OES                                      = 0x000084FA,
+  GL_MAX_TEXTURE_LOD_BIAS                                       = 0x000084FD,
+  GL_MAX_TEXTURE_LOD_BIAS_EXT                                   = 0x000084FD,
+  GL_TEXTURE_MAX_ANISOTROPY_EXT                                 = 0x000084FE,
+  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                             = 0x000084FF,
+  GL_TEXTURE_FILTER_CONTROL                                     = 0x00008500,
+  GL_TEXTURE_FILTER_CONTROL_EXT                                 = 0x00008500,
+  GL_TEXTURE_LOD_BIAS                                           = 0x00008501,
+  GL_TEXTURE_LOD_BIAS_EXT                                       = 0x00008501,
+  GL_MODELVIEW1_STACK_DEPTH_EXT                                 = 0x00008502,
+  GL_COMBINE4_NV                                                = 0x00008503,
+  GL_MAX_SHININESS_NV                                           = 0x00008504,
+  GL_MAX_SPOT_EXPONENT_NV                                       = 0x00008505,
+  GL_MODELVIEW1_MATRIX_EXT                                      = 0x00008506,
+  GL_INCR_WRAP                                                  = 0x00008507,
+  GL_INCR_WRAP_EXT                                              = 0x00008507,
+  GL_INCR_WRAP_OES                                              = 0x00008507,
+  GL_DECR_WRAP                                                  = 0x00008508,
+  GL_DECR_WRAP_EXT                                              = 0x00008508,
+  GL_DECR_WRAP_OES                                              = 0x00008508,
+  GL_VERTEX_WEIGHTING_EXT                                       = 0x00008509,
+  GL_MODELVIEW1_ARB                                             = 0x0000850A,
+  GL_MODELVIEW1_EXT                                             = 0x0000850A,
+  GL_CURRENT_VERTEX_WEIGHT_EXT                                  = 0x0000850B,
+  GL_VERTEX_WEIGHT_ARRAY_EXT                                    = 0x0000850C,
+  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT                               = 0x0000850D,
+  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT                               = 0x0000850E,
+  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT                             = 0x0000850F,
+  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT                            = 0x00008510,
+  GL_NORMAL_MAP                                                 = 0x00008511,
+  GL_NORMAL_MAP_ARB                                             = 0x00008511,
+  GL_NORMAL_MAP_EXT                                             = 0x00008511,
+  GL_NORMAL_MAP_NV                                              = 0x00008511,
+  GL_NORMAL_MAP_OES                                             = 0x00008511,
+  GL_REFLECTION_MAP                                             = 0x00008512,
+  GL_REFLECTION_MAP_ARB                                         = 0x00008512,
+  GL_REFLECTION_MAP_EXT                                         = 0x00008512,
+  GL_REFLECTION_MAP_NV                                          = 0x00008512,
+  GL_REFLECTION_MAP_OES                                         = 0x00008512,
+  GL_TEXTURE_CUBE_MAP                                           = 0x00008513,
+  GL_TEXTURE_CUBE_MAP_ARB                                       = 0x00008513,
+  GL_TEXTURE_CUBE_MAP_EXT                                       = 0x00008513,
+  GL_TEXTURE_CUBE_MAP_OES                                       = 0x00008513,
+  GL_TEXTURE_BINDING_CUBE_MAP                                   = 0x00008514,
+  GL_TEXTURE_BINDING_CUBE_MAP_ARB                               = 0x00008514,
+  GL_TEXTURE_BINDING_CUBE_MAP_EXT                               = 0x00008514,
+  GL_TEXTURE_BINDING_CUBE_MAP_OES                               = 0x00008514,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_X                                = 0x00008515,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                            = 0x00008515,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT                            = 0x00008515,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES                            = 0x00008515,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_X                                = 0x00008516,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                            = 0x00008516,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT                            = 0x00008516,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES                            = 0x00008516,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Y                                = 0x00008517,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                            = 0x00008517,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT                            = 0x00008517,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES                            = 0x00008517,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y                                = 0x00008518,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                            = 0x00008518,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT                            = 0x00008518,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES                            = 0x00008518,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Z                                = 0x00008519,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                            = 0x00008519,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT                            = 0x00008519,
+  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES                            = 0x00008519,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z                                = 0x0000851A,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                            = 0x0000851A,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT                            = 0x0000851A,
+  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES                            = 0x0000851A,
+  GL_PROXY_TEXTURE_CUBE_MAP                                     = 0x0000851B,
+  GL_PROXY_TEXTURE_CUBE_MAP_ARB                                 = 0x0000851B,
+  GL_PROXY_TEXTURE_CUBE_MAP_EXT                                 = 0x0000851B,
+  GL_MAX_CUBE_MAP_TEXTURE_SIZE                                  = 0x0000851C,
+  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                              = 0x0000851C,
+  GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT                              = 0x0000851C,
+  GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES                              = 0x0000851C,
+  GL_VERTEX_ARRAY_RANGE_APPLE                                   = 0x0000851D,
+  GL_VERTEX_ARRAY_RANGE_NV                                      = 0x0000851D,
+  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE                            = 0x0000851E,
+  GL_VERTEX_ARRAY_RANGE_LENGTH_NV                               = 0x0000851E,
+  GL_VERTEX_ARRAY_RANGE_VALID_NV                                = 0x0000851F,
+  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE                            = 0x0000851F,
+  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV                          = 0x00008520,
+  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE                           = 0x00008521,
+  GL_VERTEX_ARRAY_RANGE_POINTER_NV                              = 0x00008521,
+  GL_REGISTER_COMBINERS_NV                                      = 0x00008522,
+  GL_VARIABLE_A_NV                                              = 0x00008523,
+  GL_VARIABLE_B_NV                                              = 0x00008524,
+  GL_VARIABLE_C_NV                                              = 0x00008525,
+  GL_VARIABLE_D_NV                                              = 0x00008526,
+  GL_VARIABLE_E_NV                                              = 0x00008527,
+  GL_VARIABLE_F_NV                                              = 0x00008528,
+  GL_VARIABLE_G_NV                                              = 0x00008529,
+  GL_CONSTANT_COLOR0_NV                                         = 0x0000852A,
+  GL_CONSTANT_COLOR1_NV                                         = 0x0000852B,
+  GL_PRIMARY_COLOR_NV                                           = 0x0000852C,
+  GL_SECONDARY_COLOR_NV                                         = 0x0000852D,
+  GL_SPARE0_NV                                                  = 0x0000852E,
+  GL_SPARE1_NV                                                  = 0x0000852F,
+  GL_DISCARD_NV                                                 = 0x00008530,
+  GL_E_TIMES_F_NV                                               = 0x00008531,
+  GL_SPARE0_PLUS_SECONDARY_COLOR_NV                             = 0x00008532,
+  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV                        = 0x00008533,
+  GL_MULTISAMPLE_FILTER_HINT_NV                                 = 0x00008534,
+  GL_PER_STAGE_CONSTANTS_NV                                     = 0x00008535,
+  GL_UNSIGNED_IDENTITY_NV                                       = 0x00008536,
+  GL_UNSIGNED_INVERT_NV                                         = 0x00008537,
+  GL_EXPAND_NORMAL_NV                                           = 0x00008538,
+  GL_EXPAND_NEGATE_NV                                           = 0x00008539,
+  GL_HALF_BIAS_NORMAL_NV                                        = 0x0000853A,
+  GL_HALF_BIAS_NEGATE_NV                                        = 0x0000853B,
+  GL_SIGNED_IDENTITY_NV                                         = 0x0000853C,
+  GL_SIGNED_NEGATE_NV                                           = 0x0000853D,
+  GL_SCALE_BY_TWO_NV                                            = 0x0000853E,
+  GL_SCALE_BY_FOUR_NV                                           = 0x0000853F,
+  GL_SCALE_BY_ONE_HALF_NV                                       = 0x00008540,
+  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV                               = 0x00008541,
+  GL_COMBINER_INPUT_NV                                          = 0x00008542,
+  GL_COMBINER_MAPPING_NV                                        = 0x00008543,
+  GL_COMBINER_COMPONENT_USAGE_NV                                = 0x00008544,
+  GL_COMBINER_AB_DOT_PRODUCT_NV                                 = 0x00008545,
+  GL_COMBINER_CD_DOT_PRODUCT_NV                                 = 0x00008546,
+  GL_COMBINER_MUX_SUM_NV                                        = 0x00008547,
+  GL_COMBINER_SCALE_NV                                          = 0x00008548,
+  GL_COMBINER_BIAS_NV                                           = 0x00008549,
+  GL_COMBINER_AB_OUTPUT_NV                                      = 0x0000854A,
+  GL_COMBINER_CD_OUTPUT_NV                                      = 0x0000854B,
+  GL_COMBINER_SUM_OUTPUT_NV                                     = 0x0000854C,
+  GL_MAX_GENERAL_COMBINERS_NV                                   = 0x0000854D,
+  GL_NUM_GENERAL_COMBINERS_NV                                   = 0x0000854E,
+  GL_COLOR_SUM_CLAMP_NV                                         = 0x0000854F,
+  GL_COMBINER0_NV                                               = 0x00008550,
+  GL_COMBINER1_NV                                               = 0x00008551,
+  GL_COMBINER2_NV                                               = 0x00008552,
+  GL_COMBINER3_NV                                               = 0x00008553,
+  GL_COMBINER4_NV                                               = 0x00008554,
+  GL_COMBINER5_NV                                               = 0x00008555,
+  GL_COMBINER6_NV                                               = 0x00008556,
+  GL_COMBINER7_NV                                               = 0x00008557,
+  GL_PRIMITIVE_RESTART_NV                                       = 0x00008558,
+  GL_PRIMITIVE_RESTART_INDEX_NV                                 = 0x00008559,
+  GL_FOG_DISTANCE_MODE_NV                                       = 0x0000855A,
+  GL_EYE_RADIAL_NV                                              = 0x0000855B,
+  GL_EYE_PLANE_ABSOLUTE_NV                                      = 0x0000855C,
+  GL_EMBOSS_LIGHT_NV                                            = 0x0000855D,
+  GL_EMBOSS_CONSTANT_NV                                         = 0x0000855E,
+  GL_EMBOSS_MAP_NV                                              = 0x0000855F,
+  GL_RED_MIN_CLAMP_INGR                                         = 0x00008560,
+  GL_GREEN_MIN_CLAMP_INGR                                       = 0x00008561,
+  GL_BLUE_MIN_CLAMP_INGR                                        = 0x00008562,
+  GL_ALPHA_MIN_CLAMP_INGR                                       = 0x00008563,
+  GL_RED_MAX_CLAMP_INGR                                         = 0x00008564,
+  GL_GREEN_MAX_CLAMP_INGR                                       = 0x00008565,
+  GL_BLUE_MAX_CLAMP_INGR                                        = 0x00008566,
+  GL_ALPHA_MAX_CLAMP_INGR                                       = 0x00008567,
+  GL_INTERLACE_READ_INGR                                        = 0x00008568,
+  GL_COMBINE                                                    = 0x00008570,
+  GL_COMBINE_ARB                                                = 0x00008570,
+  GL_COMBINE_EXT                                                = 0x00008570,
+  GL_COMBINE_RGB                                                = 0x00008571,
+  GL_COMBINE_RGB_ARB                                            = 0x00008571,
+  GL_COMBINE_RGB_EXT                                            = 0x00008571,
+  GL_COMBINE_ALPHA                                              = 0x00008572,
+  GL_COMBINE_ALPHA_ARB                                          = 0x00008572,
+  GL_COMBINE_ALPHA_EXT                                          = 0x00008572,
+  GL_RGB_SCALE                                                  = 0x00008573,
+  GL_RGB_SCALE_ARB                                              = 0x00008573,
+  GL_RGB_SCALE_EXT                                              = 0x00008573,
+  GL_ADD_SIGNED                                                 = 0x00008574,
+  GL_ADD_SIGNED_ARB                                             = 0x00008574,
+  GL_ADD_SIGNED_EXT                                             = 0x00008574,
+  GL_INTERPOLATE                                                = 0x00008575,
+  GL_INTERPOLATE_ARB                                            = 0x00008575,
+  GL_INTERPOLATE_EXT                                            = 0x00008575,
+  GL_CONSTANT                                                   = 0x00008576,
+  GL_CONSTANT_ARB                                               = 0x00008576,
+  GL_CONSTANT_EXT                                               = 0x00008576,
+  GL_CONSTANT_NV                                                = 0x00008576,
+  GL_PRIMARY_COLOR                                              = 0x00008577,
+  GL_PRIMARY_COLOR_ARB                                          = 0x00008577,
+  GL_PRIMARY_COLOR_EXT                                          = 0x00008577,
+  GL_PREVIOUS                                                   = 0x00008578,
+  GL_PREVIOUS_ARB                                               = 0x00008578,
+  GL_PREVIOUS_EXT                                               = 0x00008578,
+  GL_SOURCE0_RGB                                                = 0x00008580,
+  GL_SOURCE0_RGB_ARB                                            = 0x00008580,
+  GL_SOURCE0_RGB_EXT                                            = 0x00008580,
+  GL_SRC0_RGB                                                   = 0x00008580,
+  GL_SOURCE1_RGB                                                = 0x00008581,
+  GL_SOURCE1_RGB_ARB                                            = 0x00008581,
+  GL_SOURCE1_RGB_EXT                                            = 0x00008581,
+  GL_SRC1_RGB                                                   = 0x00008581,
+  GL_SOURCE2_RGB                                                = 0x00008582,
+  GL_SOURCE2_RGB_ARB                                            = 0x00008582,
+  GL_SOURCE2_RGB_EXT                                            = 0x00008582,
+  GL_SRC2_RGB                                                   = 0x00008582,
+  GL_SOURCE3_RGB_NV                                             = 0x00008583,
+  GL_SOURCE0_ALPHA                                              = 0x00008588,
+  GL_SOURCE0_ALPHA_ARB                                          = 0x00008588,
+  GL_SOURCE0_ALPHA_EXT                                          = 0x00008588,
+  GL_SRC0_ALPHA                                                 = 0x00008588,
+  GL_SOURCE1_ALPHA                                              = 0x00008589,
+  GL_SOURCE1_ALPHA_ARB                                          = 0x00008589,
+  GL_SOURCE1_ALPHA_EXT                                          = 0x00008589,
+  GL_SRC1_ALPHA                                                 = 0x00008589,
+  GL_SOURCE2_ALPHA                                              = 0x0000858A,
+  GL_SOURCE2_ALPHA_ARB                                          = 0x0000858A,
+  GL_SOURCE2_ALPHA_EXT                                          = 0x0000858A,
+  GL_SRC2_ALPHA                                                 = 0x0000858A,
+  GL_SOURCE3_ALPHA_NV                                           = 0x0000858B,
+  GL_OPERAND0_RGB                                               = 0x00008590,
+  GL_OPERAND0_RGB_ARB                                           = 0x00008590,
+  GL_OPERAND0_RGB_EXT                                           = 0x00008590,
+  GL_OPERAND1_RGB                                               = 0x00008591,
+  GL_OPERAND1_RGB_ARB                                           = 0x00008591,
+  GL_OPERAND1_RGB_EXT                                           = 0x00008591,
+  GL_OPERAND2_RGB                                               = 0x00008592,
+  GL_OPERAND2_RGB_ARB                                           = 0x00008592,
+  GL_OPERAND2_RGB_EXT                                           = 0x00008592,
+  GL_OPERAND3_RGB_NV                                            = 0x00008593,
+  GL_OPERAND0_ALPHA                                             = 0x00008598,
+  GL_OPERAND0_ALPHA_ARB                                         = 0x00008598,
+  GL_OPERAND0_ALPHA_EXT                                         = 0x00008598,
+  GL_OPERAND1_ALPHA                                             = 0x00008599,
+  GL_OPERAND1_ALPHA_ARB                                         = 0x00008599,
+  GL_OPERAND1_ALPHA_EXT                                         = 0x00008599,
+  GL_OPERAND2_ALPHA                                             = 0x0000859A,
+  GL_OPERAND2_ALPHA_ARB                                         = 0x0000859A,
+  GL_OPERAND2_ALPHA_EXT                                         = 0x0000859A,
+  GL_OPERAND3_ALPHA_NV                                          = 0x0000859B,
+  GL_PACK_SUBSAMPLE_RATE_SGIX                                   = 0x000085A0,
+  GL_UNPACK_SUBSAMPLE_RATE_SGIX                                 = 0x000085A1,
+  GL_PIXEL_SUBSAMPLE_4444_SGIX                                  = 0x000085A2,
+  GL_PIXEL_SUBSAMPLE_2424_SGIX                                  = 0x000085A3,
+  GL_PIXEL_SUBSAMPLE_4242_SGIX                                  = 0x000085A4,
+  GL_PERTURB_EXT                                                = 0x000085AE,
+  GL_TEXTURE_NORMAL_EXT                                         = 0x000085AF,
+  GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE                          = 0x000085B0,
+  GL_TRANSFORM_HINT_APPLE                                       = 0x000085B1,
+  GL_UNPACK_CLIENT_STORAGE_APPLE                                = 0x000085B2,
+  GL_BUFFER_OBJECT_APPLE                                        = 0x000085B3,
+  GL_STORAGE_CLIENT_APPLE                                       = 0x000085B4,
+  GL_VERTEX_ARRAY_BINDING                                       = 0x000085B5,
+  GL_VERTEX_ARRAY_BINDING_APPLE                                 = 0x000085B5,
+  GL_VERTEX_ARRAY_BINDING_OES                                   = 0x000085B5,
+  GL_TEXTURE_RANGE_LENGTH_APPLE                                 = 0x000085B7,
+  GL_TEXTURE_RANGE_POINTER_APPLE                                = 0x000085B8,
+  GL_YCBCR_422_APPLE                                            = 0x000085B9,
+  GL_UNSIGNED_SHORT_8_8_APPLE                                   = 0x000085BA,
+  GL_UNSIGNED_SHORT_8_8_MESA                                    = 0x000085BA,
+  GL_UNSIGNED_SHORT_8_8_REV_APPLE                               = 0x000085BB,
+  GL_UNSIGNED_SHORT_8_8_REV_MESA                                = 0x000085BB,
+  GL_TEXTURE_STORAGE_HINT_APPLE                                 = 0x000085BC,
+  GL_STORAGE_PRIVATE_APPLE                                      = 0x000085BD,
+  GL_STORAGE_CACHED_APPLE                                       = 0x000085BE,
+  GL_STORAGE_SHARED_APPLE                                       = 0x000085BF,
+  GL_REPLACEMENT_CODE_ARRAY_SUN                                 = 0x000085C0,
+  GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN                            = 0x000085C1,
+  GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN                          = 0x000085C2,
+  GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN                         = 0x000085C3,
+  GL_R1UI_V3F_SUN                                               = 0x000085C4,
+  GL_R1UI_C4UB_V3F_SUN                                          = 0x000085C5,
+  GL_R1UI_C3F_V3F_SUN                                           = 0x000085C6,
+  GL_R1UI_N3F_V3F_SUN                                           = 0x000085C7,
+  GL_R1UI_C4F_N3F_V3F_SUN                                       = 0x000085C8,
+  GL_R1UI_T2F_V3F_SUN                                           = 0x000085C9,
+  GL_R1UI_T2F_N3F_V3F_SUN                                       = 0x000085CA,
+  GL_R1UI_T2F_C4F_N3F_V3F_SUN                                   = 0x000085CB,
+  GL_SLICE_ACCUM_SUN                                            = 0x000085CC,
+  GL_QUAD_MESH_SUN                                              = 0x00008614,
+  GL_TRIANGLE_MESH_SUN                                          = 0x00008615,
+  GL_VERTEX_PROGRAM_ARB                                         = 0x00008620,
+  GL_VERTEX_PROGRAM_NV                                          = 0x00008620,
+  GL_VERTEX_STATE_PROGRAM_NV                                    = 0x00008621,
+  GL_VERTEX_ATTRIB_ARRAY_ENABLED                                = 0x00008622,
+  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB                            = 0x00008622,
+  GL_ATTRIB_ARRAY_SIZE_NV                                       = 0x00008623,
+  GL_VERTEX_ATTRIB_ARRAY_SIZE                                   = 0x00008623,
+  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB                               = 0x00008623,
+  GL_ATTRIB_ARRAY_STRIDE_NV                                     = 0x00008624,
+  GL_VERTEX_ATTRIB_ARRAY_STRIDE                                 = 0x00008624,
+  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB                             = 0x00008624,
+  GL_ATTRIB_ARRAY_TYPE_NV                                       = 0x00008625,
+  GL_VERTEX_ATTRIB_ARRAY_TYPE                                   = 0x00008625,
+  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB                               = 0x00008625,
+  GL_CURRENT_ATTRIB_NV                                          = 0x00008626,
+  GL_CURRENT_VERTEX_ATTRIB                                      = 0x00008626,
+  GL_CURRENT_VERTEX_ATTRIB_ARB                                  = 0x00008626,
+  GL_PROGRAM_LENGTH_ARB                                         = 0x00008627,
+  GL_PROGRAM_LENGTH_NV                                          = 0x00008627,
+  GL_PROGRAM_STRING_ARB                                         = 0x00008628,
+  GL_PROGRAM_STRING_NV                                          = 0x00008628,
+  GL_MODELVIEW_PROJECTION_NV                                    = 0x00008629,
+  GL_IDENTITY_NV                                                = 0x0000862A,
+  GL_INVERSE_NV                                                 = 0x0000862B,
+  GL_TRANSPOSE_NV                                               = 0x0000862C,
+  GL_INVERSE_TRANSPOSE_NV                                       = 0x0000862D,
+  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB                         = 0x0000862E,
+  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV                            = 0x0000862E,
+  GL_MAX_PROGRAM_MATRICES_ARB                                   = 0x0000862F,
+  GL_MAX_TRACK_MATRICES_NV                                      = 0x0000862F,
+  GL_MATRIX0_NV                                                 = 0x00008630,
+  GL_MATRIX1_NV                                                 = 0x00008631,
+  GL_MATRIX2_NV                                                 = 0x00008632,
+  GL_MATRIX3_NV                                                 = 0x00008633,
+  GL_MATRIX4_NV                                                 = 0x00008634,
+  GL_MATRIX5_NV                                                 = 0x00008635,
+  GL_MATRIX6_NV                                                 = 0x00008636,
+  GL_MATRIX7_NV                                                 = 0x00008637,
+  GL_CURRENT_MATRIX_STACK_DEPTH_ARB                             = 0x00008640,
+  GL_CURRENT_MATRIX_STACK_DEPTH_NV                              = 0x00008640,
+  GL_CURRENT_MATRIX_ARB                                         = 0x00008641,
+  GL_CURRENT_MATRIX_NV                                          = 0x00008641,
+  GL_VERTEX_PROGRAM_POINT_SIZE                                  = 0x00008642,
+  GL_VERTEX_PROGRAM_POINT_SIZE_ARB                              = 0x00008642,
+  GL_VERTEX_PROGRAM_POINT_SIZE_NV                               = 0x00008642,
+  GL_PROGRAM_POINT_SIZE                                         = 0x00008642,
+  GL_PROGRAM_POINT_SIZE_ARB                                     = 0x00008642,
+  GL_PROGRAM_POINT_SIZE_EXT                                     = 0x00008642,
+  GL_VERTEX_PROGRAM_TWO_SIDE                                    = 0x00008643,
+  GL_VERTEX_PROGRAM_TWO_SIDE_ARB                                = 0x00008643,
+  GL_VERTEX_PROGRAM_TWO_SIDE_NV                                 = 0x00008643,
+  GL_PROGRAM_PARAMETER_NV                                       = 0x00008644,
+  GL_ATTRIB_ARRAY_POINTER_NV                                    = 0x00008645,
+  GL_VERTEX_ATTRIB_ARRAY_POINTER                                = 0x00008645,
+  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB                            = 0x00008645,
+  GL_PROGRAM_TARGET_NV                                          = 0x00008646,
+  GL_PROGRAM_RESIDENT_NV                                        = 0x00008647,
+  GL_TRACK_MATRIX_NV                                            = 0x00008648,
+  GL_TRACK_MATRIX_TRANSFORM_NV                                  = 0x00008649,
+  GL_VERTEX_PROGRAM_BINDING_NV                                  = 0x0000864A,
+  GL_PROGRAM_ERROR_POSITION_ARB                                 = 0x0000864B,
+  GL_PROGRAM_ERROR_POSITION_NV                                  = 0x0000864B,
+  GL_OFFSET_TEXTURE_RECTANGLE_NV                                = 0x0000864C,
+  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV                          = 0x0000864D,
+  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV                           = 0x0000864E,
+  GL_DEPTH_CLAMP                                                = 0x0000864F,
+  GL_DEPTH_CLAMP_NV                                             = 0x0000864F,
+  GL_VERTEX_ATTRIB_ARRAY0_NV                                    = 0x00008650,
+  GL_VERTEX_ATTRIB_ARRAY1_NV                                    = 0x00008651,
+  GL_VERTEX_ATTRIB_ARRAY2_NV                                    = 0x00008652,
+  GL_VERTEX_ATTRIB_ARRAY3_NV                                    = 0x00008653,
+  GL_VERTEX_ATTRIB_ARRAY4_NV                                    = 0x00008654,
+  GL_VERTEX_ATTRIB_ARRAY5_NV                                    = 0x00008655,
+  GL_VERTEX_ATTRIB_ARRAY6_NV                                    = 0x00008656,
+  GL_VERTEX_ATTRIB_ARRAY7_NV                                    = 0x00008657,
+  GL_VERTEX_ATTRIB_ARRAY8_NV                                    = 0x00008658,
+  GL_VERTEX_ATTRIB_ARRAY9_NV                                    = 0x00008659,
+  GL_VERTEX_ATTRIB_ARRAY10_NV                                   = 0x0000865A,
+  GL_VERTEX_ATTRIB_ARRAY11_NV                                   = 0x0000865B,
+  GL_VERTEX_ATTRIB_ARRAY12_NV                                   = 0x0000865C,
+  GL_VERTEX_ATTRIB_ARRAY13_NV                                   = 0x0000865D,
+  GL_VERTEX_ATTRIB_ARRAY14_NV                                   = 0x0000865E,
+  GL_VERTEX_ATTRIB_ARRAY15_NV                                   = 0x0000865F,
+  GL_MAP1_VERTEX_ATTRIB0_4_NV                                   = 0x00008660,
+  GL_MAP1_VERTEX_ATTRIB1_4_NV                                   = 0x00008661,
+  GL_MAP1_VERTEX_ATTRIB2_4_NV                                   = 0x00008662,
+  GL_MAP1_VERTEX_ATTRIB3_4_NV                                   = 0x00008663,
+  GL_MAP1_VERTEX_ATTRIB4_4_NV                                   = 0x00008664,
+  GL_MAP1_VERTEX_ATTRIB5_4_NV                                   = 0x00008665,
+  GL_MAP1_VERTEX_ATTRIB6_4_NV                                   = 0x00008666,
+  GL_MAP1_VERTEX_ATTRIB7_4_NV                                   = 0x00008667,
+  GL_MAP1_VERTEX_ATTRIB8_4_NV                                   = 0x00008668,
+  GL_MAP1_VERTEX_ATTRIB9_4_NV                                   = 0x00008669,
+  GL_MAP1_VERTEX_ATTRIB10_4_NV                                  = 0x0000866A,
+  GL_MAP1_VERTEX_ATTRIB11_4_NV                                  = 0x0000866B,
+  GL_MAP1_VERTEX_ATTRIB12_4_NV                                  = 0x0000866C,
+  GL_MAP1_VERTEX_ATTRIB13_4_NV                                  = 0x0000866D,
+  GL_MAP1_VERTEX_ATTRIB14_4_NV                                  = 0x0000866E,
+  GL_MAP1_VERTEX_ATTRIB15_4_NV                                  = 0x0000866F,
+  GL_MAP2_VERTEX_ATTRIB0_4_NV                                   = 0x00008670,
+  GL_MAP2_VERTEX_ATTRIB1_4_NV                                   = 0x00008671,
+  GL_MAP2_VERTEX_ATTRIB2_4_NV                                   = 0x00008672,
+  GL_MAP2_VERTEX_ATTRIB3_4_NV                                   = 0x00008673,
+  GL_MAP2_VERTEX_ATTRIB4_4_NV                                   = 0x00008674,
+  GL_MAP2_VERTEX_ATTRIB5_4_NV                                   = 0x00008675,
+  GL_MAP2_VERTEX_ATTRIB6_4_NV                                   = 0x00008676,
+  GL_MAP2_VERTEX_ATTRIB7_4_NV                                   = 0x00008677,
+  GL_PROGRAM_BINDING_ARB                                        = 0x00008677,
+  GL_MAP2_VERTEX_ATTRIB8_4_NV                                   = 0x00008678,
+  GL_MAP2_VERTEX_ATTRIB9_4_NV                                   = 0x00008679,
+  GL_MAP2_VERTEX_ATTRIB10_4_NV                                  = 0x0000867A,
+  GL_MAP2_VERTEX_ATTRIB11_4_NV                                  = 0x0000867B,
+  GL_MAP2_VERTEX_ATTRIB12_4_NV                                  = 0x0000867C,
+  GL_MAP2_VERTEX_ATTRIB13_4_NV                                  = 0x0000867D,
+  GL_MAP2_VERTEX_ATTRIB14_4_NV                                  = 0x0000867E,
+  GL_MAP2_VERTEX_ATTRIB15_4_NV                                  = 0x0000867F,
+  GL_TEXTURE_COMPRESSED_IMAGE_SIZE                              = 0x000086A0,
+  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB                          = 0x000086A0,
+  GL_TEXTURE_COMPRESSED                                         = 0x000086A1,
+  GL_TEXTURE_COMPRESSED_ARB                                     = 0x000086A1,
+  GL_NUM_COMPRESSED_TEXTURE_FORMATS                             = 0x000086A2,
+  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB                         = 0x000086A2,
+  GL_COMPRESSED_TEXTURE_FORMATS                                 = 0x000086A3,
+  GL_COMPRESSED_TEXTURE_FORMATS_ARB                             = 0x000086A3,
+  GL_MAX_VERTEX_UNITS_ARB                                       = 0x000086A4,
+  GL_MAX_VERTEX_UNITS_OES                                       = 0x000086A4,
+  GL_ACTIVE_VERTEX_UNITS_ARB                                    = 0x000086A5,
+  GL_WEIGHT_SUM_UNITY_ARB                                       = 0x000086A6,
+  GL_VERTEX_BLEND_ARB                                           = 0x000086A7,
+  GL_CURRENT_WEIGHT_ARB                                         = 0x000086A8,
+  GL_WEIGHT_ARRAY_TYPE_ARB                                      = 0x000086A9,
+  GL_WEIGHT_ARRAY_TYPE_OES                                      = 0x000086A9,
+  GL_WEIGHT_ARRAY_STRIDE_ARB                                    = 0x000086AA,
+  GL_WEIGHT_ARRAY_STRIDE_OES                                    = 0x000086AA,
+  GL_WEIGHT_ARRAY_SIZE_ARB                                      = 0x000086AB,
+  GL_WEIGHT_ARRAY_SIZE_OES                                      = 0x000086AB,
+  GL_WEIGHT_ARRAY_POINTER_ARB                                   = 0x000086AC,
+  GL_WEIGHT_ARRAY_POINTER_OES                                   = 0x000086AC,
+  GL_WEIGHT_ARRAY_ARB                                           = 0x000086AD,
+  GL_WEIGHT_ARRAY_OES                                           = 0x000086AD,
+  GL_DOT3_RGB                                                   = 0x000086AE,
+  GL_DOT3_RGB_ARB                                               = 0x000086AE,
+  GL_DOT3_RGBA                                                  = 0x000086AF,
+  GL_DOT3_RGBA_ARB                                              = 0x000086AF,
+  GL_DOT3_RGBA_IMG                                              = 0x000086AF,
+  GL_COMPRESSED_RGB_FXT1_3DFX                                   = 0x000086B0,
+  GL_COMPRESSED_RGBA_FXT1_3DFX                                  = 0x000086B1,
+  GL_MULTISAMPLE_3DFX                                           = 0x000086B2,
+  GL_SAMPLE_BUFFERS_3DFX                                        = 0x000086B3,
+  GL_SAMPLES_3DFX                                               = 0x000086B4,
+  GL_EVAL_2D_NV                                                 = 0x000086C0,
+  GL_EVAL_TRIANGULAR_2D_NV                                      = 0x000086C1,
+  GL_MAP_TESSELLATION_NV                                        = 0x000086C2,
+  GL_MAP_ATTRIB_U_ORDER_NV                                      = 0x000086C3,
+  GL_MAP_ATTRIB_V_ORDER_NV                                      = 0x000086C4,
+  GL_EVAL_FRACTIONAL_TESSELLATION_NV                            = 0x000086C5,
+  GL_EVAL_VERTEX_ATTRIB0_NV                                     = 0x000086C6,
+  GL_EVAL_VERTEX_ATTRIB1_NV                                     = 0x000086C7,
+  GL_EVAL_VERTEX_ATTRIB2_NV                                     = 0x000086C8,
+  GL_EVAL_VERTEX_ATTRIB3_NV                                     = 0x000086C9,
+  GL_EVAL_VERTEX_ATTRIB4_NV                                     = 0x000086CA,
+  GL_EVAL_VERTEX_ATTRIB5_NV                                     = 0x000086CB,
+  GL_EVAL_VERTEX_ATTRIB6_NV                                     = 0x000086CC,
+  GL_EVAL_VERTEX_ATTRIB7_NV                                     = 0x000086CD,
+  GL_EVAL_VERTEX_ATTRIB8_NV                                     = 0x000086CE,
+  GL_EVAL_VERTEX_ATTRIB9_NV                                     = 0x000086CF,
+  GL_EVAL_VERTEX_ATTRIB10_NV                                    = 0x000086D0,
+  GL_EVAL_VERTEX_ATTRIB11_NV                                    = 0x000086D1,
+  GL_EVAL_VERTEX_ATTRIB12_NV                                    = 0x000086D2,
+  GL_EVAL_VERTEX_ATTRIB13_NV                                    = 0x000086D3,
+  GL_EVAL_VERTEX_ATTRIB14_NV                                    = 0x000086D4,
+  GL_EVAL_VERTEX_ATTRIB15_NV                                    = 0x000086D5,
+  GL_MAX_MAP_TESSELLATION_NV                                    = 0x000086D6,
+  GL_MAX_RATIONAL_EVAL_ORDER_NV                                 = 0x000086D7,
+  GL_MAX_PROGRAM_PATCH_ATTRIBS_NV                               = 0x000086D8,
+  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV                       = 0x000086D9,
+  GL_UNSIGNED_INT_S8_S8_8_8_NV                                  = 0x000086DA,
+  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                              = 0x000086DB,
+  GL_DSDT_MAG_INTENSITY_NV                                      = 0x000086DC,
+  GL_SHADER_CONSISTENT_NV                                       = 0x000086DD,
+  GL_TEXTURE_SHADER_NV                                          = 0x000086DE,
+  GL_SHADER_OPERATION_NV                                        = 0x000086DF,
+  GL_CULL_MODES_NV                                              = 0x000086E0,
+  GL_OFFSET_TEXTURE_MATRIX_NV                                   = 0x000086E1,
+  GL_OFFSET_TEXTURE_2D_MATRIX_NV                                = 0x000086E1,
+  GL_OFFSET_TEXTURE_SCALE_NV                                    = 0x000086E2,
+  GL_OFFSET_TEXTURE_2D_SCALE_NV                                 = 0x000086E2,
+  GL_OFFSET_TEXTURE_BIAS_NV                                     = 0x000086E3,
+  GL_OFFSET_TEXTURE_2D_BIAS_NV                                  = 0x000086E3,
+  GL_PREVIOUS_TEXTURE_INPUT_NV                                  = 0x000086E4,
+  GL_CONST_EYE_NV                                               = 0x000086E5,
+  GL_PASS_THROUGH_NV                                            = 0x000086E6,
+  GL_CULL_FRAGMENT_NV                                           = 0x000086E7,
+  GL_OFFSET_TEXTURE_2D_NV                                       = 0x000086E8,
+  GL_DEPENDENT_AR_TEXTURE_2D_NV                                 = 0x000086E9,
+  GL_DEPENDENT_GB_TEXTURE_2D_NV                                 = 0x000086EA,
+  GL_SURFACE_STATE_NV                                           = 0x000086EB,
+  GL_DOT_PRODUCT_NV                                             = 0x000086EC,
+  GL_DOT_PRODUCT_DEPTH_REPLACE_NV                               = 0x000086ED,
+  GL_DOT_PRODUCT_TEXTURE_2D_NV                                  = 0x000086EE,
+  GL_DOT_PRODUCT_TEXTURE_3D_NV                                  = 0x000086EF,
+  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV                            = 0x000086F0,
+  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV                            = 0x000086F1,
+  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV                            = 0x000086F2,
+  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV                  = 0x000086F3,
+  GL_HILO_NV                                                    = 0x000086F4,
+  GL_DSDT_NV                                                    = 0x000086F5,
+  GL_DSDT_MAG_NV                                                = 0x000086F6,
+  GL_DSDT_MAG_VIB_NV                                            = 0x000086F7,
+  GL_HILO16_NV                                                  = 0x000086F8,
+  GL_SIGNED_HILO_NV                                             = 0x000086F9,
+  GL_SIGNED_HILO16_NV                                           = 0x000086FA,
+  GL_SIGNED_RGBA_NV                                             = 0x000086FB,
+  GL_SIGNED_RGBA8_NV                                            = 0x000086FC,
+  GL_SURFACE_REGISTERED_NV                                      = 0x000086FD,
+  GL_SIGNED_RGB_NV                                              = 0x000086FE,
+  GL_SIGNED_RGB8_NV                                             = 0x000086FF,
+  GL_SURFACE_MAPPED_NV                                          = 0x00008700,
+  GL_SIGNED_LUMINANCE_NV                                        = 0x00008701,
+  GL_SIGNED_LUMINANCE8_NV                                       = 0x00008702,
+  GL_SIGNED_LUMINANCE_ALPHA_NV                                  = 0x00008703,
+  GL_SIGNED_LUMINANCE8_ALPHA8_NV                                = 0x00008704,
+  GL_SIGNED_ALPHA_NV                                            = 0x00008705,
+  GL_SIGNED_ALPHA8_NV                                           = 0x00008706,
+  GL_SIGNED_INTENSITY_NV                                        = 0x00008707,
+  GL_SIGNED_INTENSITY8_NV                                       = 0x00008708,
+  GL_DSDT8_NV                                                   = 0x00008709,
+  GL_DSDT8_MAG8_NV                                              = 0x0000870A,
+  GL_DSDT8_MAG8_INTENSITY8_NV                                   = 0x0000870B,
+  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                               = 0x0000870C,
+  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                             = 0x0000870D,
+  GL_HI_SCALE_NV                                                = 0x0000870E,
+  GL_LO_SCALE_NV                                                = 0x0000870F,
+  GL_DS_SCALE_NV                                                = 0x00008710,
+  GL_DT_SCALE_NV                                                = 0x00008711,
+  GL_MAGNITUDE_SCALE_NV                                         = 0x00008712,
+  GL_VIBRANCE_SCALE_NV                                          = 0x00008713,
+  GL_HI_BIAS_NV                                                 = 0x00008714,
+  GL_LO_BIAS_NV                                                 = 0x00008715,
+  GL_DS_BIAS_NV                                                 = 0x00008716,
+  GL_DT_BIAS_NV                                                 = 0x00008717,
+  GL_MAGNITUDE_BIAS_NV                                          = 0x00008718,
+  GL_VIBRANCE_BIAS_NV                                           = 0x00008719,
+  GL_TEXTURE_BORDER_VALUES_NV                                   = 0x0000871A,
+  GL_TEXTURE_HI_SIZE_NV                                         = 0x0000871B,
+  GL_TEXTURE_LO_SIZE_NV                                         = 0x0000871C,
+  GL_TEXTURE_DS_SIZE_NV                                         = 0x0000871D,
+  GL_TEXTURE_DT_SIZE_NV                                         = 0x0000871E,
+  GL_TEXTURE_MAG_SIZE_NV                                        = 0x0000871F,
+  GL_MODELVIEW2_ARB                                             = 0x00008722,
+  GL_MODELVIEW3_ARB                                             = 0x00008723,
+  GL_MODELVIEW4_ARB                                             = 0x00008724,
+  GL_MODELVIEW5_ARB                                             = 0x00008725,
+  GL_MODELVIEW6_ARB                                             = 0x00008726,
+  GL_MODELVIEW7_ARB                                             = 0x00008727,
+  GL_MODELVIEW8_ARB                                             = 0x00008728,
+  GL_MODELVIEW9_ARB                                             = 0x00008729,
+  GL_MODELVIEW10_ARB                                            = 0x0000872A,
+  GL_MODELVIEW11_ARB                                            = 0x0000872B,
+  GL_MODELVIEW12_ARB                                            = 0x0000872C,
+  GL_MODELVIEW13_ARB                                            = 0x0000872D,
+  GL_MODELVIEW14_ARB                                            = 0x0000872E,
+  GL_MODELVIEW15_ARB                                            = 0x0000872F,
+  GL_MODELVIEW16_ARB                                            = 0x00008730,
+  GL_MODELVIEW17_ARB                                            = 0x00008731,
+  GL_MODELVIEW18_ARB                                            = 0x00008732,
+  GL_MODELVIEW19_ARB                                            = 0x00008733,
+  GL_MODELVIEW20_ARB                                            = 0x00008734,
+  GL_MODELVIEW21_ARB                                            = 0x00008735,
+  GL_MODELVIEW22_ARB                                            = 0x00008736,
+  GL_MODELVIEW23_ARB                                            = 0x00008737,
+  GL_MODELVIEW24_ARB                                            = 0x00008738,
+  GL_MODELVIEW25_ARB                                            = 0x00008739,
+  GL_MODELVIEW26_ARB                                            = 0x0000873A,
+  GL_MODELVIEW27_ARB                                            = 0x0000873B,
+  GL_MODELVIEW28_ARB                                            = 0x0000873C,
+  GL_MODELVIEW29_ARB                                            = 0x0000873D,
+  GL_MODELVIEW30_ARB                                            = 0x0000873E,
+  GL_MODELVIEW31_ARB                                            = 0x0000873F,
+  GL_DOT3_RGB_EXT                                               = 0x00008740,
+  GL_Z400_BINARY_AMD                                            = 0x00008740,
+  GL_DOT3_RGBA_EXT                                              = 0x00008741,
+  GL_PROGRAM_BINARY_LENGTH_OES                                  = 0x00008741,
+  GL_PROGRAM_BINARY_LENGTH                                      = 0x00008741,
+  GL_MIRROR_CLAMP_ATI                                           = 0x00008742,
+  GL_MIRROR_CLAMP_EXT                                           = 0x00008742,
+  GL_MIRROR_CLAMP_TO_EDGE                                       = 0x00008743,
+  GL_MIRROR_CLAMP_TO_EDGE_ATI                                   = 0x00008743,
+  GL_MIRROR_CLAMP_TO_EDGE_EXT                                   = 0x00008743,
+  GL_MODULATE_ADD_ATI                                           = 0x00008744,
+  GL_MODULATE_SIGNED_ADD_ATI                                    = 0x00008745,
+  GL_MODULATE_SUBTRACT_ATI                                      = 0x00008746,
+  GL_SET_AMD                                                    = 0x0000874A,
+  GL_REPLACE_VALUE_AMD                                          = 0x0000874B,
+  GL_STENCIL_OP_VALUE_AMD                                       = 0x0000874C,
+  GL_STENCIL_BACK_OP_VALUE_AMD                                  = 0x0000874D,
+  GL_VERTEX_ATTRIB_ARRAY_LONG                                   = 0x0000874E,
+  GL_OCCLUSION_QUERY_EVENT_MASK_AMD                             = 0x0000874F,
+  GL_DEPTH_STENCIL_MESA                                         = 0x00008750,
+  GL_UNSIGNED_INT_24_8_MESA                                     = 0x00008751,
+  GL_UNSIGNED_INT_8_24_REV_MESA                                 = 0x00008752,
+  GL_UNSIGNED_SHORT_15_1_MESA                                   = 0x00008753,
+  GL_UNSIGNED_SHORT_1_15_REV_MESA                               = 0x00008754,
+  GL_TRACE_MASK_MESA                                            = 0x00008755,
+  GL_TRACE_NAME_MESA                                            = 0x00008756,
+  GL_YCBCR_MESA                                                 = 0x00008757,
+  GL_PACK_INVERT_MESA                                           = 0x00008758,
+  GL_DEBUG_OBJECT_MESA                                          = 0x00008759,
+  GL_TEXTURE_1D_STACK_MESAX                                     = 0x00008759,
+  GL_DEBUG_PRINT_MESA                                           = 0x0000875A,
+  GL_TEXTURE_2D_STACK_MESAX                                     = 0x0000875A,
+  GL_DEBUG_ASSERT_MESA                                          = 0x0000875B,
+  GL_PROXY_TEXTURE_1D_STACK_MESAX                               = 0x0000875B,
+  GL_PROXY_TEXTURE_2D_STACK_MESAX                               = 0x0000875C,
+  GL_TEXTURE_1D_STACK_BINDING_MESAX                             = 0x0000875D,
+  GL_TEXTURE_2D_STACK_BINDING_MESAX                             = 0x0000875E,
+  GL_STATIC_ATI                                                 = 0x00008760,
+  GL_DYNAMIC_ATI                                                = 0x00008761,
+  GL_PRESERVE_ATI                                               = 0x00008762,
+  GL_DISCARD_ATI                                                = 0x00008763,
+  GL_BUFFER_SIZE                                                = 0x00008764,
+  GL_BUFFER_SIZE_ARB                                            = 0x00008764,
+  GL_OBJECT_BUFFER_SIZE_ATI                                     = 0x00008764,
+  GL_BUFFER_USAGE                                               = 0x00008765,
+  GL_BUFFER_USAGE_ARB                                           = 0x00008765,
+  GL_OBJECT_BUFFER_USAGE_ATI                                    = 0x00008765,
+  GL_ARRAY_OBJECT_BUFFER_ATI                                    = 0x00008766,
+  GL_ARRAY_OBJECT_OFFSET_ATI                                    = 0x00008767,
+  GL_ELEMENT_ARRAY_ATI                                          = 0x00008768,
+  GL_ELEMENT_ARRAY_TYPE_ATI                                     = 0x00008769,
+  GL_ELEMENT_ARRAY_POINTER_ATI                                  = 0x0000876A,
+  GL_MAX_VERTEX_STREAMS_ATI                                     = 0x0000876B,
+  GL_VERTEX_STREAM0_ATI                                         = 0x0000876C,
+  GL_VERTEX_STREAM1_ATI                                         = 0x0000876D,
+  GL_VERTEX_STREAM2_ATI                                         = 0x0000876E,
+  GL_VERTEX_STREAM3_ATI                                         = 0x0000876F,
+  GL_VERTEX_STREAM4_ATI                                         = 0x00008770,
+  GL_VERTEX_STREAM5_ATI                                         = 0x00008771,
+  GL_VERTEX_STREAM6_ATI                                         = 0x00008772,
+  GL_VERTEX_STREAM7_ATI                                         = 0x00008773,
+  GL_VERTEX_SOURCE_ATI                                          = 0x00008774,
+  GL_BUMP_ROT_MATRIX_ATI                                        = 0x00008775,
+  GL_BUMP_ROT_MATRIX_SIZE_ATI                                   = 0x00008776,
+  GL_BUMP_NUM_TEX_UNITS_ATI                                     = 0x00008777,
+  GL_BUMP_TEX_UNITS_ATI                                         = 0x00008778,
+  GL_DUDV_ATI                                                   = 0x00008779,
+  GL_DU8DV8_ATI                                                 = 0x0000877A,
+  GL_BUMP_ENVMAP_ATI                                            = 0x0000877B,
+  GL_BUMP_TARGET_ATI                                            = 0x0000877C,
+  GL_VERTEX_SHADER_EXT                                          = 0x00008780,
+  GL_VERTEX_SHADER_BINDING_EXT                                  = 0x00008781,
+  GL_OP_INDEX_EXT                                               = 0x00008782,
+  GL_OP_NEGATE_EXT                                              = 0x00008783,
+  GL_OP_DOT3_EXT                                                = 0x00008784,
+  GL_OP_DOT4_EXT                                                = 0x00008785,
+  GL_OP_MUL_EXT                                                 = 0x00008786,
+  GL_OP_ADD_EXT                                                 = 0x00008787,
+  GL_OP_MADD_EXT                                                = 0x00008788,
+  GL_OP_FRAC_EXT                                                = 0x00008789,
+  GL_OP_MAX_EXT                                                 = 0x0000878A,
+  GL_OP_MIN_EXT                                                 = 0x0000878B,
+  GL_OP_SET_GE_EXT                                              = 0x0000878C,
+  GL_OP_SET_LT_EXT                                              = 0x0000878D,
+  GL_OP_CLAMP_EXT                                               = 0x0000878E,
+  GL_OP_FLOOR_EXT                                               = 0x0000878F,
+  GL_OP_ROUND_EXT                                               = 0x00008790,
+  GL_OP_EXP_BASE_2_EXT                                          = 0x00008791,
+  GL_OP_LOG_BASE_2_EXT                                          = 0x00008792,
+  GL_OP_POWER_EXT                                               = 0x00008793,
+  GL_OP_RECIP_EXT                                               = 0x00008794,
+  GL_OP_RECIP_SQRT_EXT                                          = 0x00008795,
+  GL_OP_SUB_EXT                                                 = 0x00008796,
+  GL_OP_CROSS_PRODUCT_EXT                                       = 0x00008797,
+  GL_OP_MULTIPLY_MATRIX_EXT                                     = 0x00008798,
+  GL_OP_MOV_EXT                                                 = 0x00008799,
+  GL_OUTPUT_VERTEX_EXT                                          = 0x0000879A,
+  GL_OUTPUT_COLOR0_EXT                                          = 0x0000879B,
+  GL_OUTPUT_COLOR1_EXT                                          = 0x0000879C,
+  GL_OUTPUT_TEXTURE_COORD0_EXT                                  = 0x0000879D,
+  GL_OUTPUT_TEXTURE_COORD1_EXT                                  = 0x0000879E,
+  GL_OUTPUT_TEXTURE_COORD2_EXT                                  = 0x0000879F,
+  GL_OUTPUT_TEXTURE_COORD3_EXT                                  = 0x000087A0,
+  GL_OUTPUT_TEXTURE_COORD4_EXT                                  = 0x000087A1,
+  GL_OUTPUT_TEXTURE_COORD5_EXT                                  = 0x000087A2,
+  GL_OUTPUT_TEXTURE_COORD6_EXT                                  = 0x000087A3,
+  GL_OUTPUT_TEXTURE_COORD7_EXT                                  = 0x000087A4,
+  GL_OUTPUT_TEXTURE_COORD8_EXT                                  = 0x000087A5,
+  GL_OUTPUT_TEXTURE_COORD9_EXT                                  = 0x000087A6,
+  GL_OUTPUT_TEXTURE_COORD10_EXT                                 = 0x000087A7,
+  GL_OUTPUT_TEXTURE_COORD11_EXT                                 = 0x000087A8,
+  GL_OUTPUT_TEXTURE_COORD12_EXT                                 = 0x000087A9,
+  GL_OUTPUT_TEXTURE_COORD13_EXT                                 = 0x000087AA,
+  GL_OUTPUT_TEXTURE_COORD14_EXT                                 = 0x000087AB,
+  GL_OUTPUT_TEXTURE_COORD15_EXT                                 = 0x000087AC,
+  GL_OUTPUT_TEXTURE_COORD16_EXT                                 = 0x000087AD,
+  GL_OUTPUT_TEXTURE_COORD17_EXT                                 = 0x000087AE,
+  GL_OUTPUT_TEXTURE_COORD18_EXT                                 = 0x000087AF,
+  GL_OUTPUT_TEXTURE_COORD19_EXT                                 = 0x000087B0,
+  GL_OUTPUT_TEXTURE_COORD20_EXT                                 = 0x000087B1,
+  GL_OUTPUT_TEXTURE_COORD21_EXT                                 = 0x000087B2,
+  GL_OUTPUT_TEXTURE_COORD22_EXT                                 = 0x000087B3,
+  GL_OUTPUT_TEXTURE_COORD23_EXT                                 = 0x000087B4,
+  GL_OUTPUT_TEXTURE_COORD24_EXT                                 = 0x000087B5,
+  GL_OUTPUT_TEXTURE_COORD25_EXT                                 = 0x000087B6,
+  GL_OUTPUT_TEXTURE_COORD26_EXT                                 = 0x000087B7,
+  GL_OUTPUT_TEXTURE_COORD27_EXT                                 = 0x000087B8,
+  GL_OUTPUT_TEXTURE_COORD28_EXT                                 = 0x000087B9,
+  GL_OUTPUT_TEXTURE_COORD29_EXT                                 = 0x000087BA,
+  GL_OUTPUT_TEXTURE_COORD30_EXT                                 = 0x000087BB,
+  GL_OUTPUT_TEXTURE_COORD31_EXT                                 = 0x000087BC,
+  GL_OUTPUT_FOG_EXT                                             = 0x000087BD,
+  GL_SCALAR_EXT                                                 = 0x000087BE,
+  GL_VECTOR_EXT                                                 = 0x000087BF,
+  GL_MATRIX_EXT                                                 = 0x000087C0,
+  GL_VARIANT_EXT                                                = 0x000087C1,
+  GL_INVARIANT_EXT                                              = 0x000087C2,
+  GL_LOCAL_CONSTANT_EXT                                         = 0x000087C3,
+  GL_LOCAL_EXT                                                  = 0x000087C4,
+  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT                         = 0x000087C5,
+  GL_MAX_VERTEX_SHADER_VARIANTS_EXT                             = 0x000087C6,
+  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                           = 0x000087C7,
+  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                      = 0x000087C8,
+  GL_MAX_VERTEX_SHADER_LOCALS_EXT                               = 0x000087C9,
+  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT               = 0x000087CA,
+  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT                   = 0x000087CB,
+  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT            = 0x000087CC,
+  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT                 = 0x000087CD,
+  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT                     = 0x000087CE,
+  GL_VERTEX_SHADER_INSTRUCTIONS_EXT                             = 0x000087CF,
+  GL_VERTEX_SHADER_VARIANTS_EXT                                 = 0x000087D0,
+  GL_VERTEX_SHADER_INVARIANTS_EXT                               = 0x000087D1,
+  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                          = 0x000087D2,
+  GL_VERTEX_SHADER_LOCALS_EXT                                   = 0x000087D3,
+  GL_VERTEX_SHADER_OPTIMIZED_EXT                                = 0x000087D4,
+  GL_X_EXT                                                      = 0x000087D5,
+  GL_Y_EXT                                                      = 0x000087D6,
+  GL_Z_EXT                                                      = 0x000087D7,
+  GL_W_EXT                                                      = 0x000087D8,
+  GL_NEGATIVE_X_EXT                                             = 0x000087D9,
+  GL_NEGATIVE_Y_EXT                                             = 0x000087DA,
+  GL_NEGATIVE_Z_EXT                                             = 0x000087DB,
+  GL_NEGATIVE_W_EXT                                             = 0x000087DC,
+  GL_ZERO_EXT                                                   = 0x000087DD,
+  GL_ONE_EXT                                                    = 0x000087DE,
+  GL_NEGATIVE_ONE_EXT                                           = 0x000087DF,
+  GL_NORMALIZED_RANGE_EXT                                       = 0x000087E0,
+  GL_FULL_RANGE_EXT                                             = 0x000087E1,
+  GL_CURRENT_VERTEX_EXT                                         = 0x000087E2,
+  GL_MVP_MATRIX_EXT                                             = 0x000087E3,
+  GL_VARIANT_VALUE_EXT                                          = 0x000087E4,
+  GL_VARIANT_DATATYPE_EXT                                       = 0x000087E5,
+  GL_VARIANT_ARRAY_STRIDE_EXT                                   = 0x000087E6,
+  GL_VARIANT_ARRAY_TYPE_EXT                                     = 0x000087E7,
+  GL_VARIANT_ARRAY_EXT                                          = 0x000087E8,
+  GL_VARIANT_ARRAY_POINTER_EXT                                  = 0x000087E9,
+  GL_INVARIANT_VALUE_EXT                                        = 0x000087EA,
+  GL_INVARIANT_DATATYPE_EXT                                     = 0x000087EB,
+  GL_LOCAL_CONSTANT_VALUE_EXT                                   = 0x000087EC,
+  GL_LOCAL_CONSTANT_DATATYPE_EXT                                = 0x000087ED,
+  GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                            = 0x000087EE,
+  GL_PN_TRIANGLES_ATI                                           = 0x000087F0,
+  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI                     = 0x000087F1,
+  GL_PN_TRIANGLES_POINT_MODE_ATI                                = 0x000087F2,
+  GL_PN_TRIANGLES_NORMAL_MODE_ATI                               = 0x000087F3,
+  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI                         = 0x000087F4,
+  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI                         = 0x000087F5,
+  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI                          = 0x000087F6,
+  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI                        = 0x000087F7,
+  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI                     = 0x000087F8,
+  GL_3DC_X_AMD                                                  = 0x000087F9,
+  GL_3DC_XY_AMD                                                 = 0x000087FA,
+  GL_VBO_FREE_MEMORY_ATI                                        = 0x000087FB,
+  GL_TEXTURE_FREE_MEMORY_ATI                                    = 0x000087FC,
+  GL_RENDERBUFFER_FREE_MEMORY_ATI                               = 0x000087FD,
+  GL_NUM_PROGRAM_BINARY_FORMATS                                 = 0x000087FE,
+  GL_NUM_PROGRAM_BINARY_FORMATS_OES                             = 0x000087FE,
+  GL_PROGRAM_BINARY_FORMATS                                     = 0x000087FF,
+  GL_PROGRAM_BINARY_FORMATS_OES                                 = 0x000087FF,
+  GL_STENCIL_BACK_FUNC                                          = 0x00008800,
+  GL_STENCIL_BACK_FUNC_ATI                                      = 0x00008800,
+  GL_STENCIL_BACK_FAIL                                          = 0x00008801,
+  GL_STENCIL_BACK_FAIL_ATI                                      = 0x00008801,
+  GL_STENCIL_BACK_PASS_DEPTH_FAIL                               = 0x00008802,
+  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI                           = 0x00008802,
+  GL_STENCIL_BACK_PASS_DEPTH_PASS                               = 0x00008803,
+  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI                           = 0x00008803,
+  GL_FRAGMENT_PROGRAM_ARB                                       = 0x00008804,
+  GL_PROGRAM_ALU_INSTRUCTIONS_ARB                               = 0x00008805,
+  GL_PROGRAM_TEX_INSTRUCTIONS_ARB                               = 0x00008806,
+  GL_PROGRAM_TEX_INDIRECTIONS_ARB                               = 0x00008807,
+  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB                        = 0x00008808,
+  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB                        = 0x00008809,
+  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB                        = 0x0000880A,
+  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB                           = 0x0000880B,
+  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB                           = 0x0000880C,
+  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB                           = 0x0000880D,
+  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB                    = 0x0000880E,
+  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB                    = 0x0000880F,
+  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB                    = 0x00008810,
+  GL_RGBA32F                                                    = 0x00008814,
+  GL_RGBA32F_ARB                                                = 0x00008814,
+  GL_RGBA32F_EXT                                                = 0x00008814,
+  GL_RGBA_FLOAT32_APPLE                                         = 0x00008814,
+  GL_RGBA_FLOAT32_ATI                                           = 0x00008814,
+  GL_RGB32F                                                     = 0x00008815,
+  GL_RGB32F_ARB                                                 = 0x00008815,
+  GL_RGB32F_EXT                                                 = 0x00008815,
+  GL_RGB_FLOAT32_APPLE                                          = 0x00008815,
+  GL_RGB_FLOAT32_ATI                                            = 0x00008815,
+  GL_ALPHA32F_ARB                                               = 0x00008816,
+  GL_ALPHA32F_EXT                                               = 0x00008816,
+  GL_ALPHA_FLOAT32_APPLE                                        = 0x00008816,
+  GL_ALPHA_FLOAT32_ATI                                          = 0x00008816,
+  GL_INTENSITY32F_ARB                                           = 0x00008817,
+  GL_INTENSITY_FLOAT32_APPLE                                    = 0x00008817,
+  GL_INTENSITY_FLOAT32_ATI                                      = 0x00008817,
+  GL_LUMINANCE32F_ARB                                           = 0x00008818,
+  GL_LUMINANCE32F_EXT                                           = 0x00008818,
+  GL_LUMINANCE_FLOAT32_APPLE                                    = 0x00008818,
+  GL_LUMINANCE_FLOAT32_ATI                                      = 0x00008818,
+  GL_LUMINANCE_ALPHA32F_ARB                                     = 0x00008819,
+  GL_LUMINANCE_ALPHA32F_EXT                                     = 0x00008819,
+  GL_LUMINANCE_ALPHA_FLOAT32_APPLE                              = 0x00008819,
+  GL_LUMINANCE_ALPHA_FLOAT32_ATI                                = 0x00008819,
+  GL_RGBA16F                                                    = 0x0000881A,
+  GL_RGBA16F_ARB                                                = 0x0000881A,
+  GL_RGBA16F_EXT                                                = 0x0000881A,
+  GL_RGBA_FLOAT16_APPLE                                         = 0x0000881A,
+  GL_RGBA_FLOAT16_ATI                                           = 0x0000881A,
+  GL_RGB16F                                                     = 0x0000881B,
+  GL_RGB16F_ARB                                                 = 0x0000881B,
+  GL_RGB16F_EXT                                                 = 0x0000881B,
+  GL_RGB_FLOAT16_APPLE                                          = 0x0000881B,
+  GL_RGB_FLOAT16_ATI                                            = 0x0000881B,
+  GL_ALPHA16F_ARB                                               = 0x0000881C,
+  GL_ALPHA16F_EXT                                               = 0x0000881C,
+  GL_ALPHA_FLOAT16_APPLE                                        = 0x0000881C,
+  GL_ALPHA_FLOAT16_ATI                                          = 0x0000881C,
+  GL_INTENSITY16F_ARB                                           = 0x0000881D,
+  GL_INTENSITY_FLOAT16_APPLE                                    = 0x0000881D,
+  GL_INTENSITY_FLOAT16_ATI                                      = 0x0000881D,
+  GL_LUMINANCE16F_ARB                                           = 0x0000881E,
+  GL_LUMINANCE16F_EXT                                           = 0x0000881E,
+  GL_LUMINANCE_FLOAT16_APPLE                                    = 0x0000881E,
+  GL_LUMINANCE_FLOAT16_ATI                                      = 0x0000881E,
+  GL_LUMINANCE_ALPHA16F_ARB                                     = 0x0000881F,
+  GL_LUMINANCE_ALPHA16F_EXT                                     = 0x0000881F,
+  GL_LUMINANCE_ALPHA_FLOAT16_APPLE                              = 0x0000881F,
+  GL_LUMINANCE_ALPHA_FLOAT16_ATI                                = 0x0000881F,
+  GL_RGBA_FLOAT_MODE_ARB                                        = 0x00008820,
+  GL_RGBA_FLOAT_MODE_ATI                                        = 0x00008820,
+  GL_WRITEONLY_RENDERING_QCOM                                   = 0x00008823,
+  GL_MAX_DRAW_BUFFERS                                           = 0x00008824,
+  GL_MAX_DRAW_BUFFERS_ARB                                       = 0x00008824,
+  GL_MAX_DRAW_BUFFERS_ATI                                       = 0x00008824,
+  GL_MAX_DRAW_BUFFERS_EXT                                       = 0x00008824,
+  GL_MAX_DRAW_BUFFERS_NV                                        = 0x00008824,
+  GL_DRAW_BUFFER0                                               = 0x00008825,
+  GL_DRAW_BUFFER0_ARB                                           = 0x00008825,
+  GL_DRAW_BUFFER0_ATI                                           = 0x00008825,
+  GL_DRAW_BUFFER0_EXT                                           = 0x00008825,
+  GL_DRAW_BUFFER0_NV                                            = 0x00008825,
+  GL_DRAW_BUFFER1                                               = 0x00008826,
+  GL_DRAW_BUFFER1_ARB                                           = 0x00008826,
+  GL_DRAW_BUFFER1_ATI                                           = 0x00008826,
+  GL_DRAW_BUFFER1_EXT                                           = 0x00008826,
+  GL_DRAW_BUFFER1_NV                                            = 0x00008826,
+  GL_DRAW_BUFFER2                                               = 0x00008827,
+  GL_DRAW_BUFFER2_ARB                                           = 0x00008827,
+  GL_DRAW_BUFFER2_ATI                                           = 0x00008827,
+  GL_DRAW_BUFFER2_EXT                                           = 0x00008827,
+  GL_DRAW_BUFFER2_NV                                            = 0x00008827,
+  GL_DRAW_BUFFER3                                               = 0x00008828,
+  GL_DRAW_BUFFER3_ARB                                           = 0x00008828,
+  GL_DRAW_BUFFER3_ATI                                           = 0x00008828,
+  GL_DRAW_BUFFER3_EXT                                           = 0x00008828,
+  GL_DRAW_BUFFER3_NV                                            = 0x00008828,
+  GL_DRAW_BUFFER4                                               = 0x00008829,
+  GL_DRAW_BUFFER4_ARB                                           = 0x00008829,
+  GL_DRAW_BUFFER4_ATI                                           = 0x00008829,
+  GL_DRAW_BUFFER4_EXT                                           = 0x00008829,
+  GL_DRAW_BUFFER4_NV                                            = 0x00008829,
+  GL_DRAW_BUFFER5                                               = 0x0000882A,
+  GL_DRAW_BUFFER5_ARB                                           = 0x0000882A,
+  GL_DRAW_BUFFER5_ATI                                           = 0x0000882A,
+  GL_DRAW_BUFFER5_EXT                                           = 0x0000882A,
+  GL_DRAW_BUFFER5_NV                                            = 0x0000882A,
+  GL_DRAW_BUFFER6                                               = 0x0000882B,
+  GL_DRAW_BUFFER6_ARB                                           = 0x0000882B,
+  GL_DRAW_BUFFER6_ATI                                           = 0x0000882B,
+  GL_DRAW_BUFFER6_EXT                                           = 0x0000882B,
+  GL_DRAW_BUFFER6_NV                                            = 0x0000882B,
+  GL_DRAW_BUFFER7                                               = 0x0000882C,
+  GL_DRAW_BUFFER7_ARB                                           = 0x0000882C,
+  GL_DRAW_BUFFER7_ATI                                           = 0x0000882C,
+  GL_DRAW_BUFFER7_EXT                                           = 0x0000882C,
+  GL_DRAW_BUFFER7_NV                                            = 0x0000882C,
+  GL_DRAW_BUFFER8                                               = 0x0000882D,
+  GL_DRAW_BUFFER8_ARB                                           = 0x0000882D,
+  GL_DRAW_BUFFER8_ATI                                           = 0x0000882D,
+  GL_DRAW_BUFFER8_EXT                                           = 0x0000882D,
+  GL_DRAW_BUFFER8_NV                                            = 0x0000882D,
+  GL_DRAW_BUFFER9                                               = 0x0000882E,
+  GL_DRAW_BUFFER9_ARB                                           = 0x0000882E,
+  GL_DRAW_BUFFER9_ATI                                           = 0x0000882E,
+  GL_DRAW_BUFFER9_EXT                                           = 0x0000882E,
+  GL_DRAW_BUFFER9_NV                                            = 0x0000882E,
+  GL_DRAW_BUFFER10                                              = 0x0000882F,
+  GL_DRAW_BUFFER10_ARB                                          = 0x0000882F,
+  GL_DRAW_BUFFER10_ATI                                          = 0x0000882F,
+  GL_DRAW_BUFFER10_EXT                                          = 0x0000882F,
+  GL_DRAW_BUFFER10_NV                                           = 0x0000882F,
+  GL_DRAW_BUFFER11                                              = 0x00008830,
+  GL_DRAW_BUFFER11_ARB                                          = 0x00008830,
+  GL_DRAW_BUFFER11_ATI                                          = 0x00008830,
+  GL_DRAW_BUFFER11_EXT                                          = 0x00008830,
+  GL_DRAW_BUFFER11_NV                                           = 0x00008830,
+  GL_DRAW_BUFFER12                                              = 0x00008831,
+  GL_DRAW_BUFFER12_ARB                                          = 0x00008831,
+  GL_DRAW_BUFFER12_ATI                                          = 0x00008831,
+  GL_DRAW_BUFFER12_EXT                                          = 0x00008831,
+  GL_DRAW_BUFFER12_NV                                           = 0x00008831,
+  GL_DRAW_BUFFER13                                              = 0x00008832,
+  GL_DRAW_BUFFER13_ARB                                          = 0x00008832,
+  GL_DRAW_BUFFER13_ATI                                          = 0x00008832,
+  GL_DRAW_BUFFER13_EXT                                          = 0x00008832,
+  GL_DRAW_BUFFER13_NV                                           = 0x00008832,
+  GL_DRAW_BUFFER14                                              = 0x00008833,
+  GL_DRAW_BUFFER14_ARB                                          = 0x00008833,
+  GL_DRAW_BUFFER14_ATI                                          = 0x00008833,
+  GL_DRAW_BUFFER14_EXT                                          = 0x00008833,
+  GL_DRAW_BUFFER14_NV                                           = 0x00008833,
+  GL_DRAW_BUFFER15                                              = 0x00008834,
+  GL_DRAW_BUFFER15_ARB                                          = 0x00008834,
+  GL_DRAW_BUFFER15_ATI                                          = 0x00008834,
+  GL_DRAW_BUFFER15_EXT                                          = 0x00008834,
+  GL_DRAW_BUFFER15_NV                                           = 0x00008834,
+  GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI                            = 0x00008835,
+  GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI                         = 0x00008837,
+  GL_BLEND_EQUATION_ALPHA                                       = 0x0000883D,
+  GL_BLEND_EQUATION_ALPHA_EXT                                   = 0x0000883D,
+  GL_BLEND_EQUATION_ALPHA_OES                                   = 0x0000883D,
+  GL_SUBSAMPLE_DISTANCE_AMD                                     = 0x0000883F,
+  GL_MATRIX_PALETTE_ARB                                         = 0x00008840,
+  GL_MATRIX_PALETTE_OES                                         = 0x00008840,
+  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB                         = 0x00008841,
+  GL_MAX_PALETTE_MATRICES_ARB                                   = 0x00008842,
+  GL_MAX_PALETTE_MATRICES_OES                                   = 0x00008842,
+  GL_CURRENT_PALETTE_MATRIX_ARB                                 = 0x00008843,
+  GL_CURRENT_PALETTE_MATRIX_OES                                 = 0x00008843,
+  GL_MATRIX_INDEX_ARRAY_ARB                                     = 0x00008844,
+  GL_MATRIX_INDEX_ARRAY_OES                                     = 0x00008844,
+  GL_CURRENT_MATRIX_INDEX_ARB                                   = 0x00008845,
+  GL_MATRIX_INDEX_ARRAY_SIZE_ARB                                = 0x00008846,
+  GL_MATRIX_INDEX_ARRAY_SIZE_OES                                = 0x00008846,
+  GL_MATRIX_INDEX_ARRAY_TYPE_ARB                                = 0x00008847,
+  GL_MATRIX_INDEX_ARRAY_TYPE_OES                                = 0x00008847,
+  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB                              = 0x00008848,
+  GL_MATRIX_INDEX_ARRAY_STRIDE_OES                              = 0x00008848,
+  GL_MATRIX_INDEX_ARRAY_POINTER_ARB                             = 0x00008849,
+  GL_MATRIX_INDEX_ARRAY_POINTER_OES                             = 0x00008849,
+  GL_TEXTURE_DEPTH_SIZE                                         = 0x0000884A,
+  GL_TEXTURE_DEPTH_SIZE_ARB                                     = 0x0000884A,
+  GL_DEPTH_TEXTURE_MODE                                         = 0x0000884B,
+  GL_DEPTH_TEXTURE_MODE_ARB                                     = 0x0000884B,
+  GL_TEXTURE_COMPARE_MODE                                       = 0x0000884C,
+  GL_TEXTURE_COMPARE_MODE_ARB                                   = 0x0000884C,
+  GL_TEXTURE_COMPARE_MODE_EXT                                   = 0x0000884C,
+  GL_TEXTURE_COMPARE_FUNC                                       = 0x0000884D,
+  GL_TEXTURE_COMPARE_FUNC_ARB                                   = 0x0000884D,
+  GL_TEXTURE_COMPARE_FUNC_EXT                                   = 0x0000884D,
+  GL_COMPARE_R_TO_TEXTURE                                       = 0x0000884E,
+  GL_COMPARE_R_TO_TEXTURE_ARB                                   = 0x0000884E,
+  GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT                           = 0x0000884E,
+  GL_COMPARE_REF_TO_TEXTURE                                     = 0x0000884E,
+  GL_COMPARE_REF_TO_TEXTURE_EXT                                 = 0x0000884E,
+  GL_TEXTURE_CUBE_MAP_SEAMLESS                                  = 0x0000884F,
+  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV                            = 0x00008850,
+  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV                      = 0x00008851,
+  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV                     = 0x00008852,
+  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV               = 0x00008853,
+  GL_OFFSET_HILO_TEXTURE_2D_NV                                  = 0x00008854,
+  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV                           = 0x00008855,
+  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV                       = 0x00008856,
+  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV                = 0x00008857,
+  GL_DEPENDENT_HILO_TEXTURE_2D_NV                               = 0x00008858,
+  GL_DEPENDENT_RGB_TEXTURE_3D_NV                                = 0x00008859,
+  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV                          = 0x0000885A,
+  GL_DOT_PRODUCT_PASS_THROUGH_NV                                = 0x0000885B,
+  GL_DOT_PRODUCT_TEXTURE_1D_NV                                  = 0x0000885C,
+  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV                        = 0x0000885D,
+  GL_HILO8_NV                                                   = 0x0000885E,
+  GL_SIGNED_HILO8_NV                                            = 0x0000885F,
+  GL_FORCE_BLUE_TO_ONE_NV                                       = 0x00008860,
+  GL_POINT_SPRITE                                               = 0x00008861,
+  GL_POINT_SPRITE_ARB                                           = 0x00008861,
+  GL_POINT_SPRITE_NV                                            = 0x00008861,
+  GL_POINT_SPRITE_OES                                           = 0x00008861,
+  GL_COORD_REPLACE                                              = 0x00008862,
+  GL_COORD_REPLACE_ARB                                          = 0x00008862,
+  GL_COORD_REPLACE_NV                                           = 0x00008862,
+  GL_COORD_REPLACE_OES                                          = 0x00008862,
+  GL_POINT_SPRITE_R_MODE_NV                                     = 0x00008863,
+  GL_PIXEL_COUNTER_BITS_NV                                      = 0x00008864,
+  GL_QUERY_COUNTER_BITS                                         = 0x00008864,
+  GL_QUERY_COUNTER_BITS_ARB                                     = 0x00008864,
+  GL_QUERY_COUNTER_BITS_EXT                                     = 0x00008864,
+  GL_CURRENT_OCCLUSION_QUERY_ID_NV                              = 0x00008865,
+  GL_CURRENT_QUERY                                              = 0x00008865,
+  GL_CURRENT_QUERY_ARB                                          = 0x00008865,
+  GL_CURRENT_QUERY_EXT                                          = 0x00008865,
+  GL_PIXEL_COUNT_NV                                             = 0x00008866,
+  GL_QUERY_RESULT                                               = 0x00008866,
+  GL_QUERY_RESULT_ARB                                           = 0x00008866,
+  GL_QUERY_RESULT_EXT                                           = 0x00008866,
+  GL_PIXEL_COUNT_AVAILABLE_NV                                   = 0x00008867,
+  GL_QUERY_RESULT_AVAILABLE                                     = 0x00008867,
+  GL_QUERY_RESULT_AVAILABLE_ARB                                 = 0x00008867,
+  GL_QUERY_RESULT_AVAILABLE_EXT                                 = 0x00008867,
+  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV                   = 0x00008868,
+  GL_MAX_VERTEX_ATTRIBS                                         = 0x00008869,
+  GL_MAX_VERTEX_ATTRIBS_ARB                                     = 0x00008869,
+  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED                             = 0x0000886A,
+  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB                         = 0x0000886A,
+  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS                          = 0x0000886C,
+  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT                      = 0x0000886C,
+  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES                      = 0x0000886C,
+  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS                       = 0x0000886D,
+  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT                   = 0x0000886D,
+  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES                   = 0x0000886D,
+  GL_DEPTH_STENCIL_TO_RGBA_NV                                   = 0x0000886E,
+  GL_DEPTH_STENCIL_TO_BGRA_NV                                   = 0x0000886F,
+  GL_FRAGMENT_PROGRAM_NV                                        = 0x00008870,
+  GL_MAX_TEXTURE_COORDS                                         = 0x00008871,
+  GL_MAX_TEXTURE_COORDS_ARB                                     = 0x00008871,
+  GL_MAX_TEXTURE_COORDS_NV                                      = 0x00008871,
+  GL_MAX_TEXTURE_IMAGE_UNITS                                    = 0x00008872,
+  GL_MAX_TEXTURE_IMAGE_UNITS_ARB                                = 0x00008872,
+  GL_MAX_TEXTURE_IMAGE_UNITS_NV                                 = 0x00008872,
+  GL_FRAGMENT_PROGRAM_BINDING_NV                                = 0x00008873,
+  GL_PROGRAM_ERROR_STRING_ARB                                   = 0x00008874,
+  GL_PROGRAM_ERROR_STRING_NV                                    = 0x00008874,
+  GL_PROGRAM_FORMAT_ASCII_ARB                                   = 0x00008875,
+  GL_PROGRAM_FORMAT_ARB                                         = 0x00008876,
+  GL_WRITE_PIXEL_DATA_RANGE_NV                                  = 0x00008878,
+  GL_READ_PIXEL_DATA_RANGE_NV                                   = 0x00008879,
+  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV                           = 0x0000887A,
+  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV                            = 0x0000887B,
+  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV                          = 0x0000887C,
+  GL_READ_PIXEL_DATA_RANGE_POINTER_NV                           = 0x0000887D,
+  GL_GEOMETRY_SHADER_INVOCATIONS                                = 0x0000887F,
+  GL_GEOMETRY_SHADER_INVOCATIONS_EXT                            = 0x0000887F,
+  GL_GEOMETRY_SHADER_INVOCATIONS_OES                            = 0x0000887F,
+  GL_FLOAT_R_NV                                                 = 0x00008880,
+  GL_FLOAT_RG_NV                                                = 0x00008881,
+  GL_FLOAT_RGB_NV                                               = 0x00008882,
+  GL_FLOAT_RGBA_NV                                              = 0x00008883,
+  GL_FLOAT_R16_NV                                               = 0x00008884,
+  GL_FLOAT_R32_NV                                               = 0x00008885,
+  GL_FLOAT_RG16_NV                                              = 0x00008886,
+  GL_FLOAT_RG32_NV                                              = 0x00008887,
+  GL_FLOAT_RGB16_NV                                             = 0x00008888,
+  GL_FLOAT_RGB32_NV                                             = 0x00008889,
+  GL_FLOAT_RGBA16_NV                                            = 0x0000888A,
+  GL_FLOAT_RGBA32_NV                                            = 0x0000888B,
+  GL_TEXTURE_FLOAT_COMPONENTS_NV                                = 0x0000888C,
+  GL_FLOAT_CLEAR_COLOR_VALUE_NV                                 = 0x0000888D,
+  GL_FLOAT_RGBA_MODE_NV                                         = 0x0000888E,
+  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV                             = 0x0000888F,
+  GL_DEPTH_BOUNDS_TEST_EXT                                      = 0x00008890,
+  GL_DEPTH_BOUNDS_EXT                                           = 0x00008891,
+  GL_ARRAY_BUFFER                                               = 0x00008892,
+  GL_ARRAY_BUFFER_ARB                                           = 0x00008892,
+  GL_ELEMENT_ARRAY_BUFFER                                       = 0x00008893,
+  GL_ELEMENT_ARRAY_BUFFER_ARB                                   = 0x00008893,
+  GL_ARRAY_BUFFER_BINDING                                       = 0x00008894,
+  GL_ARRAY_BUFFER_BINDING_ARB                                   = 0x00008894,
+  GL_ELEMENT_ARRAY_BUFFER_BINDING                               = 0x00008895,
+  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB                           = 0x00008895,
+  GL_VERTEX_ARRAY_BUFFER_BINDING                                = 0x00008896,
+  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB                            = 0x00008896,
+  GL_NORMAL_ARRAY_BUFFER_BINDING                                = 0x00008897,
+  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB                            = 0x00008897,
+  GL_COLOR_ARRAY_BUFFER_BINDING                                 = 0x00008898,
+  GL_COLOR_ARRAY_BUFFER_BINDING_ARB                             = 0x00008898,
+  GL_INDEX_ARRAY_BUFFER_BINDING                                 = 0x00008899,
+  GL_INDEX_ARRAY_BUFFER_BINDING_ARB                             = 0x00008899,
+  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING                         = 0x0000889A,
+  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB                     = 0x0000889A,
+  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING                             = 0x0000889B,
+  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB                         = 0x0000889B,
+  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING                       = 0x0000889C,
+  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB                   = 0x0000889C,
+  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB                    = 0x0000889D,
+  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING                        = 0x0000889D,
+  GL_FOG_COORD_ARRAY_BUFFER_BINDING                             = 0x0000889D,
+  GL_WEIGHT_ARRAY_BUFFER_BINDING                                = 0x0000889E,
+  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB                            = 0x0000889E,
+  GL_WEIGHT_ARRAY_BUFFER_BINDING_OES                            = 0x0000889E,
+  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING                         = 0x0000889F,
+  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB                     = 0x0000889F,
+  GL_PROGRAM_INSTRUCTIONS_ARB                                   = 0x000088A0,
+  GL_MAX_PROGRAM_INSTRUCTIONS_ARB                               = 0x000088A1,
+  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB                            = 0x000088A2,
+  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB                        = 0x000088A3,
+  GL_PROGRAM_TEMPORARIES_ARB                                    = 0x000088A4,
+  GL_MAX_PROGRAM_TEMPORARIES_ARB                                = 0x000088A5,
+  GL_PROGRAM_NATIVE_TEMPORARIES_ARB                             = 0x000088A6,
+  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB                         = 0x000088A7,
+  GL_PROGRAM_PARAMETERS_ARB                                     = 0x000088A8,
+  GL_MAX_PROGRAM_PARAMETERS_ARB                                 = 0x000088A9,
+  GL_PROGRAM_NATIVE_PARAMETERS_ARB                              = 0x000088AA,
+  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB                          = 0x000088AB,
+  GL_PROGRAM_ATTRIBS_ARB                                        = 0x000088AC,
+  GL_MAX_PROGRAM_ATTRIBS_ARB                                    = 0x000088AD,
+  GL_PROGRAM_NATIVE_ATTRIBS_ARB                                 = 0x000088AE,
+  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB                             = 0x000088AF,
+  GL_PROGRAM_ADDRESS_REGISTERS_ARB                              = 0x000088B0,
+  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB                          = 0x000088B1,
+  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB                       = 0x000088B2,
+  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB                   = 0x000088B3,
+  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB                           = 0x000088B4,
+  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB                             = 0x000088B5,
+  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB                            = 0x000088B6,
+  GL_TRANSPOSE_CURRENT_MATRIX_ARB                               = 0x000088B7,
+  GL_READ_ONLY                                                  = 0x000088B8,
+  GL_READ_ONLY_ARB                                              = 0x000088B8,
+  GL_WRITE_ONLY                                                 = 0x000088B9,
+  GL_WRITE_ONLY_ARB                                             = 0x000088B9,
+  GL_WRITE_ONLY_OES                                             = 0x000088B9,
+  GL_READ_WRITE                                                 = 0x000088BA,
+  GL_READ_WRITE_ARB                                             = 0x000088BA,
+  GL_BUFFER_ACCESS                                              = 0x000088BB,
+  GL_BUFFER_ACCESS_ARB                                          = 0x000088BB,
+  GL_BUFFER_ACCESS_OES                                          = 0x000088BB,
+  GL_BUFFER_MAPPED                                              = 0x000088BC,
+  GL_BUFFER_MAPPED_ARB                                          = 0x000088BC,
+  GL_BUFFER_MAPPED_OES                                          = 0x000088BC,
+  GL_BUFFER_MAP_POINTER                                         = 0x000088BD,
+  GL_BUFFER_MAP_POINTER_ARB                                     = 0x000088BD,
+  GL_BUFFER_MAP_POINTER_OES                                     = 0x000088BD,
+  GL_WRITE_DISCARD_NV                                           = 0x000088BE,
+  GL_TIME_ELAPSED                                               = 0x000088BF,
+  GL_TIME_ELAPSED_EXT                                           = 0x000088BF,
+  GL_MATRIX0_ARB                                                = 0x000088C0,
+  GL_MATRIX1_ARB                                                = 0x000088C1,
+  GL_MATRIX2_ARB                                                = 0x000088C2,
+  GL_MATRIX3_ARB                                                = 0x000088C3,
+  GL_MATRIX4_ARB                                                = 0x000088C4,
+  GL_MATRIX5_ARB                                                = 0x000088C5,
+  GL_MATRIX6_ARB                                                = 0x000088C6,
+  GL_MATRIX7_ARB                                                = 0x000088C7,
+  GL_MATRIX8_ARB                                                = 0x000088C8,
+  GL_MATRIX9_ARB                                                = 0x000088C9,
+  GL_MATRIX10_ARB                                               = 0x000088CA,
+  GL_MATRIX11_ARB                                               = 0x000088CB,
+  GL_MATRIX12_ARB                                               = 0x000088CC,
+  GL_MATRIX13_ARB                                               = 0x000088CD,
+  GL_MATRIX14_ARB                                               = 0x000088CE,
+  GL_MATRIX15_ARB                                               = 0x000088CF,
+  GL_MATRIX16_ARB                                               = 0x000088D0,
+  GL_MATRIX17_ARB                                               = 0x000088D1,
+  GL_MATRIX18_ARB                                               = 0x000088D2,
+  GL_MATRIX19_ARB                                               = 0x000088D3,
+  GL_MATRIX20_ARB                                               = 0x000088D4,
+  GL_MATRIX21_ARB                                               = 0x000088D5,
+  GL_MATRIX22_ARB                                               = 0x000088D6,
+  GL_MATRIX23_ARB                                               = 0x000088D7,
+  GL_MATRIX24_ARB                                               = 0x000088D8,
+  GL_MATRIX25_ARB                                               = 0x000088D9,
+  GL_MATRIX26_ARB                                               = 0x000088DA,
+  GL_MATRIX27_ARB                                               = 0x000088DB,
+  GL_MATRIX28_ARB                                               = 0x000088DC,
+  GL_MATRIX29_ARB                                               = 0x000088DD,
+  GL_MATRIX30_ARB                                               = 0x000088DE,
+  GL_MATRIX31_ARB                                               = 0x000088DF,
+  GL_STREAM_DRAW                                                = 0x000088E0,
+  GL_STREAM_DRAW_ARB                                            = 0x000088E0,
+  GL_STREAM_READ                                                = 0x000088E1,
+  GL_STREAM_READ_ARB                                            = 0x000088E1,
+  GL_STREAM_COPY                                                = 0x000088E2,
+  GL_STREAM_COPY_ARB                                            = 0x000088E2,
+  GL_STATIC_DRAW                                                = 0x000088E4,
+  GL_STATIC_DRAW_ARB                                            = 0x000088E4,
+  GL_STATIC_READ                                                = 0x000088E5,
+  GL_STATIC_READ_ARB                                            = 0x000088E5,
+  GL_STATIC_COPY                                                = 0x000088E6,
+  GL_STATIC_COPY_ARB                                            = 0x000088E6,
+  GL_DYNAMIC_DRAW                                               = 0x000088E8,
+  GL_DYNAMIC_DRAW_ARB                                           = 0x000088E8,
+  GL_DYNAMIC_READ                                               = 0x000088E9,
+  GL_DYNAMIC_READ_ARB                                           = 0x000088E9,
+  GL_DYNAMIC_COPY                                               = 0x000088EA,
+  GL_DYNAMIC_COPY_ARB                                           = 0x000088EA,
+  GL_PIXEL_PACK_BUFFER                                          = 0x000088EB,
+  GL_PIXEL_PACK_BUFFER_ARB                                      = 0x000088EB,
+  GL_PIXEL_PACK_BUFFER_EXT                                      = 0x000088EB,
+  GL_PIXEL_UNPACK_BUFFER                                        = 0x000088EC,
+  GL_PIXEL_UNPACK_BUFFER_ARB                                    = 0x000088EC,
+  GL_PIXEL_UNPACK_BUFFER_EXT                                    = 0x000088EC,
+  GL_PIXEL_PACK_BUFFER_BINDING                                  = 0x000088ED,
+  GL_PIXEL_PACK_BUFFER_BINDING_ARB                              = 0x000088ED,
+  GL_PIXEL_PACK_BUFFER_BINDING_EXT                              = 0x000088ED,
+  GL_ETC1_SRGB8_NV                                              = 0x000088EE,
+  GL_PIXEL_UNPACK_BUFFER_BINDING                                = 0x000088EF,
+  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB                            = 0x000088EF,
+  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT                            = 0x000088EF,
+  GL_DEPTH24_STENCIL8                                           = 0x000088F0,
+  GL_DEPTH24_STENCIL8_EXT                                       = 0x000088F0,
+  GL_DEPTH24_STENCIL8_OES                                       = 0x000088F0,
+  GL_TEXTURE_STENCIL_SIZE                                       = 0x000088F1,
+  GL_TEXTURE_STENCIL_SIZE_EXT                                   = 0x000088F1,
+  GL_STENCIL_TAG_BITS_EXT                                       = 0x000088F2,
+  GL_STENCIL_CLEAR_TAG_VALUE_EXT                                = 0x000088F3,
+  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV                           = 0x000088F4,
+  GL_MAX_PROGRAM_CALL_DEPTH_NV                                  = 0x000088F5,
+  GL_MAX_PROGRAM_IF_DEPTH_NV                                    = 0x000088F6,
+  GL_MAX_PROGRAM_LOOP_DEPTH_NV                                  = 0x000088F7,
+  GL_MAX_PROGRAM_LOOP_COUNT_NV                                  = 0x000088F8,
+  GL_SRC1_COLOR                                                 = 0x000088F9,
+  GL_ONE_MINUS_SRC1_COLOR                                       = 0x000088FA,
+  GL_ONE_MINUS_SRC1_ALPHA                                       = 0x000088FB,
+  GL_MAX_DUAL_SOURCE_DRAW_BUFFERS                               = 0x000088FC,
+  GL_VERTEX_ATTRIB_ARRAY_INTEGER                                = 0x000088FD,
+  GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT                            = 0x000088FD,
+  GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV                             = 0x000088FD,
+  GL_VERTEX_ATTRIB_ARRAY_DIVISOR                                = 0x000088FE,
+  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                          = 0x000088FE,
+  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB                            = 0x000088FE,
+  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT                            = 0x000088FE,
+  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV                             = 0x000088FE,
+  GL_MAX_ARRAY_TEXTURE_LAYERS                                   = 0x000088FF,
+  GL_MAX_ARRAY_TEXTURE_LAYERS_EXT                               = 0x000088FF,
+  GL_MIN_PROGRAM_TEXEL_OFFSET                                   = 0x00008904,
+  GL_MIN_PROGRAM_TEXEL_OFFSET_EXT                               = 0x00008904,
+  GL_MIN_PROGRAM_TEXEL_OFFSET_NV                                = 0x00008904,
+  GL_MAX_PROGRAM_TEXEL_OFFSET                                   = 0x00008905,
+  GL_MAX_PROGRAM_TEXEL_OFFSET_EXT                               = 0x00008905,
+  GL_MAX_PROGRAM_TEXEL_OFFSET_NV                                = 0x00008905,
+  GL_PROGRAM_ATTRIB_COMPONENTS_NV                               = 0x00008906,
+  GL_PROGRAM_RESULT_COMPONENTS_NV                               = 0x00008907,
+  GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV                           = 0x00008908,
+  GL_MAX_PROGRAM_RESULT_COMPONENTS_NV                           = 0x00008909,
+  GL_STENCIL_TEST_TWO_SIDE_EXT                                  = 0x00008910,
+  GL_ACTIVE_STENCIL_FACE_EXT                                    = 0x00008911,
+  GL_MIRROR_CLAMP_TO_BORDER_EXT                                 = 0x00008912,
+  GL_SAMPLES_PASSED                                             = 0x00008914,
+  GL_SAMPLES_PASSED_ARB                                         = 0x00008914,
+  GL_GEOMETRY_VERTICES_OUT                                      = 0x00008916,
+  GL_GEOMETRY_LINKED_VERTICES_OUT_EXT                           = 0x00008916,
+  GL_GEOMETRY_LINKED_VERTICES_OUT_OES                           = 0x00008916,
+  GL_GEOMETRY_INPUT_TYPE                                        = 0x00008917,
+  GL_GEOMETRY_LINKED_INPUT_TYPE_EXT                             = 0x00008917,
+  GL_GEOMETRY_LINKED_INPUT_TYPE_OES                             = 0x00008917,
+  GL_GEOMETRY_OUTPUT_TYPE                                       = 0x00008918,
+  GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT                            = 0x00008918,
+  GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES                            = 0x00008918,
+  GL_SAMPLER_BINDING                                            = 0x00008919,
+  GL_CLAMP_VERTEX_COLOR                                         = 0x0000891A,
+  GL_CLAMP_VERTEX_COLOR_ARB                                     = 0x0000891A,
+  GL_CLAMP_FRAGMENT_COLOR                                       = 0x0000891B,
+  GL_CLAMP_FRAGMENT_COLOR_ARB                                   = 0x0000891B,
+  GL_CLAMP_READ_COLOR                                           = 0x0000891C,
+  GL_CLAMP_READ_COLOR_ARB                                       = 0x0000891C,
+  GL_FIXED_ONLY                                                 = 0x0000891D,
+  GL_FIXED_ONLY_ARB                                             = 0x0000891D,
+  GL_TESS_CONTROL_PROGRAM_NV                                    = 0x0000891E,
+  GL_TESS_EVALUATION_PROGRAM_NV                                 = 0x0000891F,
+  GL_FRAGMENT_SHADER_ATI                                        = 0x00008920,
+  GL_REG_0_ATI                                                  = 0x00008921,
+  GL_REG_1_ATI                                                  = 0x00008922,
+  GL_REG_2_ATI                                                  = 0x00008923,
+  GL_REG_3_ATI                                                  = 0x00008924,
+  GL_REG_4_ATI                                                  = 0x00008925,
+  GL_REG_5_ATI                                                  = 0x00008926,
+  GL_REG_6_ATI                                                  = 0x00008927,
+  GL_REG_7_ATI                                                  = 0x00008928,
+  GL_REG_8_ATI                                                  = 0x00008929,
+  GL_REG_9_ATI                                                  = 0x0000892A,
+  GL_REG_10_ATI                                                 = 0x0000892B,
+  GL_REG_11_ATI                                                 = 0x0000892C,
+  GL_REG_12_ATI                                                 = 0x0000892D,
+  GL_REG_13_ATI                                                 = 0x0000892E,
+  GL_REG_14_ATI                                                 = 0x0000892F,
+  GL_REG_15_ATI                                                 = 0x00008930,
+  GL_REG_16_ATI                                                 = 0x00008931,
+  GL_REG_17_ATI                                                 = 0x00008932,
+  GL_REG_18_ATI                                                 = 0x00008933,
+  GL_REG_19_ATI                                                 = 0x00008934,
+  GL_REG_20_ATI                                                 = 0x00008935,
+  GL_REG_21_ATI                                                 = 0x00008936,
+  GL_REG_22_ATI                                                 = 0x00008937,
+  GL_REG_23_ATI                                                 = 0x00008938,
+  GL_REG_24_ATI                                                 = 0x00008939,
+  GL_REG_25_ATI                                                 = 0x0000893A,
+  GL_REG_26_ATI                                                 = 0x0000893B,
+  GL_REG_27_ATI                                                 = 0x0000893C,
+  GL_REG_28_ATI                                                 = 0x0000893D,
+  GL_REG_29_ATI                                                 = 0x0000893E,
+  GL_REG_30_ATI                                                 = 0x0000893F,
+  GL_REG_31_ATI                                                 = 0x00008940,
+  GL_CON_0_ATI                                                  = 0x00008941,
+  GL_CON_1_ATI                                                  = 0x00008942,
+  GL_CON_2_ATI                                                  = 0x00008943,
+  GL_CON_3_ATI                                                  = 0x00008944,
+  GL_CON_4_ATI                                                  = 0x00008945,
+  GL_CON_5_ATI                                                  = 0x00008946,
+  GL_CON_6_ATI                                                  = 0x00008947,
+  GL_CON_7_ATI                                                  = 0x00008948,
+  GL_CON_8_ATI                                                  = 0x00008949,
+  GL_CON_9_ATI                                                  = 0x0000894A,
+  GL_CON_10_ATI                                                 = 0x0000894B,
+  GL_CON_11_ATI                                                 = 0x0000894C,
+  GL_CON_12_ATI                                                 = 0x0000894D,
+  GL_CON_13_ATI                                                 = 0x0000894E,
+  GL_CON_14_ATI                                                 = 0x0000894F,
+  GL_CON_15_ATI                                                 = 0x00008950,
+  GL_CON_16_ATI                                                 = 0x00008951,
+  GL_CON_17_ATI                                                 = 0x00008952,
+  GL_CON_18_ATI                                                 = 0x00008953,
+  GL_CON_19_ATI                                                 = 0x00008954,
+  GL_CON_20_ATI                                                 = 0x00008955,
+  GL_CON_21_ATI                                                 = 0x00008956,
+  GL_CON_22_ATI                                                 = 0x00008957,
+  GL_CON_23_ATI                                                 = 0x00008958,
+  GL_CON_24_ATI                                                 = 0x00008959,
+  GL_CON_25_ATI                                                 = 0x0000895A,
+  GL_CON_26_ATI                                                 = 0x0000895B,
+  GL_CON_27_ATI                                                 = 0x0000895C,
+  GL_CON_28_ATI                                                 = 0x0000895D,
+  GL_CON_29_ATI                                                 = 0x0000895E,
+  GL_CON_30_ATI                                                 = 0x0000895F,
+  GL_CON_31_ATI                                                 = 0x00008960,
+  GL_MOV_ATI                                                    = 0x00008961,
+  GL_ADD_ATI                                                    = 0x00008963,
+  GL_MUL_ATI                                                    = 0x00008964,
+  GL_SUB_ATI                                                    = 0x00008965,
+  GL_DOT3_ATI                                                   = 0x00008966,
+  GL_DOT4_ATI                                                   = 0x00008967,
+  GL_MAD_ATI                                                    = 0x00008968,
+  GL_LERP_ATI                                                   = 0x00008969,
+  GL_CND_ATI                                                    = 0x0000896A,
+  GL_CND0_ATI                                                   = 0x0000896B,
+  GL_DOT2_ADD_ATI                                               = 0x0000896C,
+  GL_SECONDARY_INTERPOLATOR_ATI                                 = 0x0000896D,
+  GL_NUM_FRAGMENT_REGISTERS_ATI                                 = 0x0000896E,
+  GL_NUM_FRAGMENT_CONSTANTS_ATI                                 = 0x0000896F,
+  GL_NUM_PASSES_ATI                                             = 0x00008970,
+  GL_NUM_INSTRUCTIONS_PER_PASS_ATI                              = 0x00008971,
+  GL_NUM_INSTRUCTIONS_TOTAL_ATI                                 = 0x00008972,
+  GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI                      = 0x00008973,
+  GL_NUM_LOOPBACK_COMPONENTS_ATI                                = 0x00008974,
+  GL_COLOR_ALPHA_PAIRING_ATI                                    = 0x00008975,
+  GL_SWIZZLE_STR_ATI                                            = 0x00008976,
+  GL_SWIZZLE_STQ_ATI                                            = 0x00008977,
+  GL_SWIZZLE_STR_DR_ATI                                         = 0x00008978,
+  GL_SWIZZLE_STQ_DQ_ATI                                         = 0x00008979,
+  GL_SWIZZLE_STRQ_ATI                                           = 0x0000897A,
+  GL_SWIZZLE_STRQ_DQ_ATI                                        = 0x0000897B,
+  GL_INTERLACE_OML                                              = 0x00008980,
+  GL_INTERLACE_READ_OML                                         = 0x00008981,
+  GL_FORMAT_SUBSAMPLE_24_24_OML                                 = 0x00008982,
+  GL_FORMAT_SUBSAMPLE_244_244_OML                               = 0x00008983,
+  GL_PACK_RESAMPLE_OML                                          = 0x00008984,
+  GL_UNPACK_RESAMPLE_OML                                        = 0x00008985,
+  GL_RESAMPLE_REPLICATE_OML                                     = 0x00008986,
+  GL_RESAMPLE_ZERO_FILL_OML                                     = 0x00008987,
+  GL_RESAMPLE_AVERAGE_OML                                       = 0x00008988,
+  GL_RESAMPLE_DECIMATE_OML                                      = 0x00008989,
+  GL_POINT_SIZE_ARRAY_TYPE_OES                                  = 0x0000898A,
+  GL_POINT_SIZE_ARRAY_STRIDE_OES                                = 0x0000898B,
+  GL_POINT_SIZE_ARRAY_POINTER_OES                               = 0x0000898C,
+  GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES                     = 0x0000898D,
+  GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES                    = 0x0000898E,
+  GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES                       = 0x0000898F,
+  GL_VERTEX_ATTRIB_MAP1_APPLE                                   = 0x00008A00,
+  GL_VERTEX_ATTRIB_MAP2_APPLE                                   = 0x00008A01,
+  GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE                              = 0x00008A02,
+  GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE                             = 0x00008A03,
+  GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE                             = 0x00008A04,
+  GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE                            = 0x00008A05,
+  GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE                              = 0x00008A06,
+  GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE                             = 0x00008A07,
+  GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE                             = 0x00008A08,
+  GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE                            = 0x00008A09,
+  GL_DRAW_PIXELS_APPLE                                          = 0x00008A0A,
+  GL_FENCE_APPLE                                                = 0x00008A0B,
+  GL_ELEMENT_ARRAY_APPLE                                        = 0x00008A0C,
+  GL_ELEMENT_ARRAY_TYPE_APPLE                                   = 0x00008A0D,
+  GL_ELEMENT_ARRAY_POINTER_APPLE                                = 0x00008A0E,
+  GL_COLOR_FLOAT_APPLE                                          = 0x00008A0F,
+  GL_UNIFORM_BUFFER                                             = 0x00008A11,
+  GL_BUFFER_SERIALIZED_MODIFY_APPLE                             = 0x00008A12,
+  GL_BUFFER_FLUSHING_UNMAP_APPLE                                = 0x00008A13,
+  GL_AUX_DEPTH_STENCIL_APPLE                                    = 0x00008A14,
+  GL_PACK_ROW_BYTES_APPLE                                       = 0x00008A15,
+  GL_UNPACK_ROW_BYTES_APPLE                                     = 0x00008A16,
+  GL_RELEASED_APPLE                                             = 0x00008A19,
+  GL_VOLATILE_APPLE                                             = 0x00008A1A,
+  GL_RETAINED_APPLE                                             = 0x00008A1B,
+  GL_UNDEFINED_APPLE                                            = 0x00008A1C,
+  GL_PURGEABLE_APPLE                                            = 0x00008A1D,
+  GL_RGB_422_APPLE                                              = 0x00008A1F,
+  GL_UNIFORM_BUFFER_BINDING                                     = 0x00008A28,
+  GL_UNIFORM_BUFFER_START                                       = 0x00008A29,
+  GL_UNIFORM_BUFFER_SIZE                                        = 0x00008A2A,
+  GL_MAX_VERTEX_UNIFORM_BLOCKS                                  = 0x00008A2B,
+  GL_MAX_GEOMETRY_UNIFORM_BLOCKS                                = 0x00008A2C,
+  GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT                            = 0x00008A2C,
+  GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES                            = 0x00008A2C,
+  GL_MAX_FRAGMENT_UNIFORM_BLOCKS                                = 0x00008A2D,
+  GL_MAX_COMBINED_UNIFORM_BLOCKS                                = 0x00008A2E,
+  GL_MAX_UNIFORM_BUFFER_BINDINGS                                = 0x00008A2F,
+  GL_MAX_UNIFORM_BLOCK_SIZE                                     = 0x00008A30,
+  GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS                     = 0x00008A31,
+  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS                   = 0x00008A32,
+  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT               = 0x00008A32,
+  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES               = 0x00008A32,
+  GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS                   = 0x00008A33,
+  GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT                            = 0x00008A34,
+  GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH                       = 0x00008A35,
+  GL_ACTIVE_UNIFORM_BLOCKS                                      = 0x00008A36,
+  GL_UNIFORM_TYPE                                               = 0x00008A37,
+  GL_UNIFORM_SIZE                                               = 0x00008A38,
+  GL_UNIFORM_NAME_LENGTH                                        = 0x00008A39,
+  GL_UNIFORM_BLOCK_INDEX                                        = 0x00008A3A,
+  GL_UNIFORM_OFFSET                                             = 0x00008A3B,
+  GL_UNIFORM_ARRAY_STRIDE                                       = 0x00008A3C,
+  GL_UNIFORM_MATRIX_STRIDE                                      = 0x00008A3D,
+  GL_UNIFORM_IS_ROW_MAJOR                                       = 0x00008A3E,
+  GL_UNIFORM_BLOCK_BINDING                                      = 0x00008A3F,
+  GL_UNIFORM_BLOCK_DATA_SIZE                                    = 0x00008A40,
+  GL_UNIFORM_BLOCK_NAME_LENGTH                                  = 0x00008A41,
+  GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS                              = 0x00008A42,
+  GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES                       = 0x00008A43,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER                  = 0x00008A44,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER                = 0x00008A45,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER                = 0x00008A46,
+  GL_TEXTURE_SRGB_DECODE_EXT                                    = 0x00008A48,
+  GL_DECODE_EXT                                                 = 0x00008A49,
+  GL_SKIP_DECODE_EXT                                            = 0x00008A4A,
+  GL_PROGRAM_PIPELINE_OBJECT_EXT                                = 0x00008A4F,
+  GL_RGB_RAW_422_APPLE                                          = 0x00008A51,
+  GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                       = 0x00008A52,
+  GL_SYNC_OBJECT_APPLE                                          = 0x00008A53,
+  GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT                           = 0x00008A54,
+  GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT                           = 0x00008A55,
+  GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT                     = 0x00008A56,
+  GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT                     = 0x00008A57,
+  GL_FRAGMENT_SHADER                                            = 0x00008B30,
+  GL_FRAGMENT_SHADER_ARB                                        = 0x00008B30,
+  GL_VERTEX_SHADER                                              = 0x00008B31,
+  GL_VERTEX_SHADER_ARB                                          = 0x00008B31,
+  GL_PROGRAM_OBJECT_ARB                                         = 0x00008B40,
+  GL_PROGRAM_OBJECT_EXT                                         = 0x00008B40,
+  GL_SHADER_OBJECT_ARB                                          = 0x00008B48,
+  GL_SHADER_OBJECT_EXT                                          = 0x00008B48,
+  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS                            = 0x00008B49,
+  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB                        = 0x00008B49,
+  GL_MAX_VERTEX_UNIFORM_COMPONENTS                              = 0x00008B4A,
+  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB                          = 0x00008B4A,
+  GL_MAX_VARYING_FLOATS                                         = 0x00008B4B,
+  GL_MAX_VARYING_COMPONENTS                                     = 0x00008B4B,
+  GL_MAX_VARYING_COMPONENTS_EXT                                 = 0x00008B4B,
+  GL_MAX_VARYING_FLOATS_ARB                                     = 0x00008B4B,
+  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS                             = 0x00008B4C,
+  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB                         = 0x00008B4C,
+  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS                           = 0x00008B4D,
+  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB                       = 0x00008B4D,
+  GL_OBJECT_TYPE_ARB                                            = 0x00008B4E,
+  GL_SHADER_TYPE                                                = 0x00008B4F,
+  GL_OBJECT_SUBTYPE_ARB                                         = 0x00008B4F,
+  GL_FLOAT_VEC2                                                 = 0x00008B50,
+  GL_FLOAT_VEC2_ARB                                             = 0x00008B50,
+  GL_FLOAT_VEC3                                                 = 0x00008B51,
+  GL_FLOAT_VEC3_ARB                                             = 0x00008B51,
+  GL_FLOAT_VEC4                                                 = 0x00008B52,
+  GL_FLOAT_VEC4_ARB                                             = 0x00008B52,
+  GL_INT_VEC2                                                   = 0x00008B53,
+  GL_INT_VEC2_ARB                                               = 0x00008B53,
+  GL_INT_VEC3                                                   = 0x00008B54,
+  GL_INT_VEC3_ARB                                               = 0x00008B54,
+  GL_INT_VEC4                                                   = 0x00008B55,
+  GL_INT_VEC4_ARB                                               = 0x00008B55,
+  GL_BOOL                                                       = 0x00008B56,
+  GL_BOOL_ARB                                                   = 0x00008B56,
+  GL_BOOL_VEC2                                                  = 0x00008B57,
+  GL_BOOL_VEC2_ARB                                              = 0x00008B57,
+  GL_BOOL_VEC3                                                  = 0x00008B58,
+  GL_BOOL_VEC3_ARB                                              = 0x00008B58,
+  GL_BOOL_VEC4                                                  = 0x00008B59,
+  GL_BOOL_VEC4_ARB                                              = 0x00008B59,
+  GL_FLOAT_MAT2                                                 = 0x00008B5A,
+  GL_FLOAT_MAT2_ARB                                             = 0x00008B5A,
+  GL_FLOAT_MAT3                                                 = 0x00008B5B,
+  GL_FLOAT_MAT3_ARB                                             = 0x00008B5B,
+  GL_FLOAT_MAT4                                                 = 0x00008B5C,
+  GL_FLOAT_MAT4_ARB                                             = 0x00008B5C,
+  GL_SAMPLER_1D                                                 = 0x00008B5D,
+  GL_SAMPLER_1D_ARB                                             = 0x00008B5D,
+  GL_SAMPLER_2D                                                 = 0x00008B5E,
+  GL_SAMPLER_2D_ARB                                             = 0x00008B5E,
+  GL_SAMPLER_3D                                                 = 0x00008B5F,
+  GL_SAMPLER_3D_ARB                                             = 0x00008B5F,
+  GL_SAMPLER_3D_OES                                             = 0x00008B5F,
+  GL_SAMPLER_CUBE                                               = 0x00008B60,
+  GL_SAMPLER_CUBE_ARB                                           = 0x00008B60,
+  GL_SAMPLER_1D_SHADOW                                          = 0x00008B61,
+  GL_SAMPLER_1D_SHADOW_ARB                                      = 0x00008B61,
+  GL_SAMPLER_2D_SHADOW                                          = 0x00008B62,
+  GL_SAMPLER_2D_SHADOW_ARB                                      = 0x00008B62,
+  GL_SAMPLER_2D_SHADOW_EXT                                      = 0x00008B62,
+  GL_SAMPLER_2D_RECT                                            = 0x00008B63,
+  GL_SAMPLER_2D_RECT_ARB                                        = 0x00008B63,
+  GL_SAMPLER_2D_RECT_SHADOW                                     = 0x00008B64,
+  GL_SAMPLER_2D_RECT_SHADOW_ARB                                 = 0x00008B64,
+  GL_FLOAT_MAT2x3                                               = 0x00008B65,
+  GL_FLOAT_MAT2x3_NV                                            = 0x00008B65,
+  GL_FLOAT_MAT2x4                                               = 0x00008B66,
+  GL_FLOAT_MAT2x4_NV                                            = 0x00008B66,
+  GL_FLOAT_MAT3x2                                               = 0x00008B67,
+  GL_FLOAT_MAT3x2_NV                                            = 0x00008B67,
+  GL_FLOAT_MAT3x4                                               = 0x00008B68,
+  GL_FLOAT_MAT3x4_NV                                            = 0x00008B68,
+  GL_FLOAT_MAT4x2                                               = 0x00008B69,
+  GL_FLOAT_MAT4x2_NV                                            = 0x00008B69,
+  GL_FLOAT_MAT4x3                                               = 0x00008B6A,
+  GL_FLOAT_MAT4x3_NV                                            = 0x00008B6A,
+  GL_DELETE_STATUS                                              = 0x00008B80,
+  GL_OBJECT_DELETE_STATUS_ARB                                   = 0x00008B80,
+  GL_COMPILE_STATUS                                             = 0x00008B81,
+  GL_OBJECT_COMPILE_STATUS_ARB                                  = 0x00008B81,
+  GL_LINK_STATUS                                                = 0x00008B82,
+  GL_OBJECT_LINK_STATUS_ARB                                     = 0x00008B82,
+  GL_VALIDATE_STATUS                                            = 0x00008B83,
+  GL_OBJECT_VALIDATE_STATUS_ARB                                 = 0x00008B83,
+  GL_INFO_LOG_LENGTH                                            = 0x00008B84,
+  GL_OBJECT_INFO_LOG_LENGTH_ARB                                 = 0x00008B84,
+  GL_ATTACHED_SHADERS                                           = 0x00008B85,
+  GL_OBJECT_ATTACHED_OBJECTS_ARB                                = 0x00008B85,
+  GL_ACTIVE_UNIFORMS                                            = 0x00008B86,
+  GL_OBJECT_ACTIVE_UNIFORMS_ARB                                 = 0x00008B86,
+  GL_ACTIVE_UNIFORM_MAX_LENGTH                                  = 0x00008B87,
+  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB                       = 0x00008B87,
+  GL_SHADER_SOURCE_LENGTH                                       = 0x00008B88,
+  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB                            = 0x00008B88,
+  GL_ACTIVE_ATTRIBUTES                                          = 0x00008B89,
+  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB                               = 0x00008B89,
+  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH                                = 0x00008B8A,
+  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB                     = 0x00008B8A,
+  GL_FRAGMENT_SHADER_DERIVATIVE_HINT                            = 0x00008B8B,
+  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB                        = 0x00008B8B,
+  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                        = 0x00008B8B,
+  GL_SHADING_LANGUAGE_VERSION                                   = 0x00008B8C,
+  GL_SHADING_LANGUAGE_VERSION_ARB                               = 0x00008B8C,
+  GL_CURRENT_PROGRAM                                            = 0x00008B8D,
+  GL_PALETTE4_RGB8_OES                                          = 0x00008B90,
+  GL_PALETTE4_RGBA8_OES                                         = 0x00008B91,
+  GL_PALETTE4_R5_G6_B5_OES                                      = 0x00008B92,
+  GL_PALETTE4_RGBA4_OES                                         = 0x00008B93,
+  GL_PALETTE4_RGB5_A1_OES                                       = 0x00008B94,
+  GL_PALETTE8_RGB8_OES                                          = 0x00008B95,
+  GL_PALETTE8_RGBA8_OES                                         = 0x00008B96,
+  GL_PALETTE8_R5_G6_B5_OES                                      = 0x00008B97,
+  GL_PALETTE8_RGBA4_OES                                         = 0x00008B98,
+  GL_PALETTE8_RGB5_A1_OES                                       = 0x00008B99,
+  GL_IMPLEMENTATION_COLOR_READ_TYPE                             = 0x00008B9A,
+  GL_IMPLEMENTATION_COLOR_READ_TYPE_OES                         = 0x00008B9A,
+  GL_IMPLEMENTATION_COLOR_READ_FORMAT                           = 0x00008B9B,
+  GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES                       = 0x00008B9B,
+  GL_POINT_SIZE_ARRAY_OES                                       = 0x00008B9C,
+  GL_TEXTURE_CROP_RECT_OES                                      = 0x00008B9D,
+  GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES                      = 0x00008B9E,
+  GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                        = 0x00008B9F,
+  GL_FRAGMENT_PROGRAM_POSITION_MESA                             = 0x00008BB0,
+  GL_FRAGMENT_PROGRAM_CALLBACK_MESA                             = 0x00008BB1,
+  GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA                        = 0x00008BB2,
+  GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA                        = 0x00008BB3,
+  GL_VERTEX_PROGRAM_POSITION_MESA                               = 0x00008BB4,
+  GL_VERTEX_PROGRAM_CALLBACK_MESA                               = 0x00008BB5,
+  GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA                          = 0x00008BB6,
+  GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA                          = 0x00008BB7,
+  GL_COUNTER_TYPE_AMD                                           = 0x00008BC0,
+  GL_COUNTER_RANGE_AMD                                          = 0x00008BC1,
+  GL_UNSIGNED_INT64_AMD                                         = 0x00008BC2,
+  GL_PERCENTAGE_AMD                                             = 0x00008BC3,
+  GL_PERFMON_RESULT_AVAILABLE_AMD                               = 0x00008BC4,
+  GL_PERFMON_RESULT_SIZE_AMD                                    = 0x00008BC5,
+  GL_PERFMON_RESULT_AMD                                         = 0x00008BC6,
+  GL_TEXTURE_WIDTH_QCOM                                         = 0x00008BD2,
+  GL_TEXTURE_HEIGHT_QCOM                                        = 0x00008BD3,
+  GL_TEXTURE_DEPTH_QCOM                                         = 0x00008BD4,
+  GL_TEXTURE_INTERNAL_FORMAT_QCOM                               = 0x00008BD5,
+  GL_TEXTURE_FORMAT_QCOM                                        = 0x00008BD6,
+  GL_TEXTURE_TYPE_QCOM                                          = 0x00008BD7,
+  GL_TEXTURE_IMAGE_VALID_QCOM                                   = 0x00008BD8,
+  GL_TEXTURE_NUM_LEVELS_QCOM                                    = 0x00008BD9,
+  GL_TEXTURE_TARGET_QCOM                                        = 0x00008BDA,
+  GL_TEXTURE_OBJECT_VALID_QCOM                                  = 0x00008BDB,
+  GL_STATE_RESTORE                                              = 0x00008BDC,
+  GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT                                = 0x00008BE7,
+  GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                            = 0x00008C00,
+  GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                            = 0x00008C01,
+  GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                           = 0x00008C02,
+  GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                           = 0x00008C03,
+  GL_MODULATE_COLOR_IMG                                         = 0x00008C04,
+  GL_RECIP_ADD_SIGNED_ALPHA_IMG                                 = 0x00008C05,
+  GL_TEXTURE_ALPHA_MODULATE_IMG                                 = 0x00008C06,
+  GL_FACTOR_ALPHA_MODULATE_IMG                                  = 0x00008C07,
+  GL_FRAGMENT_ALPHA_MODULATE_IMG                                = 0x00008C08,
+  GL_ADD_BLEND_IMG                                              = 0x00008C09,
+  GL_SGX_BINARY_IMG                                             = 0x00008C0A,
+  GL_TEXTURE_RED_TYPE                                           = 0x00008C10,
+  GL_TEXTURE_RED_TYPE_ARB                                       = 0x00008C10,
+  GL_TEXTURE_GREEN_TYPE                                         = 0x00008C11,
+  GL_TEXTURE_GREEN_TYPE_ARB                                     = 0x00008C11,
+  GL_TEXTURE_BLUE_TYPE                                          = 0x00008C12,
+  GL_TEXTURE_BLUE_TYPE_ARB                                      = 0x00008C12,
+  GL_TEXTURE_ALPHA_TYPE                                         = 0x00008C13,
+  GL_TEXTURE_ALPHA_TYPE_ARB                                     = 0x00008C13,
+  GL_TEXTURE_LUMINANCE_TYPE                                     = 0x00008C14,
+  GL_TEXTURE_LUMINANCE_TYPE_ARB                                 = 0x00008C14,
+  GL_TEXTURE_INTENSITY_TYPE                                     = 0x00008C15,
+  GL_TEXTURE_INTENSITY_TYPE_ARB                                 = 0x00008C15,
+  GL_TEXTURE_DEPTH_TYPE                                         = 0x00008C16,
+  GL_TEXTURE_DEPTH_TYPE_ARB                                     = 0x00008C16,
+  GL_UNSIGNED_NORMALIZED                                        = 0x00008C17,
+  GL_UNSIGNED_NORMALIZED_ARB                                    = 0x00008C17,
+  GL_UNSIGNED_NORMALIZED_EXT                                    = 0x00008C17,
+  GL_TEXTURE_1D_ARRAY                                           = 0x00008C18,
+  GL_TEXTURE_1D_ARRAY_EXT                                       = 0x00008C18,
+  GL_PROXY_TEXTURE_1D_ARRAY                                     = 0x00008C19,
+  GL_PROXY_TEXTURE_1D_ARRAY_EXT                                 = 0x00008C19,
+  GL_TEXTURE_2D_ARRAY                                           = 0x00008C1A,
+  GL_TEXTURE_2D_ARRAY_EXT                                       = 0x00008C1A,
+  GL_PROXY_TEXTURE_2D_ARRAY                                     = 0x00008C1B,
+  GL_PROXY_TEXTURE_2D_ARRAY_EXT                                 = 0x00008C1B,
+  GL_TEXTURE_BINDING_1D_ARRAY                                   = 0x00008C1C,
+  GL_TEXTURE_BINDING_1D_ARRAY_EXT                               = 0x00008C1C,
+  GL_TEXTURE_BINDING_2D_ARRAY                                   = 0x00008C1D,
+  GL_TEXTURE_BINDING_2D_ARRAY_EXT                               = 0x00008C1D,
+  GL_GEOMETRY_PROGRAM_NV                                        = 0x00008C26,
+  GL_MAX_PROGRAM_OUTPUT_VERTICES_NV                             = 0x00008C27,
+  GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV                     = 0x00008C28,
+  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS                           = 0x00008C29,
+  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB                       = 0x00008C29,
+  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT                       = 0x00008C29,
+  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES                       = 0x00008C29,
+  GL_TEXTURE_BUFFER                                             = 0x00008C2A,
+  GL_TEXTURE_BUFFER_ARB                                         = 0x00008C2A,
+  GL_TEXTURE_BUFFER_EXT                                         = 0x00008C2A,
+  GL_TEXTURE_BUFFER_OES                                         = 0x00008C2A,
+  GL_TEXTURE_BUFFER_BINDING                                     = 0x00008C2A,
+  GL_TEXTURE_BUFFER_BINDING_EXT                                 = 0x00008C2A,
+  GL_TEXTURE_BUFFER_BINDING_OES                                 = 0x00008C2A,
+  GL_MAX_TEXTURE_BUFFER_SIZE                                    = 0x00008C2B,
+  GL_MAX_TEXTURE_BUFFER_SIZE_ARB                                = 0x00008C2B,
+  GL_MAX_TEXTURE_BUFFER_SIZE_EXT                                = 0x00008C2B,
+  GL_MAX_TEXTURE_BUFFER_SIZE_OES                                = 0x00008C2B,
+  GL_TEXTURE_BINDING_BUFFER                                     = 0x00008C2C,
+  GL_TEXTURE_BINDING_BUFFER_ARB                                 = 0x00008C2C,
+  GL_TEXTURE_BINDING_BUFFER_EXT                                 = 0x00008C2C,
+  GL_TEXTURE_BINDING_BUFFER_OES                                 = 0x00008C2C,
+  GL_TEXTURE_BUFFER_DATA_STORE_BINDING                          = 0x00008C2D,
+  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB                      = 0x00008C2D,
+  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT                      = 0x00008C2D,
+  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES                      = 0x00008C2D,
+  GL_TEXTURE_BUFFER_FORMAT_ARB                                  = 0x00008C2E,
+  GL_TEXTURE_BUFFER_FORMAT_EXT                                  = 0x00008C2E,
+  GL_ANY_SAMPLES_PASSED                                         = 0x00008C2F,
+  GL_ANY_SAMPLES_PASSED_EXT                                     = 0x00008C2F,
+  GL_SAMPLE_SHADING                                             = 0x00008C36,
+  GL_SAMPLE_SHADING_ARB                                         = 0x00008C36,
+  GL_SAMPLE_SHADING_OES                                         = 0x00008C36,
+  GL_MIN_SAMPLE_SHADING_VALUE                                   = 0x00008C37,
+  GL_MIN_SAMPLE_SHADING_VALUE_ARB                               = 0x00008C37,
+  GL_MIN_SAMPLE_SHADING_VALUE_OES                               = 0x00008C37,
+  GL_R11F_G11F_B10F                                             = 0x00008C3A,
+  GL_R11F_G11F_B10F_APPLE                                       = 0x00008C3A,
+  GL_R11F_G11F_B10F_EXT                                         = 0x00008C3A,
+  GL_UNSIGNED_INT_10F_11F_11F_REV                               = 0x00008C3B,
+  GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE                         = 0x00008C3B,
+  GL_UNSIGNED_INT_10F_11F_11F_REV_EXT                           = 0x00008C3B,
+  GL_RGBA_SIGNED_COMPONENTS_EXT                                 = 0x00008C3C,
+  GL_RGB9_E5                                                    = 0x00008C3D,
+  GL_RGB9_E5_APPLE                                              = 0x00008C3D,
+  GL_RGB9_E5_EXT                                                = 0x00008C3D,
+  GL_UNSIGNED_INT_5_9_9_9_REV                                   = 0x00008C3E,
+  GL_UNSIGNED_INT_5_9_9_9_REV_APPLE                             = 0x00008C3E,
+  GL_UNSIGNED_INT_5_9_9_9_REV_EXT                               = 0x00008C3E,
+  GL_TEXTURE_SHARED_SIZE                                        = 0x00008C3F,
+  GL_TEXTURE_SHARED_SIZE_EXT                                    = 0x00008C3F,
+  GL_SRGB                                                       = 0x00008C40,
+  GL_SRGB_EXT                                                   = 0x00008C40,
+  GL_SRGB8                                                      = 0x00008C41,
+  GL_SRGB8_EXT                                                  = 0x00008C41,
+  GL_SRGB8_NV                                                   = 0x00008C41,
+  GL_SRGB_ALPHA                                                 = 0x00008C42,
+  GL_SRGB_ALPHA_EXT                                             = 0x00008C42,
+  GL_SRGB8_ALPHA8                                               = 0x00008C43,
+  GL_SRGB8_ALPHA8_EXT                                           = 0x00008C43,
+  GL_SLUMINANCE_ALPHA                                           = 0x00008C44,
+  GL_SLUMINANCE_ALPHA_EXT                                       = 0x00008C44,
+  GL_SLUMINANCE_ALPHA_NV                                        = 0x00008C44,
+  GL_SLUMINANCE8_ALPHA8                                         = 0x00008C45,
+  GL_SLUMINANCE8_ALPHA8_EXT                                     = 0x00008C45,
+  GL_SLUMINANCE8_ALPHA8_NV                                      = 0x00008C45,
+  GL_SLUMINANCE                                                 = 0x00008C46,
+  GL_SLUMINANCE_EXT                                             = 0x00008C46,
+  GL_SLUMINANCE_NV                                              = 0x00008C46,
+  GL_SLUMINANCE8                                                = 0x00008C47,
+  GL_SLUMINANCE8_EXT                                            = 0x00008C47,
+  GL_SLUMINANCE8_NV                                             = 0x00008C47,
+  GL_COMPRESSED_SRGB                                            = 0x00008C48,
+  GL_COMPRESSED_SRGB_EXT                                        = 0x00008C48,
+  GL_COMPRESSED_SRGB_ALPHA                                      = 0x00008C49,
+  GL_COMPRESSED_SRGB_ALPHA_EXT                                  = 0x00008C49,
+  GL_COMPRESSED_SLUMINANCE                                      = 0x00008C4A,
+  GL_COMPRESSED_SLUMINANCE_EXT                                  = 0x00008C4A,
+  GL_COMPRESSED_SLUMINANCE_ALPHA                                = 0x00008C4B,
+  GL_COMPRESSED_SLUMINANCE_ALPHA_EXT                            = 0x00008C4B,
+  GL_COMPRESSED_SRGB_S3TC_DXT1_EXT                              = 0x00008C4C,
+  GL_COMPRESSED_SRGB_S3TC_DXT1_NV                               = 0x00008C4C,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT                        = 0x00008C4D,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV                         = 0x00008C4D,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT                        = 0x00008C4E,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV                         = 0x00008C4E,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT                        = 0x00008C4F,
+  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV                         = 0x00008C4F,
+  GL_COMPRESSED_LUMINANCE_LATC1_EXT                             = 0x00008C70,
+  GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT                      = 0x00008C71,
+  GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT                       = 0x00008C72,
+  GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT                = 0x00008C73,
+  GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV                   = 0x00008C74,
+  GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV                = 0x00008C75,
+  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH                      = 0x00008C76,
+  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT                  = 0x00008C76,
+  GL_BACK_PRIMARY_COLOR_NV                                      = 0x00008C77,
+  GL_BACK_SECONDARY_COLOR_NV                                    = 0x00008C78,
+  GL_TEXTURE_COORD_NV                                           = 0x00008C79,
+  GL_CLIP_DISTANCE_NV                                           = 0x00008C7A,
+  GL_VERTEX_ID_NV                                               = 0x00008C7B,
+  GL_PRIMITIVE_ID_NV                                            = 0x00008C7C,
+  GL_GENERIC_ATTRIB_NV                                          = 0x00008C7D,
+  GL_TRANSFORM_FEEDBACK_ATTRIBS_NV                              = 0x00008C7E,
+  GL_TRANSFORM_FEEDBACK_BUFFER_MODE                             = 0x00008C7F,
+  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT                         = 0x00008C7F,
+  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV                          = 0x00008C7F,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS                 = 0x00008C80,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT             = 0x00008C80,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV              = 0x00008C80,
+  GL_ACTIVE_VARYINGS_NV                                         = 0x00008C81,
+  GL_ACTIVE_VARYING_MAX_LENGTH_NV                               = 0x00008C82,
+  GL_TRANSFORM_FEEDBACK_VARYINGS                                = 0x00008C83,
+  GL_TRANSFORM_FEEDBACK_VARYINGS_EXT                            = 0x00008C83,
+  GL_TRANSFORM_FEEDBACK_VARYINGS_NV                             = 0x00008C83,
+  GL_TRANSFORM_FEEDBACK_BUFFER_START                            = 0x00008C84,
+  GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT                        = 0x00008C84,
+  GL_TRANSFORM_FEEDBACK_BUFFER_START_NV                         = 0x00008C84,
+  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE                             = 0x00008C85,
+  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT                         = 0x00008C85,
+  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV                          = 0x00008C85,
+  GL_TRANSFORM_FEEDBACK_RECORD_NV                               = 0x00008C86,
+  GL_PRIMITIVES_GENERATED                                       = 0x00008C87,
+  GL_PRIMITIVES_GENERATED_EXT                                   = 0x00008C87,
+  GL_PRIMITIVES_GENERATED_NV                                    = 0x00008C87,
+  GL_PRIMITIVES_GENERATED_OES                                   = 0x00008C87,
+  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN                      = 0x00008C88,
+  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT                  = 0x00008C88,
+  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV                   = 0x00008C88,
+  GL_RASTERIZER_DISCARD                                         = 0x00008C89,
+  GL_RASTERIZER_DISCARD_EXT                                     = 0x00008C89,
+  GL_RASTERIZER_DISCARD_NV                                      = 0x00008C89,
+  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS              = 0x00008C8A,
+  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT          = 0x00008C8A,
+  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV           = 0x00008C8A,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS                    = 0x00008C8B,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT                = 0x00008C8B,
+  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV                 = 0x00008C8B,
+  GL_INTERLEAVED_ATTRIBS                                        = 0x00008C8C,
+  GL_INTERLEAVED_ATTRIBS_EXT                                    = 0x00008C8C,
+  GL_INTERLEAVED_ATTRIBS_NV                                     = 0x00008C8C,
+  GL_SEPARATE_ATTRIBS                                           = 0x00008C8D,
+  GL_SEPARATE_ATTRIBS_EXT                                       = 0x00008C8D,
+  GL_SEPARATE_ATTRIBS_NV                                        = 0x00008C8D,
+  GL_TRANSFORM_FEEDBACK_BUFFER                                  = 0x00008C8E,
+  GL_TRANSFORM_FEEDBACK_BUFFER_EXT                              = 0x00008C8E,
+  GL_TRANSFORM_FEEDBACK_BUFFER_NV                               = 0x00008C8E,
+  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING                          = 0x00008C8F,
+  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT                      = 0x00008C8F,
+  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV                       = 0x00008C8F,
+  GL_ATC_RGB_AMD                                                = 0x00008C92,
+  GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                                = 0x00008C93,
+  GL_POINT_SPRITE_COORD_ORIGIN                                  = 0x00008CA0,
+  GL_LOWER_LEFT                                                 = 0x00008CA1,
+  GL_UPPER_LEFT                                                 = 0x00008CA2,
+  GL_STENCIL_BACK_REF                                           = 0x00008CA3,
+  GL_STENCIL_BACK_VALUE_MASK                                    = 0x00008CA4,
+  GL_STENCIL_BACK_WRITEMASK                                     = 0x00008CA5,
+  GL_DRAW_FRAMEBUFFER_BINDING                                   = 0x00008CA6,
+  GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                             = 0x00008CA6,
+  GL_DRAW_FRAMEBUFFER_BINDING_APPLE                             = 0x00008CA6,
+  GL_DRAW_FRAMEBUFFER_BINDING_EXT                               = 0x00008CA6,
+  GL_DRAW_FRAMEBUFFER_BINDING_NV                                = 0x00008CA6,
+  GL_FRAMEBUFFER_BINDING                                        = 0x00008CA6,
+  GL_FRAMEBUFFER_BINDING_ANGLE                                  = 0x00008CA6,
+  GL_FRAMEBUFFER_BINDING_EXT                                    = 0x00008CA6,
+  GL_FRAMEBUFFER_BINDING_OES                                    = 0x00008CA6,
+  GL_RENDERBUFFER_BINDING                                       = 0x00008CA7,
+  GL_RENDERBUFFER_BINDING_ANGLE                                 = 0x00008CA7,
+  GL_RENDERBUFFER_BINDING_EXT                                   = 0x00008CA7,
+  GL_RENDERBUFFER_BINDING_OES                                   = 0x00008CA7,
+  GL_READ_FRAMEBUFFER                                           = 0x00008CA8,
+  GL_READ_FRAMEBUFFER_ANGLE                                     = 0x00008CA8,
+  GL_READ_FRAMEBUFFER_APPLE                                     = 0x00008CA8,
+  GL_READ_FRAMEBUFFER_EXT                                       = 0x00008CA8,
+  GL_READ_FRAMEBUFFER_NV                                        = 0x00008CA8,
+  GL_DRAW_FRAMEBUFFER                                           = 0x00008CA9,
+  GL_DRAW_FRAMEBUFFER_ANGLE                                     = 0x00008CA9,
+  GL_DRAW_FRAMEBUFFER_APPLE                                     = 0x00008CA9,
+  GL_DRAW_FRAMEBUFFER_EXT                                       = 0x00008CA9,
+  GL_DRAW_FRAMEBUFFER_NV                                        = 0x00008CA9,
+  GL_READ_FRAMEBUFFER_BINDING                                   = 0x00008CAA,
+  GL_READ_FRAMEBUFFER_BINDING_ANGLE                             = 0x00008CAA,
+  GL_READ_FRAMEBUFFER_BINDING_APPLE                             = 0x00008CAA,
+  GL_READ_FRAMEBUFFER_BINDING_EXT                               = 0x00008CAA,
+  GL_READ_FRAMEBUFFER_BINDING_NV                                = 0x00008CAA,
+  GL_RENDERBUFFER_COVERAGE_SAMPLES_NV                           = 0x00008CAB,
+  GL_RENDERBUFFER_SAMPLES                                       = 0x00008CAB,
+  GL_RENDERBUFFER_SAMPLES_ANGLE                                 = 0x00008CAB,
+  GL_RENDERBUFFER_SAMPLES_APPLE                                 = 0x00008CAB,
+  GL_RENDERBUFFER_SAMPLES_EXT                                   = 0x00008CAB,
+  GL_RENDERBUFFER_SAMPLES_NV                                    = 0x00008CAB,
+  GL_DEPTH_COMPONENT32F                                         = 0x00008CAC,
+  GL_DEPTH32F_STENCIL8                                          = 0x00008CAD,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE                         = 0x00008CD0,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT                     = 0x00008CD0,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES                     = 0x00008CD0,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME                         = 0x00008CD1,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT                     = 0x00008CD1,
+  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES                     = 0x00008CD1,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL                       = 0x00008CD2,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT                   = 0x00008CD2,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES                   = 0x00008CD2,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE               = 0x00008CD3,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT           = 0x00008CD3,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES           = 0x00008CD3,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT              = 0x00008CD4,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES              = 0x00008CD4,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER                       = 0x00008CD4,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT                   = 0x00008CD4,
+  GL_FRAMEBUFFER_COMPLETE                                       = 0x00008CD5,
+  GL_FRAMEBUFFER_COMPLETE_EXT                                   = 0x00008CD5,
+  GL_FRAMEBUFFER_COMPLETE_OES                                   = 0x00008CD5,
+  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT                          = 0x00008CD6,
+  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT                      = 0x00008CD6,
+  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES                      = 0x00008CD6,
+  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT                  = 0x00008CD7,
+  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT              = 0x00008CD7,
+  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES              = 0x00008CD7,
+  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS                          = 0x00008CD9,
+  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT                      = 0x00008CD9,
+  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES                      = 0x00008CD9,
+  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT                         = 0x00008CDA,
+  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES                         = 0x00008CDA,
+  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER                         = 0x00008CDB,
+  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT                     = 0x00008CDB,
+  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES                     = 0x00008CDB,
+  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER                         = 0x00008CDC,
+  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT                     = 0x00008CDC,
+  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES                     = 0x00008CDC,
+  GL_FRAMEBUFFER_UNSUPPORTED                                    = 0x00008CDD,
+  GL_FRAMEBUFFER_UNSUPPORTED_EXT                                = 0x00008CDD,
+  GL_FRAMEBUFFER_UNSUPPORTED_OES                                = 0x00008CDD,
+  GL_MAX_COLOR_ATTACHMENTS                                      = 0x00008CDF,
+  GL_MAX_COLOR_ATTACHMENTS_EXT                                  = 0x00008CDF,
+  GL_MAX_COLOR_ATTACHMENTS_NV                                   = 0x00008CDF,
+  GL_COLOR_ATTACHMENT0                                          = 0x00008CE0,
+  GL_COLOR_ATTACHMENT0_EXT                                      = 0x00008CE0,
+  GL_COLOR_ATTACHMENT0_NV                                       = 0x00008CE0,
+  GL_COLOR_ATTACHMENT0_OES                                      = 0x00008CE0,
+  GL_COLOR_ATTACHMENT1                                          = 0x00008CE1,
+  GL_COLOR_ATTACHMENT1_EXT                                      = 0x00008CE1,
+  GL_COLOR_ATTACHMENT1_NV                                       = 0x00008CE1,
+  GL_COLOR_ATTACHMENT2                                          = 0x00008CE2,
+  GL_COLOR_ATTACHMENT2_EXT                                      = 0x00008CE2,
+  GL_COLOR_ATTACHMENT2_NV                                       = 0x00008CE2,
+  GL_COLOR_ATTACHMENT3                                          = 0x00008CE3,
+  GL_COLOR_ATTACHMENT3_EXT                                      = 0x00008CE3,
+  GL_COLOR_ATTACHMENT3_NV                                       = 0x00008CE3,
+  GL_COLOR_ATTACHMENT4                                          = 0x00008CE4,
+  GL_COLOR_ATTACHMENT4_EXT                                      = 0x00008CE4,
+  GL_COLOR_ATTACHMENT4_NV                                       = 0x00008CE4,
+  GL_COLOR_ATTACHMENT5                                          = 0x00008CE5,
+  GL_COLOR_ATTACHMENT5_EXT                                      = 0x00008CE5,
+  GL_COLOR_ATTACHMENT5_NV                                       = 0x00008CE5,
+  GL_COLOR_ATTACHMENT6                                          = 0x00008CE6,
+  GL_COLOR_ATTACHMENT6_EXT                                      = 0x00008CE6,
+  GL_COLOR_ATTACHMENT6_NV                                       = 0x00008CE6,
+  GL_COLOR_ATTACHMENT7                                          = 0x00008CE7,
+  GL_COLOR_ATTACHMENT7_EXT                                      = 0x00008CE7,
+  GL_COLOR_ATTACHMENT7_NV                                       = 0x00008CE7,
+  GL_COLOR_ATTACHMENT8                                          = 0x00008CE8,
+  GL_COLOR_ATTACHMENT8_EXT                                      = 0x00008CE8,
+  GL_COLOR_ATTACHMENT8_NV                                       = 0x00008CE8,
+  GL_COLOR_ATTACHMENT9                                          = 0x00008CE9,
+  GL_COLOR_ATTACHMENT9_EXT                                      = 0x00008CE9,
+  GL_COLOR_ATTACHMENT9_NV                                       = 0x00008CE9,
+  GL_COLOR_ATTACHMENT10                                         = 0x00008CEA,
+  GL_COLOR_ATTACHMENT10_EXT                                     = 0x00008CEA,
+  GL_COLOR_ATTACHMENT10_NV                                      = 0x00008CEA,
+  GL_COLOR_ATTACHMENT11                                         = 0x00008CEB,
+  GL_COLOR_ATTACHMENT11_EXT                                     = 0x00008CEB,
+  GL_COLOR_ATTACHMENT11_NV                                      = 0x00008CEB,
+  GL_COLOR_ATTACHMENT12                                         = 0x00008CEC,
+  GL_COLOR_ATTACHMENT12_EXT                                     = 0x00008CEC,
+  GL_COLOR_ATTACHMENT12_NV                                      = 0x00008CEC,
+  GL_COLOR_ATTACHMENT13                                         = 0x00008CED,
+  GL_COLOR_ATTACHMENT13_EXT                                     = 0x00008CED,
+  GL_COLOR_ATTACHMENT13_NV                                      = 0x00008CED,
+  GL_COLOR_ATTACHMENT14                                         = 0x00008CEE,
+  GL_COLOR_ATTACHMENT14_EXT                                     = 0x00008CEE,
+  GL_COLOR_ATTACHMENT14_NV                                      = 0x00008CEE,
+  GL_COLOR_ATTACHMENT15                                         = 0x00008CEF,
+  GL_COLOR_ATTACHMENT15_EXT                                     = 0x00008CEF,
+  GL_COLOR_ATTACHMENT15_NV                                      = 0x00008CEF,
+  GL_COLOR_ATTACHMENT16                                         = 0x00008CF0,
+  GL_COLOR_ATTACHMENT17                                         = 0x00008CF1,
+  GL_COLOR_ATTACHMENT18                                         = 0x00008CF2,
+  GL_COLOR_ATTACHMENT19                                         = 0x00008CF3,
+  GL_COLOR_ATTACHMENT20                                         = 0x00008CF4,
+  GL_COLOR_ATTACHMENT21                                         = 0x00008CF5,
+  GL_COLOR_ATTACHMENT22                                         = 0x00008CF6,
+  GL_COLOR_ATTACHMENT23                                         = 0x00008CF7,
+  GL_COLOR_ATTACHMENT24                                         = 0x00008CF8,
+  GL_COLOR_ATTACHMENT25                                         = 0x00008CF9,
+  GL_COLOR_ATTACHMENT26                                         = 0x00008CFA,
+  GL_COLOR_ATTACHMENT27                                         = 0x00008CFB,
+  GL_COLOR_ATTACHMENT28                                         = 0x00008CFC,
+  GL_COLOR_ATTACHMENT29                                         = 0x00008CFD,
+  GL_COLOR_ATTACHMENT30                                         = 0x00008CFE,
+  GL_COLOR_ATTACHMENT31                                         = 0x00008CFF,
+  GL_DEPTH_ATTACHMENT                                           = 0x00008D00,
+  GL_DEPTH_ATTACHMENT_EXT                                       = 0x00008D00,
+  GL_DEPTH_ATTACHMENT_OES                                       = 0x00008D00,
+  GL_STENCIL_ATTACHMENT                                         = 0x00008D20,
+  GL_STENCIL_ATTACHMENT_EXT                                     = 0x00008D20,
+  GL_STENCIL_ATTACHMENT_OES                                     = 0x00008D20,
+  GL_FRAMEBUFFER                                                = 0x00008D40,
+  GL_FRAMEBUFFER_EXT                                            = 0x00008D40,
+  GL_FRAMEBUFFER_OES                                            = 0x00008D40,
+  GL_RENDERBUFFER                                               = 0x00008D41,
+  GL_RENDERBUFFER_EXT                                           = 0x00008D41,
+  GL_RENDERBUFFER_OES                                           = 0x00008D41,
+  GL_RENDERBUFFER_WIDTH                                         = 0x00008D42,
+  GL_RENDERBUFFER_WIDTH_EXT                                     = 0x00008D42,
+  GL_RENDERBUFFER_WIDTH_OES                                     = 0x00008D42,
+  GL_RENDERBUFFER_HEIGHT                                        = 0x00008D43,
+  GL_RENDERBUFFER_HEIGHT_EXT                                    = 0x00008D43,
+  GL_RENDERBUFFER_HEIGHT_OES                                    = 0x00008D43,
+  GL_RENDERBUFFER_INTERNAL_FORMAT                               = 0x00008D44,
+  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT                           = 0x00008D44,
+  GL_RENDERBUFFER_INTERNAL_FORMAT_OES                           = 0x00008D44,
+  GL_STENCIL_INDEX1                                             = 0x00008D46,
+  GL_STENCIL_INDEX1_EXT                                         = 0x00008D46,
+  GL_STENCIL_INDEX1_OES                                         = 0x00008D46,
+  GL_STENCIL_INDEX4                                             = 0x00008D47,
+  GL_STENCIL_INDEX4_EXT                                         = 0x00008D47,
+  GL_STENCIL_INDEX4_OES                                         = 0x00008D47,
+  GL_STENCIL_INDEX8                                             = 0x00008D48,
+  GL_STENCIL_INDEX8_EXT                                         = 0x00008D48,
+  GL_STENCIL_INDEX8_OES                                         = 0x00008D48,
+  GL_STENCIL_INDEX16                                            = 0x00008D49,
+  GL_STENCIL_INDEX16_EXT                                        = 0x00008D49,
+  GL_RENDERBUFFER_RED_SIZE                                      = 0x00008D50,
+  GL_RENDERBUFFER_RED_SIZE_EXT                                  = 0x00008D50,
+  GL_RENDERBUFFER_RED_SIZE_OES                                  = 0x00008D50,
+  GL_RENDERBUFFER_GREEN_SIZE                                    = 0x00008D51,
+  GL_RENDERBUFFER_GREEN_SIZE_EXT                                = 0x00008D51,
+  GL_RENDERBUFFER_GREEN_SIZE_OES                                = 0x00008D51,
+  GL_RENDERBUFFER_BLUE_SIZE                                     = 0x00008D52,
+  GL_RENDERBUFFER_BLUE_SIZE_EXT                                 = 0x00008D52,
+  GL_RENDERBUFFER_BLUE_SIZE_OES                                 = 0x00008D52,
+  GL_RENDERBUFFER_ALPHA_SIZE                                    = 0x00008D53,
+  GL_RENDERBUFFER_ALPHA_SIZE_EXT                                = 0x00008D53,
+  GL_RENDERBUFFER_ALPHA_SIZE_OES                                = 0x00008D53,
+  GL_RENDERBUFFER_DEPTH_SIZE                                    = 0x00008D54,
+  GL_RENDERBUFFER_DEPTH_SIZE_EXT                                = 0x00008D54,
+  GL_RENDERBUFFER_DEPTH_SIZE_OES                                = 0x00008D54,
+  GL_RENDERBUFFER_STENCIL_SIZE                                  = 0x00008D55,
+  GL_RENDERBUFFER_STENCIL_SIZE_EXT                              = 0x00008D55,
+  GL_RENDERBUFFER_STENCIL_SIZE_OES                              = 0x00008D55,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE                         = 0x00008D56,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE                   = 0x00008D56,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE                   = 0x00008D56,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT                     = 0x00008D56,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV                      = 0x00008D56,
+  GL_MAX_SAMPLES                                                = 0x00008D57,
+  GL_MAX_SAMPLES_ANGLE                                          = 0x00008D57,
+  GL_MAX_SAMPLES_APPLE                                          = 0x00008D57,
+  GL_MAX_SAMPLES_EXT                                            = 0x00008D57,
+  GL_MAX_SAMPLES_NV                                             = 0x00008D57,
+  GL_TEXTURE_GEN_STR_OES                                        = 0x00008D60,
+  GL_HALF_FLOAT_OES                                             = 0x00008D61,
+  GL_RGB565_OES                                                 = 0x00008D62,
+  GL_RGB565                                                     = 0x00008D62,
+  GL_ETC1_RGB8_OES                                              = 0x00008D64,
+  GL_TEXTURE_EXTERNAL_OES                                       = 0x00008D65,
+  GL_SAMPLER_EXTERNAL_OES                                       = 0x00008D66,
+  GL_TEXTURE_BINDING_EXTERNAL_OES                               = 0x00008D67,
+  GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                           = 0x00008D68,
+  GL_PRIMITIVE_RESTART_FIXED_INDEX                              = 0x00008D69,
+  GL_ANY_SAMPLES_PASSED_CONSERVATIVE                            = 0x00008D6A,
+  GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                        = 0x00008D6A,
+  GL_MAX_ELEMENT_INDEX                                          = 0x00008D6B,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT                 = 0x00008D6C,
+  GL_RGBA32UI                                                   = 0x00008D70,
+  GL_RGBA32UI_EXT                                               = 0x00008D70,
+  GL_RGB32UI                                                    = 0x00008D71,
+  GL_RGB32UI_EXT                                                = 0x00008D71,
+  GL_ALPHA32UI_EXT                                              = 0x00008D72,
+  GL_INTENSITY32UI_EXT                                          = 0x00008D73,
+  GL_LUMINANCE32UI_EXT                                          = 0x00008D74,
+  GL_LUMINANCE_ALPHA32UI_EXT                                    = 0x00008D75,
+  GL_RGBA16UI                                                   = 0x00008D76,
+  GL_RGBA16UI_EXT                                               = 0x00008D76,
+  GL_RGB16UI                                                    = 0x00008D77,
+  GL_RGB16UI_EXT                                                = 0x00008D77,
+  GL_ALPHA16UI_EXT                                              = 0x00008D78,
+  GL_INTENSITY16UI_EXT                                          = 0x00008D79,
+  GL_LUMINANCE16UI_EXT                                          = 0x00008D7A,
+  GL_LUMINANCE_ALPHA16UI_EXT                                    = 0x00008D7B,
+  GL_RGBA8UI                                                    = 0x00008D7C,
+  GL_RGBA8UI_EXT                                                = 0x00008D7C,
+  GL_RGB8UI                                                     = 0x00008D7D,
+  GL_RGB8UI_EXT                                                 = 0x00008D7D,
+  GL_ALPHA8UI_EXT                                               = 0x00008D7E,
+  GL_INTENSITY8UI_EXT                                           = 0x00008D7F,
+  GL_LUMINANCE8UI_EXT                                           = 0x00008D80,
+  GL_LUMINANCE_ALPHA8UI_EXT                                     = 0x00008D81,
+  GL_RGBA32I                                                    = 0x00008D82,
+  GL_RGBA32I_EXT                                                = 0x00008D82,
+  GL_RGB32I                                                     = 0x00008D83,
+  GL_RGB32I_EXT                                                 = 0x00008D83,
+  GL_ALPHA32I_EXT                                               = 0x00008D84,
+  GL_INTENSITY32I_EXT                                           = 0x00008D85,
+  GL_LUMINANCE32I_EXT                                           = 0x00008D86,
+  GL_LUMINANCE_ALPHA32I_EXT                                     = 0x00008D87,
+  GL_RGBA16I                                                    = 0x00008D88,
+  GL_RGBA16I_EXT                                                = 0x00008D88,
+  GL_RGB16I                                                     = 0x00008D89,
+  GL_RGB16I_EXT                                                 = 0x00008D89,
+  GL_ALPHA16I_EXT                                               = 0x00008D8A,
+  GL_INTENSITY16I_EXT                                           = 0x00008D8B,
+  GL_LUMINANCE16I_EXT                                           = 0x00008D8C,
+  GL_LUMINANCE_ALPHA16I_EXT                                     = 0x00008D8D,
+  GL_RGBA8I                                                     = 0x00008D8E,
+  GL_RGBA8I_EXT                                                 = 0x00008D8E,
+  GL_RGB8I                                                      = 0x00008D8F,
+  GL_RGB8I_EXT                                                  = 0x00008D8F,
+  GL_ALPHA8I_EXT                                                = 0x00008D90,
+  GL_INTENSITY8I_EXT                                            = 0x00008D91,
+  GL_LUMINANCE8I_EXT                                            = 0x00008D92,
+  GL_LUMINANCE_ALPHA8I_EXT                                      = 0x00008D93,
+  GL_RED_INTEGER                                                = 0x00008D94,
+  GL_RED_INTEGER_EXT                                            = 0x00008D94,
+  GL_GREEN_INTEGER                                              = 0x00008D95,
+  GL_GREEN_INTEGER_EXT                                          = 0x00008D95,
+  GL_BLUE_INTEGER                                               = 0x00008D96,
+  GL_BLUE_INTEGER_EXT                                           = 0x00008D96,
+  GL_ALPHA_INTEGER                                              = 0x00008D97,
+  GL_ALPHA_INTEGER_EXT                                          = 0x00008D97,
+  GL_RGB_INTEGER                                                = 0x00008D98,
+  GL_RGB_INTEGER_EXT                                            = 0x00008D98,
+  GL_RGBA_INTEGER                                               = 0x00008D99,
+  GL_RGBA_INTEGER_EXT                                           = 0x00008D99,
+  GL_BGR_INTEGER                                                = 0x00008D9A,
+  GL_BGR_INTEGER_EXT                                            = 0x00008D9A,
+  GL_BGRA_INTEGER                                               = 0x00008D9B,
+  GL_BGRA_INTEGER_EXT                                           = 0x00008D9B,
+  GL_LUMINANCE_INTEGER_EXT                                      = 0x00008D9C,
+  GL_LUMINANCE_ALPHA_INTEGER_EXT                                = 0x00008D9D,
+  GL_RGBA_INTEGER_MODE_EXT                                      = 0x00008D9E,
+  GL_INT_2_10_10_10_REV                                         = 0x00008D9F,
+  GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV                   = 0x00008DA0,
+  GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV                       = 0x00008DA1,
+  GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV                         = 0x00008DA2,
+  GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV                       = 0x00008DA3,
+  GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV                       = 0x00008DA4,
+  GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV                             = 0x00008DA5,
+  GL_MAX_PROGRAM_GENERIC_RESULTS_NV                             = 0x00008DA6,
+  GL_FRAMEBUFFER_ATTACHMENT_LAYERED                             = 0x00008DA7,
+  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB                         = 0x00008DA7,
+  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT                         = 0x00008DA7,
+  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES                         = 0x00008DA7,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS                       = 0x00008DA8,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB                   = 0x00008DA8,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT                   = 0x00008DA8,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES                   = 0x00008DA8,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB                     = 0x00008DA9,
+  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT                     = 0x00008DA9,
+  GL_LAYER_NV                                                   = 0x00008DAA,
+  GL_DEPTH_COMPONENT32F_NV                                      = 0x00008DAB,
+  GL_DEPTH32F_STENCIL8_NV                                       = 0x00008DAC,
+  GL_FLOAT_32_UNSIGNED_INT_24_8_REV                             = 0x00008DAD,
+  GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV                          = 0x00008DAD,
+  GL_SHADER_INCLUDE_ARB                                         = 0x00008DAE,
+  GL_DEPTH_BUFFER_FLOAT_MODE_NV                                 = 0x00008DAF,
+  GL_FRAMEBUFFER_SRGB                                           = 0x00008DB9,
+  GL_FRAMEBUFFER_SRGB_EXT                                       = 0x00008DB9,
+  GL_FRAMEBUFFER_SRGB_CAPABLE_EXT                               = 0x00008DBA,
+  GL_COMPRESSED_RED_RGTC1                                       = 0x00008DBB,
+  GL_COMPRESSED_RED_RGTC1_EXT                                   = 0x00008DBB,
+  GL_COMPRESSED_SIGNED_RED_RGTC1                                = 0x00008DBC,
+  GL_COMPRESSED_SIGNED_RED_RGTC1_EXT                            = 0x00008DBC,
+  GL_COMPRESSED_RED_GREEN_RGTC2_EXT                             = 0x00008DBD,
+  GL_COMPRESSED_RG_RGTC2                                        = 0x00008DBD,
+  GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT                      = 0x00008DBE,
+  GL_COMPRESSED_SIGNED_RG_RGTC2                                 = 0x00008DBE,
+  GL_SAMPLER_1D_ARRAY                                           = 0x00008DC0,
+  GL_SAMPLER_1D_ARRAY_EXT                                       = 0x00008DC0,
+  GL_SAMPLER_2D_ARRAY                                           = 0x00008DC1,
+  GL_SAMPLER_2D_ARRAY_EXT                                       = 0x00008DC1,
+  GL_SAMPLER_BUFFER                                             = 0x00008DC2,
+  GL_SAMPLER_BUFFER_EXT                                         = 0x00008DC2,
+  GL_SAMPLER_BUFFER_OES                                         = 0x00008DC2,
+  GL_SAMPLER_1D_ARRAY_SHADOW                                    = 0x00008DC3,
+  GL_SAMPLER_1D_ARRAY_SHADOW_EXT                                = 0x00008DC3,
+  GL_SAMPLER_2D_ARRAY_SHADOW                                    = 0x00008DC4,
+  GL_SAMPLER_2D_ARRAY_SHADOW_EXT                                = 0x00008DC4,
+  GL_SAMPLER_2D_ARRAY_SHADOW_NV                                 = 0x00008DC4,
+  GL_SAMPLER_CUBE_SHADOW                                        = 0x00008DC5,
+  GL_SAMPLER_CUBE_SHADOW_EXT                                    = 0x00008DC5,
+  GL_SAMPLER_CUBE_SHADOW_NV                                     = 0x00008DC5,
+  GL_UNSIGNED_INT_VEC2                                          = 0x00008DC6,
+  GL_UNSIGNED_INT_VEC2_EXT                                      = 0x00008DC6,
+  GL_UNSIGNED_INT_VEC3                                          = 0x00008DC7,
+  GL_UNSIGNED_INT_VEC3_EXT                                      = 0x00008DC7,
+  GL_UNSIGNED_INT_VEC4                                          = 0x00008DC8,
+  GL_UNSIGNED_INT_VEC4_EXT                                      = 0x00008DC8,
+  GL_INT_SAMPLER_1D                                             = 0x00008DC9,
+  GL_INT_SAMPLER_1D_EXT                                         = 0x00008DC9,
+  GL_INT_SAMPLER_2D                                             = 0x00008DCA,
+  GL_INT_SAMPLER_2D_EXT                                         = 0x00008DCA,
+  GL_INT_SAMPLER_3D                                             = 0x00008DCB,
+  GL_INT_SAMPLER_3D_EXT                                         = 0x00008DCB,
+  GL_INT_SAMPLER_CUBE                                           = 0x00008DCC,
+  GL_INT_SAMPLER_CUBE_EXT                                       = 0x00008DCC,
+  GL_INT_SAMPLER_2D_RECT                                        = 0x00008DCD,
+  GL_INT_SAMPLER_2D_RECT_EXT                                    = 0x00008DCD,
+  GL_INT_SAMPLER_1D_ARRAY                                       = 0x00008DCE,
+  GL_INT_SAMPLER_1D_ARRAY_EXT                                   = 0x00008DCE,
+  GL_INT_SAMPLER_2D_ARRAY                                       = 0x00008DCF,
+  GL_INT_SAMPLER_2D_ARRAY_EXT                                   = 0x00008DCF,
+  GL_INT_SAMPLER_BUFFER                                         = 0x00008DD0,
+  GL_INT_SAMPLER_BUFFER_EXT                                     = 0x00008DD0,
+  GL_INT_SAMPLER_BUFFER_OES                                     = 0x00008DD0,
+  GL_UNSIGNED_INT_SAMPLER_1D                                    = 0x00008DD1,
+  GL_UNSIGNED_INT_SAMPLER_1D_EXT                                = 0x00008DD1,
+  GL_UNSIGNED_INT_SAMPLER_2D                                    = 0x00008DD2,
+  GL_UNSIGNED_INT_SAMPLER_2D_EXT                                = 0x00008DD2,
+  GL_UNSIGNED_INT_SAMPLER_3D                                    = 0x00008DD3,
+  GL_UNSIGNED_INT_SAMPLER_3D_EXT                                = 0x00008DD3,
+  GL_UNSIGNED_INT_SAMPLER_CUBE                                  = 0x00008DD4,
+  GL_UNSIGNED_INT_SAMPLER_CUBE_EXT                              = 0x00008DD4,
+  GL_UNSIGNED_INT_SAMPLER_2D_RECT                               = 0x00008DD5,
+  GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT                           = 0x00008DD5,
+  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY                              = 0x00008DD6,
+  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT                          = 0x00008DD6,
+  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY                              = 0x00008DD7,
+  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT                          = 0x00008DD7,
+  GL_UNSIGNED_INT_SAMPLER_BUFFER                                = 0x00008DD8,
+  GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT                            = 0x00008DD8,
+  GL_UNSIGNED_INT_SAMPLER_BUFFER_OES                            = 0x00008DD8,
+  GL_GEOMETRY_SHADER                                            = 0x00008DD9,
+  GL_GEOMETRY_SHADER_ARB                                        = 0x00008DD9,
+  GL_GEOMETRY_SHADER_EXT                                        = 0x00008DD9,
+  GL_GEOMETRY_SHADER_OES                                        = 0x00008DD9,
+  GL_GEOMETRY_VERTICES_OUT_ARB                                  = 0x00008DDA,
+  GL_GEOMETRY_VERTICES_OUT_EXT                                  = 0x00008DDA,
+  GL_GEOMETRY_INPUT_TYPE_ARB                                    = 0x00008DDB,
+  GL_GEOMETRY_INPUT_TYPE_EXT                                    = 0x00008DDB,
+  GL_GEOMETRY_OUTPUT_TYPE_ARB                                   = 0x00008DDC,
+  GL_GEOMETRY_OUTPUT_TYPE_EXT                                   = 0x00008DDC,
+  GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB                        = 0x00008DDD,
+  GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT                        = 0x00008DDD,
+  GL_MAX_VERTEX_VARYING_COMPONENTS_ARB                          = 0x00008DDE,
+  GL_MAX_VERTEX_VARYING_COMPONENTS_EXT                          = 0x00008DDE,
+  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS                            = 0x00008DDF,
+  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB                        = 0x00008DDF,
+  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT                        = 0x00008DDF,
+  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES                        = 0x00008DDF,
+  GL_MAX_GEOMETRY_OUTPUT_VERTICES                               = 0x00008DE0,
+  GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB                           = 0x00008DE0,
+  GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT                           = 0x00008DE0,
+  GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES                           = 0x00008DE0,
+  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS                       = 0x00008DE1,
+  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB                   = 0x00008DE1,
+  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT                   = 0x00008DE1,
+  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES                   = 0x00008DE1,
+  GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT                           = 0x00008DE2,
+  GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT                         = 0x00008DE3,
+  GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT                         = 0x00008DE4,
+  GL_ACTIVE_SUBROUTINES                                         = 0x00008DE5,
+  GL_ACTIVE_SUBROUTINE_UNIFORMS                                 = 0x00008DE6,
+  GL_MAX_SUBROUTINES                                            = 0x00008DE7,
+  GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS                           = 0x00008DE8,
+  GL_NAMED_STRING_LENGTH_ARB                                    = 0x00008DE9,
+  GL_NAMED_STRING_TYPE_ARB                                      = 0x00008DEA,
+  GL_MAX_BINDABLE_UNIFORM_SIZE_EXT                              = 0x00008DED,
+  GL_UNIFORM_BUFFER_EXT                                         = 0x00008DEE,
+  GL_UNIFORM_BUFFER_BINDING_EXT                                 = 0x00008DEF,
+  GL_LOW_FLOAT                                                  = 0x00008DF0,
+  GL_MEDIUM_FLOAT                                               = 0x00008DF1,
+  GL_HIGH_FLOAT                                                 = 0x00008DF2,
+  GL_LOW_INT                                                    = 0x00008DF3,
+  GL_MEDIUM_INT                                                 = 0x00008DF4,
+  GL_HIGH_INT                                                   = 0x00008DF5,
+  GL_UNSIGNED_INT_10_10_10_2_OES                                = 0x00008DF6,
+  GL_INT_10_10_10_2_OES                                         = 0x00008DF7,
+  GL_SHADER_BINARY_FORMATS                                      = 0x00008DF8,
+  GL_NUM_SHADER_BINARY_FORMATS                                  = 0x00008DF9,
+  GL_SHADER_COMPILER                                            = 0x00008DFA,
+  GL_MAX_VERTEX_UNIFORM_VECTORS                                 = 0x00008DFB,
+  GL_MAX_VARYING_VECTORS                                        = 0x00008DFC,
+  GL_MAX_FRAGMENT_UNIFORM_VECTORS                               = 0x00008DFD,
+  GL_RENDERBUFFER_COLOR_SAMPLES_NV                              = 0x00008E10,
+  GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV                          = 0x00008E11,
+  GL_MULTISAMPLE_COVERAGE_MODES_NV                              = 0x00008E12,
+  GL_QUERY_WAIT                                                 = 0x00008E13,
+  GL_QUERY_WAIT_NV                                              = 0x00008E13,
+  GL_QUERY_NO_WAIT                                              = 0x00008E14,
+  GL_QUERY_NO_WAIT_NV                                           = 0x00008E14,
+  GL_QUERY_BY_REGION_WAIT                                       = 0x00008E15,
+  GL_QUERY_BY_REGION_WAIT_NV                                    = 0x00008E15,
+  GL_QUERY_BY_REGION_NO_WAIT                                    = 0x00008E16,
+  GL_QUERY_BY_REGION_NO_WAIT_NV                                 = 0x00008E16,
+  GL_QUERY_WAIT_INVERTED                                        = 0x00008E17,
+  GL_QUERY_NO_WAIT_INVERTED                                     = 0x00008E18,
+  GL_QUERY_BY_REGION_WAIT_INVERTED                              = 0x00008E19,
+  GL_QUERY_BY_REGION_NO_WAIT_INVERTED                           = 0x00008E1A,
+  GL_POLYGON_OFFSET_CLAMP_EXT                                   = 0x00008E1B,
+  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS               = 0x00008E1E,
+  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT           = 0x00008E1E,
+  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES           = 0x00008E1E,
+  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS            = 0x00008E1F,
+  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT        = 0x00008E1F,
+  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES        = 0x00008E1F,
+  GL_COLOR_SAMPLES_NV                                           = 0x00008E20,
+  GL_TRANSFORM_FEEDBACK                                         = 0x00008E22,
+  GL_TRANSFORM_FEEDBACK_NV                                      = 0x00008E22,
+  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED                           = 0x00008E23,
+  GL_TRANSFORM_FEEDBACK_PAUSED                                  = 0x00008E23,
+  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV                        = 0x00008E23,
+  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE                           = 0x00008E24,
+  GL_TRANSFORM_FEEDBACK_ACTIVE                                  = 0x00008E24,
+  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV                        = 0x00008E24,
+  GL_TRANSFORM_FEEDBACK_BINDING                                 = 0x00008E25,
+  GL_TRANSFORM_FEEDBACK_BINDING_NV                              = 0x00008E25,
+  GL_FRAME_NV                                                   = 0x00008E26,
+  GL_FIELDS_NV                                                  = 0x00008E27,
+  GL_CURRENT_TIME_NV                                            = 0x00008E28,
+  GL_TIMESTAMP                                                  = 0x00008E28,
+  GL_TIMESTAMP_EXT                                              = 0x00008E28,
+  GL_NUM_FILL_STREAMS_NV                                        = 0x00008E29,
+  GL_PRESENT_TIME_NV                                            = 0x00008E2A,
+  GL_PRESENT_DURATION_NV                                        = 0x00008E2B,
+  GL_DEPTH_COMPONENT16_NONLINEAR_NV                             = 0x00008E2C,
+  GL_PROGRAM_MATRIX_EXT                                         = 0x00008E2D,
+  GL_TRANSPOSE_PROGRAM_MATRIX_EXT                               = 0x00008E2E,
+  GL_PROGRAM_MATRIX_STACK_DEPTH_EXT                             = 0x00008E2F,
+  GL_TEXTURE_SWIZZLE_R                                          = 0x00008E42,
+  GL_TEXTURE_SWIZZLE_R_EXT                                      = 0x00008E42,
+  GL_TEXTURE_SWIZZLE_G                                          = 0x00008E43,
+  GL_TEXTURE_SWIZZLE_G_EXT                                      = 0x00008E43,
+  GL_TEXTURE_SWIZZLE_B                                          = 0x00008E44,
+  GL_TEXTURE_SWIZZLE_B_EXT                                      = 0x00008E44,
+  GL_TEXTURE_SWIZZLE_A                                          = 0x00008E45,
+  GL_TEXTURE_SWIZZLE_A_EXT                                      = 0x00008E45,
+  GL_TEXTURE_SWIZZLE_RGBA                                       = 0x00008E46,
+  GL_TEXTURE_SWIZZLE_RGBA_EXT                                   = 0x00008E46,
+  GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS                        = 0x00008E47,
+  GL_ACTIVE_SUBROUTINE_MAX_LENGTH                               = 0x00008E48,
+  GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH                       = 0x00008E49,
+  GL_NUM_COMPATIBLE_SUBROUTINES                                 = 0x00008E4A,
+  GL_COMPATIBLE_SUBROUTINES                                     = 0x00008E4B,
+  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION                   = 0x00008E4C,
+  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT               = 0x00008E4C,
+  GL_FIRST_VERTEX_CONVENTION                                    = 0x00008E4D,
+  GL_FIRST_VERTEX_CONVENTION_EXT                                = 0x00008E4D,
+  GL_FIRST_VERTEX_CONVENTION_OES                                = 0x00008E4D,
+  GL_LAST_VERTEX_CONVENTION                                     = 0x00008E4E,
+  GL_LAST_VERTEX_CONVENTION_EXT                                 = 0x00008E4E,
+  GL_LAST_VERTEX_CONVENTION_OES                                 = 0x00008E4E,
+  GL_PROVOKING_VERTEX                                           = 0x00008E4F,
+  GL_PROVOKING_VERTEX_EXT                                       = 0x00008E4F,
+  GL_SAMPLE_POSITION                                            = 0x00008E50,
+  GL_SAMPLE_POSITION_NV                                         = 0x00008E50,
+  GL_SAMPLE_LOCATION_NV                                         = 0x00008E50,
+  GL_SAMPLE_MASK                                                = 0x00008E51,
+  GL_SAMPLE_MASK_NV                                             = 0x00008E51,
+  GL_SAMPLE_MASK_VALUE                                          = 0x00008E52,
+  GL_SAMPLE_MASK_VALUE_NV                                       = 0x00008E52,
+  GL_TEXTURE_BINDING_RENDERBUFFER_NV                            = 0x00008E53,
+  GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV                 = 0x00008E54,
+  GL_TEXTURE_RENDERBUFFER_NV                                    = 0x00008E55,
+  GL_SAMPLER_RENDERBUFFER_NV                                    = 0x00008E56,
+  GL_INT_SAMPLER_RENDERBUFFER_NV                                = 0x00008E57,
+  GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV                       = 0x00008E58,
+  GL_MAX_SAMPLE_MASK_WORDS                                      = 0x00008E59,
+  GL_MAX_SAMPLE_MASK_WORDS_NV                                   = 0x00008E59,
+  GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV                        = 0x00008E5A,
+  GL_MAX_GEOMETRY_SHADER_INVOCATIONS                            = 0x00008E5A,
+  GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT                        = 0x00008E5A,
+  GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES                        = 0x00008E5A,
+  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET                          = 0x00008E5B,
+  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES                      = 0x00008E5B,
+  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV                       = 0x00008E5B,
+  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET                          = 0x00008E5C,
+  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES                      = 0x00008E5C,
+  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV                       = 0x00008E5C,
+  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS                         = 0x00008E5D,
+  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES                     = 0x00008E5D,
+  GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV              = 0x00008E5D,
+  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET                          = 0x00008E5E,
+  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB                      = 0x00008E5E,
+  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV                       = 0x00008E5E,
+  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET                          = 0x00008E5F,
+  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB                      = 0x00008E5F,
+  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV                       = 0x00008E5F,
+  GL_MAX_TRANSFORM_FEEDBACK_BUFFERS                             = 0x00008E70,
+  GL_MAX_VERTEX_STREAMS                                         = 0x00008E71,
+  GL_PATCH_VERTICES                                             = 0x00008E72,
+  GL_PATCH_VERTICES_EXT                                         = 0x00008E72,
+  GL_PATCH_VERTICES_OES                                         = 0x00008E72,
+  GL_PATCH_DEFAULT_INNER_LEVEL                                  = 0x00008E73,
+  GL_PATCH_DEFAULT_INNER_LEVEL_EXT                              = 0x00008E73,
+  GL_PATCH_DEFAULT_OUTER_LEVEL                                  = 0x00008E74,
+  GL_PATCH_DEFAULT_OUTER_LEVEL_EXT                              = 0x00008E74,
+  GL_TESS_CONTROL_OUTPUT_VERTICES                               = 0x00008E75,
+  GL_TESS_CONTROL_OUTPUT_VERTICES_EXT                           = 0x00008E75,
+  GL_TESS_CONTROL_OUTPUT_VERTICES_OES                           = 0x00008E75,
+  GL_TESS_GEN_MODE                                              = 0x00008E76,
+  GL_TESS_GEN_MODE_EXT                                          = 0x00008E76,
+  GL_TESS_GEN_MODE_OES                                          = 0x00008E76,
+  GL_TESS_GEN_SPACING                                           = 0x00008E77,
+  GL_TESS_GEN_SPACING_EXT                                       = 0x00008E77,
+  GL_TESS_GEN_SPACING_OES                                       = 0x00008E77,
+  GL_TESS_GEN_VERTEX_ORDER                                      = 0x00008E78,
+  GL_TESS_GEN_VERTEX_ORDER_EXT                                  = 0x00008E78,
+  GL_TESS_GEN_VERTEX_ORDER_OES                                  = 0x00008E78,
+  GL_TESS_GEN_POINT_MODE                                        = 0x00008E79,
+  GL_TESS_GEN_POINT_MODE_EXT                                    = 0x00008E79,
+  GL_TESS_GEN_POINT_MODE_OES                                    = 0x00008E79,
+  GL_ISOLINES                                                   = 0x00008E7A,
+  GL_ISOLINES_EXT                                               = 0x00008E7A,
+  GL_ISOLINES_OES                                               = 0x00008E7A,
+  GL_FRACTIONAL_ODD                                             = 0x00008E7B,
+  GL_FRACTIONAL_ODD_EXT                                         = 0x00008E7B,
+  GL_FRACTIONAL_ODD_OES                                         = 0x00008E7B,
+  GL_FRACTIONAL_EVEN                                            = 0x00008E7C,
+  GL_FRACTIONAL_EVEN_EXT                                        = 0x00008E7C,
+  GL_FRACTIONAL_EVEN_OES                                        = 0x00008E7C,
+  GL_MAX_PATCH_VERTICES                                         = 0x00008E7D,
+  GL_MAX_PATCH_VERTICES_EXT                                     = 0x00008E7D,
+  GL_MAX_PATCH_VERTICES_OES                                     = 0x00008E7D,
+  GL_MAX_TESS_GEN_LEVEL                                         = 0x00008E7E,
+  GL_MAX_TESS_GEN_LEVEL_EXT                                     = 0x00008E7E,
+  GL_MAX_TESS_GEN_LEVEL_OES                                     = 0x00008E7E,
+  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS                        = 0x00008E7F,
+  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT                    = 0x00008E7F,
+  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES                    = 0x00008E7F,
+  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS                     = 0x00008E80,
+  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT                 = 0x00008E80,
+  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES                 = 0x00008E80,
+  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS                       = 0x00008E81,
+  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT                   = 0x00008E81,
+  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES                   = 0x00008E81,
+  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS                    = 0x00008E82,
+  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT                = 0x00008E82,
+  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES                = 0x00008E82,
+  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS                         = 0x00008E83,
+  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT                     = 0x00008E83,
+  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES                     = 0x00008E83,
+  GL_MAX_TESS_PATCH_COMPONENTS                                  = 0x00008E84,
+  GL_MAX_TESS_PATCH_COMPONENTS_EXT                              = 0x00008E84,
+  GL_MAX_TESS_PATCH_COMPONENTS_OES                              = 0x00008E84,
+  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS                   = 0x00008E85,
+  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT               = 0x00008E85,
+  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES               = 0x00008E85,
+  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS                      = 0x00008E86,
+  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT                  = 0x00008E86,
+  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES                  = 0x00008E86,
+  GL_TESS_EVALUATION_SHADER                                     = 0x00008E87,
+  GL_TESS_EVALUATION_SHADER_EXT                                 = 0x00008E87,
+  GL_TESS_EVALUATION_SHADER_OES                                 = 0x00008E87,
+  GL_TESS_CONTROL_SHADER                                        = 0x00008E88,
+  GL_TESS_CONTROL_SHADER_EXT                                    = 0x00008E88,
+  GL_TESS_CONTROL_SHADER_OES                                    = 0x00008E88,
+  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS                            = 0x00008E89,
+  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT                        = 0x00008E89,
+  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES                        = 0x00008E89,
+  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS                         = 0x00008E8A,
+  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT                     = 0x00008E8A,
+  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES                     = 0x00008E8A,
+  GL_COMPRESSED_RGBA_BPTC_UNORM                                 = 0x00008E8C,
+  GL_COMPRESSED_RGBA_BPTC_UNORM_ARB                             = 0x00008E8C,
+  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM                           = 0x00008E8D,
+  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB                       = 0x00008E8D,
+  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT                           = 0x00008E8E,
+  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB                       = 0x00008E8E,
+  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT                         = 0x00008E8F,
+  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB                     = 0x00008E8F,
+  GL_COVERAGE_COMPONENT_NV                                      = 0x00008ED0,
+  GL_COVERAGE_COMPONENT4_NV                                     = 0x00008ED1,
+  GL_COVERAGE_ATTACHMENT_NV                                     = 0x00008ED2,
+  GL_COVERAGE_BUFFERS_NV                                        = 0x00008ED3,
+  GL_COVERAGE_SAMPLES_NV                                        = 0x00008ED4,
+  GL_COVERAGE_ALL_FRAGMENTS_NV                                  = 0x00008ED5,
+  GL_COVERAGE_EDGE_FRAGMENTS_NV                                 = 0x00008ED6,
+  GL_COVERAGE_AUTOMATIC_NV                                      = 0x00008ED7,
+  GL_BUFFER_GPU_ADDRESS_NV                                      = 0x00008F1D,
+  GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV                             = 0x00008F1E,
+  GL_ELEMENT_ARRAY_UNIFIED_NV                                   = 0x00008F1F,
+  GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV                             = 0x00008F20,
+  GL_VERTEX_ARRAY_ADDRESS_NV                                    = 0x00008F21,
+  GL_NORMAL_ARRAY_ADDRESS_NV                                    = 0x00008F22,
+  GL_COLOR_ARRAY_ADDRESS_NV                                     = 0x00008F23,
+  GL_INDEX_ARRAY_ADDRESS_NV                                     = 0x00008F24,
+  GL_TEXTURE_COORD_ARRAY_ADDRESS_NV                             = 0x00008F25,
+  GL_EDGE_FLAG_ARRAY_ADDRESS_NV                                 = 0x00008F26,
+  GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV                           = 0x00008F27,
+  GL_FOG_COORD_ARRAY_ADDRESS_NV                                 = 0x00008F28,
+  GL_ELEMENT_ARRAY_ADDRESS_NV                                   = 0x00008F29,
+  GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV                              = 0x00008F2A,
+  GL_VERTEX_ARRAY_LENGTH_NV                                     = 0x00008F2B,
+  GL_NORMAL_ARRAY_LENGTH_NV                                     = 0x00008F2C,
+  GL_COLOR_ARRAY_LENGTH_NV                                      = 0x00008F2D,
+  GL_INDEX_ARRAY_LENGTH_NV                                      = 0x00008F2E,
+  GL_TEXTURE_COORD_ARRAY_LENGTH_NV                              = 0x00008F2F,
+  GL_EDGE_FLAG_ARRAY_LENGTH_NV                                  = 0x00008F30,
+  GL_SECONDARY_COLOR_ARRAY_LENGTH_NV                            = 0x00008F31,
+  GL_FOG_COORD_ARRAY_LENGTH_NV                                  = 0x00008F32,
+  GL_ELEMENT_ARRAY_LENGTH_NV                                    = 0x00008F33,
+  GL_GPU_ADDRESS_NV                                             = 0x00008F34,
+  GL_MAX_SHADER_BUFFER_ADDRESS_NV                               = 0x00008F35,
+  GL_COPY_READ_BUFFER                                           = 0x00008F36,
+  GL_COPY_READ_BUFFER_NV                                        = 0x00008F36,
+  GL_COPY_READ_BUFFER_BINDING                                   = 0x00008F36,
+  GL_COPY_WRITE_BUFFER                                          = 0x00008F37,
+  GL_COPY_WRITE_BUFFER_NV                                       = 0x00008F37,
+  GL_COPY_WRITE_BUFFER_BINDING                                  = 0x00008F37,
+  GL_MAX_IMAGE_UNITS                                            = 0x00008F38,
+  GL_MAX_IMAGE_UNITS_EXT                                        = 0x00008F38,
+  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS              = 0x00008F39,
+  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT          = 0x00008F39,
+  GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES                       = 0x00008F39,
+  GL_IMAGE_BINDING_NAME                                         = 0x00008F3A,
+  GL_IMAGE_BINDING_NAME_EXT                                     = 0x00008F3A,
+  GL_IMAGE_BINDING_LEVEL                                        = 0x00008F3B,
+  GL_IMAGE_BINDING_LEVEL_EXT                                    = 0x00008F3B,
+  GL_IMAGE_BINDING_LAYERED                                      = 0x00008F3C,
+  GL_IMAGE_BINDING_LAYERED_EXT                                  = 0x00008F3C,
+  GL_IMAGE_BINDING_LAYER                                        = 0x00008F3D,
+  GL_IMAGE_BINDING_LAYER_EXT                                    = 0x00008F3D,
+  GL_IMAGE_BINDING_ACCESS                                       = 0x00008F3E,
+  GL_IMAGE_BINDING_ACCESS_EXT                                   = 0x00008F3E,
+  GL_DRAW_INDIRECT_BUFFER                                       = 0x00008F3F,
+  GL_DRAW_INDIRECT_UNIFIED_NV                                   = 0x00008F40,
+  GL_DRAW_INDIRECT_ADDRESS_NV                                   = 0x00008F41,
+  GL_DRAW_INDIRECT_LENGTH_NV                                    = 0x00008F42,
+  GL_DRAW_INDIRECT_BUFFER_BINDING                               = 0x00008F43,
+  GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV                       = 0x00008F44,
+  GL_MAX_PROGRAM_SUBROUTINE_NUM_NV                              = 0x00008F45,
+  GL_DOUBLE_MAT2                                                = 0x00008F46,
+  GL_DOUBLE_MAT2_EXT                                            = 0x00008F46,
+  GL_DOUBLE_MAT3                                                = 0x00008F47,
+  GL_DOUBLE_MAT3_EXT                                            = 0x00008F47,
+  GL_DOUBLE_MAT4                                                = 0x00008F48,
+  GL_DOUBLE_MAT4_EXT                                            = 0x00008F48,
+  GL_DOUBLE_MAT2x3                                              = 0x00008F49,
+  GL_DOUBLE_MAT2x3_EXT                                          = 0x00008F49,
+  GL_DOUBLE_MAT2x4                                              = 0x00008F4A,
+  GL_DOUBLE_MAT2x4_EXT                                          = 0x00008F4A,
+  GL_DOUBLE_MAT3x2                                              = 0x00008F4B,
+  GL_DOUBLE_MAT3x2_EXT                                          = 0x00008F4B,
+  GL_DOUBLE_MAT3x4                                              = 0x00008F4C,
+  GL_DOUBLE_MAT3x4_EXT                                          = 0x00008F4C,
+  GL_DOUBLE_MAT4x2                                              = 0x00008F4D,
+  GL_DOUBLE_MAT4x2_EXT                                          = 0x00008F4D,
+  GL_DOUBLE_MAT4x3                                              = 0x00008F4E,
+  GL_DOUBLE_MAT4x3_EXT                                          = 0x00008F4E,
+  GL_VERTEX_BINDING_BUFFER                                      = 0x00008F4F,
+  GL_MALI_SHADER_BINARY_ARM                                     = 0x00008F60,
+  GL_MALI_PROGRAM_BINARY_ARM                                    = 0x00008F61,
+  GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT               = 0x00008F63,
+  GL_SHADER_PIXEL_LOCAL_STORAGE_EXT                             = 0x00008F64,
+  GL_FETCH_PER_SAMPLE_ARM                                       = 0x00008F65,
+  GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM                  = 0x00008F66,
+  GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT                    = 0x00008F67,
+  GL_RED_SNORM                                                  = 0x00008F90,
+  GL_RG_SNORM                                                   = 0x00008F91,
+  GL_RGB_SNORM                                                  = 0x00008F92,
+  GL_RGBA_SNORM                                                 = 0x00008F93,
+  GL_R8_SNORM                                                   = 0x00008F94,
+  GL_RG8_SNORM                                                  = 0x00008F95,
+  GL_RGB8_SNORM                                                 = 0x00008F96,
+  GL_RGBA8_SNORM                                                = 0x00008F97,
+  GL_R16_SNORM                                                  = 0x00008F98,
+  GL_R16_SNORM_EXT                                              = 0x00008F98,
+  GL_RG16_SNORM                                                 = 0x00008F99,
+  GL_RG16_SNORM_EXT                                             = 0x00008F99,
+  GL_RGB16_SNORM                                                = 0x00008F9A,
+  GL_RGB16_SNORM_EXT                                            = 0x00008F9A,
+  GL_RGBA16_SNORM                                               = 0x00008F9B,
+  GL_RGBA16_SNORM_EXT                                           = 0x00008F9B,
+  GL_SIGNED_NORMALIZED                                          = 0x00008F9C,
+  GL_PRIMITIVE_RESTART                                          = 0x00008F9D,
+  GL_PRIMITIVE_RESTART_INDEX                                    = 0x00008F9E,
+  GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB                  = 0x00008F9F,
+  GL_PERFMON_GLOBAL_MODE_QCOM                                   = 0x00008FA0,
+  GL_BINNING_CONTROL_HINT_QCOM                                  = 0x00008FB0,
+  GL_CPU_OPTIMIZED_QCOM                                         = 0x00008FB1,
+  GL_GPU_OPTIMIZED_QCOM                                         = 0x00008FB2,
+  GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM                          = 0x00008FB3,
+  GL_GPU_DISJOINT_EXT                                           = 0x00008FBB,
+  GL_SR8_EXT                                                    = 0x00008FBD,
+  GL_SRG8_EXT                                                   = 0x00008FBE,
+  GL_SHADER_BINARY_VIV                                          = 0x00008FC4,
+  GL_INT8_NV                                                    = 0x00008FE0,
+  GL_INT8_VEC2_NV                                               = 0x00008FE1,
+  GL_INT8_VEC3_NV                                               = 0x00008FE2,
+  GL_INT8_VEC4_NV                                               = 0x00008FE3,
+  GL_INT16_NV                                                   = 0x00008FE4,
+  GL_INT16_VEC2_NV                                              = 0x00008FE5,
+  GL_INT16_VEC3_NV                                              = 0x00008FE6,
+  GL_INT16_VEC4_NV                                              = 0x00008FE7,
+  GL_INT64_VEC2_NV                                              = 0x00008FE9,
+  GL_INT64_VEC3_NV                                              = 0x00008FEA,
+  GL_INT64_VEC4_NV                                              = 0x00008FEB,
+  GL_UNSIGNED_INT8_NV                                           = 0x00008FEC,
+  GL_UNSIGNED_INT8_VEC2_NV                                      = 0x00008FED,
+  GL_UNSIGNED_INT8_VEC3_NV                                      = 0x00008FEE,
+  GL_UNSIGNED_INT8_VEC4_NV                                      = 0x00008FEF,
+  GL_UNSIGNED_INT16_NV                                          = 0x00008FF0,
+  GL_UNSIGNED_INT16_VEC2_NV                                     = 0x00008FF1,
+  GL_UNSIGNED_INT16_VEC3_NV                                     = 0x00008FF2,
+  GL_UNSIGNED_INT16_VEC4_NV                                     = 0x00008FF3,
+  GL_UNSIGNED_INT64_VEC2_NV                                     = 0x00008FF5,
+  GL_UNSIGNED_INT64_VEC3_NV                                     = 0x00008FF6,
+  GL_UNSIGNED_INT64_VEC4_NV                                     = 0x00008FF7,
+  GL_FLOAT16_NV                                                 = 0x00008FF8,
+  GL_FLOAT16_VEC2_NV                                            = 0x00008FF9,
+  GL_FLOAT16_VEC3_NV                                            = 0x00008FFA,
+  GL_FLOAT16_VEC4_NV                                            = 0x00008FFB,
+  GL_DOUBLE_VEC2                                                = 0x00008FFC,
+  GL_DOUBLE_VEC2_EXT                                            = 0x00008FFC,
+  GL_DOUBLE_VEC3                                                = 0x00008FFD,
+  GL_DOUBLE_VEC3_EXT                                            = 0x00008FFD,
+  GL_DOUBLE_VEC4                                                = 0x00008FFE,
+  GL_DOUBLE_VEC4_EXT                                            = 0x00008FFE,
+  GL_SAMPLER_BUFFER_AMD                                         = 0x00009001,
+  GL_INT_SAMPLER_BUFFER_AMD                                     = 0x00009002,
+  GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD                            = 0x00009003,
+  GL_TESSELLATION_MODE_AMD                                      = 0x00009004,
+  GL_TESSELLATION_FACTOR_AMD                                    = 0x00009005,
+  GL_DISCRETE_AMD                                               = 0x00009006,
+  GL_CONTINUOUS_AMD                                             = 0x00009007,
+  GL_TEXTURE_CUBE_MAP_ARRAY                                     = 0x00009009,
+  GL_TEXTURE_CUBE_MAP_ARRAY_ARB                                 = 0x00009009,
+  GL_TEXTURE_CUBE_MAP_ARRAY_EXT                                 = 0x00009009,
+  GL_TEXTURE_CUBE_MAP_ARRAY_OES                                 = 0x00009009,
+  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY                             = 0x0000900A,
+  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB                         = 0x0000900A,
+  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT                         = 0x0000900A,
+  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES                         = 0x0000900A,
+  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY                               = 0x0000900B,
+  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB                           = 0x0000900B,
+  GL_SAMPLER_CUBE_MAP_ARRAY                                     = 0x0000900C,
+  GL_SAMPLER_CUBE_MAP_ARRAY_ARB                                 = 0x0000900C,
+  GL_SAMPLER_CUBE_MAP_ARRAY_EXT                                 = 0x0000900C,
+  GL_SAMPLER_CUBE_MAP_ARRAY_OES                                 = 0x0000900C,
+  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW                              = 0x0000900D,
+  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB                          = 0x0000900D,
+  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT                          = 0x0000900D,
+  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES                          = 0x0000900D,
+  GL_INT_SAMPLER_CUBE_MAP_ARRAY                                 = 0x0000900E,
+  GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB                             = 0x0000900E,
+  GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT                             = 0x0000900E,
+  GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES                             = 0x0000900E,
+  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY                        = 0x0000900F,
+  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB                    = 0x0000900F,
+  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT                    = 0x0000900F,
+  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES                    = 0x0000900F,
+  GL_ALPHA_SNORM                                                = 0x00009010,
+  GL_LUMINANCE_SNORM                                            = 0x00009011,
+  GL_LUMINANCE_ALPHA_SNORM                                      = 0x00009012,
+  GL_INTENSITY_SNORM                                            = 0x00009013,
+  GL_ALPHA8_SNORM                                               = 0x00009014,
+  GL_LUMINANCE8_SNORM                                           = 0x00009015,
+  GL_LUMINANCE8_ALPHA8_SNORM                                    = 0x00009016,
+  GL_INTENSITY8_SNORM                                           = 0x00009017,
+  GL_ALPHA16_SNORM                                              = 0x00009018,
+  GL_LUMINANCE16_SNORM                                          = 0x00009019,
+  GL_LUMINANCE16_ALPHA16_SNORM                                  = 0x0000901A,
+  GL_INTENSITY16_SNORM                                          = 0x0000901B,
+  GL_FACTOR_MIN_AMD                                             = 0x0000901C,
+  GL_FACTOR_MAX_AMD                                             = 0x0000901D,
+  GL_DEPTH_CLAMP_NEAR_AMD                                       = 0x0000901E,
+  GL_DEPTH_CLAMP_FAR_AMD                                        = 0x0000901F,
+  GL_VIDEO_BUFFER_NV                                            = 0x00009020,
+  GL_VIDEO_BUFFER_BINDING_NV                                    = 0x00009021,
+  GL_FIELD_UPPER_NV                                             = 0x00009022,
+  GL_FIELD_LOWER_NV                                             = 0x00009023,
+  GL_NUM_VIDEO_CAPTURE_STREAMS_NV                               = 0x00009024,
+  GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV                        = 0x00009025,
+  GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV                          = 0x00009026,
+  GL_LAST_VIDEO_CAPTURE_STATUS_NV                               = 0x00009027,
+  GL_VIDEO_BUFFER_PITCH_NV                                      = 0x00009028,
+  GL_VIDEO_COLOR_CONVERSION_MATRIX_NV                           = 0x00009029,
+  GL_VIDEO_COLOR_CONVERSION_MAX_NV                              = 0x0000902A,
+  GL_VIDEO_COLOR_CONVERSION_MIN_NV                              = 0x0000902B,
+  GL_VIDEO_COLOR_CONVERSION_OFFSET_NV                           = 0x0000902C,
+  GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV                            = 0x0000902D,
+  GL_PARTIAL_SUCCESS_NV                                         = 0x0000902E,
+  GL_SUCCESS_NV                                                 = 0x0000902F,
+  GL_FAILURE_NV                                                 = 0x00009030,
+  GL_YCBYCR8_422_NV                                             = 0x00009031,
+  GL_YCBAYCR8A_4224_NV                                          = 0x00009032,
+  GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV                              = 0x00009033,
+  GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV                   = 0x00009034,
+  GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV                              = 0x00009035,
+  GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV                   = 0x00009036,
+  GL_Z4Y12Z4CB12Z4CR12_444_NV                                   = 0x00009037,
+  GL_VIDEO_CAPTURE_FRAME_WIDTH_NV                               = 0x00009038,
+  GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV                              = 0x00009039,
+  GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV                        = 0x0000903A,
+  GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV                        = 0x0000903B,
+  GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV                            = 0x0000903C,
+  GL_TEXTURE_COVERAGE_SAMPLES_NV                                = 0x00009045,
+  GL_TEXTURE_COLOR_SAMPLES_NV                                   = 0x00009046,
+  GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX                       = 0x00009047,
+  GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX                 = 0x00009048,
+  GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX               = 0x00009049,
+  GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX                         = 0x0000904A,
+  GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX                         = 0x0000904B,
+  GL_IMAGE_1D                                                   = 0x0000904C,
+  GL_IMAGE_1D_EXT                                               = 0x0000904C,
+  GL_IMAGE_2D                                                   = 0x0000904D,
+  GL_IMAGE_2D_EXT                                               = 0x0000904D,
+  GL_IMAGE_3D                                                   = 0x0000904E,
+  GL_IMAGE_3D_EXT                                               = 0x0000904E,
+  GL_IMAGE_2D_RECT                                              = 0x0000904F,
+  GL_IMAGE_2D_RECT_EXT                                          = 0x0000904F,
+  GL_IMAGE_CUBE                                                 = 0x00009050,
+  GL_IMAGE_CUBE_EXT                                             = 0x00009050,
+  GL_IMAGE_BUFFER                                               = 0x00009051,
+  GL_IMAGE_BUFFER_EXT                                           = 0x00009051,
+  GL_IMAGE_BUFFER_OES                                           = 0x00009051,
+  GL_IMAGE_1D_ARRAY                                             = 0x00009052,
+  GL_IMAGE_1D_ARRAY_EXT                                         = 0x00009052,
+  GL_IMAGE_2D_ARRAY                                             = 0x00009053,
+  GL_IMAGE_2D_ARRAY_EXT                                         = 0x00009053,
+  GL_IMAGE_CUBE_MAP_ARRAY                                       = 0x00009054,
+  GL_IMAGE_CUBE_MAP_ARRAY_EXT                                   = 0x00009054,
+  GL_IMAGE_CUBE_MAP_ARRAY_OES                                   = 0x00009054,
+  GL_IMAGE_2D_MULTISAMPLE                                       = 0x00009055,
+  GL_IMAGE_2D_MULTISAMPLE_EXT                                   = 0x00009055,
+  GL_IMAGE_2D_MULTISAMPLE_ARRAY                                 = 0x00009056,
+  GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                             = 0x00009056,
+  GL_INT_IMAGE_1D                                               = 0x00009057,
+  GL_INT_IMAGE_1D_EXT                                           = 0x00009057,
+  GL_INT_IMAGE_2D                                               = 0x00009058,
+  GL_INT_IMAGE_2D_EXT                                           = 0x00009058,
+  GL_INT_IMAGE_3D                                               = 0x00009059,
+  GL_INT_IMAGE_3D_EXT                                           = 0x00009059,
+  GL_INT_IMAGE_2D_RECT                                          = 0x0000905A,
+  GL_INT_IMAGE_2D_RECT_EXT                                      = 0x0000905A,
+  GL_INT_IMAGE_CUBE                                             = 0x0000905B,
+  GL_INT_IMAGE_CUBE_EXT                                         = 0x0000905B,
+  GL_INT_IMAGE_BUFFER                                           = 0x0000905C,
+  GL_INT_IMAGE_BUFFER_EXT                                       = 0x0000905C,
+  GL_INT_IMAGE_BUFFER_OES                                       = 0x0000905C,
+  GL_INT_IMAGE_1D_ARRAY                                         = 0x0000905D,
+  GL_INT_IMAGE_1D_ARRAY_EXT                                     = 0x0000905D,
+  GL_INT_IMAGE_2D_ARRAY                                         = 0x0000905E,
+  GL_INT_IMAGE_2D_ARRAY_EXT                                     = 0x0000905E,
+  GL_INT_IMAGE_CUBE_MAP_ARRAY                                   = 0x0000905F,
+  GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT                               = 0x0000905F,
+  GL_INT_IMAGE_CUBE_MAP_ARRAY_OES                               = 0x0000905F,
+  GL_INT_IMAGE_2D_MULTISAMPLE                                   = 0x00009060,
+  GL_INT_IMAGE_2D_MULTISAMPLE_EXT                               = 0x00009060,
+  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY                             = 0x00009061,
+  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                         = 0x00009061,
+  GL_UNSIGNED_INT_IMAGE_1D                                      = 0x00009062,
+  GL_UNSIGNED_INT_IMAGE_1D_EXT                                  = 0x00009062,
+  GL_UNSIGNED_INT_IMAGE_2D                                      = 0x00009063,
+  GL_UNSIGNED_INT_IMAGE_2D_EXT                                  = 0x00009063,
+  GL_UNSIGNED_INT_IMAGE_3D                                      = 0x00009064,
+  GL_UNSIGNED_INT_IMAGE_3D_EXT                                  = 0x00009064,
+  GL_UNSIGNED_INT_IMAGE_2D_RECT                                 = 0x00009065,
+  GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT                             = 0x00009065,
+  GL_UNSIGNED_INT_IMAGE_CUBE                                    = 0x00009066,
+  GL_UNSIGNED_INT_IMAGE_CUBE_EXT                                = 0x00009066,
+  GL_UNSIGNED_INT_IMAGE_BUFFER                                  = 0x00009067,
+  GL_UNSIGNED_INT_IMAGE_BUFFER_EXT                              = 0x00009067,
+  GL_UNSIGNED_INT_IMAGE_BUFFER_OES                              = 0x00009067,
+  GL_UNSIGNED_INT_IMAGE_1D_ARRAY                                = 0x00009068,
+  GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT                            = 0x00009068,
+  GL_UNSIGNED_INT_IMAGE_2D_ARRAY                                = 0x00009069,
+  GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT                            = 0x00009069,
+  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY                          = 0x0000906A,
+  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT                      = 0x0000906A,
+  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES                      = 0x0000906A,
+  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE                          = 0x0000906B,
+  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT                      = 0x0000906B,
+  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY                    = 0x0000906C,
+  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                = 0x0000906C,
+  GL_MAX_IMAGE_SAMPLES                                          = 0x0000906D,
+  GL_MAX_IMAGE_SAMPLES_EXT                                      = 0x0000906D,
+  GL_IMAGE_BINDING_FORMAT                                       = 0x0000906E,
+  GL_IMAGE_BINDING_FORMAT_EXT                                   = 0x0000906E,
+  GL_RGB10_A2UI                                                 = 0x0000906F,
+  GL_PATH_FORMAT_SVG_NV                                         = 0x00009070,
+  GL_PATH_FORMAT_PS_NV                                          = 0x00009071,
+  GL_STANDARD_FONT_NAME_NV                                      = 0x00009072,
+  GL_SYSTEM_FONT_NAME_NV                                        = 0x00009073,
+  GL_FILE_NAME_NV                                               = 0x00009074,
+  GL_PATH_STROKE_WIDTH_NV                                       = 0x00009075,
+  GL_PATH_END_CAPS_NV                                           = 0x00009076,
+  GL_PATH_INITIAL_END_CAP_NV                                    = 0x00009077,
+  GL_PATH_TERMINAL_END_CAP_NV                                   = 0x00009078,
+  GL_PATH_JOIN_STYLE_NV                                         = 0x00009079,
+  GL_PATH_MITER_LIMIT_NV                                        = 0x0000907A,
+  GL_PATH_DASH_CAPS_NV                                          = 0x0000907B,
+  GL_PATH_INITIAL_DASH_CAP_NV                                   = 0x0000907C,
+  GL_PATH_TERMINAL_DASH_CAP_NV                                  = 0x0000907D,
+  GL_PATH_DASH_OFFSET_NV                                        = 0x0000907E,
+  GL_PATH_CLIENT_LENGTH_NV                                      = 0x0000907F,
+  GL_PATH_FILL_MODE_NV                                          = 0x00009080,
+  GL_PATH_FILL_MASK_NV                                          = 0x00009081,
+  GL_PATH_FILL_COVER_MODE_NV                                    = 0x00009082,
+  GL_PATH_STROKE_COVER_MODE_NV                                  = 0x00009083,
+  GL_PATH_STROKE_MASK_NV                                        = 0x00009084,
+  GL_COUNT_UP_NV                                                = 0x00009088,
+  GL_COUNT_DOWN_NV                                              = 0x00009089,
+  GL_PATH_OBJECT_BOUNDING_BOX_NV                                = 0x0000908A,
+  GL_CONVEX_HULL_NV                                             = 0x0000908B,
+  GL_BOUNDING_BOX_NV                                            = 0x0000908D,
+  GL_TRANSLATE_X_NV                                             = 0x0000908E,
+  GL_TRANSLATE_Y_NV                                             = 0x0000908F,
+  GL_TRANSLATE_2D_NV                                            = 0x00009090,
+  GL_TRANSLATE_3D_NV                                            = 0x00009091,
+  GL_AFFINE_2D_NV                                               = 0x00009092,
+  GL_AFFINE_3D_NV                                               = 0x00009094,
+  GL_TRANSPOSE_AFFINE_2D_NV                                     = 0x00009096,
+  GL_TRANSPOSE_AFFINE_3D_NV                                     = 0x00009098,
+  GL_UTF8_NV                                                    = 0x0000909A,
+  GL_UTF16_NV                                                   = 0x0000909B,
+  GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV                          = 0x0000909C,
+  GL_PATH_COMMAND_COUNT_NV                                      = 0x0000909D,
+  GL_PATH_COORD_COUNT_NV                                        = 0x0000909E,
+  GL_PATH_DASH_ARRAY_COUNT_NV                                   = 0x0000909F,
+  GL_PATH_COMPUTED_LENGTH_NV                                    = 0x000090A0,
+  GL_PATH_FILL_BOUNDING_BOX_NV                                  = 0x000090A1,
+  GL_PATH_STROKE_BOUNDING_BOX_NV                                = 0x000090A2,
+  GL_SQUARE_NV                                                  = 0x000090A3,
+  GL_ROUND_NV                                                   = 0x000090A4,
+  GL_TRIANGULAR_NV                                              = 0x000090A5,
+  GL_BEVEL_NV                                                   = 0x000090A6,
+  GL_MITER_REVERT_NV                                            = 0x000090A7,
+  GL_MITER_TRUNCATE_NV                                          = 0x000090A8,
+  GL_SKIP_MISSING_GLYPH_NV                                      = 0x000090A9,
+  GL_USE_MISSING_GLYPH_NV                                       = 0x000090AA,
+  GL_PATH_ERROR_POSITION_NV                                     = 0x000090AB,
+  GL_PATH_FOG_GEN_MODE_NV                                       = 0x000090AC,
+  GL_ACCUM_ADJACENT_PAIRS_NV                                    = 0x000090AD,
+  GL_ADJACENT_PAIRS_NV                                          = 0x000090AE,
+  GL_FIRST_TO_REST_NV                                           = 0x000090AF,
+  GL_PATH_GEN_MODE_NV                                           = 0x000090B0,
+  GL_PATH_GEN_COEFF_NV                                          = 0x000090B1,
+  GL_PATH_GEN_COLOR_FORMAT_NV                                   = 0x000090B2,
+  GL_PATH_GEN_COMPONENTS_NV                                     = 0x000090B3,
+  GL_PATH_DASH_OFFSET_RESET_NV                                  = 0x000090B4,
+  GL_MOVE_TO_RESETS_NV                                          = 0x000090B5,
+  GL_MOVE_TO_CONTINUES_NV                                       = 0x000090B6,
+  GL_PATH_STENCIL_FUNC_NV                                       = 0x000090B7,
+  GL_PATH_STENCIL_REF_NV                                        = 0x000090B8,
+  GL_PATH_STENCIL_VALUE_MASK_NV                                 = 0x000090B9,
+  GL_SCALED_RESOLVE_FASTEST_EXT                                 = 0x000090BA,
+  GL_SCALED_RESOLVE_NICEST_EXT                                  = 0x000090BB,
+  GL_MIN_MAP_BUFFER_ALIGNMENT                                   = 0x000090BC,
+  GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV                        = 0x000090BD,
+  GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV                         = 0x000090BE,
+  GL_PATH_COVER_DEPTH_FUNC_NV                                   = 0x000090BF,
+  GL_IMAGE_FORMAT_COMPATIBILITY_TYPE                            = 0x000090C7,
+  GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE                         = 0x000090C8,
+  GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS                        = 0x000090C9,
+  GL_MAX_VERTEX_IMAGE_UNIFORMS                                  = 0x000090CA,
+  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS                            = 0x000090CB,
+  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT                        = 0x000090CB,
+  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES                        = 0x000090CB,
+  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS                         = 0x000090CC,
+  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT                     = 0x000090CC,
+  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES                     = 0x000090CC,
+  GL_MAX_GEOMETRY_IMAGE_UNIFORMS                                = 0x000090CD,
+  GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT                            = 0x000090CD,
+  GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES                            = 0x000090CD,
+  GL_MAX_FRAGMENT_IMAGE_UNIFORMS                                = 0x000090CE,
+  GL_MAX_COMBINED_IMAGE_UNIFORMS                                = 0x000090CF,
+  GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV                        = 0x000090D0,
+  GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV                               = 0x000090D1,
+  GL_SHADER_STORAGE_BUFFER                                      = 0x000090D2,
+  GL_SHADER_STORAGE_BUFFER_BINDING                              = 0x000090D3,
+  GL_SHADER_STORAGE_BUFFER_START                                = 0x000090D4,
+  GL_SHADER_STORAGE_BUFFER_SIZE                                 = 0x000090D5,
+  GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS                           = 0x000090D6,
+  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS                         = 0x000090D7,
+  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT                     = 0x000090D7,
+  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES                     = 0x000090D7,
+  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS                     = 0x000090D8,
+  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT                 = 0x000090D8,
+  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES                 = 0x000090D8,
+  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS                  = 0x000090D9,
+  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT              = 0x000090D9,
+  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES              = 0x000090D9,
+  GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS                         = 0x000090DA,
+  GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS                          = 0x000090DB,
+  GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS                         = 0x000090DC,
+  GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS                         = 0x000090DD,
+  GL_MAX_SHADER_STORAGE_BLOCK_SIZE                              = 0x000090DE,
+  GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT                     = 0x000090DF,
+  GL_SYNC_X11_FENCE_EXT                                         = 0x000090E1,
+  GL_DEPTH_STENCIL_TEXTURE_MODE                                 = 0x000090EA,
+  GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS                         = 0x000090EB,
+  GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB                    = 0x000090EB,
+  GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER                 = 0x000090EC,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER         = 0x000090ED,
+  GL_DISPATCH_INDIRECT_BUFFER                                   = 0x000090EE,
+  GL_DISPATCH_INDIRECT_BUFFER_BINDING                           = 0x000090EF,
+  GL_COLOR_ATTACHMENT_EXT                                       = 0x000090F0,
+  GL_MULTIVIEW_EXT                                              = 0x000090F1,
+  GL_MAX_MULTIVIEW_BUFFERS_EXT                                  = 0x000090F2,
+  GL_CONTEXT_ROBUST_ACCESS                                      = 0x000090F3,
+  GL_CONTEXT_ROBUST_ACCESS_EXT                                  = 0x000090F3,
+  GL_CONTEXT_ROBUST_ACCESS_KHR                                  = 0x000090F3,
+  GL_COMPUTE_PROGRAM_NV                                         = 0x000090FB,
+  GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV                        = 0x000090FC,
+  GL_TEXTURE_2D_MULTISAMPLE                                     = 0x00009100,
+  GL_PROXY_TEXTURE_2D_MULTISAMPLE                               = 0x00009101,
+  GL_TEXTURE_2D_MULTISAMPLE_ARRAY                               = 0x00009102,
+  GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES                           = 0x00009102,
+  GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY                         = 0x00009103,
+  GL_TEXTURE_BINDING_2D_MULTISAMPLE                             = 0x00009104,
+  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY                       = 0x00009105,
+  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES                   = 0x00009105,
+  GL_TEXTURE_SAMPLES                                            = 0x00009106,
+  GL_TEXTURE_FIXED_SAMPLE_LOCATIONS                             = 0x00009107,
+  GL_SAMPLER_2D_MULTISAMPLE                                     = 0x00009108,
+  GL_INT_SAMPLER_2D_MULTISAMPLE                                 = 0x00009109,
+  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE                        = 0x0000910A,
+  GL_SAMPLER_2D_MULTISAMPLE_ARRAY                               = 0x0000910B,
+  GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES                           = 0x0000910B,
+  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY                           = 0x0000910C,
+  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES                       = 0x0000910C,
+  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY                  = 0x0000910D,
+  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES              = 0x0000910D,
+  GL_MAX_COLOR_TEXTURE_SAMPLES                                  = 0x0000910E,
+  GL_MAX_DEPTH_TEXTURE_SAMPLES                                  = 0x0000910F,
+  GL_MAX_INTEGER_SAMPLES                                        = 0x00009110,
+  GL_MAX_SERVER_WAIT_TIMEOUT                                    = 0x00009111,
+  GL_MAX_SERVER_WAIT_TIMEOUT_APPLE                              = 0x00009111,
+  GL_OBJECT_TYPE                                                = 0x00009112,
+  GL_OBJECT_TYPE_APPLE                                          = 0x00009112,
+  GL_SYNC_CONDITION                                             = 0x00009113,
+  GL_SYNC_CONDITION_APPLE                                       = 0x00009113,
+  GL_SYNC_STATUS                                                = 0x00009114,
+  GL_SYNC_STATUS_APPLE                                          = 0x00009114,
+  GL_SYNC_FLAGS                                                 = 0x00009115,
+  GL_SYNC_FLAGS_APPLE                                           = 0x00009115,
+  GL_SYNC_FENCE                                                 = 0x00009116,
+  GL_SYNC_FENCE_APPLE                                           = 0x00009116,
+  GL_SYNC_GPU_COMMANDS_COMPLETE                                 = 0x00009117,
+  GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE                           = 0x00009117,
+  GL_UNSIGNALED                                                 = 0x00009118,
+  GL_UNSIGNALED_APPLE                                           = 0x00009118,
+  GL_SIGNALED                                                   = 0x00009119,
+  GL_SIGNALED_APPLE                                             = 0x00009119,
+  GL_ALREADY_SIGNALED                                           = 0x0000911A,
+  GL_ALREADY_SIGNALED_APPLE                                     = 0x0000911A,
+  GL_TIMEOUT_EXPIRED                                            = 0x0000911B,
+  GL_TIMEOUT_EXPIRED_APPLE                                      = 0x0000911B,
+  GL_CONDITION_SATISFIED                                        = 0x0000911C,
+  GL_CONDITION_SATISFIED_APPLE                                  = 0x0000911C,
+  GL_WAIT_FAILED                                                = 0x0000911D,
+  GL_WAIT_FAILED_APPLE                                          = 0x0000911D,
+  GL_BUFFER_ACCESS_FLAGS                                        = 0x0000911F,
+  GL_BUFFER_MAP_LENGTH                                          = 0x00009120,
+  GL_BUFFER_MAP_OFFSET                                          = 0x00009121,
+  GL_MAX_VERTEX_OUTPUT_COMPONENTS                               = 0x00009122,
+  GL_MAX_GEOMETRY_INPUT_COMPONENTS                              = 0x00009123,
+  GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT                          = 0x00009123,
+  GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES                          = 0x00009123,
+  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS                             = 0x00009124,
+  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT                         = 0x00009124,
+  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES                         = 0x00009124,
+  GL_MAX_FRAGMENT_INPUT_COMPONENTS                              = 0x00009125,
+  GL_CONTEXT_PROFILE_MASK                                       = 0x00009126,
+  GL_UNPACK_COMPRESSED_BLOCK_WIDTH                              = 0x00009127,
+  GL_UNPACK_COMPRESSED_BLOCK_HEIGHT                             = 0x00009128,
+  GL_UNPACK_COMPRESSED_BLOCK_DEPTH                              = 0x00009129,
+  GL_UNPACK_COMPRESSED_BLOCK_SIZE                               = 0x0000912A,
+  GL_PACK_COMPRESSED_BLOCK_WIDTH                                = 0x0000912B,
+  GL_PACK_COMPRESSED_BLOCK_HEIGHT                               = 0x0000912C,
+  GL_PACK_COMPRESSED_BLOCK_DEPTH                                = 0x0000912D,
+  GL_PACK_COMPRESSED_BLOCK_SIZE                                 = 0x0000912E,
+  GL_TEXTURE_IMMUTABLE_FORMAT                                   = 0x0000912F,
+  GL_TEXTURE_IMMUTABLE_FORMAT_EXT                               = 0x0000912F,
+  GL_SGX_PROGRAM_BINARY_IMG                                     = 0x00009130,
+  GL_RENDERBUFFER_SAMPLES_IMG                                   = 0x00009133,
+  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG                     = 0x00009134,
+  GL_MAX_SAMPLES_IMG                                            = 0x00009135,
+  GL_TEXTURE_SAMPLES_IMG                                        = 0x00009136,
+  GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG                           = 0x00009137,
+  GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG                           = 0x00009138,
+  GL_MAX_DEBUG_MESSAGE_LENGTH                                   = 0x00009143,
+  GL_MAX_DEBUG_MESSAGE_LENGTH_AMD                               = 0x00009143,
+  GL_MAX_DEBUG_MESSAGE_LENGTH_ARB                               = 0x00009143,
+  GL_MAX_DEBUG_MESSAGE_LENGTH_KHR                               = 0x00009143,
+  GL_MAX_DEBUG_LOGGED_MESSAGES                                  = 0x00009144,
+  GL_MAX_DEBUG_LOGGED_MESSAGES_AMD                              = 0x00009144,
+  GL_MAX_DEBUG_LOGGED_MESSAGES_ARB                              = 0x00009144,
+  GL_MAX_DEBUG_LOGGED_MESSAGES_KHR                              = 0x00009144,
+  GL_DEBUG_LOGGED_MESSAGES                                      = 0x00009145,
+  GL_DEBUG_LOGGED_MESSAGES_AMD                                  = 0x00009145,
+  GL_DEBUG_LOGGED_MESSAGES_ARB                                  = 0x00009145,
+  GL_DEBUG_LOGGED_MESSAGES_KHR                                  = 0x00009145,
+  GL_DEBUG_SEVERITY_HIGH                                        = 0x00009146,
+  GL_DEBUG_SEVERITY_HIGH_AMD                                    = 0x00009146,
+  GL_DEBUG_SEVERITY_HIGH_ARB                                    = 0x00009146,
+  GL_DEBUG_SEVERITY_HIGH_KHR                                    = 0x00009146,
+  GL_DEBUG_SEVERITY_MEDIUM                                      = 0x00009147,
+  GL_DEBUG_SEVERITY_MEDIUM_AMD                                  = 0x00009147,
+  GL_DEBUG_SEVERITY_MEDIUM_ARB                                  = 0x00009147,
+  GL_DEBUG_SEVERITY_MEDIUM_KHR                                  = 0x00009147,
+  GL_DEBUG_SEVERITY_LOW                                         = 0x00009148,
+  GL_DEBUG_SEVERITY_LOW_AMD                                     = 0x00009148,
+  GL_DEBUG_SEVERITY_LOW_ARB                                     = 0x00009148,
+  GL_DEBUG_SEVERITY_LOW_KHR                                     = 0x00009148,
+  GL_DEBUG_CATEGORY_API_ERROR_AMD                               = 0x00009149,
+  GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD                           = 0x0000914A,
+  GL_DEBUG_CATEGORY_DEPRECATION_AMD                             = 0x0000914B,
+  GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD                      = 0x0000914C,
+  GL_DEBUG_CATEGORY_PERFORMANCE_AMD                             = 0x0000914D,
+  GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD                         = 0x0000914E,
+  GL_DEBUG_CATEGORY_APPLICATION_AMD                             = 0x0000914F,
+  GL_DEBUG_CATEGORY_OTHER_AMD                                   = 0x00009150,
+  GL_BUFFER_OBJECT_EXT                                          = 0x00009151,
+  GL_DATA_BUFFER_AMD                                            = 0x00009151,
+  GL_PERFORMANCE_MONITOR_AMD                                    = 0x00009152,
+  GL_QUERY_OBJECT_AMD                                           = 0x00009153,
+  GL_QUERY_OBJECT_EXT                                           = 0x00009153,
+  GL_VERTEX_ARRAY_OBJECT_AMD                                    = 0x00009154,
+  GL_VERTEX_ARRAY_OBJECT_EXT                                    = 0x00009154,
+  GL_SAMPLER_OBJECT_AMD                                         = 0x00009155,
+  GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD                         = 0x00009160,
+  GL_QUERY_BUFFER                                               = 0x00009192,
+  GL_QUERY_BUFFER_AMD                                           = 0x00009192,
+  GL_QUERY_BUFFER_BINDING                                       = 0x00009193,
+  GL_QUERY_BUFFER_BINDING_AMD                                   = 0x00009193,
+  GL_QUERY_RESULT_NO_WAIT                                       = 0x00009194,
+  GL_QUERY_RESULT_NO_WAIT_AMD                                   = 0x00009194,
+  GL_VIRTUAL_PAGE_SIZE_X_ARB                                    = 0x00009195,
+  GL_VIRTUAL_PAGE_SIZE_X_EXT                                    = 0x00009195,
+  GL_VIRTUAL_PAGE_SIZE_X_AMD                                    = 0x00009195,
+  GL_VIRTUAL_PAGE_SIZE_Y_ARB                                    = 0x00009196,
+  GL_VIRTUAL_PAGE_SIZE_Y_EXT                                    = 0x00009196,
+  GL_VIRTUAL_PAGE_SIZE_Y_AMD                                    = 0x00009196,
+  GL_VIRTUAL_PAGE_SIZE_Z_ARB                                    = 0x00009197,
+  GL_VIRTUAL_PAGE_SIZE_Z_EXT                                    = 0x00009197,
+  GL_VIRTUAL_PAGE_SIZE_Z_AMD                                    = 0x00009197,
+  GL_MAX_SPARSE_TEXTURE_SIZE_ARB                                = 0x00009198,
+  GL_MAX_SPARSE_TEXTURE_SIZE_EXT                                = 0x00009198,
+  GL_MAX_SPARSE_TEXTURE_SIZE_AMD                                = 0x00009198,
+  GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB                             = 0x00009199,
+  GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT                             = 0x00009199,
+  GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD                             = 0x00009199,
+  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS                            = 0x0000919A,
+  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB                        = 0x0000919A,
+  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT                        = 0x0000919A,
+  GL_MIN_SPARSE_LEVEL_AMD                                       = 0x0000919B,
+  GL_MIN_LOD_WARNING_AMD                                        = 0x0000919C,
+  GL_TEXTURE_BUFFER_OFFSET                                      = 0x0000919D,
+  GL_TEXTURE_BUFFER_OFFSET_EXT                                  = 0x0000919D,
+  GL_TEXTURE_BUFFER_OFFSET_OES                                  = 0x0000919D,
+  GL_TEXTURE_BUFFER_SIZE                                        = 0x0000919E,
+  GL_TEXTURE_BUFFER_SIZE_EXT                                    = 0x0000919E,
+  GL_TEXTURE_BUFFER_SIZE_OES                                    = 0x0000919E,
+  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT                            = 0x0000919F,
+  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT                        = 0x0000919F,
+  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES                        = 0x0000919F,
+  GL_STREAM_RASTERIZATION_AMD                                   = 0x000091A0,
+  GL_VERTEX_ELEMENT_SWIZZLE_AMD                                 = 0x000091A4,
+  GL_VERTEX_ID_SWIZZLE_AMD                                      = 0x000091A5,
+  GL_TEXTURE_SPARSE_ARB                                         = 0x000091A6,
+  GL_TEXTURE_SPARSE_EXT                                         = 0x000091A6,
+  GL_VIRTUAL_PAGE_SIZE_INDEX_ARB                                = 0x000091A7,
+  GL_VIRTUAL_PAGE_SIZE_INDEX_EXT                                = 0x000091A7,
+  GL_NUM_VIRTUAL_PAGE_SIZES_ARB                                 = 0x000091A8,
+  GL_NUM_VIRTUAL_PAGE_SIZES_EXT                                 = 0x000091A8,
+  GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB                 = 0x000091A9,
+  GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT                 = 0x000091A9,
+  GL_NUM_SPARSE_LEVELS_ARB                                      = 0x000091AA,
+  GL_NUM_SPARSE_LEVELS_EXT                                      = 0x000091AA,
+  GL_COMPUTE_SHADER                                             = 0x000091B9,
+  GL_MAX_COMPUTE_UNIFORM_BLOCKS                                 = 0x000091BB,
+  GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS                            = 0x000091BC,
+  GL_MAX_COMPUTE_IMAGE_UNIFORMS                                 = 0x000091BD,
+  GL_MAX_COMPUTE_WORK_GROUP_COUNT                               = 0x000091BE,
+  GL_MAX_COMPUTE_WORK_GROUP_SIZE                                = 0x000091BF,
+  GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB                           = 0x000091BF,
+  GL_UNPACK_FLIP_Y_WEBGL                                        = 0x00009240,
+  GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL                             = 0x00009241,
+  GL_CONTEXT_LOST_WEBGL                                         = 0x00009242,
+  GL_UNPACK_COLORSPACE_CONVERSION_WEBGL                         = 0x00009243,
+  GL_BROWSER_DEFAULT_WEBGL                                      = 0x00009244,
+  GL_SHADER_BINARY_DMP                                          = 0x00009250,
+  GL_SMAPHS30_PROGRAM_BINARY_DMP                                = 0x00009251,
+  GL_SMAPHS_PROGRAM_BINARY_DMP                                  = 0x00009252,
+  GL_DMP_PROGRAM_BINARY_DMP                                     = 0x00009253,
+  GL_GCCSO_SHADER_BINARY_FJ                                     = 0x00009260,
+  GL_COMPRESSED_R11_EAC                                         = 0x00009270,
+  GL_COMPRESSED_R11_EAC_OES                                     = 0x00009270,
+  GL_COMPRESSED_SIGNED_R11_EAC                                  = 0x00009271,
+  GL_COMPRESSED_SIGNED_R11_EAC_OES                              = 0x00009271,
+  GL_COMPRESSED_RG11_EAC                                        = 0x00009272,
+  GL_COMPRESSED_RG11_EAC_OES                                    = 0x00009272,
+  GL_COMPRESSED_SIGNED_RG11_EAC                                 = 0x00009273,
+  GL_COMPRESSED_SIGNED_RG11_EAC_OES                             = 0x00009273,
+  GL_COMPRESSED_RGB8_ETC2                                       = 0x00009274,
+  GL_COMPRESSED_RGB8_ETC2_OES                                   = 0x00009274,
+  GL_COMPRESSED_SRGB8_ETC2                                      = 0x00009275,
+  GL_COMPRESSED_SRGB8_ETC2_OES                                  = 0x00009275,
+  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2                   = 0x00009276,
+  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES               = 0x00009276,
+  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2                  = 0x00009277,
+  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES              = 0x00009277,
+  GL_COMPRESSED_RGBA8_ETC2_EAC                                  = 0x00009278,
+  GL_COMPRESSED_RGBA8_ETC2_EAC_OES                              = 0x00009278,
+  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC                           = 0x00009279,
+  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES                       = 0x00009279,
+  GL_BLEND_PREMULTIPLIED_SRC_NV                                 = 0x00009280,
+  GL_BLEND_OVERLAP_NV                                           = 0x00009281,
+  GL_UNCORRELATED_NV                                            = 0x00009282,
+  GL_DISJOINT_NV                                                = 0x00009283,
+  GL_CONJOINT_NV                                                = 0x00009284,
+  GL_BLEND_ADVANCED_COHERENT_KHR                                = 0x00009285,
+  GL_BLEND_ADVANCED_COHERENT_NV                                 = 0x00009285,
+  GL_SRC_NV                                                     = 0x00009286,
+  GL_DST_NV                                                     = 0x00009287,
+  GL_SRC_OVER_NV                                                = 0x00009288,
+  GL_DST_OVER_NV                                                = 0x00009289,
+  GL_SRC_IN_NV                                                  = 0x0000928A,
+  GL_DST_IN_NV                                                  = 0x0000928B,
+  GL_SRC_OUT_NV                                                 = 0x0000928C,
+  GL_DST_OUT_NV                                                 = 0x0000928D,
+  GL_SRC_ATOP_NV                                                = 0x0000928E,
+  GL_DST_ATOP_NV                                                = 0x0000928F,
+  GL_PLUS_NV                                                    = 0x00009291,
+  GL_PLUS_DARKER_NV                                             = 0x00009292,
+  GL_MULTIPLY_KHR                                               = 0x00009294,
+  GL_MULTIPLY_NV                                                = 0x00009294,
+  GL_SCREEN_KHR                                                 = 0x00009295,
+  GL_SCREEN_NV                                                  = 0x00009295,
+  GL_OVERLAY_KHR                                                = 0x00009296,
+  GL_OVERLAY_NV                                                 = 0x00009296,
+  GL_DARKEN_KHR                                                 = 0x00009297,
+  GL_DARKEN_NV                                                  = 0x00009297,
+  GL_LIGHTEN_KHR                                                = 0x00009298,
+  GL_LIGHTEN_NV                                                 = 0x00009298,
+  GL_COLORDODGE_KHR                                             = 0x00009299,
+  GL_COLORDODGE_NV                                              = 0x00009299,
+  GL_COLORBURN_KHR                                              = 0x0000929A,
+  GL_COLORBURN_NV                                               = 0x0000929A,
+  GL_HARDLIGHT_KHR                                              = 0x0000929B,
+  GL_HARDLIGHT_NV                                               = 0x0000929B,
+  GL_SOFTLIGHT_KHR                                              = 0x0000929C,
+  GL_SOFTLIGHT_NV                                               = 0x0000929C,
+  GL_DIFFERENCE_KHR                                             = 0x0000929E,
+  GL_DIFFERENCE_NV                                              = 0x0000929E,
+  GL_MINUS_NV                                                   = 0x0000929F,
+  GL_EXCLUSION_KHR                                              = 0x000092A0,
+  GL_EXCLUSION_NV                                               = 0x000092A0,
+  GL_CONTRAST_NV                                                = 0x000092A1,
+  GL_INVERT_RGB_NV                                              = 0x000092A3,
+  GL_LINEARDODGE_NV                                             = 0x000092A4,
+  GL_LINEARBURN_NV                                              = 0x000092A5,
+  GL_VIVIDLIGHT_NV                                              = 0x000092A6,
+  GL_LINEARLIGHT_NV                                             = 0x000092A7,
+  GL_PINLIGHT_NV                                                = 0x000092A8,
+  GL_HARDMIX_NV                                                 = 0x000092A9,
+  GL_HSL_HUE_KHR                                                = 0x000092AD,
+  GL_HSL_HUE_NV                                                 = 0x000092AD,
+  GL_HSL_SATURATION_KHR                                         = 0x000092AE,
+  GL_HSL_SATURATION_NV                                          = 0x000092AE,
+  GL_HSL_COLOR_KHR                                              = 0x000092AF,
+  GL_HSL_COLOR_NV                                               = 0x000092AF,
+  GL_HSL_LUMINOSITY_KHR                                         = 0x000092B0,
+  GL_HSL_LUMINOSITY_NV                                          = 0x000092B0,
+  GL_PLUS_CLAMPED_NV                                            = 0x000092B1,
+  GL_PLUS_CLAMPED_ALPHA_NV                                      = 0x000092B2,
+  GL_MINUS_CLAMPED_NV                                           = 0x000092B3,
+  GL_INVERT_OVG_NV                                              = 0x000092B4,
+  GL_PRIMITIVE_BOUNDING_BOX_EXT                                 = 0x000092BE,
+  GL_PRIMITIVE_BOUNDING_BOX_OES                                 = 0x000092BE,
+  GL_ATOMIC_COUNTER_BUFFER                                      = 0x000092C0,
+  GL_ATOMIC_COUNTER_BUFFER_BINDING                              = 0x000092C1,
+  GL_ATOMIC_COUNTER_BUFFER_START                                = 0x000092C2,
+  GL_ATOMIC_COUNTER_BUFFER_SIZE                                 = 0x000092C3,
+  GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE                            = 0x000092C4,
+  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS               = 0x000092C5,
+  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES        = 0x000092C6,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER          = 0x000092C7,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER    = 0x000092C8,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x000092C9,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER        = 0x000092CA,
+  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER        = 0x000092CB,
+  GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS                          = 0x000092CC,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS                    = 0x000092CD,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT                = 0x000092CD,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES                = 0x000092CD,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS                 = 0x000092CE,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT             = 0x000092CE,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES             = 0x000092CE,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS                        = 0x000092CF,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT                    = 0x000092CF,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES                    = 0x000092CF,
+  GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS                        = 0x000092D0,
+  GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS                        = 0x000092D1,
+  GL_MAX_VERTEX_ATOMIC_COUNTERS                                 = 0x000092D2,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS                           = 0x000092D3,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT                       = 0x000092D3,
+  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES                       = 0x000092D3,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS                        = 0x000092D4,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT                    = 0x000092D4,
+  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES                    = 0x000092D4,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTERS                               = 0x000092D5,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT                           = 0x000092D5,
+  GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES                           = 0x000092D5,
+  GL_MAX_FRAGMENT_ATOMIC_COUNTERS                               = 0x000092D6,
+  GL_MAX_COMBINED_ATOMIC_COUNTERS                               = 0x000092D7,
+  GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE                             = 0x000092D8,
+  GL_ACTIVE_ATOMIC_COUNTER_BUFFERS                              = 0x000092D9,
+  GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX                        = 0x000092DA,
+  GL_UNSIGNED_INT_ATOMIC_COUNTER                                = 0x000092DB,
+  GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS                         = 0x000092DC,
+  GL_FRAGMENT_COVERAGE_TO_COLOR_NV                              = 0x000092DD,
+  GL_FRAGMENT_COVERAGE_COLOR_NV                                 = 0x000092DE,
+  GL_DEBUG_OUTPUT                                               = 0x000092E0,
+  GL_DEBUG_OUTPUT_KHR                                           = 0x000092E0,
+  GL_UNIFORM                                                    = 0x000092E1,
+  GL_UNIFORM_BLOCK                                              = 0x000092E2,
+  GL_PROGRAM_INPUT                                              = 0x000092E3,
+  GL_PROGRAM_OUTPUT                                             = 0x000092E4,
+  GL_BUFFER_VARIABLE                                            = 0x000092E5,
+  GL_SHADER_STORAGE_BLOCK                                       = 0x000092E6,
+  GL_IS_PER_PATCH                                               = 0x000092E7,
+  GL_IS_PER_PATCH_EXT                                           = 0x000092E7,
+  GL_IS_PER_PATCH_OES                                           = 0x000092E7,
+  GL_VERTEX_SUBROUTINE                                          = 0x000092E8,
+  GL_TESS_CONTROL_SUBROUTINE                                    = 0x000092E9,
+  GL_TESS_EVALUATION_SUBROUTINE                                 = 0x000092EA,
+  GL_GEOMETRY_SUBROUTINE                                        = 0x000092EB,
+  GL_FRAGMENT_SUBROUTINE                                        = 0x000092EC,
+  GL_COMPUTE_SUBROUTINE                                         = 0x000092ED,
+  GL_VERTEX_SUBROUTINE_UNIFORM                                  = 0x000092EE,
+  GL_TESS_CONTROL_SUBROUTINE_UNIFORM                            = 0x000092EF,
+  GL_TESS_EVALUATION_SUBROUTINE_UNIFORM                         = 0x000092F0,
+  GL_GEOMETRY_SUBROUTINE_UNIFORM                                = 0x000092F1,
+  GL_FRAGMENT_SUBROUTINE_UNIFORM                                = 0x000092F2,
+  GL_COMPUTE_SUBROUTINE_UNIFORM                                 = 0x000092F3,
+  GL_TRANSFORM_FEEDBACK_VARYING                                 = 0x000092F4,
+  GL_ACTIVE_RESOURCES                                           = 0x000092F5,
+  GL_MAX_NAME_LENGTH                                            = 0x000092F6,
+  GL_MAX_NUM_ACTIVE_VARIABLES                                   = 0x000092F7,
+  GL_MAX_NUM_COMPATIBLE_SUBROUTINES                             = 0x000092F8,
+  GL_NAME_LENGTH                                                = 0x000092F9,
+  GL_TYPE                                                       = 0x000092FA,
+  GL_ARRAY_SIZE                                                 = 0x000092FB,
+  GL_OFFSET                                                     = 0x000092FC,
+  GL_BLOCK_INDEX                                                = 0x000092FD,
+  GL_ARRAY_STRIDE                                               = 0x000092FE,
+  GL_MATRIX_STRIDE                                              = 0x000092FF,
+  GL_IS_ROW_MAJOR                                               = 0x00009300,
+  GL_ATOMIC_COUNTER_BUFFER_INDEX                                = 0x00009301,
+  GL_BUFFER_BINDING                                             = 0x00009302,
+  GL_BUFFER_DATA_SIZE                                           = 0x00009303,
+  GL_NUM_ACTIVE_VARIABLES                                       = 0x00009304,
+  GL_ACTIVE_VARIABLES                                           = 0x00009305,
+  GL_REFERENCED_BY_VERTEX_SHADER                                = 0x00009306,
+  GL_REFERENCED_BY_TESS_CONTROL_SHADER                          = 0x00009307,
+  GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT                      = 0x00009307,
+  GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES                      = 0x00009307,
+  GL_REFERENCED_BY_TESS_EVALUATION_SHADER                       = 0x00009308,
+  GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT                   = 0x00009308,
+  GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES                   = 0x00009308,
+  GL_REFERENCED_BY_GEOMETRY_SHADER                              = 0x00009309,
+  GL_REFERENCED_BY_GEOMETRY_SHADER_EXT                          = 0x00009309,
+  GL_REFERENCED_BY_GEOMETRY_SHADER_OES                          = 0x00009309,
+  GL_REFERENCED_BY_FRAGMENT_SHADER                              = 0x0000930A,
+  GL_REFERENCED_BY_COMPUTE_SHADER                               = 0x0000930B,
+  GL_TOP_LEVEL_ARRAY_SIZE                                       = 0x0000930C,
+  GL_TOP_LEVEL_ARRAY_STRIDE                                     = 0x0000930D,
+  GL_LOCATION                                                   = 0x0000930E,
+  GL_LOCATION_INDEX                                             = 0x0000930F,
+  GL_FRAMEBUFFER_DEFAULT_WIDTH                                  = 0x00009310,
+  GL_FRAMEBUFFER_DEFAULT_HEIGHT                                 = 0x00009311,
+  GL_FRAMEBUFFER_DEFAULT_LAYERS                                 = 0x00009312,
+  GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT                             = 0x00009312,
+  GL_FRAMEBUFFER_DEFAULT_LAYERS_OES                             = 0x00009312,
+  GL_FRAMEBUFFER_DEFAULT_SAMPLES                                = 0x00009313,
+  GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS                 = 0x00009314,
+  GL_MAX_FRAMEBUFFER_WIDTH                                      = 0x00009315,
+  GL_MAX_FRAMEBUFFER_HEIGHT                                     = 0x00009316,
+  GL_MAX_FRAMEBUFFER_LAYERS                                     = 0x00009317,
+  GL_MAX_FRAMEBUFFER_LAYERS_EXT                                 = 0x00009317,
+  GL_MAX_FRAMEBUFFER_LAYERS_OES                                 = 0x00009317,
+  GL_MAX_FRAMEBUFFER_SAMPLES                                    = 0x00009318,
+  GL_RASTER_MULTISAMPLE_EXT                                     = 0x00009327,
+  GL_RASTER_SAMPLES_EXT                                         = 0x00009328,
+  GL_MAX_RASTER_SAMPLES_EXT                                     = 0x00009329,
+  GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT                          = 0x0000932A,
+  GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT                      = 0x0000932B,
+  GL_EFFECTIVE_RASTER_SAMPLES_EXT                               = 0x0000932C,
+  GL_DEPTH_SAMPLES_NV                                           = 0x0000932D,
+  GL_STENCIL_SAMPLES_NV                                         = 0x0000932E,
+  GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV                           = 0x0000932F,
+  GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV                         = 0x00009330,
+  GL_COVERAGE_MODULATION_TABLE_NV                               = 0x00009331,
+  GL_COVERAGE_MODULATION_NV                                     = 0x00009332,
+  GL_COVERAGE_MODULATION_TABLE_SIZE_NV                          = 0x00009333,
+  GL_WARP_SIZE_NV                                               = 0x00009339,
+  GL_WARPS_PER_SM_NV                                            = 0x0000933A,
+  GL_SM_COUNT_NV                                                = 0x0000933B,
+  GL_FILL_RECTANGLE_NV                                          = 0x0000933C,
+  GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV                           = 0x0000933D,
+  GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV                        = 0x0000933E,
+  GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV                       = 0x0000933F,
+  GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV                 = 0x00009340,
+  GL_PROGRAMMABLE_SAMPLE_LOCATION_NV                            = 0x00009341,
+  GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV               = 0x00009342,
+  GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV                  = 0x00009343,
+  GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB                 = 0x00009344,
+  GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB                        = 0x00009345,
+  GL_CONSERVATIVE_RASTERIZATION_NV                              = 0x00009346,
+  GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV                          = 0x00009347,
+  GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV                          = 0x00009348,
+  GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV                        = 0x00009349,
+  GL_LOCATION_COMPONENT                                         = 0x0000934A,
+  GL_TRANSFORM_FEEDBACK_BUFFER_INDEX                            = 0x0000934B,
+  GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE                           = 0x0000934C,
+  GL_CLIP_ORIGIN                                                = 0x0000935C,
+  GL_CLIP_DEPTH_MODE                                            = 0x0000935D,
+  GL_NEGATIVE_ONE_TO_ONE                                        = 0x0000935E,
+  GL_ZERO_TO_ONE                                                = 0x0000935F,
+  GL_CLEAR_TEXTURE                                              = 0x00009365,
+  GL_FONT_GLYPHS_AVAILABLE_NV                                   = 0x00009368,
+  GL_FONT_TARGET_UNAVAILABLE_NV                                 = 0x00009369,
+  GL_FONT_UNAVAILABLE_NV                                        = 0x0000936A,
+  GL_FONT_UNINTELLIGIBLE_NV                                     = 0x0000936B,
+  GL_STANDARD_FONT_FORMAT_NV                                    = 0x0000936C,
+  GL_FRAGMENT_INPUT_NV                                          = 0x0000936D,
+  GL_UNIFORM_BUFFER_UNIFIED_NV                                  = 0x0000936E,
+  GL_UNIFORM_BUFFER_ADDRESS_NV                                  = 0x0000936F,
+  GL_UNIFORM_BUFFER_LENGTH_NV                                   = 0x00009370,
+  GL_MULTISAMPLES_NV                                            = 0x00009371,
+  GL_SUPERSAMPLE_SCALE_X_NV                                     = 0x00009372,
+  GL_SUPERSAMPLE_SCALE_Y_NV                                     = 0x00009373,
+  GL_CONFORMANT_NV                                              = 0x00009374,
+  GL_NUM_SAMPLE_COUNTS                                          = 0x00009380,
+  GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE                      = 0x000093A0,
+  GL_BGRA8_EXT                                                  = 0x000093A1,
+  GL_TEXTURE_USAGE_ANGLE                                        = 0x000093A2,
+  GL_FRAMEBUFFER_ATTACHMENT_ANGLE                               = 0x000093A3,
+  GL_PACK_REVERSE_ROW_ORDER_ANGLE                               = 0x000093A4,
+  GL_PROGRAM_BINARY_ANGLE                                       = 0x000093A6,
+  GL_COMPRESSED_RGBA_ASTC_4x4_KHR                               = 0x000093B0,
+  GL_COMPRESSED_RGBA_ASTC_5x4_KHR                               = 0x000093B1,
+  GL_COMPRESSED_RGBA_ASTC_5x5_KHR                               = 0x000093B2,
+  GL_COMPRESSED_RGBA_ASTC_6x5_KHR                               = 0x000093B3,
+  GL_COMPRESSED_RGBA_ASTC_6x6_KHR                               = 0x000093B4,
+  GL_COMPRESSED_RGBA_ASTC_8x5_KHR                               = 0x000093B5,
+  GL_COMPRESSED_RGBA_ASTC_8x6_KHR                               = 0x000093B6,
+  GL_COMPRESSED_RGBA_ASTC_8x8_KHR                               = 0x000093B7,
+  GL_COMPRESSED_RGBA_ASTC_10x5_KHR                              = 0x000093B8,
+  GL_COMPRESSED_RGBA_ASTC_10x6_KHR                              = 0x000093B9,
+  GL_COMPRESSED_RGBA_ASTC_10x8_KHR                              = 0x000093BA,
+  GL_COMPRESSED_RGBA_ASTC_10x10_KHR                             = 0x000093BB,
+  GL_COMPRESSED_RGBA_ASTC_12x10_KHR                             = 0x000093BC,
+  GL_COMPRESSED_RGBA_ASTC_12x12_KHR                             = 0x000093BD,
+  GL_COMPRESSED_RGBA_ASTC_3x3x3_OES                             = 0x000093C0,
+  GL_COMPRESSED_RGBA_ASTC_4x3x3_OES                             = 0x000093C1,
+  GL_COMPRESSED_RGBA_ASTC_4x4x3_OES                             = 0x000093C2,
+  GL_COMPRESSED_RGBA_ASTC_4x4x4_OES                             = 0x000093C3,
+  GL_COMPRESSED_RGBA_ASTC_5x4x4_OES                             = 0x000093C4,
+  GL_COMPRESSED_RGBA_ASTC_5x5x4_OES                             = 0x000093C5,
+  GL_COMPRESSED_RGBA_ASTC_5x5x5_OES                             = 0x000093C6,
+  GL_COMPRESSED_RGBA_ASTC_6x5x5_OES                             = 0x000093C7,
+  GL_COMPRESSED_RGBA_ASTC_6x6x5_OES                             = 0x000093C8,
+  GL_COMPRESSED_RGBA_ASTC_6x6x6_OES                             = 0x000093C9,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR                       = 0x000093D0,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR                       = 0x000093D1,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR                       = 0x000093D2,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR                       = 0x000093D3,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR                       = 0x000093D4,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR                       = 0x000093D5,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR                       = 0x000093D6,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR                       = 0x000093D7,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR                      = 0x000093D8,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR                      = 0x000093D9,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR                      = 0x000093DA,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR                     = 0x000093DB,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR                     = 0x000093DC,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR                     = 0x000093DD,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES                     = 0x000093E0,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES                     = 0x000093E1,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES                     = 0x000093E2,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES                     = 0x000093E3,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES                     = 0x000093E4,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES                     = 0x000093E5,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES                     = 0x000093E6,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES                     = 0x000093E7,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES                     = 0x000093E8,
+  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES                     = 0x000093E9,
+  GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG                     = 0x000093F0,
+  GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG                     = 0x000093F1,
+  GL_PERFQUERY_COUNTER_EVENT_INTEL                              = 0x000094F0,
+  GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL                      = 0x000094F1,
+  GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL                       = 0x000094F2,
+  GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL                         = 0x000094F3,
+  GL_PERFQUERY_COUNTER_RAW_INTEL                                = 0x000094F4,
+  GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL                          = 0x000094F5,
+  GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL                        = 0x000094F8,
+  GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL                        = 0x000094F9,
+  GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL                         = 0x000094FA,
+  GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL                        = 0x000094FB,
+  GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL                        = 0x000094FC,
+  GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL                      = 0x000094FD,
+  GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL                    = 0x000094FE,
+  GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL                    = 0x000094FF,
+  GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL                      = 0x00009500,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR               = 0x00009630,
+  GL_MAX_VIEWS_OVR                                              = 0x00009631,
+  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR         = 0x00009632,
+  GL_GS_SHADER_BINARY_MTK                                       = 0x00009640,
+  GL_GS_PROGRAM_BINARY_MTK                                      = 0x00009641,
+  GL_RASTER_POSITION_UNCLIPPED_IBM                              = 0x00019262,
+  GL_CULL_VERTEX_IBM                                            = 0x0001928A,
+  GL_ALL_STATIC_DATA_IBM                                        = 0x00019294,
+  GL_STATIC_VERTEX_ARRAY_IBM                                    = 0x00019295,
+  GL_VERTEX_ARRAY_LIST_IBM                                      = 0x0001929E,
+  GL_NORMAL_ARRAY_LIST_IBM                                      = 0x0001929F,
+  GL_COLOR_ARRAY_LIST_IBM                                       = 0x000192A0,
+  GL_INDEX_ARRAY_LIST_IBM                                       = 0x000192A1,
+  GL_TEXTURE_COORD_ARRAY_LIST_IBM                               = 0x000192A2,
+  GL_EDGE_FLAG_ARRAY_LIST_IBM                                   = 0x000192A3,
+  GL_FOG_COORDINATE_ARRAY_LIST_IBM                              = 0x000192A4,
+  GL_SECONDARY_COLOR_ARRAY_LIST_IBM                             = 0x000192A5,
+  GL_VERTEX_ARRAY_LIST_STRIDE_IBM                               = 0x000192A8,
+  GL_NORMAL_ARRAY_LIST_STRIDE_IBM                               = 0x000192A9,
+  GL_COLOR_ARRAY_LIST_STRIDE_IBM                                = 0x000192AA,
+  GL_INDEX_ARRAY_LIST_STRIDE_IBM                                = 0x000192AB,
+  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM                        = 0x000192AC,
+  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM                            = 0x000192AD,
+  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM                       = 0x000192AE,
+  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM                      = 0x000192AF,
+  GL_PREFER_DOUBLEBUFFER_HINT_PGI                               = 0x0001A1F8,
+  GL_CONSERVE_MEMORY_HINT_PGI                                   = 0x0001A1FD,
+  GL_RECLAIM_MEMORY_HINT_PGI                                    = 0x0001A1FE,
+  GL_NATIVE_GRAPHICS_HANDLE_PGI                                 = 0x0001A202,
+  GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI                             = 0x0001A203,
+  GL_NATIVE_GRAPHICS_END_HINT_PGI                               = 0x0001A204,
+  GL_ALWAYS_FAST_HINT_PGI                                       = 0x0001A20C,
+  GL_ALWAYS_SOFT_HINT_PGI                                       = 0x0001A20D,
+  GL_ALLOW_DRAW_OBJ_HINT_PGI                                    = 0x0001A20E,
+  GL_ALLOW_DRAW_WIN_HINT_PGI                                    = 0x0001A20F,
+  GL_ALLOW_DRAW_FRG_HINT_PGI                                    = 0x0001A210,
+  GL_ALLOW_DRAW_MEM_HINT_PGI                                    = 0x0001A211,
+  GL_STRICT_DEPTHFUNC_HINT_PGI                                  = 0x0001A216,
+  GL_STRICT_LIGHTING_HINT_PGI                                   = 0x0001A217,
+  GL_STRICT_SCISSOR_HINT_PGI                                    = 0x0001A218,
+  GL_FULL_STIPPLE_HINT_PGI                                      = 0x0001A219,
+  GL_CLIP_NEAR_HINT_PGI                                         = 0x0001A220,
+  GL_CLIP_FAR_HINT_PGI                                          = 0x0001A221,
+  GL_WIDE_LINE_HINT_PGI                                         = 0x0001A222,
+  GL_BACK_NORMALS_HINT_PGI                                      = 0x0001A223,
+  GL_VERTEX_DATA_HINT_PGI                                       = 0x0001A22A,
+  GL_VERTEX_CONSISTENT_HINT_PGI                                 = 0x0001A22B,
+  GL_MATERIAL_SIDE_HINT_PGI                                     = 0x0001A22C,
+  GL_MAX_VERTEX_HINT_PGI                                        = 0x0001A22D,
+}
+
diff --git a/gfxapi/gles/api/other.api b/gfxapi/gles/api/other.api
new file mode 100644
index 0000000..1438967
--- /dev/null
+++ b/gfxapi/gles/api/other.api
@@ -0,0 +1,135 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnable.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glEnable.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glEnable.xhtml","OpenGL ES 3.1")
+cmd void glDisable(GLenum capability) {
+  minRequiredVersion(2, 0)
+  switch (capability) {
+    case GL_BLEND, GL_CULL_FACE, GL_DEPTH_TEST, GL_DITHER, GL_POLYGON_OFFSET_FILL,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_COVERAGE, GL_SCISSOR_TEST, GL_STENCIL_TEST: {
+      // version 2.0
+    }
+    case GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_RASTERIZER_DISCARD: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_SAMPLE_MASK: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(capability)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Capabilities[capability] = false
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnable.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glEnable.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glEnable.xhtml","OpenGL ES 3.1")
+cmd void glEnable(GLenum capability) {
+  minRequiredVersion(2, 0)
+  switch (capability) {
+    case GL_BLEND, GL_CULL_FACE, GL_DEPTH_TEST, GL_DITHER, GL_POLYGON_OFFSET_FILL,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_COVERAGE, GL_SCISSOR_TEST, GL_STENCIL_TEST: {
+      // version 2.0
+    }
+    case GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_RASTERIZER_DISCARD: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_SAMPLE_MASK: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(capability)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Capabilities[capability] = true
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glFinish.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFinish.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFinish.xhtml","OpenGL ES 3.1")
+cmd void glFinish() {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glFlush.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFlush.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFlush.xhtml","OpenGL ES 3.1")
+cmd void glFlush() {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFlushMappedBufferRange.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFlushMappedBufferRange.xhtml","OpenGL ES 3.1")
+cmd void glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
+        GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER,
+        GL_UNIFORM_BUFFER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetError.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetError.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetError.xhtml","OpenGL ES 3.1")
+cmd GLenum glGetError() {
+  minRequiredVersion(2, 0)
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glHint.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glHint.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glHint.xhtml","OpenGL ES 3.1")
+cmd void glHint(GLenum target, GLenum mode) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_GENERATE_MIPMAP_HINT: {
+      // version 2.0
+    }
+    case GL_FRAGMENT_SHADER_DERIVATIVE_HINT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (mode) {
+    case GL_DONT_CARE, GL_FASTEST, GL_NICEST: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.GenerateMipmapHint = mode
+}
+
diff --git a/gfxapi/gles/api/programs_and_shaders.api b/gfxapi/gles/api/programs_and_shaders.api
new file mode 100644
index 0000000..7f4bbb5
--- /dev/null
+++ b/gfxapi/gles/api/programs_and_shaders.api
@@ -0,0 +1,1603 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glActiveShaderProgram.xhtml","OpenGL ES 3.1")
+cmd void glActiveShaderProgram(PipelineId pipeline, ProgramId program) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glAttachShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glAttachShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glAttachShader.xhtml","OpenGL ES 3.1")
+cmd void glAttachShader(ProgramId program, ShaderId shader) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  p := ctx.Instances.Programs[program]
+  s := ctx.Instances.Shaders[shader]
+  p.Shaders[s.Type] = shader
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindAttribLocation.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindAttribLocation.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindAttribLocation.xhtml","OpenGL ES 3.1")
+cmd void glBindAttribLocation(ProgramId program, AttributeLocation location, string name) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  p := ctx.Instances.Programs[program]
+  p.AttributeBindings[name] = location
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindProgramPipeline.xhtml","OpenGL ES 3.1")
+cmd void glBindProgramPipeline(PipelineId pipeline) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCompileShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCompileShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCompileShader.xhtml","OpenGL ES 3.1")
+cmd void glCompileShader(ShaderId shader) {
+  minRequiredVersion(2, 0)
+
+  // TODO: shader.Binary < ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCreateProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCreateProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCreateProgram.xhtml","OpenGL ES 3.1")
+cmd ProgramId glCreateProgram() {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  id := as!ProgramId(?)
+  ctx.Instances.Programs[id] = new!Program()
+  return id
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCreateShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCreateShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCreateShader.xhtml","OpenGL ES 3.1")
+cmd ShaderId glCreateShader(GLenum type) {
+  minRequiredVersion(2, 0)
+  switch (type) {
+    case GL_FRAGMENT_SHADER, GL_VERTEX_SHADER: {
+      // version 2.0
+    }
+    case GL_COMPUTE_SHADER: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+
+  ctx := GetContext()
+  id := as!ShaderId(?)
+  ctx.Instances.Shaders[id] = new!Shader()
+  s := ctx.Instances.Shaders[id]
+  s.Type = type
+  return id
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCreateShaderProgram.xhtml","OpenGL ES 3.1")
+cmd ProgramId glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar* const* strings) {
+  minRequiredVersion(3, 1)
+  switch (type) {
+    case GL_COMPUTE_SHADER, GL_FRAGMENT_SHADER, GL_VERTEX_SHADER: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteProgram.xhtml","OpenGL ES 3.1")
+cmd void glDeleteProgram(ProgramId program) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Instances.Programs[program] = null
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteProgramPipelines.xhtml","OpenGL ES 3.1")
+cmd void glDeleteProgramPipelines(GLsizei n, const PipelineId* pipelines) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteShader.xhtml","OpenGL ES 3.1")
+cmd void glDeleteShader(ShaderId shader) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  s := ctx.Instances.Shaders[shader]
+  s.Deletable = true
+  // TODO: refcount shader attachment and only destroy if zero
+  ctx.Instances.Shaders[shader] = null
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDetachShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDetachShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDetachShader.xhtml","OpenGL ES 3.1")
+cmd void glDetachShader(ProgramId program, ShaderId shader) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  p := ctx.Instances.Programs[program]
+  s := ctx.Instances.Shaders[shader]
+  p.Shaders[s.Type] = null
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDispatchCompute.xhtml","OpenGL ES 3.1")
+cmd void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDispatchComputeIndirect.xhtml","OpenGL ES 3.1")
+cmd void glDispatchComputeIndirect(GLintptr indirect) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenProgramPipelines.xhtml","OpenGL ES 3.1")
+cmd void glGenProgramPipelines(GLsizei n, PipelineId* pipelines) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetActiveAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetActiveAttrib.xhtml","OpenGL ES 3.1")
+cmd void glGetActiveAttrib(ProgramId         program,
+                           AttributeLocation location,
+                           GLsizei           buffer_size,
+                           GLsizei*          buffer_bytes_written,
+                           GLint*            vector_count,
+                           GLenum*           type,
+                           GLchar*           name) {
+  minRequiredVersion(2, 0)
+
+  if buffer_bytes_written != null {
+    l := as!s32(?)
+    buffer_bytes_written[0] = l
+    write(name[0:l])
+  } else {
+    write(name[0:256]) // HACK: Non-deterministic string length!
+  }
+
+  vector_count[0] = as!s32(?)
+  type[0] = as!GLenum(?)
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetActiveUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetActiveUniform.xhtml","OpenGL ES 3.1")
+cmd void glGetActiveUniform(ProgramId program,
+                            GLuint    location,
+                            GLsizei   buffer_size,
+                            GLsizei*  buffer_bytes_written,
+                            GLint*    vector_count,
+                            GLenum*   type,
+                            GLchar*   name) {
+  minRequiredVersion(2, 0)
+
+  if buffer_bytes_written != null {
+    l := as!s32(?)
+    buffer_bytes_written[0] = l
+    write(name[0:l])
+  } else {
+    write(name[0:256]) // HACK: Non-deterministic string length!
+  }
+
+  vector_count[0] = as!s32(?)
+  type[0] = as!GLenum(?)
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniformBlockName.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetActiveUniformBlockName.xhtml","OpenGL ES 3.1")
+cmd void glGetActiveUniformBlockName(ProgramId      program,
+                                     UniformBlockId uniform_block_index,
+                                     GLsizei        buffer_size,
+                                     GLsizei*       buffer_bytes_written,
+                                     GLchar*        name) {
+  minRequiredVersion(3, 0)
+
+  l := as!s32(?)
+  buffer_bytes_written[0] = l
+  write(name[0:l])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniformBlockiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetActiveUniformBlockiv.xhtml","OpenGL ES 3.1")
+cmd void glGetActiveUniformBlockiv(ProgramId      program,
+                                   UniformBlockId uniform_block_index,
+                                   GLenum         parameter_name,
+                                   GLint*         parameters) {
+  minRequiredVersion(3, 0)
+  switch (parameter_name) {
+    case GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS, GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+        GL_UNIFORM_BLOCK_BINDING, GL_UNIFORM_BLOCK_DATA_SIZE, GL_UNIFORM_BLOCK_NAME_LENGTH,
+        GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+        GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(parameter_name)
+    }
+  }
+
+  parameters[0] = ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniformsiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetActiveUniformsiv.xhtml","OpenGL ES 3.1")
+cmd void glGetActiveUniformsiv(ProgramId     program,
+                               GLsizei       uniform_count,
+                               const GLuint* uniform_indices,
+                               GLenum        parameter_name,
+                               GLint*        parameters) {
+  minRequiredVersion(3, 0)
+  switch (parameter_name) {
+    case GL_UNIFORM_ARRAY_STRIDE, GL_UNIFORM_BLOCK_INDEX, GL_UNIFORM_IS_ROW_MAJOR,
+        GL_UNIFORM_MATRIX_STRIDE, GL_UNIFORM_NAME_LENGTH, GL_UNIFORM_OFFSET, GL_UNIFORM_SIZE,
+        GL_UNIFORM_TYPE: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(parameter_name)
+    }
+  }
+
+  read(uniform_indices[0:uniform_count])
+  write(parameters[0:uniform_count])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetAttachedShaders.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetAttachedShaders.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetAttachedShaders.xhtml","OpenGL ES 3.1")
+cmd void glGetAttachedShaders(ProgramId program,
+                              GLsizei   buffer_length,
+                              GLsizei*  shaders_length_written,
+                              ShaderId* shaders) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  p := ctx.Instances.Programs[program]
+  l := min(buffer_length, len(p.Shaders))
+  shaders_length_written[0] = l
+  // TODO: Requires language support.
+  // for i, k, v in p.Shaders {
+  //     if i < l {
+  //         shaders[i] = v
+  //     }
+  // }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetAttribLocation.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetAttribLocation.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetAttribLocation.xhtml","OpenGL ES 3.1")
+cmd GLint glGetAttribLocation(ProgramId program, string name) {
+  minRequiredVersion(2, 0)
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetFragDataLocation.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetFragDataLocation.xhtml","OpenGL ES 3.1")
+cmd GLint glGetFragDataLocation(ProgramId program, const GLchar* name) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetProgramBinary.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramBinary.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramBinary(ProgramId program,
+                            GLsizei   bufSize,
+                            GLsizei*  length,
+                            GLenum*   binaryFormat,
+                            void*     binary) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetProgramInfoLog.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetProgramInfoLog.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramInfoLog.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramInfoLog(ProgramId program,
+                             GLsizei   buffer_length,
+                             GLsizei*  string_length_written,
+                             GLchar*   info) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  p := ctx.Instances.Programs[program]
+  l := min(buffer_length, as!s32(len(p.InfoLog)))
+  copy(info[0:l], p.InfoLog[0:l])
+  string_length_written[0] = l
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramInterface.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramInterfaceiv(ProgramId program,
+                                 GLenum    programInterface,
+                                 GLenum    pname,
+                                 GLint*    params) {
+  minRequiredVersion(3, 1)
+  switch (programInterface) {
+    case GL_ATOMIC_COUNTER_BUFFER, GL_BUFFER_VARIABLE, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT,
+        GL_SHADER_STORAGE_BLOCK, GL_TRANSFORM_FEEDBACK_BUFFER, GL_TRANSFORM_FEEDBACK_VARYING,
+        GL_UNIFORM, GL_UNIFORM_BLOCK: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(programInterface)
+    }
+  }
+  switch (pname) {
+    case GL_ACTIVE_RESOURCES, GL_MAX_NAME_LENGTH, GL_MAX_NUM_ACTIVE_VARIABLES: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramPipelineInfoLog.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramPipelineInfoLog(PipelineId pipeline,
+                                     GLsizei    bufSize,
+                                     GLsizei*   length,
+                                     GLchar*    infoLog) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramPipeline.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramPipelineiv(PipelineId pipeline, GLenum pname, GLint* params) {
+  minRequiredVersion(3, 1)
+  switch (pname) {
+    case GL_ACTIVE_PROGRAM, GL_COMPUTE_SHADER, GL_FRAGMENT_SHADER, GL_INFO_LOG_LENGTH,
+        GL_VALIDATE_STATUS, GL_VERTEX_SHADER: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramResourceIndex.xhtml","OpenGL ES 3.1")
+cmd GLuint glGetProgramResourceIndex(ProgramId     program,
+                                     GLenum        programInterface,
+                                     const GLchar* name) {
+  minRequiredVersion(3, 1)
+  switch (programInterface) {
+    case GL_BUFFER_VARIABLE, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT, GL_SHADER_STORAGE_BLOCK,
+        GL_TRANSFORM_FEEDBACK_VARYING, GL_UNIFORM, GL_UNIFORM_BLOCK: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(programInterface)
+    }
+  }
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramResourceLocation.xhtml","OpenGL ES 3.1")
+cmd GLint glGetProgramResourceLocation(ProgramId     program,
+                                       GLenum        programInterface,
+                                       const GLchar* name) {
+  minRequiredVersion(3, 1)
+  switch (programInterface) {
+    case GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(programInterface)
+    }
+  }
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramResourceName.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramResourceName(ProgramId program,
+                                  GLenum    programInterface,
+                                  GLuint    index,
+                                  GLsizei   bufSize,
+                                  GLsizei*  length,
+                                  GLchar*   name) {
+  minRequiredVersion(3, 1)
+  switch (programInterface) {
+    case GL_BUFFER_VARIABLE, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT, GL_SHADER_STORAGE_BLOCK,
+        GL_TRANSFORM_FEEDBACK_VARYING, GL_UNIFORM, GL_UNIFORM_BLOCK: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(programInterface)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramResource.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramResourceiv(ProgramId     program,
+                                GLenum        programInterface,
+                                GLuint        index,
+                                GLsizei       propCount,
+                                const GLenum* props,
+                                GLsizei       bufSize,
+                                GLsizei*      length,
+                                GLint*        params) {
+  minRequiredVersion(3, 1)
+  switch (programInterface) {
+    case GL_ATOMIC_COUNTER_BUFFER, GL_BUFFER_VARIABLE, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT,
+        GL_SHADER_STORAGE_BLOCK, GL_TRANSFORM_FEEDBACK_BUFFER, GL_TRANSFORM_FEEDBACK_VARYING,
+        GL_UNIFORM, GL_UNIFORM_BLOCK: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(programInterface)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetProgramiv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetProgramiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetProgramiv.xhtml","OpenGL ES 3.1")
+cmd void glGetProgramiv(ProgramId program, GLenum parameter, GLint* value) {
+  minRequiredVersion(2, 0)
+  switch (parameter) {
+    case GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS,
+        GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_ATTACHED_SHADERS, GL_DELETE_STATUS, GL_INFO_LOG_LENGTH,
+        GL_LINK_STATUS, GL_VALIDATE_STATUS: {
+      // version 2.0
+    }
+    case GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+        GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+        GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_ACTIVE_ATOMIC_COUNTER_BUFFERS, GL_COMPUTE_WORK_GROUP_SIZE, GL_PROGRAM_SEPARABLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  value[0] = ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderInfoLog.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderInfoLog.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetShaderInfoLog.xhtml","OpenGL ES 3.1")
+cmd void glGetShaderInfoLog(ShaderId shader,
+                            GLsizei  buffer_length,
+                            GLsizei* string_length_written,
+                            GLchar*  info) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  s := ctx.Instances.Shaders[shader]
+  l := min(buffer_length, as!s32(len(s.InfoLog)))
+  copy(info[0:l], s.InfoLog[0:l])
+  string_length_written[0] = l
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderPrecisionFormat.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderPrecisionFormat.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetShaderPrecisionFormat.xhtml","OpenGL ES 3.1")
+cmd void glGetShaderPrecisionFormat(GLenum shader_type,
+                                    GLenum precision_type,
+                                    GLint* range,
+                                    GLint* precision) {
+  minRequiredVersion(2, 0)
+  switch (shader_type) {
+    case GL_FRAGMENT_SHADER, GL_VERTEX_SHADER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(shader_type)
+    }
+  }
+  switch (precision_type) {
+    case GL_HIGH_FLOAT, GL_HIGH_INT, GL_LOW_FLOAT, GL_LOW_INT, GL_MEDIUM_FLOAT, GL_MEDIUM_INT: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(precision_type)
+    }
+  }
+
+  write(range[0:2])
+  precision[0] = ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderSource.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderSource.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetShaderSource.xhtml","OpenGL ES 3.1")
+cmd void glGetShaderSource(ShaderId shader,
+                           GLsizei  buffer_length,
+                           GLsizei* string_length_written,
+                           GLchar*  source) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  s := ctx.Instances.Shaders[shader]
+  l := min(buffer_length, as!s32(len(s.Source)))
+  copy(source[0:l], as!char[](s.Source)[0:l])
+  string_length_written[0] = l
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderiv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderiv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetShaderiv.xhtml","OpenGL ES 3.1")
+cmd void glGetShaderiv(ShaderId shader, GLenum parameter, GLint* value) {
+  minRequiredVersion(2, 0)
+  switch (parameter) {
+    case GL_COMPILE_STATUS, GL_DELETE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH,
+        GL_SHADER_TYPE: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  s := ctx.Instances.Shaders[shader]
+  value[0] = switch (parameter) {
+    case GL_SHADER_TYPE:          as!s32(s.Type)
+    case GL_DELETE_STATUS:        switch (s.Deletable) { case true: 1  case false: 0 }
+    case GL_COMPILE_STATUS:       switch (s.Compiled) { case true: 1  case false: 0 }
+    case GL_INFO_LOG_LENGTH:      as!s32(len(s.InfoLog))
+    case GL_SHADER_SOURCE_LENGTH: as!s32(len(s.Source))
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniformBlockIndex.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniformBlockIndex.xhtml","OpenGL ES 3.1")
+cmd UniformBlockId glGetUniformBlockIndex(ProgramId program, const GLchar* uniformBlockName) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniformIndices.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniformIndices.xhtml","OpenGL ES 3.1")
+cmd void glGetUniformIndices(ProgramId            program,
+                             GLsizei              uniformCount,
+                             const GLchar* const* uniformNames,
+                             GLuint*              uniformIndices) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetUniformLocation.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniformLocation.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniformLocation.xhtml","OpenGL ES 3.1")
+cmd UniformLocation glGetUniformLocation(ProgramId program, string name) {
+  minRequiredVersion(2, 0)
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniform.xhtml","OpenGL ES 3.1")
+cmd void glGetUniformfv(ProgramId program, UniformLocation location, GLfloat* values) {
+  minRequiredVersion(2, 0)
+
+  // p := Instances.Programs[program]
+  // uniform := p.Uniforms[location]
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniform.xhtml","OpenGL ES 3.1")
+cmd void glGetUniformiv(ProgramId program, UniformLocation location, GLint* values) {
+  minRequiredVersion(2, 0)
+
+  // p := Instances.Programs[program]
+  // uniform := p.Uniforms[location]
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetUniform.xhtml","OpenGL ES 3.1")
+cmd void glGetUniformuiv(ProgramId program, UniformLocation location, GLuint* params) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsProgram.xhtml","OpenGL ES 3.1")
+cmd bool glIsProgram(ProgramId program) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return program in ctx.Instances.Programs
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsProgramPipeline.xhtml","OpenGL ES 3.1")
+cmd bool glIsProgramPipeline(PipelineId pipeline) {
+  minRequiredVersion(3, 1)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsShader.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsShader.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsShader.xhtml","OpenGL ES 3.1")
+cmd bool glIsShader(ShaderId shader) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return shader in ctx.Instances.Shaders
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glLinkProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glLinkProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glLinkProgram.xhtml","OpenGL ES 3.1")
+cmd void glLinkProgram(ProgramId program) {
+  minRequiredVersion(2, 0)
+
+  //for s in (program.Shaders) {
+  // TODO: use(s.Binary)
+  //}
+  // TODO: program.Binary < ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glMemoryBarrier.xhtml","OpenGL ES 3.1")
+cmd void glMemoryBarrier(GLbitfield barriers) {
+  minRequiredVersion(3, 1)
+  supportsBits(barriers, GL_ALL_BARRIER_BITS | GL_ATOMIC_COUNTER_BARRIER_BIT | GL_BUFFER_UPDATE_BARRIER_BIT | GL_COMMAND_BARRIER_BIT | GL_ELEMENT_ARRAY_BARRIER_BIT | GL_FRAMEBUFFER_BARRIER_BIT | GL_PIXEL_BUFFER_BARRIER_BIT | GL_SHADER_IMAGE_ACCESS_BARRIER_BIT | GL_SHADER_STORAGE_BARRIER_BIT | GL_TEXTURE_FETCH_BARRIER_BIT | GL_TEXTURE_UPDATE_BARRIER_BIT | GL_TRANSFORM_FEEDBACK_BARRIER_BIT | GL_UNIFORM_BARRIER_BIT | GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT)
+  if (GL_ALL_BARRIER_BITS in barriers) {
+  }
+  if (GL_ATOMIC_COUNTER_BARRIER_BIT in barriers) {
+  }
+  if (GL_BUFFER_UPDATE_BARRIER_BIT in barriers) {
+  }
+  if (GL_COMMAND_BARRIER_BIT in barriers) {
+  }
+  if (GL_ELEMENT_ARRAY_BARRIER_BIT in barriers) {
+  }
+  if (GL_FRAMEBUFFER_BARRIER_BIT in barriers) {
+  }
+  if (GL_PIXEL_BUFFER_BARRIER_BIT in barriers) {
+  }
+  if (GL_SHADER_IMAGE_ACCESS_BARRIER_BIT in barriers) {
+  }
+  if (GL_SHADER_STORAGE_BARRIER_BIT in barriers) {
+  }
+  if (GL_TEXTURE_FETCH_BARRIER_BIT in barriers) {
+  }
+  if (GL_TEXTURE_UPDATE_BARRIER_BIT in barriers) {
+  }
+  if (GL_TRANSFORM_FEEDBACK_BARRIER_BIT in barriers) {
+  }
+  if (GL_UNIFORM_BARRIER_BIT in barriers) {
+  }
+  if (GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT in barriers) {
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glMemoryBarrier.xhtml","OpenGL ES 3.1")
+cmd void glMemoryBarrierByRegion(GLbitfield barriers) {
+  minRequiredVersion(3, 1)
+  supportsBits(barriers, GL_ALL_BARRIER_BITS | GL_ATOMIC_COUNTER_BARRIER_BIT | GL_BUFFER_UPDATE_BARRIER_BIT | GL_COMMAND_BARRIER_BIT | GL_ELEMENT_ARRAY_BARRIER_BIT | GL_FRAMEBUFFER_BARRIER_BIT | GL_PIXEL_BUFFER_BARRIER_BIT | GL_SHADER_IMAGE_ACCESS_BARRIER_BIT | GL_SHADER_STORAGE_BARRIER_BIT | GL_TEXTURE_FETCH_BARRIER_BIT | GL_TEXTURE_UPDATE_BARRIER_BIT | GL_TRANSFORM_FEEDBACK_BARRIER_BIT | GL_UNIFORM_BARRIER_BIT | GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT)
+  if (GL_ALL_BARRIER_BITS in barriers) {
+  }
+  if (GL_ATOMIC_COUNTER_BARRIER_BIT in barriers) {
+  }
+  if (GL_BUFFER_UPDATE_BARRIER_BIT in barriers) {
+  }
+  if (GL_COMMAND_BARRIER_BIT in barriers) {
+  }
+  if (GL_ELEMENT_ARRAY_BARRIER_BIT in barriers) {
+  }
+  if (GL_FRAMEBUFFER_BARRIER_BIT in barriers) {
+  }
+  if (GL_PIXEL_BUFFER_BARRIER_BIT in barriers) {
+  }
+  if (GL_SHADER_IMAGE_ACCESS_BARRIER_BIT in barriers) {
+  }
+  if (GL_SHADER_STORAGE_BARRIER_BIT in barriers) {
+  }
+  if (GL_TEXTURE_FETCH_BARRIER_BIT in barriers) {
+  }
+  if (GL_TEXTURE_UPDATE_BARRIER_BIT in barriers) {
+  }
+  if (GL_TRANSFORM_FEEDBACK_BARRIER_BIT in barriers) {
+  }
+  if (GL_UNIFORM_BARRIER_BIT in barriers) {
+  }
+  if (GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT in barriers) {
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glProgramBinary.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramBinary.xhtml","OpenGL ES 3.1")
+cmd void glProgramBinary(ProgramId   program,
+                         GLenum      binaryFormat,
+                         const void* binary,
+                         GLsizei     length) {
+  minRequiredVersion(3, 0)
+  switch (binaryFormat) {
+    default: {
+      glErrorInvalidEnum(binaryFormat)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glProgramParameteri.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramParameteri.xhtml","OpenGL ES 3.1")
+cmd void glProgramParameteri(ProgramId program, GLenum pname, GLint value) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_PROGRAM_BINARY_RETRIEVABLE_HINT: {
+      // version 3.0
+    }
+    case GL_PROGRAM_SEPARABLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1f(ProgramId program, UniformLocation location, GLfloat v0) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1fv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1i(ProgramId program, UniformLocation location, GLint v0) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1iv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLint*    value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1ui(ProgramId program, UniformLocation location, GLuint v0) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform1uiv(ProgramId       program,
+                              UniformLocation location,
+                              GLsizei         count,
+                              const GLuint*   value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2f(ProgramId program, UniformLocation location, GLfloat v0, GLfloat v1) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2fv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2i(ProgramId program, UniformLocation location, GLint v0, GLint v1) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2iv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLint*    value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2ui(ProgramId program, UniformLocation location, GLuint v0, GLuint v1) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform2uiv(ProgramId       program,
+                              UniformLocation location,
+                              GLsizei         count,
+                              const GLuint*   value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3f(ProgramId       program,
+                            UniformLocation location,
+                            GLfloat         v0,
+                            GLfloat         v1,
+                            GLfloat         v2) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3fv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3i(ProgramId       program,
+                            UniformLocation location,
+                            GLint           v0,
+                            GLint           v1,
+                            GLint           v2) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3iv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLint*    value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3ui(ProgramId       program,
+                             UniformLocation location,
+                             GLuint          v0,
+                             GLuint          v1,
+                             GLuint          v2) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform3uiv(ProgramId       program,
+                              UniformLocation location,
+                              GLsizei         count,
+                              const GLuint*   value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4f(ProgramId       program,
+                            UniformLocation location,
+                            GLfloat         v0,
+                            GLfloat         v1,
+                            GLfloat         v2,
+                            GLfloat         v3) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4fv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4i(ProgramId       program,
+                            UniformLocation location,
+                            GLint           v0,
+                            GLint           v1,
+                            GLint           v2,
+                            GLint           v3) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4iv(ProgramId       program,
+                             UniformLocation location,
+                             GLsizei         count,
+                             const GLint*    value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4ui(ProgramId       program,
+                             UniformLocation location,
+                             GLuint          v0,
+                             GLuint          v1,
+                             GLuint          v2,
+                             GLuint          v3) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniform4uiv(ProgramId       program,
+                              UniformLocation location,
+                              GLsizei         count,
+                              const GLuint*   value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix2fv(ProgramId       program,
+                                   UniformLocation location,
+                                   GLsizei         count,
+                                   GLboolean       transpose,
+                                   const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix2x3fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix2x4fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix3fv(ProgramId       program,
+                                   UniformLocation location,
+                                   GLsizei         count,
+                                   GLboolean       transpose,
+                                   const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix3x2fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix3x4fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix4fv(ProgramId       program,
+                                   UniformLocation location,
+                                   GLsizei         count,
+                                   GLboolean       transpose,
+                                   const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix4x2fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glProgramUniform.xhtml","OpenGL ES 3.1")
+cmd void glProgramUniformMatrix4x3fv(ProgramId       program,
+                                     UniformLocation location,
+                                     GLsizei         count,
+                                     GLboolean       transpose,
+                                     const GLfloat*  value) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glReleaseShaderCompiler.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glReleaseShaderCompiler.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glReleaseShaderCompiler.xhtml","OpenGL ES 3.1")
+cmd void glReleaseShaderCompiler() {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glShaderBinary.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glShaderBinary.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glShaderBinary.xhtml","OpenGL ES 3.1")
+cmd void glShaderBinary(GLsizei         count,
+                        const ShaderId* shaders,
+                        GLenum          binary_format,
+                        const void*     binary,
+                        GLsizei         binary_size) {
+  minRequiredVersion(2, 0)
+  switch (binary_format) {
+    default: {
+      glErrorInvalidEnum(binary_format)
+    }
+  }
+
+  for i in (0 .. count) {
+    // TODO: shaders[i].Binary = ?
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glShaderSource.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glShaderSource.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glShaderSource.xhtml","OpenGL ES 3.1")
+cmd void glShaderSource(ShaderId             shader,
+                        GLsizei              count,
+                        const GLchar* const* source,
+                        const GLint*         length) {
+  minRequiredVersion(2, 0)
+
+  sources := source[0:count]
+  lengths := length[0:count]
+  ctx := GetContext()
+  s := ctx.Instances.Shaders[shader]
+  for i in (0 .. count) {
+    str := switch ((length == null) || (lengths[i] < 0)) {
+      case true:  as!string(sources[i])
+      case false: as!string(sources[i][0:lengths[i]])
+    }
+    // TODO: We should have a newline between sources to avoid unintentional
+    // concatenation. The language currently does not support string literals.
+    s.Source += str
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1f(UniformLocation location, GLfloat value) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!f32(1)
+  v[0] = value
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1fv(UniformLocation location, GLsizei count, const GLfloat* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := values[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1i(UniformLocation location, GLint value) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!s32(1)
+  v[0] = value
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1iv(UniformLocation location, GLsizei count, const GLint* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := values[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1ui(UniformLocation location, GLuint v0) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform1uiv(UniformLocation location, GLsizei count, const GLuint* value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2f(UniformLocation location, GLfloat value0, GLfloat value1) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec2f(1)
+  v[0] = Vec2f(value0, value1)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC2
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2fv(UniformLocation location, GLsizei count, const GLfloat* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec2f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC2
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2i(UniformLocation location, GLint value0, GLint value1) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec2i(1)
+  v[0] = Vec2i(value0, value1)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC2
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2iv(UniformLocation location, GLsizei count, const GLint* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec2i*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC2
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2ui(UniformLocation location, GLuint v0, GLuint v1) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform2uiv(UniformLocation location, GLsizei count, const GLuint* value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3f(UniformLocation location, GLfloat value0, GLfloat value1, GLfloat value2) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec3f(1)
+  v[0] = Vec3f(value0, value1, value2)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC3
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3fv(UniformLocation location, GLsizei count, const GLfloat* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec3f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC3
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3i(UniformLocation location, GLint value0, GLint value1, GLint value2) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec3i(1)
+  v[0] = Vec3i(value0, value1, value2)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC3
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3iv(UniformLocation location, GLsizei count, const GLint* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec3i*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC3
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3ui(UniformLocation location, GLuint v0, GLuint v1, GLuint v2) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform3uiv(UniformLocation location, GLsizei count, const GLuint* value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4f(UniformLocation location,
+                     GLfloat         value0,
+                     GLfloat         value1,
+                     GLfloat         value2,
+                     GLfloat         value3) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec4f(1)
+  v[0] = Vec4f(value0, value1, value2, value3)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC4
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4fv(UniformLocation location, GLsizei count, const GLfloat* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec4f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_VEC4
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4i(UniformLocation location,
+                     GLint           value0,
+                     GLint           value1,
+                     GLint           value2,
+                     GLint           value3) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := make!Vec4i(1)
+  v[0] = Vec4i(value0, value1, value2, value3)
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC4
+  uniform.Value = as!u8[](v)
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4iv(UniformLocation location, GLsizei count, const GLint* values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Vec4i*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_INT_VEC4
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4ui(UniformLocation location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniform4uiv(UniformLocation location, GLsizei count, const GLuint* value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniformBlockBinding.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniformBlockBinding.xhtml","OpenGL ES 3.1")
+cmd void glUniformBlockBinding(ProgramId      program,
+                               UniformBlockId uniform_block_index,
+                               GLuint         uniform_block_binding) {
+  minRequiredVersion(3, 0)
+
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix2fv(UniformLocation location,
+                            GLsizei         count,
+                            GLboolean       transpose,
+                            const GLfloat*  values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Mat2f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_MAT2
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix2x3fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix2x4fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix3fv(UniformLocation location,
+                            GLsizei         count,
+                            GLboolean       transpose,
+                            const GLfloat*  values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Mat3f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Type = GL_FLOAT_MAT3
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix3x2fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix3x4fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUniform.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix4fv(UniformLocation location,
+                            GLsizei         count,
+                            GLboolean       transpose,
+                            const GLfloat*  values) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  v := as!Mat4f*(values)[0:count]
+  program := ctx.Instances.Programs[ctx.BoundProgram]
+  uniform := program.Uniforms[location]
+  uniform.Value = clone(as!u8[](v))
+  program.Uniforms[location] = uniform
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix4x2fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUniform.xhtml","OpenGL ES 3.1")
+cmd void glUniformMatrix4x3fv(UniformLocation location,
+                              GLsizei         count,
+                              GLboolean       transpose,
+                              const GLfloat*  value) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glUseProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glUseProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUseProgram.xhtml","OpenGL ES 3.1")
+cmd void glUseProgram(ProgramId program) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.BoundProgram = program
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glUseProgramStages.xhtml","OpenGL ES 3.1")
+cmd void glUseProgramStages(PipelineId pipeline, GLbitfield stages, ProgramId program) {
+  minRequiredVersion(3, 1)
+  supportsBits(stages, GL_ALL_SHADER_BITS | GL_COMPUTE_SHADER_BIT | GL_FRAGMENT_SHADER_BIT | GL_VERTEX_SHADER_BIT)
+  if (GL_ALL_SHADER_BITS in stages) {
+  }
+  if (GL_COMPUTE_SHADER_BIT in stages) {
+  }
+  if (GL_FRAGMENT_SHADER_BIT in stages) {
+  }
+  if (GL_VERTEX_SHADER_BIT in stages) {
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glValidateProgram.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glValidateProgram.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glValidateProgram.xhtml","OpenGL ES 3.1")
+cmd void glValidateProgram(ProgramId program) {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glValidateProgramPipeline.xhtml","OpenGL ES 3.1")
+cmd void glValidateProgramPipeline(PipelineId pipeline) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/rasterization.api b/gfxapi/gles/api/rasterization.api
new file mode 100644
index 0000000..a8e0b95
--- /dev/null
+++ b/gfxapi/gles/api/rasterization.api
@@ -0,0 +1,106 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCullFace.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCullFace.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCullFace.xhtml","OpenGL ES 3.1")
+cmd void glCullFace(GLenum mode) {
+  minRequiredVersion(2, 0)
+  switch (mode) {
+    case GL_BACK, GL_FRONT, GL_FRONT_AND_BACK: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(mode)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Rasterizing.CullFace = mode
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDepthRangef.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDepthRangef.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDepthRangef.xhtml","OpenGL ES 3.1")
+cmd void glDepthRangef(GLfloat near, GLfloat far) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.DepthNear = near
+  ctx.Rasterizing.DepthFar = far
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glFrontFace.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFrontFace.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFrontFace.xhtml","OpenGL ES 3.1")
+cmd void glFrontFace(GLenum orientation) {
+  minRequiredVersion(2, 0)
+  switch (orientation) {
+    case GL_CCW, GL_CW: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(orientation)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.Rasterizing.FrontFace = orientation
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetMultisamplefv.xhtml","OpenGL ES 3.1")
+cmd void glGetMultisamplefv(GLenum pname, GLuint index, GLfloat* val) {
+  minRequiredVersion(3, 1)
+  switch (pname) {
+    case GL_SAMPLE_POSITION: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glLineWidth.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glLineWidth.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glLineWidth.xhtml","OpenGL ES 3.1")
+cmd void glLineWidth(GLfloat width) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.LineWidth = width
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glPolygonOffset.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glPolygonOffset.xhtml","OpenGL ES 3.1")
+cmd void glPolygonOffset(GLfloat scale_factor, GLfloat units) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.PolygonOffsetUnits = units
+  ctx.Rasterizing.PolygonOffsetFactor = scale_factor
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glViewport.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glViewport.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glViewport.xhtml","OpenGL ES 3.1")
+cmd void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.Rasterizing.Viewport = Rect(x, y, width, height)
+}
+
diff --git a/gfxapi/gles/api/state_queries.api b/gfxapi/gles/api/state_queries.api
new file mode 100644
index 0000000..b818442
--- /dev/null
+++ b/gfxapi/gles/api/state_queries.api
@@ -0,0 +1,965 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetBooleani_v(GLenum target, GLuint index, GLboolean* data) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING,
+        GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM, GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE,
+        GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST, GL_DEPTH_WRITEMASK,
+        GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_DITHER, GL_DRAW_BUFFER,
+        GL_DRAW_FRAMEBUFFER_BINDING, GL_ELEMENT_ARRAY_BUFFER_BINDING,
+        GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS,
+        GL_IMAGE_BINDING_LAYERED, GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+        GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH, GL_MAJOR_VERSION, GL_MAX_3D_TEXTURE_SIZE,
+        GL_MAX_ARRAY_TEXTURE_LAYERS, GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+        GL_MAX_COLOR_ATTACHMENTS, GL_MAX_COLOR_TEXTURE_SAMPLES, GL_MAX_COMBINED_ATOMIC_COUNTERS,
+        GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+        GL_MAX_COMBINED_UNIFORM_BLOCKS, GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTERS, GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+        GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+        GL_MAX_COMPUTE_UNIFORM_BLOCKS, GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMPUTE_WORK_GROUP_COUNT, GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+        GL_MAX_COMPUTE_WORK_GROUP_SIZE, GL_MAX_CUBE_MAP_TEXTURE_SIZE, GL_MAX_DRAW_BUFFERS,
+        GL_MAX_ELEMENTS_INDICES, GL_MAX_ELEMENTS_VERTICES, GL_MAX_ELEMENT_INDEX,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+        GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+        GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_RENDERBUFFER_SIZE,
+        GL_MAX_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SERVER_WAIT_TIMEOUT,
+        GL_MAX_SHADER_STORAGE_BLOCK_SIZE, GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+        GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_LOD_BIAS, GL_MAX_TEXTURE_SIZE,
+        GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VARYING_COMPONENTS, GL_MAX_VARYING_VECTORS, GL_MAX_VERTEX_ATOMIC_COUNTERS,
+        GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_ATTRIB_BINDINGS, GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+        GL_MAX_VERTEX_OUTPUT_COMPONENTS, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MAX_VERTEX_UNIFORM_VECTORS, GL_MAX_VIEWPORT_DIMS,
+        GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET, GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS,
+        GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING, GL_POLYGON_OFFSET_FACTOR,
+        GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_UNITS, GL_PRIMITIVE_RESTART_FIXED_INDEX,
+        GL_PROGRAM_BINARY_FORMATS, GL_PROGRAM_PIPELINE_BINDING, GL_RASTERIZER_DISCARD,
+        GL_READ_BUFFER, GL_READ_FRAMEBUFFER_BINDING, GL_RED_BITS, GL_RENDERBUFFER_BINDING,
+        GL_SAMPLER_BINDING, GL_SAMPLES, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS,
+        GL_SAMPLE_COVERAGE, GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX,
+        GL_SCISSOR_TEST, GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER,
+        GL_SHADER_STORAGE_BUFFER_BINDING, GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+        GL_SHADER_STORAGE_BUFFER_SIZE, GL_SHADER_STORAGE_BUFFER_START, GL_STENCIL_BACK_FAIL,
+        GL_STENCIL_BACK_FUNC, GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS,
+        GL_STENCIL_BACK_REF, GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK,
+        GL_STENCIL_BITS, GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC,
+        GL_STENCIL_PASS_DEPTH_FAIL, GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST,
+        GL_STENCIL_VALUE_MASK, GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D,
+        GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_2D_MULTISAMPLE, GL_TEXTURE_BINDING_3D,
+        GL_TEXTURE_BINDING_CUBE_MAP, GL_TRANSFORM_FEEDBACK_ACTIVE, GL_TRANSFORM_FEEDBACK_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+        GL_TRANSFORM_FEEDBACK_BUFFER_START, GL_TRANSFORM_FEEDBACK_PAUSED,
+        GL_UNIFORM_BUFFER_BINDING, GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE,
+        GL_UNIFORM_BUFFER_START, GL_UNPACK_ALIGNMENT, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH,
+        GL_UNPACK_SKIP_IMAGES, GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE, GL_VIEWPORT:
+    {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetBooleanv(GLenum param, GLboolean* values) {
+  minRequiredVersion(2, 0)
+  switch (param) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM,
+        GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE, GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST,
+        GL_DEPTH_WRITEMASK, GL_DITHER, GL_ELEMENT_ARRAY_BUFFER_BINDING, GL_FRAMEBUFFER_BINDING,
+        GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS, GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+        GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+        GL_MAX_CUBE_MAP_TEXTURE_SIZE, GL_MAX_FRAGMENT_UNIFORM_VECTORS, GL_MAX_RENDERBUFFER_SIZE,
+        GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_SIZE, GL_MAX_VARYING_VECTORS,
+        GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_VECTORS,
+        GL_MAX_VIEWPORT_DIMS, GL_NUM_COMPRESSED_TEXTURE_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_POLYGON_OFFSET_FACTOR, GL_POLYGON_OFFSET_FILL,
+        GL_POLYGON_OFFSET_UNITS, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLES,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_CUBE_MAP,
+        GL_UNPACK_ALIGNMENT, GL_VIEWPORT: {
+      // version 2.0
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.0
+    case GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING, GL_DRAW_BUFFER,
+        GL_DRAW_FRAMEBUFFER_BINDING, GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_MAJOR_VERSION,
+        GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS, GL_MAX_COLOR_ATTACHMENTS,
+        GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES,
+        GL_MAX_ELEMENTS_VERTICES, GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+        GL_MAX_FRAGMENT_UNIFORM_BLOCKS, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_SAMPLES, GL_MAX_SERVER_WAIT_TIMEOUT,
+        GL_MAX_TEXTURE_LOD_BIAS, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VERTEX_OUTPUT_COMPONENTS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS,
+        GL_PACK_SKIP_ROWS, GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING,
+        GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD,
+        GL_READ_BUFFER, GL_READ_FRAMEBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_3D, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES, GL_UNPACK_SKIP_PIXELS,
+        GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING: {
+      minRequiredVersion(3, 0)
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.1
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(param)
+    }
+  }
+
+  v := values[0:stateVariableSize(param)]
+  ctx := GetContext()
+  switch (param) {
+    case GL_BLEND:
+      v[0] = ctx.Capabilities[GL_BLEND]
+    case GL_CULL_FACE:
+      v[0] = ctx.Capabilities[GL_CULL_FACE]
+    case GL_DEPTH_TEST:
+      v[0] = ctx.Capabilities[GL_DEPTH_TEST]
+    case GL_DITHER:
+      v[0] = ctx.Capabilities[GL_DITHER]
+    case GL_POLYGON_OFFSET_FILL:
+      v[0] = ctx.Capabilities[GL_POLYGON_OFFSET_FILL]
+    case GL_SAMPLE_ALPHA_TO_COVERAGE:
+      v[0] = ctx.Capabilities[GL_SAMPLE_ALPHA_TO_COVERAGE]
+    case GL_SAMPLE_COVERAGE:
+      v[0] = ctx.Capabilities[GL_SAMPLE_COVERAGE]
+    case GL_SCISSOR_TEST:
+      v[0] = ctx.Capabilities[GL_SCISSOR_TEST]
+    case GL_STENCIL_TEST:
+      v[0] = ctx.Capabilities[GL_STENCIL_TEST]
+
+    case GL_DEPTH_WRITEMASK:
+      v[0] = ctx.Rasterizing.DepthMask
+    case GL_COLOR_WRITEMASK: {
+      v[0] = ctx.Rasterizing.ColorMaskRed
+      v[1] = ctx.Rasterizing.ColorMaskGreen
+      v[2] = ctx.Rasterizing.ColorMaskBlue
+      v[3] = ctx.Rasterizing.ColorMaskAlpha
+    }
+    case GL_SAMPLE_COVERAGE_INVERT:
+      v[0] = ctx.Rasterizing.SampleCoverageInvert
+    case GL_SHADER_COMPILER:
+      v[0] = ?
+    case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+      v[0] = ?
+
+  // TODO: all the values returned by glGetFloatv and glGetIntegerv can
+  // be returned here with a type conversion where GL_FALSE is only returned
+  // if the value is 0.0 (or 0).
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetFloatv(GLenum param, GLfloat* values) {
+  minRequiredVersion(2, 0)
+  switch (param) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM,
+        GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE, GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST,
+        GL_DEPTH_WRITEMASK, GL_DITHER, GL_ELEMENT_ARRAY_BUFFER_BINDING, GL_FRAMEBUFFER_BINDING,
+        GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS, GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+        GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+        GL_MAX_CUBE_MAP_TEXTURE_SIZE, GL_MAX_FRAGMENT_UNIFORM_VECTORS, GL_MAX_RENDERBUFFER_SIZE,
+        GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_SIZE, GL_MAX_VARYING_VECTORS,
+        GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_VECTORS,
+        GL_MAX_VIEWPORT_DIMS, GL_NUM_COMPRESSED_TEXTURE_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_POLYGON_OFFSET_FACTOR, GL_POLYGON_OFFSET_FILL,
+        GL_POLYGON_OFFSET_UNITS, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLES,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_CUBE_MAP,
+        GL_UNPACK_ALIGNMENT, GL_VIEWPORT: {
+      // version 2.0
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.0
+    case GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING, GL_DRAW_BUFFER,
+        GL_DRAW_FRAMEBUFFER_BINDING, GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_MAJOR_VERSION,
+        GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS, GL_MAX_COLOR_ATTACHMENTS,
+        GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES,
+        GL_MAX_ELEMENTS_VERTICES, GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+        GL_MAX_FRAGMENT_UNIFORM_BLOCKS, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_SAMPLES, GL_MAX_SERVER_WAIT_TIMEOUT,
+        GL_MAX_TEXTURE_LOD_BIAS, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VERTEX_OUTPUT_COMPONENTS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS,
+        GL_PACK_SKIP_ROWS, GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING,
+        GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD,
+        GL_READ_BUFFER, GL_READ_FRAMEBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_3D, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES, GL_UNPACK_SKIP_PIXELS,
+        GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING: {
+      minRequiredVersion(3, 0)
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.1
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(param)
+    }
+  }
+
+  v := values[0:stateVariableSize(param)]
+  ctx := GetContext()
+  switch (param) {
+    case GL_DEPTH_RANGE: {
+      v[0] = ctx.Rasterizing.DepthNear
+      v[1] = ctx.Rasterizing.DepthFar
+    }
+    case GL_LINE_WIDTH:
+      v[0] = ctx.Rasterizing.LineWidth
+    case GL_POLYGON_OFFSET_FACTOR:
+      v[0] = ctx.Rasterizing.PolygonOffsetFactor
+    case GL_POLYGON_OFFSET_UNITS:
+      v[0] = ctx.Rasterizing.PolygonOffsetUnits
+    case GL_SAMPLE_COVERAGE_VALUE:
+      v[0] = ctx.Rasterizing.SampleCoverageValue
+    case GL_COLOR_CLEAR_VALUE: {
+      v[0] = ctx.Clearing.ClearColor.Red
+      v[1] = ctx.Clearing.ClearColor.Green
+      v[2] = ctx.Clearing.ClearColor.Blue
+      v[3] = ctx.Clearing.ClearColor.Alpha
+    }
+    case GL_DEPTH_CLEAR_VALUE:
+      v[0] = ctx.Clearing.ClearDepth
+    case GL_ALIASED_LINE_WIDTH_RANGE: {
+      v[0] = ? /* smallest */
+      v[1] = ? /* largest */
+    }
+    case GL_ALIASED_POINT_SIZE_RANGE: {
+      v[0] = ? /* smallest */
+      v[1] = ? /* largest */
+    }
+    case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+      v[0] = ?
+
+  // TODO: all the values returned by glGetBooleanv and glGetIntegerv can
+  // be returned here with a type conversion.
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetInteger64i_v(GLenum target, GLuint index, GLint64* data) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING,
+        GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM, GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE,
+        GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST, GL_DEPTH_WRITEMASK, GL_DITHER,
+        GL_DRAW_BUFFER, GL_DRAW_FRAMEBUFFER_BINDING, GL_ELEMENT_ARRAY_BUFFER_BINDING,
+        GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS,
+        GL_IMPLEMENTATION_COLOR_READ_FORMAT, GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH,
+        GL_MAJOR_VERSION, GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS,
+        GL_MAX_COLOR_ATTACHMENTS, GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+        GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES, GL_MAX_ELEMENTS_VERTICES,
+        GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+        GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_RENDERBUFFER_SIZE, GL_MAX_SAMPLES,
+        GL_MAX_SERVER_WAIT_TIMEOUT, GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_LOD_BIAS,
+        GL_MAX_TEXTURE_SIZE, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VARYING_VECTORS, GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+        GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MAX_VERTEX_UNIFORM_VECTORS, GL_MAX_VIEWPORT_DIMS,
+        GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET, GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS,
+        GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING, GL_POLYGON_OFFSET_FACTOR,
+        GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_UNITS, GL_PRIMITIVE_RESTART_FIXED_INDEX,
+        GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD, GL_READ_BUFFER,
+        GL_READ_FRAMEBUFFER_BINDING, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_SAMPLES, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_2D_ARRAY,
+        GL_TEXTURE_BINDING_3D, GL_TEXTURE_BINDING_CUBE_MAP, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_ALIGNMENT, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES,
+        GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING, GL_VIEWPORT: {
+      // version 3.0
+    }
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetInteger64v(GLenum pname, GLint64* data) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING,
+        GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM, GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE,
+        GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST, GL_DEPTH_WRITEMASK, GL_DITHER,
+        GL_DRAW_BUFFER, GL_DRAW_FRAMEBUFFER_BINDING, GL_ELEMENT_ARRAY_BUFFER_BINDING,
+        GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS,
+        GL_IMPLEMENTATION_COLOR_READ_FORMAT, GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH,
+        GL_MAJOR_VERSION, GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS,
+        GL_MAX_COLOR_ATTACHMENTS, GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+        GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES, GL_MAX_ELEMENTS_VERTICES,
+        GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+        GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_RENDERBUFFER_SIZE, GL_MAX_SAMPLES,
+        GL_MAX_SERVER_WAIT_TIMEOUT, GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_LOD_BIAS,
+        GL_MAX_TEXTURE_SIZE, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VARYING_VECTORS, GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+        GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MAX_VERTEX_UNIFORM_VECTORS, GL_MAX_VIEWPORT_DIMS,
+        GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET, GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS,
+        GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING, GL_POLYGON_OFFSET_FACTOR,
+        GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_UNITS, GL_PRIMITIVE_RESTART_FIXED_INDEX,
+        GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD, GL_READ_BUFFER,
+        GL_READ_FRAMEBUFFER_BINDING, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_SAMPLES, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_2D_ARRAY,
+        GL_TEXTURE_BINDING_3D, GL_TEXTURE_BINDING_CUBE_MAP, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_ALIGNMENT, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES,
+        GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING, GL_VIEWPORT: {
+      // version 3.0
+    }
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetIntegeri_v(GLenum target, GLuint index, GLint* data) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING,
+        GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM, GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE,
+        GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST, GL_DEPTH_WRITEMASK, GL_DITHER,
+        GL_DRAW_BUFFER, GL_DRAW_FRAMEBUFFER_BINDING, GL_ELEMENT_ARRAY_BUFFER_BINDING,
+        GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS,
+        GL_IMPLEMENTATION_COLOR_READ_FORMAT, GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH,
+        GL_MAJOR_VERSION, GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS,
+        GL_MAX_COLOR_ATTACHMENTS, GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+        GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES, GL_MAX_ELEMENTS_VERTICES,
+        GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+        GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_RENDERBUFFER_SIZE, GL_MAX_SAMPLES,
+        GL_MAX_SERVER_WAIT_TIMEOUT, GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_LOD_BIAS,
+        GL_MAX_TEXTURE_SIZE, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VARYING_VECTORS, GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+        GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MAX_VERTEX_UNIFORM_VECTORS, GL_MAX_VIEWPORT_DIMS,
+        GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET, GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS,
+        GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING, GL_POLYGON_OFFSET_FACTOR,
+        GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_UNITS, GL_PRIMITIVE_RESTART_FIXED_INDEX,
+        GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD, GL_READ_BUFFER,
+        GL_READ_FRAMEBUFFER_BINDING, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_SAMPLES, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_2D_ARRAY,
+        GL_TEXTURE_BINDING_3D, GL_TEXTURE_BINDING_CUBE_MAP, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_ALIGNMENT, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES,
+        GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING, GL_VIEWPORT: {
+      // version 3.0
+    }
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGet.xhtml","OpenGL ES 3.1")
+cmd void glGetIntegerv(GLenum param, GLint* values) {
+  minRequiredVersion(2, 0)
+  switch (param) {
+    case GL_ACTIVE_TEXTURE, GL_ALIASED_LINE_WIDTH_RANGE, GL_ALIASED_POINT_SIZE_RANGE,
+        GL_ALPHA_BITS, GL_ARRAY_BUFFER_BINDING, GL_BLEND, GL_BLEND_COLOR, GL_BLEND_DST_ALPHA,
+        GL_BLEND_DST_RGB, GL_BLEND_EQUATION_ALPHA, GL_BLEND_EQUATION_RGB, GL_BLEND_SRC_ALPHA,
+        GL_BLEND_SRC_RGB, GL_BLUE_BITS, GL_COLOR_CLEAR_VALUE, GL_COLOR_WRITEMASK,
+        GL_COMPRESSED_TEXTURE_FORMATS, GL_CULL_FACE, GL_CULL_FACE_MODE, GL_CURRENT_PROGRAM,
+        GL_DEPTH_BITS, GL_DEPTH_CLEAR_VALUE, GL_DEPTH_FUNC, GL_DEPTH_RANGE, GL_DEPTH_TEST,
+        GL_DEPTH_WRITEMASK, GL_DITHER, GL_ELEMENT_ARRAY_BUFFER_BINDING, GL_FRAMEBUFFER_BINDING,
+        GL_FRONT_FACE, GL_GENERATE_MIPMAP_HINT, GL_GREEN_BITS, GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+        GL_IMPLEMENTATION_COLOR_READ_TYPE, GL_LINE_WIDTH, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+        GL_MAX_CUBE_MAP_TEXTURE_SIZE, GL_MAX_FRAGMENT_UNIFORM_VECTORS, GL_MAX_RENDERBUFFER_SIZE,
+        GL_MAX_TEXTURE_IMAGE_UNITS, GL_MAX_TEXTURE_SIZE, GL_MAX_VARYING_VECTORS,
+        GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, GL_MAX_VERTEX_UNIFORM_VECTORS,
+        GL_MAX_VIEWPORT_DIMS, GL_NUM_COMPRESSED_TEXTURE_FORMATS, GL_NUM_SHADER_BINARY_FORMATS,
+        GL_PACK_ALIGNMENT, GL_POLYGON_OFFSET_FACTOR, GL_POLYGON_OFFSET_FILL,
+        GL_POLYGON_OFFSET_UNITS, GL_RED_BITS, GL_RENDERBUFFER_BINDING, GL_SAMPLES,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_BUFFERS, GL_SAMPLE_COVERAGE,
+        GL_SAMPLE_COVERAGE_INVERT, GL_SAMPLE_COVERAGE_VALUE, GL_SCISSOR_BOX, GL_SCISSOR_TEST,
+        GL_SHADER_BINARY_FORMATS, GL_SHADER_COMPILER, GL_STENCIL_BACK_FAIL, GL_STENCIL_BACK_FUNC,
+        GL_STENCIL_BACK_PASS_DEPTH_FAIL, GL_STENCIL_BACK_PASS_DEPTH_PASS, GL_STENCIL_BACK_REF,
+        GL_STENCIL_BACK_VALUE_MASK, GL_STENCIL_BACK_WRITEMASK, GL_STENCIL_BITS,
+        GL_STENCIL_CLEAR_VALUE, GL_STENCIL_FAIL, GL_STENCIL_FUNC, GL_STENCIL_PASS_DEPTH_FAIL,
+        GL_STENCIL_PASS_DEPTH_PASS, GL_STENCIL_REF, GL_STENCIL_TEST, GL_STENCIL_VALUE_MASK,
+        GL_STENCIL_WRITEMASK, GL_SUBPIXEL_BITS, GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_CUBE_MAP,
+        GL_UNPACK_ALIGNMENT, GL_VIEWPORT: {
+      // version 2.0
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.0
+    case GL_COPY_READ_BUFFER_BINDING, GL_COPY_WRITE_BUFFER_BINDING, GL_DRAW_BUFFER,
+        GL_DRAW_FRAMEBUFFER_BINDING, GL_FRAGMENT_SHADER_DERIVATIVE_HINT, GL_MAJOR_VERSION,
+        GL_MAX_3D_TEXTURE_SIZE, GL_MAX_ARRAY_TEXTURE_LAYERS, GL_MAX_COLOR_ATTACHMENTS,
+        GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_COMBINED_UNIFORM_BLOCKS,
+        GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS, GL_MAX_DRAW_BUFFERS, GL_MAX_ELEMENTS_INDICES,
+        GL_MAX_ELEMENTS_VERTICES, GL_MAX_ELEMENT_INDEX, GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+        GL_MAX_FRAGMENT_UNIFORM_BLOCKS, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+        GL_MAX_PROGRAM_TEXEL_OFFSET, GL_MAX_SAMPLES, GL_MAX_SERVER_WAIT_TIMEOUT,
+        GL_MAX_TEXTURE_LOD_BIAS, GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+        GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+        GL_MAX_UNIFORM_BLOCK_SIZE, GL_MAX_UNIFORM_BUFFER_BINDINGS, GL_MAX_VARYING_COMPONENTS,
+        GL_MAX_VERTEX_OUTPUT_COMPONENTS, GL_MAX_VERTEX_UNIFORM_BLOCKS,
+        GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MINOR_VERSION, GL_MIN_PROGRAM_TEXEL_OFFSET,
+        GL_NUM_EXTENSIONS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_PIXELS,
+        GL_PACK_SKIP_ROWS, GL_PIXEL_PACK_BUFFER_BINDING, GL_PIXEL_UNPACK_BUFFER_BINDING,
+        GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_PROGRAM_BINARY_FORMATS, GL_RASTERIZER_DISCARD,
+        GL_READ_BUFFER, GL_READ_FRAMEBUFFER_BINDING, GL_SAMPLER_BINDING,
+        GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_3D, GL_TRANSFORM_FEEDBACK_ACTIVE,
+        GL_TRANSFORM_FEEDBACK_BINDING, GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+        GL_TRANSFORM_FEEDBACK_BUFFER_SIZE, GL_TRANSFORM_FEEDBACK_BUFFER_START,
+        GL_TRANSFORM_FEEDBACK_PAUSED, GL_UNIFORM_BUFFER_BINDING,
+        GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, GL_UNIFORM_BUFFER_SIZE, GL_UNIFORM_BUFFER_START,
+        GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES, GL_UNPACK_SKIP_PIXELS,
+        GL_UNPACK_SKIP_ROWS, GL_VERTEX_ARRAY_BINDING: {
+      minRequiredVersion(3, 0)
+    }
+    // TODO: GL_FRAMEBUFFER_BINDING seems to be removed in 3.1
+    case GL_DISPATCH_INDIRECT_BUFFER_BINDING, GL_IMAGE_BINDING_LAYERED,
+        GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, GL_MAX_COLOR_TEXTURE_SAMPLES,
+        GL_MAX_COMBINED_ATOMIC_COUNTERS, GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+        GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+        GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS, GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+        GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS, GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+        GL_MAX_COMPUTE_UNIFORM_COMPONENTS, GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+        GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+        GL_MAX_FRAGMENT_ATOMIC_COUNTERS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+        GL_MAX_FRAMEBUFFER_HEIGHT, GL_MAX_FRAMEBUFFER_SAMPLES, GL_MAX_FRAMEBUFFER_WIDTH,
+        GL_MAX_INTEGER_SAMPLES, GL_MAX_SAMPLE_MASK_WORDS, GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+        GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_UNIFORM_LOCATIONS,
+        GL_MAX_VERTEX_ATOMIC_COUNTERS, GL_MAX_VERTEX_ATTRIB_BINDINGS,
+        GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+        GL_PROGRAM_PIPELINE_BINDING, GL_SHADER_STORAGE_BUFFER_BINDING,
+        GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, GL_SHADER_STORAGE_BUFFER_SIZE,
+        GL_SHADER_STORAGE_BUFFER_START, GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+        GL_VERTEX_BINDING_DIVISOR, GL_VERTEX_BINDING_OFFSET, GL_VERTEX_BINDING_STRIDE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(param)
+    }
+  }
+
+  v := values[0:stateVariableSize(param)]
+  ctx := GetContext()
+  switch (param) {
+    case GL_ACTIVE_TEXTURE:
+      v[0] = as!s32(ctx.ActiveTextureUnit)
+    case GL_ARRAY_BUFFER_BINDING:
+      v[0] = as!s32(ctx.BoundBuffers[GL_ARRAY_BUFFER])
+    case GL_ELEMENT_ARRAY_BUFFER_BINDING:
+      v[0] = as!s32(ctx.BoundBuffers[GL_ELEMENT_ARRAY_BUFFER])
+    case GL_BLEND_SRC_ALPHA:
+      v[0] = as!s32(ctx.Blending.SrcAlphaBlendFactor)
+    case GL_BLEND_SRC_RGB:
+      v[0] = as!s32(ctx.Blending.SrcRgbBlendFactor)
+    case GL_BLEND_DST_ALPHA:
+      v[0] = as!s32(ctx.Blending.DstAlphaBlendFactor)
+    case GL_BLEND_DST_RGB:
+      v[0] = as!s32(ctx.Blending.DstRgbBlendFactor)
+    case GL_BLEND_EQUATION_RGB:
+      v[0] = as!s32(ctx.Blending.BlendEquationRgb)
+    case GL_BLEND_EQUATION_ALPHA:
+      v[0] = as!s32(ctx.Blending.BlendEquationAlpha)
+    case GL_BLEND_COLOR: {
+      v[0] = as!s32(ctx.Blending.BlendColor.Red)
+      v[1] = as!s32(ctx.Blending.BlendColor.Green)
+      v[2] = as!s32(ctx.Blending.BlendColor.Blue)
+      v[3] = as!s32(ctx.Blending.BlendColor.Alpha)
+    }
+    case GL_DEPTH_FUNC:
+      v[0] = as!s32(ctx.Rasterizing.DepthTestFunction)
+    case GL_DEPTH_CLEAR_VALUE:
+      v[0] = as!s32(ctx.Clearing.ClearDepth)
+    case GL_STENCIL_WRITEMASK:
+      v[0] = as!s32(ctx.Rasterizing.StencilMask[GL_FRONT])
+    case GL_STENCIL_BACK_WRITEMASK:
+      v[0] = as!s32(ctx.Rasterizing.StencilMask[GL_BACK])
+    case GL_VIEWPORT: {
+      v[0] = ctx.Rasterizing.Viewport.X
+      v[1] = ctx.Rasterizing.Viewport.Y
+      v[2] = ctx.Rasterizing.Viewport.Width
+      v[3] = ctx.Rasterizing.Viewport.Height
+    }
+    case GL_SCISSOR_BOX: {
+      v[0] = ctx.Rasterizing.Scissor.X
+      v[1] = ctx.Rasterizing.Scissor.Y
+      v[2] = ctx.Rasterizing.Scissor.Width
+      v[3] = ctx.Rasterizing.Scissor.Height
+    }
+    case GL_FRONT_FACE:
+      v[0] = as!s32(ctx.Rasterizing.FrontFace)
+    case GL_CULL_FACE_MODE:
+      v[0] = as!s32(ctx.Rasterizing.CullFace)
+    case GL_STENCIL_CLEAR_VALUE:
+      v[0] = ctx.Clearing.ClearStencil
+    case GL_FRAMEBUFFER_BINDING:
+      v[0] = as!s32(ctx.BoundFramebuffers[GL_FRAMEBUFFER])
+    case GL_READ_FRAMEBUFFER_BINDING:
+      v[0] = as!s32(ctx.BoundFramebuffers[GL_READ_FRAMEBUFFER])
+    case GL_RENDERBUFFER_BINDING:
+      v[0] = as!s32(ctx.BoundRenderbuffers[GL_RENDERBUFFER])
+    case GL_CURRENT_PROGRAM:
+      v[0] = as!s32(ctx.BoundProgram)
+    case GL_TEXTURE_BINDING_2D:
+      v[0] = as!s32(ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_2D])
+    case GL_TEXTURE_BINDING_CUBE_MAP:
+      v[0] = as!s32(ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_CUBE_MAP])
+    case GL_GENERATE_MIPMAP_HINT:
+      v[0] = as!s32(ctx.GenerateMipmapHint)
+    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: {
+      result := ?
+      assert(result > 7)
+      v[0] = result
+    }
+    case GL_MAX_CUBE_MAP_TEXTURE_SIZE: {
+      result := ?
+      assert(result > 15)
+      v[0] = result
+    }
+    case GL_MAX_FRAGMENT_UNIFORM_VECTORS: {
+      result := ?
+      assert(result > 15)
+      v[0] = result
+    }
+    case GL_MAX_RENDERBUFFER_SIZE: {
+      result := ?
+      assert(result > 0)
+      v[0] = result
+    }
+    case GL_MAX_TEXTURE_IMAGE_UNITS: {
+      result := ?
+      assert(result > 7)
+      v[0] = result
+    }
+    case GL_MAX_TEXTURE_SIZE: {
+      result := ?
+      assert(result > 63)
+      v[0] = result
+    }
+    case GL_MAX_VARYING_VECTORS: {
+      result := ?
+      assert(result > 7)
+      v[0] = result
+    }
+    case GL_MAX_VERTEX_ATTRIBS: {
+      result := ?
+      assert(result > 7)
+      v[0] = result
+    }
+    case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
+      v[0] = ?
+    case GL_MAX_VERTEX_UNIFORM_VECTORS: {
+      result := ?
+      assert(result > 127)
+      v[0] = result
+    }
+    case GL_MAX_VIEWPORT_DIMS: {
+      max_width := ?
+      max_height := ?
+      assert(max_width > ctx.Rasterizing.Viewport.Width - 1)
+      assert(max_height > ctx.Rasterizing.Viewport.Height - 1)
+      v[0] = max_width
+      v[1] = max_height
+    }
+    case GL_NUM_COMPRESSED_TEXTURE_FORMATS: {
+      result := ?
+      assert(result > -1)
+      v[0] = result
+    }
+    case GL_NUM_SHADER_BINARY_FORMATS: {
+      result := ?
+      assert(result > -1)
+      v[0] = result
+    }
+    case GL_PACK_ALIGNMENT:
+      v[0] = ctx.PixelStorage[GL_PACK_ALIGNMENT]
+    case GL_UNPACK_ALIGNMENT:
+      v[0] = ctx.PixelStorage[GL_UNPACK_ALIGNMENT]
+    case GL_ALPHA_BITS:
+      v[0] = ?
+    case GL_BLUE_BITS:
+      v[0] = ?
+    case GL_GREEN_BITS:
+      v[0] = ?
+    case GL_RED_BITS:
+      v[0] = ?
+    case GL_DEPTH_BITS:
+      v[0] = ?
+    case GL_SAMPLE_BUFFERS:
+      v[0] = ?
+    case GL_SAMPLES:
+      v[0] = ?
+    /*
+      case GL_SHADER_BINARY_FORMATS:
+        values = ?  // list of length GL_NUM_SHADER_BINARY_FORMATS
+      case GL_COMPRESSED_TEXTURE_FORMATS:
+        values = ?  // list of length GL_NUM_COMPRESSED_TEXTURE_FORMATS
+      */
+    case GL_STENCIL_BITS:
+      v[0] = ?
+    case GL_SUBPIXEL_BITS: {
+      result := ?
+      assert(result > 3)
+      v[0] = result
+    }
+    case GL_IMPLEMENTATION_COLOR_READ_FORMAT:
+      v[0] = ?
+    case GL_IMPLEMENTATION_COLOR_READ_TYPE:
+      v[0] = ?
+    case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+      v[0] = ?
+    case GL_GPU_DISJOINT_EXT:
+      v[0] = ?
+
+  // TODO: implement the following which depend on:
+  //   glStencilOp, glStencilOpSeparate, glStencilFuncSeparate.
+  // GL_STENCIL_BACK_FAIL
+  // GL_STENCIL_BACK_FUNC
+  // GL_STENCIL_BACK_PASS_DEPTH_FAIL
+  // GL_STENCIL_BACK_PASS_DEPTH_PASS
+  // GL_STENCIL_BACK_REF
+  // GL_STENCIL_BACK_VALUE_MASK
+  // GL_STENCIL_FAIL
+  // GL_STENCIL_FUNC
+  // GL_STENCIL_PASS_DEPTH_FAIL
+  // GL_STENCIL_PASS_DEPTH_PASS
+  // GL_STENCIL_REF
+  // GL_STENCIL_VALUE_MASK
+
+  // TODO: all the values returned by glGetFloatv and glGetBooleanv can
+  // be returned here with a type conversion: "_most_ floating-point values
+  // are rounded to the nearest integer value".
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetInternalformativ.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetInternalformativ.xhtml","OpenGL ES 3.1")
+cmd void glGetInternalformativ(GLenum  target,
+                               GLenum  internalformat,
+                               GLenum  pname,
+                               GLsizei bufSize,
+                               GLint*  params) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_RENDERBUFFER: {
+      // version 3.0
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (internalformat) {
+    case GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24,
+        GL_DEPTH_COMPONENT32F, GL_R11F_G11F_B10F, GL_R16F, GL_R16I, GL_R16UI, GL_R32F, GL_R32I,
+        GL_R32UI, GL_R8, GL_R8I, GL_R8UI, GL_R8_SNORM, GL_RG16F, GL_RG16I, GL_RG16UI, GL_RG32F,
+        GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_RG8_SNORM, GL_RGB10_A2, GL_RGB10_A2UI,
+        GL_RGB16F, GL_RGB16I, GL_RGB16UI, GL_RGB32F, GL_RGB32I, GL_RGB32UI, GL_RGB565, GL_RGB5_A1,
+        GL_RGB8, GL_RGB8I, GL_RGB8UI, GL_RGB8_SNORM, GL_RGB9_E5, GL_RGBA16F, GL_RGBA16I,
+        GL_RGBA16UI, GL_RGBA32F, GL_RGBA32I, GL_RGBA32UI, GL_RGBA4, GL_RGBA8, GL_RGBA8I,
+        GL_RGBA8UI, GL_RGBA8_SNORM, GL_SRGB8, GL_SRGB8_ALPHA8: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(internalformat)
+    }
+  }
+  switch (pname) {
+    case GL_NUM_SAMPLE_COUNTS, GL_SAMPLES: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetString.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetString.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetString.xhtml","OpenGL ES 3.1")
+cmd const GLubyte* glGetString(GLenum param) {
+  minRequiredVersion(2, 0)
+  switch (param) {
+    case GL_EXTENSIONS, GL_RENDERER, GL_SHADING_LANGUAGE_VERSION, GL_VENDOR, GL_VERSION: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(param)
+    }
+  }
+
+  return null
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetString.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetString.xhtml","OpenGL ES 3.1")
+cmd const GLubyte* glGetStringi(GLenum name, GLuint index) {
+  minRequiredVersion(3, 0)
+  switch (name) {
+    case GL_EXTENSIONS: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(name)
+    }
+  }
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsEnabled.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsEnabled.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsEnabled.xhtml","OpenGL ES 3.1")
+cmd bool glIsEnabled(GLenum capability) {
+  minRequiredVersion(2, 0)
+  switch (capability) {
+    case GL_BLEND, GL_CULL_FACE, GL_DEPTH_TEST, GL_DITHER, GL_POLYGON_OFFSET_FILL,
+        GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_COVERAGE, GL_SCISSOR_TEST, GL_STENCIL_TEST: {
+      // version 2.0
+    }
+    case GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_RASTERIZER_DISCARD: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(capability)
+    }
+  }
+
+  ctx := GetContext()
+  return ctx.Capabilities[capability]
+}
+
diff --git a/gfxapi/gles/api/synchronization.api b/gfxapi/gles/api/synchronization.api
new file mode 100644
index 0000000..cec6998
--- /dev/null
+++ b/gfxapi/gles/api/synchronization.api
@@ -0,0 +1,79 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glClientWaitSync.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glClientWaitSync.xhtml","OpenGL ES 3.1")
+cmd GLenum glClientWaitSync(GLsync sync, GLbitfield syncFlags, GLuint64 timeout) {
+  minRequiredVersion(3, 0)
+  supportsBits(syncFlags, GL_SYNC_FLUSH_COMMANDS_BIT)
+  if (GL_SYNC_FLUSH_COMMANDS_BIT in syncFlags) {
+  }
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteSync.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteSync.xhtml","OpenGL ES 3.1")
+cmd void glDeleteSync(GLsync sync) {
+  minRequiredVersion(3, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glFenceSync.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glFenceSync.xhtml","OpenGL ES 3.1")
+cmd GLsync glFenceSync(GLenum condition, GLbitfield syncFlags) {
+  minRequiredVersion(3, 0)
+  switch (condition) {
+    case GL_SYNC_GPU_COMMANDS_COMPLETE: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(condition)
+    }
+  }
+
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetSynciv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetSynciv.xhtml","OpenGL ES 3.1")
+cmd void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_OBJECT_TYPE, GL_SYNC_CONDITION, GL_SYNC_FLAGS, GL_SYNC_STATUS: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsSync.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsSync.xhtml","OpenGL ES 3.1")
+cmd bool glIsSync(GLsync sync) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glWaitSync.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glWaitSync.xhtml","OpenGL ES 3.1")
+cmd void glWaitSync(GLsync sync, GLbitfield syncFlags, GLuint64 timeout) {
+  minRequiredVersion(3, 0)
+
+  assert(timeout == 0xFFFFFFFFFFFFFFFF) // GL_TIMEOUT_IGNORED
+}
+
diff --git a/gfxapi/gles/api/textures_and_samplers.api b/gfxapi/gles/api/textures_and_samplers.api
new file mode 100644
index 0000000..1985353
--- /dev/null
+++ b/gfxapi/gles/api/textures_and_samplers.api
@@ -0,0 +1,1328 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glActiveTexture.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glActiveTexture.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glActiveTexture.xhtml","OpenGL ES 3.1")
+cmd void glActiveTexture(GLenum unit) {
+  minRequiredVersion(2, 0)
+  switch (unit) {
+    case GL_TEXTURE0, GL_TEXTURE1, GL_TEXTURE10, GL_TEXTURE11, GL_TEXTURE12, GL_TEXTURE13,
+        GL_TEXTURE14, GL_TEXTURE15, GL_TEXTURE16, GL_TEXTURE17, GL_TEXTURE18, GL_TEXTURE19,
+        GL_TEXTURE2, GL_TEXTURE20, GL_TEXTURE21, GL_TEXTURE22, GL_TEXTURE23, GL_TEXTURE24,
+        GL_TEXTURE25, GL_TEXTURE26, GL_TEXTURE27, GL_TEXTURE28, GL_TEXTURE29, GL_TEXTURE3,
+        GL_TEXTURE30, GL_TEXTURE31, GL_TEXTURE4, GL_TEXTURE5, GL_TEXTURE6, GL_TEXTURE7,
+        GL_TEXTURE8, GL_TEXTURE9: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(unit)
+    }
+  }
+
+  ctx := GetContext()
+  ctx.ActiveTextureUnit = unit
+  if !(unit in ctx.TextureUnits) {
+    ctx.TextureUnits[unit] = ctx.TextureUnits[unit]
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindImageTexture.xhtml","OpenGL ES 3.1")
+cmd void glBindImageTexture(GLuint    unit,
+                            TextureId texture,
+                            GLint     level,
+                            GLboolean layered,
+                            GLint     layer,
+                            GLenum    access,
+                            GLenum    format) {
+  minRequiredVersion(3, 1)
+  switch (access) {
+    case GL_READ_ONLY, GL_READ_WRITE, GL_WRITE_ONLY: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(access)
+    }
+  }
+  switch (format) {
+    case GL_R32F, GL_R32I, GL_R32UI, GL_RGBA16F, GL_RGBA16I, GL_RGBA16UI, GL_RGBA32F, GL_RGBA32I,
+        GL_RGBA32UI, GL_RGBA8, GL_RGBA8I, GL_RGBA8UI, GL_RGBA8_SNORM: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindSampler.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindSampler.xhtml","OpenGL ES 3.1")
+cmd void glBindSampler(GLuint unit, SamplerId sampler) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindTexture.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindTexture.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindTexture.xhtml","OpenGL ES 3.1")
+cmd void glBindTexture(GLenum target, TextureId texture) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+  ctx := GetContext()
+  if !(texture in ctx.Instances.Textures) {
+    ctx.Instances.Textures[texture] = new!Texture()
+  }
+  ctx.TextureUnits[ctx.ActiveTextureUnit][target] = texture
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCompressedTexImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCompressedTexImage2D.xhtml","OpenGL ES 3.1")
+cmd void glCompressedTexImage2D(GLenum         target,
+                                GLint          level,
+                                GLenum         format,
+                                GLsizei        width,
+                                GLsizei        height,
+                                GLint          border,
+                                GLsizei        image_size,
+                                TexturePointer data) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+
+  assert(border == 0)
+  ctx := GetContext()
+  switch (target) {
+    case GL_TEXTURE_2D: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_2D]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    as!u32(image_size),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) && (data != null) {
+        l.Data = clone(as!u8*(data)[0:l.Size])
+      }
+      t.Texture2D[level] = l
+      t.Kind = TEXTURE2D // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+    case GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_CUBE_MAP]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    as!u32(image_size),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) && (data != null) {
+        l.Data = clone(as!u8*(data)[0:l.Size])
+      }
+      cube := t.Cubemap[level]
+      cube.Faces[as!GLenum(target)] = l
+      t.Cubemap[level] = cube
+      t.Kind = CUBEMAP // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCompressedTexImage3D.xhtml","OpenGL ES 3.1")
+cmd void glCompressedTexImage3D(GLenum      target,
+                                GLint       level,
+                                GLenum      internalformat,
+                                GLsizei     width,
+                                GLsizei     height,
+                                GLsizei     depth,
+                                GLint       border,
+                                GLsizei     imageSize,
+                                const void* data) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (internalformat) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(internalformat)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCompressedTexSubImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexSubImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCompressedTexSubImage2D.xhtml","OpenGL ES 3.1")
+cmd void glCompressedTexSubImage2D(GLenum         target,
+                                   GLint          level,
+                                   GLint          xoffset,
+                                   GLint          yoffset,
+                                   GLsizei        width,
+                                   GLsizei        height,
+                                   GLenum         format,
+                                   GLsizei        image_size,
+                                   TexturePointer data) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexSubImage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCompressedTexSubImage3D.xhtml","OpenGL ES 3.1")
+cmd void glCompressedTexSubImage3D(GLenum      target,
+                                   GLint       level,
+                                   GLint       xoffset,
+                                   GLint       yoffset,
+                                   GLint       zoffset,
+                                   GLsizei     width,
+                                   GLsizei     height,
+                                   GLsizei     depth,
+                                   GLenum      format,
+                                   GLsizei     imageSize,
+                                   const void* data) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCopyTexImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCopyTexImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCopyTexImage2D.xhtml","OpenGL ES 3.1")
+cmd void glCopyTexImage2D(GLenum  target,
+                          GLint   level,
+                          GLenum  format,
+                          GLint   x,
+                          GLint   y,
+                          GLsizei width,
+                          GLsizei height,
+                          GLint   border) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA: {
+      // version 2.0
+    }
+    case GL_R16I, GL_R16UI, GL_R32I, GL_R32UI, GL_R8, GL_R8I, GL_R8UI, GL_RG16I, GL_RG16UI,
+        GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_RGB10_A2, GL_RGB10_A2UI, GL_RGB565,
+        GL_RGB5_A1, GL_RGB8, GL_RGBA16I, GL_RGBA16UI, GL_RGBA32I, GL_RGBA32UI, GL_RGBA4, GL_RGBA8,
+        GL_RGBA8I, GL_RGBA8UI, GL_SRGB8, GL_SRGB8_ALPHA8: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCopyTexSubImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCopyTexSubImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCopyTexSubImage2D.xhtml","OpenGL ES 3.1")
+cmd void glCopyTexSubImage2D(GLenum  target,
+                             GLint   level,
+                             GLint   xoffset,
+                             GLint   yoffset,
+                             GLint   x,
+                             GLint   y,
+                             GLsizei width,
+                             GLsizei height) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glCopyTexSubImage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glCopyTexSubImage3D.xhtml","OpenGL ES 3.1")
+cmd void glCopyTexSubImage3D(GLenum  target,
+                             GLint   level,
+                             GLint   xoffset,
+                             GLint   yoffset,
+                             GLint   zoffset,
+                             GLint   x,
+                             GLint   y,
+                             GLsizei width,
+                             GLsizei height) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteSamplers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteSamplers.xhtml","OpenGL ES 3.1")
+cmd void glDeleteSamplers(GLsizei count, const SamplerId* samplers) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glDeleteTextures.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteTextures.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteTextures.xhtml","OpenGL ES 3.1")
+cmd void glDeleteTextures(GLsizei count, const TextureId* textures) {
+  minRequiredVersion(2, 0)
+
+  t := textures[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    ctx.Instances.Textures[t[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenSamplers.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenSamplers.xhtml","OpenGL ES 3.1")
+cmd void glGenSamplers(GLsizei count, SamplerId* samplers) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenTextures.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenTextures.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenTextures.xhtml","OpenGL ES 3.1")
+cmd void glGenTextures(GLsizei count, TextureId* textures) {
+  minRequiredVersion(2, 0)
+
+  t := textures[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!TextureId(?)
+    ctx.Instances.Textures[id] = new!Texture()
+    t[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenerateMipmap.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenerateMipmap.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenerateMipmap.xhtml","OpenGL ES 3.1")
+cmd void glGenerateMipmap(GLenum target) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetSamplerParameterfv(SamplerId sampler, GLenum pname, GLfloat* params) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetSamplerParameteriv(SamplerId sampler, GLenum pname, GLint* params) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetTexLevelParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat* params) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_3D,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_ALPHA_TYPE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_BLUE_TYPE,
+        GL_TEXTURE_COMPRESSED, GL_TEXTURE_DEPTH, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_DEPTH_TYPE,
+        GL_TEXTURE_FIXED_SAMPLE_LOCATIONS, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_GREEN_TYPE,
+        GL_TEXTURE_HEIGHT, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_RED_SIZE, GL_TEXTURE_RED_TYPE,
+        GL_TEXTURE_SAMPLES, GL_TEXTURE_SHARED_SIZE, GL_TEXTURE_STENCIL_SIZE, GL_TEXTURE_WIDTH: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetTexLevelParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_3D,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_ALPHA_TYPE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_BLUE_TYPE,
+        GL_TEXTURE_COMPRESSED, GL_TEXTURE_DEPTH, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_DEPTH_TYPE,
+        GL_TEXTURE_FIXED_SAMPLE_LOCATIONS, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_GREEN_TYPE,
+        GL_TEXTURE_HEIGHT, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_RED_SIZE, GL_TEXTURE_RED_TYPE,
+        GL_TEXTURE_SAMPLES, GL_TEXTURE_SHARED_SIZE, GL_TEXTURE_STENCIL_SIZE, GL_TEXTURE_WIDTH: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetTexParameterfv(GLenum target, GLenum parameter, GLfloat* values) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD,
+        GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R,
+        GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE, GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+        GL_TEXTURE_IMMUTABLE_LEVELS: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.TextureUnits[ctx.ActiveTextureUnit][target]
+  t := ctx.Instances.Textures[id]
+  values[0] = switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER:         as!f32(t.MagFilter)
+    case GL_TEXTURE_MIN_FILTER:         as!f32(t.MinFilter)
+    case GL_TEXTURE_WRAP_S:             as!f32(t.WrapS)
+    case GL_TEXTURE_WRAP_T:             as!f32(t.WrapT)
+    case GL_TEXTURE_MAX_ANISOTROPY_EXT: as!f32(t.MaxAnisotropy)
+    case GL_TEXTURE_SWIZZLE_R:          as!f32(t.SwizzleR)
+    case GL_TEXTURE_SWIZZLE_G:          as!f32(t.SwizzleG)
+    case GL_TEXTURE_SWIZZLE_B:          as!f32(t.SwizzleB)
+    case GL_TEXTURE_SWIZZLE_A:          as!f32(t.SwizzleA)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glGetTexParameteriv(GLenum target, GLenum parameter, GLint* values) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD,
+        GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R,
+        GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE, GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+        GL_TEXTURE_IMMUTABLE_LEVELS: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.TextureUnits[ctx.ActiveTextureUnit][target]
+  t := ctx.Instances.Textures[id]
+  values[0] = switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER:         as!s32(t.MagFilter)
+    case GL_TEXTURE_MIN_FILTER:         as!s32(t.MinFilter)
+    case GL_TEXTURE_WRAP_S:             as!s32(t.WrapS)
+    case GL_TEXTURE_WRAP_T:             as!s32(t.WrapT)
+    case GL_TEXTURE_MAX_ANISOTROPY_EXT: as!s32(t.MaxAnisotropy)
+    case GL_TEXTURE_SWIZZLE_R:          as!s32(t.SwizzleR)
+    case GL_TEXTURE_SWIZZLE_G:          as!s32(t.SwizzleG)
+    case GL_TEXTURE_SWIZZLE_B:          as!s32(t.SwizzleB)
+    case GL_TEXTURE_SWIZZLE_A:          as!s32(t.SwizzleA)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsSampler.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsSampler.xhtml","OpenGL ES 3.1")
+cmd bool glIsSampler(SamplerId sampler) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glIsTexture.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsTexture.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsTexture.xhtml","OpenGL ES 3.1")
+cmd bool glIsTexture(TextureId texture) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  return texture in ctx.Instances.Textures
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glPixelStorei.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glPixelStorei.xhtml","OpenGL ES 3.1")
+cmd void glPixelStorei(GLenum parameter, GLint value) {
+  minRequiredVersion(2, 0)
+  switch (parameter) {
+    case GL_PACK_ALIGNMENT, GL_UNPACK_ALIGNMENT: {
+      // version 2.0
+    }
+    case GL_PACK_IMAGE_HEIGHT, GL_PACK_ROW_LENGTH, GL_PACK_SKIP_IMAGES, GL_PACK_SKIP_PIXELS,
+        GL_PACK_SKIP_ROWS, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_IMAGES,
+        GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  assert((value == 1) || (value == 2) || (value == 4) || (value == 8))
+  ctx := GetContext()
+  ctx.PixelStorage[parameter] = value
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glSamplerParameterf(SamplerId sampler, GLenum pname, GLfloat param) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glSamplerParameterfv(SamplerId sampler, GLenum pname, const GLfloat* param) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glSamplerParameteri(SamplerId sampler, GLenum pname, GLint param) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glSamplerParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glSamplerParameter.xhtml","OpenGL ES 3.1")
+cmd void glSamplerParameteriv(SamplerId sampler, GLenum pname, const GLint* param) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_MAG_FILTER,
+        GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_WRAP_R,
+        GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexImage2D.xhtml","OpenGL ES 3.1")
+cmd void glTexImage2D(GLenum         target,
+                      GLint          level,
+                      GLint          internal_format,
+                      GLsizei        width,
+                      GLsizei        height,
+                      GLint          border,
+                      GLenum         format,
+                      GLenum         type,
+                      TexturePointer data) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA: {
+      // version 2.0
+    }
+    case GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_RED_INTEGER, GL_RG, GL_RGBA_INTEGER,
+        GL_RGB_INTEGER, GL_RG_INTEGER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1,
+        GL_UNSIGNED_SHORT_5_6_5: {
+      // version 2.0
+    }
+    case GL_BYTE, GL_FLOAT, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_HALF_FLOAT, GL_INT, GL_SHORT,
+        GL_UNSIGNED_INT, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_24_8,
+        GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_5_9_9_9_REV, GL_UNSIGNED_SHORT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+
+  assert(internal_format == format)
+  assert(border == 0)
+  ctx := GetContext()
+  switch (target) {
+    case GL_TEXTURE_2D: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_2D]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    imageSize(as!u32(width), as!u32(height), format, type),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (data != null) {
+        if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) {
+          l.Data = clone(as!u8*(data)[0:l.Size])
+        }
+      } else {
+        l.Data = make!u8(l.Size)
+      }
+
+      t.Texture2D[level] = l
+      t.Kind = TEXTURE2D // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+    case GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_CUBE_MAP]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    imageSize(as!u32(width), as!u32(height), format, type),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (data != null) {
+        if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) {
+          l.Data = clone(as!u8*(data)[0:l.Size])
+        }
+      } else {
+        l.Data = make!u8(l.Size)
+      }
+      cube := t.Cubemap[level]
+      cube.Faces[as!GLenum(target)] = l
+      t.Cubemap[level] = cube
+      t.Kind = CUBEMAP // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexImage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexImage3D.xhtml","OpenGL ES 3.1")
+cmd void glTexImage3D(GLenum      target,
+                      GLint       level,
+                      GLint       internalformat,
+                      GLsizei     width,
+                      GLsizei     height,
+                      GLsizei     depth,
+                      GLint       border,
+                      GLenum      format,
+                      GLenum      type,
+                      const void* pixels) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_ALPHA, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RED,
+        GL_RED_INTEGER, GL_RG, GL_RGB, GL_RGBA, GL_RGBA_INTEGER, GL_RGB_INTEGER, GL_RG_INTEGER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  switch (type) {
+    case GL_BYTE, GL_FLOAT, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_HALF_FLOAT, GL_INT, GL_SHORT,
+        GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_24_8,
+        GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_5_9_9_9_REV, GL_UNSIGNED_SHORT,
+        GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_5_6_5: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glTexParameterf(GLenum target, GLenum parameter, GLfloat value) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_A,
+        GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.TextureUnits[ctx.ActiveTextureUnit][target]
+  t := ctx.Instances.Textures[id]
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER:         t.MagFilter = as!GLenum(value)
+    case GL_TEXTURE_MIN_FILTER:         t.MinFilter = as!GLenum(value)
+    case GL_TEXTURE_WRAP_S:             t.WrapS = as!GLenum(value)
+    case GL_TEXTURE_WRAP_T:             t.WrapT = as!GLenum(value)
+    case GL_TEXTURE_MAX_ANISOTROPY_EXT: t.MaxAnisotropy = as!f32(value)
+    case GL_TEXTURE_SWIZZLE_R:          t.SwizzleR = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_G:          t.SwizzleG = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_B:          t.SwizzleB = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_A:          t.SwizzleA = as!GLenum(value)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_A,
+        GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glTexParameteri(GLenum target, GLenum parameter, GLint value) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_A,
+        GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(parameter)
+    }
+  }
+
+  ctx := GetContext()
+  id := ctx.TextureUnits[ctx.ActiveTextureUnit][target]
+  t := ctx.Instances.Textures[id]
+  switch (parameter) {
+    case GL_TEXTURE_MAG_FILTER:         t.MagFilter = as!GLenum(value)
+    case GL_TEXTURE_MIN_FILTER:         t.MinFilter = as!GLenum(value)
+    case GL_TEXTURE_WRAP_S:             t.WrapS = as!GLenum(value)
+    case GL_TEXTURE_WRAP_T:             t.WrapT = as!GLenum(value)
+    case GL_TEXTURE_MAX_ANISOTROPY_EXT: t.MaxAnisotropy = as!f32(value)
+    case GL_TEXTURE_SWIZZLE_R:          t.SwizzleR = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_G:          t.SwizzleG = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_B:          t.SwizzleB = as!GLenum(value)
+    case GL_TEXTURE_SWIZZLE_A:          t.SwizzleA = as!GLenum(value)
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexParameter.xhtml","OpenGL ES 3.1")
+cmd void glTexParameteriv(GLenum target, GLenum pname, const GLint* params) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 2.0
+    }
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (pname) {
+    case GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T: {
+      // version 2.0
+    }
+    case GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE,
+        GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_A,
+        GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_WRAP_R: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_DEPTH_STENCIL_TEXTURE_MODE: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexStorage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexStorage2D.xhtml","OpenGL ES 3.1")
+cmd void glTexStorage2D(GLenum  target,
+                        GLsizei levels,
+                        GLenum  internalformat,
+                        GLsizei width,
+                        GLsizei height) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (internalformat) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8,
+        GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32F, GL_R11F_G11F_B10F,
+        GL_R16F, GL_R16I, GL_R16UI, GL_R32F, GL_R32I, GL_R32UI, GL_R8, GL_R8I, GL_R8UI,
+        GL_R8_SNORM, GL_RG16F, GL_RG16I, GL_RG16UI, GL_RG32F, GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I,
+        GL_RG8UI, GL_RG8_SNORM, GL_RGB10_A2, GL_RGB10_A2UI, GL_RGB16F, GL_RGB16I, GL_RGB16UI,
+        GL_RGB32F, GL_RGB32I, GL_RGB32UI, GL_RGB565, GL_RGB5_A1, GL_RGB8, GL_RGB8I, GL_RGB8UI,
+        GL_RGB8_SNORM, GL_RGB9_E5, GL_RGBA16F, GL_RGBA16I, GL_RGBA16UI, GL_RGBA32F, GL_RGBA32I,
+        GL_RGBA32UI, GL_RGBA4, GL_RGBA8, GL_RGBA8I, GL_RGBA8UI, GL_RGBA8_SNORM, GL_SRGB8,
+        GL_SRGB8_ALPHA8: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(internalformat)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexStorage2DMultisample.xhtml","OpenGL ES 3.1")
+cmd void glTexStorage2DMultisample(GLenum    target,
+                                   GLsizei   samples,
+                                   GLenum    internalformat,
+                                   GLsizei   width,
+                                   GLsizei   height,
+                                   GLboolean fixedsamplelocations) {
+  minRequiredVersion(3, 1)
+  switch (target) {
+    case GL_TEXTURE_2D_MULTISAMPLE: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (internalformat) {
+    case GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24,
+        GL_DEPTH_COMPONENT32F, GL_R11F_G11F_B10F, GL_R16F, GL_R16I, GL_R16UI, GL_R32F, GL_R32I,
+        GL_R32UI, GL_R8, GL_R8I, GL_R8UI, GL_R8_SNORM, GL_RG16F, GL_RG16I, GL_RG16UI, GL_RG32F,
+        GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I, GL_RG8UI, GL_RG8_SNORM, GL_RGB10_A2, GL_RGB10_A2UI,
+        GL_RGB16F, GL_RGB16I, GL_RGB16UI, GL_RGB32F, GL_RGB32I, GL_RGB32UI, GL_RGB565, GL_RGB5_A1,
+        GL_RGB8, GL_RGB8I, GL_RGB8UI, GL_RGB8_SNORM, GL_RGB9_E5, GL_RGBA16F, GL_RGBA16I,
+        GL_RGBA16UI, GL_RGBA32F, GL_RGBA32I, GL_RGBA32UI, GL_RGBA4, GL_RGBA8, GL_RGBA8I,
+        GL_RGBA8UI, GL_RGBA8_SNORM, GL_SRGB8, GL_SRGB8_ALPHA8: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(internalformat)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexStorage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexStorage3D.xhtml","OpenGL ES 3.1")
+cmd void glTexStorage3D(GLenum  target,
+                        GLsizei levels,
+                        GLenum  internalformat,
+                        GLsizei width,
+                        GLsizei height,
+                        GLsizei depth) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (internalformat) {
+    case GL_COMPRESSED_R11_EAC, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RGB8_ETC2,
+        GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGBA8_ETC2_EAC,
+        GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC,
+        GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ETC2,
+        GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_DEPTH24_STENCIL8, GL_DEPTH32F_STENCIL8,
+        GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32F, GL_R11F_G11F_B10F,
+        GL_R16F, GL_R16I, GL_R16UI, GL_R32F, GL_R32I, GL_R32UI, GL_R8, GL_R8I, GL_R8UI,
+        GL_R8_SNORM, GL_RG16F, GL_RG16I, GL_RG16UI, GL_RG32F, GL_RG32I, GL_RG32UI, GL_RG8, GL_RG8I,
+        GL_RG8UI, GL_RG8_SNORM, GL_RGB10_A2, GL_RGB10_A2UI, GL_RGB16F, GL_RGB16I, GL_RGB16UI,
+        GL_RGB32F, GL_RGB32I, GL_RGB32UI, GL_RGB565, GL_RGB5_A1, GL_RGB8, GL_RGB8I, GL_RGB8UI,
+        GL_RGB8_SNORM, GL_RGB9_E5, GL_RGBA16F, GL_RGBA16I, GL_RGBA16UI, GL_RGBA32F, GL_RGBA32I,
+        GL_RGBA32UI, GL_RGBA4, GL_RGBA8, GL_RGBA8I, GL_RGBA8UI, GL_RGBA8_SNORM, GL_SRGB8,
+        GL_SRGB8_ALPHA8: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(internalformat)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexSubImage2D.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexSubImage2D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexSubImage2D.xhtml","OpenGL ES 3.1")
+cmd void glTexSubImage2D(GLenum         target,
+                         GLint          level,
+                         GLint          xoffset,
+                         GLint          yoffset,
+                         GLsizei        width,
+                         GLsizei        height,
+                         GLenum         format,
+                         GLenum         type,
+                         TexturePointer data) {
+  minRequiredVersion(2, 0)
+  switch (target) {
+    case GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+        GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA: {
+      // version 2.0
+    }
+    case GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_RED_INTEGER, GL_RG, GL_RGBA_INTEGER,
+        GL_RGB_INTEGER, GL_RG_INTEGER: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  switch (type) {
+    case GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1,
+        GL_UNSIGNED_SHORT_5_6_5: {
+      // version 2.0
+    }
+    case GL_BYTE, GL_FLOAT, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_HALF_FLOAT, GL_INT, GL_SHORT,
+        GL_UNSIGNED_INT, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_24_8,
+        GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_5_9_9_9_REV, GL_UNSIGNED_SHORT: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+
+  ctx := GetContext()
+  // TODO: This does not consider xoffset or yoffset and completely replaces the level.
+  // FIX.
+  switch (target) {
+    case GL_TEXTURE_2D: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_2D]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    imageSize(as!u32(width), as!u32(height), format, type),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) && (data != null) {
+        l.Data = clone(as!u8*(data)[0:l.Size])
+      }
+      t.Texture2D[level] = l
+      t.Kind = TEXTURE2D // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+    case GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+        GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: {
+      id := ctx.TextureUnits[ctx.ActiveTextureUnit][GL_TEXTURE_CUBE_MAP]
+      t := ctx.Instances.Textures[id]
+      l := Image(
+        Width:   width,
+        Height:  height,
+        Size:    imageSize(as!u32(width), as!u32(height), format, type),
+        Format:  as!GLenum(format) /* TODO: Implicit cast? */,
+      )
+      if (ctx.BoundBuffers[GL_PIXEL_UNPACK_BUFFER] == 0) && (data != null) {
+        l.Data = clone(as!u8*(data)[0:l.Size])
+      }
+      cube := t.Cubemap[level]
+      cube.Faces[as!GLenum(target)] = l
+      t.Cubemap[level] = cube
+      t.Kind = CUBEMAP // TODO: Warning/Error if kind has changed?
+      // TODO: Warning/Error if format has changed
+      t.Format = as!GLenum(format) // TODO: Implicit cast?
+    }
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTexSubImage3D.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTexSubImage3D.xhtml","OpenGL ES 3.1")
+cmd void glTexSubImage3D(GLenum      target,
+                         GLint       level,
+                         GLint       xoffset,
+                         GLint       yoffset,
+                         GLint       zoffset,
+                         GLsizei     width,
+                         GLsizei     height,
+                         GLsizei     depth,
+                         GLenum      format,
+                         GLenum      type,
+                         const void* pixels) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  switch (format) {
+    case GL_ALPHA, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RED,
+        GL_RED_INTEGER, GL_RG, GL_RGB, GL_RGBA, GL_RGBA_INTEGER, GL_RGB_INTEGER, GL_RG_INTEGER: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(format)
+    }
+  }
+  switch (type) {
+    case GL_BYTE, GL_FLOAT, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, GL_HALF_FLOAT, GL_INT, GL_SHORT,
+        GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_24_8,
+        GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_5_9_9_9_REV, GL_UNSIGNED_SHORT,
+        GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_5_6_5: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/transform_feedback.api b/gfxapi/gles/api/transform_feedback.api
new file mode 100644
index 0000000..8fd03bd
--- /dev/null
+++ b/gfxapi/gles/api/transform_feedback.api
@@ -0,0 +1,118 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBeginTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBeginTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd void glBeginTransformFeedback(GLenum primitiveMode) {
+  minRequiredVersion(3, 0)
+  switch (primitiveMode) {
+    case GL_LINES, GL_POINTS, GL_TRIANGLES: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(primitiveMode)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd void glBindTransformFeedback(GLenum target, TransformFeedbackId id) {
+  minRequiredVersion(3, 0)
+  switch (target) {
+    case GL_TRANSFORM_FEEDBACK: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(target)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteTransformFeedbacks.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteTransformFeedbacks.xhtml","OpenGL ES 3.1")
+cmd void glDeleteTransformFeedbacks(GLsizei n, const TransformFeedbackId* ids) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBeginTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBeginTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd void glEndTransformFeedback() {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenTransformFeedbacks.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenTransformFeedbacks.xhtml","OpenGL ES 3.1")
+cmd void glGenTransformFeedbacks(GLsizei n, TransformFeedbackId* ids) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetTransformFeedbackVarying.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetTransformFeedbackVarying.xhtml","OpenGL ES 3.1")
+cmd void glGetTransformFeedbackVarying(ProgramId program,
+                                       GLuint    index,
+                                       GLsizei   bufSize,
+                                       GLsizei*  length,
+                                       GLsizei*  size,
+                                       GLenum*   type,
+                                       GLchar*   name) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd bool glIsTransformFeedback(TransformFeedbackId id) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glPauseTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glPauseTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd void glPauseTransformFeedback() {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glResumeTransformFeedback.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glResumeTransformFeedback.xhtml","OpenGL ES 3.1")
+cmd void glResumeTransformFeedback() {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glTransformFeedbackVaryings.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glTransformFeedbackVaryings.xhtml","OpenGL ES 3.1")
+cmd void glTransformFeedbackVaryings(ProgramId            program,
+                                     GLsizei              count,
+                                     const GLchar* const* varyings,
+                                     GLenum               bufferMode) {
+  minRequiredVersion(3, 0)
+  switch (bufferMode) {
+    case GL_INTERLEAVED_ATTRIBS, GL_SEPARATE_ATTRIBS: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(bufferMode)
+    }
+  }
+  // TODO
+}
+
diff --git a/gfxapi/gles/api/vertex_arrays.api b/gfxapi/gles/api/vertex_arrays.api
new file mode 100644
index 0000000..5efa2ef
--- /dev/null
+++ b/gfxapi/gles/api/vertex_arrays.api
@@ -0,0 +1,402 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glBindVertexArray.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindVertexArray.xhtml","OpenGL ES 3.1")
+cmd void glBindVertexArray(VertexArrayId array) {
+  minRequiredVersion(3, 0)
+
+  ctx := GetContext()
+  if !(array in ctx.Instances.VertexArrays) {
+    ctx.Instances.VertexArrays[array] = new!VertexArray()
+  }
+  ctx.BoundVertexArray = array
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glBindVertexBuffer.xhtml","OpenGL ES 3.1")
+cmd void glBindVertexBuffer(GLuint bindingindex, BufferId buffer, GLintptr offset, GLsizei stride) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteVertexArrays.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glDeleteVertexArrays.xhtml","OpenGL ES 3.1")
+cmd void glDeleteVertexArrays(GLsizei count, const VertexArrayId* arrays) {
+  minRequiredVersion(3, 0)
+
+  ctx := GetContext()
+  a := arrays[0:count]
+  for i in (0 .. count) {
+    ctx.Instances.VertexArrays[a[i]] = null
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glEnableVertexAttribArray.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glEnableVertexAttribArray.xhtml","OpenGL ES 3.1")
+cmd void glDisableVertexAttribArray(AttributeLocation location) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.VertexAttributeArrays[location].Enabled = false
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnableVertexAttribArray.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glEnableVertexAttribArray.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glEnableVertexAttribArray.xhtml","OpenGL ES 3.1")
+cmd void glEnableVertexAttribArray(AttributeLocation location) {
+  minRequiredVersion(2, 0)
+
+  ctx := GetContext()
+  ctx.VertexAttributeArrays[location].Enabled = true
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGenVertexArrays.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGenVertexArrays.xhtml","OpenGL ES 3.1")
+cmd void glGenVertexArrays(GLsizei count, VertexArrayId* arrays) {
+  minRequiredVersion(3, 0)
+
+  a := arrays[0:count]
+  ctx := GetContext()
+  for i in (0 .. count) {
+    id := as!VertexArrayId(?)
+    ctx.Instances.VertexArrays[id] = new!VertexArray()
+    a[i] = id
+  }
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glGetVertexAttribIiv(AttributeLocation index, GLenum pname, GLint* params) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_CURRENT_VERTEX_ATTRIB, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+        GL_VERTEX_ATTRIB_ARRAY_DIVISOR, GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+        GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+        GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE: {
+      // version 3.0
+    }
+    case GL_VERTEX_ATTRIB_BINDING: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glGetVertexAttribIuiv(AttributeLocation index, GLenum pname, GLuint* params) {
+  minRequiredVersion(3, 0)
+  switch (pname) {
+    case GL_CURRENT_VERTEX_ATTRIB, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+        GL_VERTEX_ATTRIB_ARRAY_DIVISOR, GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+        GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+        GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE: {
+      // version 3.0
+    }
+    case GL_VERTEX_ATTRIB_BINDING: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetVertexAttribPointerv.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttribPointerv.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetVertexAttribPointerv.xhtml","OpenGL ES 3.1")
+cmd void glGetVertexAttribPointerv(AttributeLocation index, GLenum pname, void** pointer) {
+  minRequiredVersion(2, 0)
+  switch (pname) {
+    case GL_VERTEX_ATTRIB_ARRAY_POINTER: {
+      // version 2.0
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glGetVertexAttribfv(AttributeLocation index, GLenum pname, GLfloat* params) {
+  minRequiredVersion(2, 0)
+  switch (pname) {
+    case GL_CURRENT_VERTEX_ATTRIB, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+        GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+        GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE: {
+      // version 2.0
+    }
+    case GL_VERTEX_ATTRIB_ARRAY_DIVISOR, GL_VERTEX_ATTRIB_ARRAY_INTEGER: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_VERTEX_ATTRIB_BINDING: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glGetVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glGetVertexAttribiv(AttributeLocation index, GLenum pname, GLint* params) {
+  minRequiredVersion(2, 0)
+  switch (pname) {
+    case GL_CURRENT_VERTEX_ATTRIB, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+        GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+        GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE: {
+      // version 2.0
+    }
+    case GL_VERTEX_ATTRIB_ARRAY_DIVISOR, GL_VERTEX_ATTRIB_ARRAY_INTEGER: {
+      minRequiredVersion(3, 0)
+    }
+    case GL_VERTEX_ATTRIB_BINDING: {
+      minRequiredVersion(3, 1)
+    }
+    default: {
+      glErrorInvalidEnum(pname)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glIsVertexArray.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glIsVertexArray.xhtml","OpenGL ES 3.1")
+cmd bool glIsVertexArray(VertexArrayId array) {
+  minRequiredVersion(3, 0)
+  // TODO
+  return ?
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib1f(AttributeLocation location, GLfloat value0) {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib1fv(AttributeLocation location, const GLfloat* value) {
+  minRequiredVersion(2, 0)
+
+  read(value[0:1])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib2f(AttributeLocation location, GLfloat value0, GLfloat value1) {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib2fv(AttributeLocation location, const GLfloat* value) {
+  minRequiredVersion(2, 0)
+
+  read(value[0:2])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib3f(AttributeLocation location,
+                          GLfloat           value0,
+                          GLfloat           value1,
+                          GLfloat           value2) {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib3fv(AttributeLocation location, const GLfloat* value) {
+  minRequiredVersion(2, 0)
+
+  read(value[0:3])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib4f(AttributeLocation location,
+                          GLfloat           value0,
+                          GLfloat           value1,
+                          GLfloat           value2,
+                          GLfloat           value3) {
+  minRequiredVersion(2, 0)
+
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttrib.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttrib4fv(AttributeLocation location, const GLfloat* value) {
+  minRequiredVersion(2, 0)
+
+  read(value[0:4])
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribBinding.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribBinding(GLuint attribindex, GLuint bindingindex) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribDivisor.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribDivisor.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribDivisor(AttributeLocation index, GLuint divisor) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribFormat.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribFormat(GLuint    attribindex,
+                              GLint     size,
+                              GLenum    type,
+                              GLboolean normalized,
+                              GLuint    relativeoffset) {
+  minRequiredVersion(3, 1)
+  switch (type) {
+    case GL_BYTE, GL_FIXED, GL_FLOAT, GL_HALF_FLOAT, GL_INT, GL_INT_2_10_10_10_REV, GL_SHORT,
+        GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_SHORT: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribI4i(AttributeLocation index, GLint x, GLint y, GLint z, GLint w) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribI4iv(AttributeLocation index, const GLint* v) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribI4ui(AttributeLocation index, GLuint x, GLuint y, GLuint z, GLuint w) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttrib.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribI4uiv(AttributeLocation index, const GLuint* v) {
+  minRequiredVersion(3, 0)
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribFormat.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+  minRequiredVersion(3, 1)
+  switch (type) {
+    case GL_BYTE, GL_FIXED, GL_FLOAT, GL_HALF_FLOAT, GL_INT, GL_INT_2_10_10_10_REV, GL_SHORT,
+        GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_SHORT: {
+      // version 3.1
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribPointer.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribIPointer(AttributeLocation index,
+                                GLint             size,
+                                GLenum            type,
+                                GLsizei           stride,
+                                const void*       pointer) {
+  minRequiredVersion(3, 0)
+  switch (type) {
+    case GL_BYTE, GL_INT, GL_SHORT, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT, GL_UNSIGNED_SHORT: {
+      // version 3.0
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+  // TODO
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man/xhtml/glVertexAttribPointer.xml","OpenGL ES 2.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml","OpenGL ES 3.0")
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexAttribPointer.xhtml","OpenGL ES 3.1")
+cmd void glVertexAttribPointer(AttributeLocation location,
+                               GLint             size,
+                               GLenum            type,
+                               GLboolean         normalized,
+                               GLsizei           stride,
+                               VertexPointer     data) {
+  minRequiredVersion(2, 0)
+  switch (type) {
+    case GL_BYTE, GL_FIXED, GL_FLOAT, GL_SHORT, GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT: {
+      // version 2.0
+    }
+    case GL_HALF_FLOAT, GL_INT, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT,
+        GL_UNSIGNED_INT_2_10_10_10_REV: {
+      minRequiredVersion(3, 0)
+    }
+    default: {
+      glErrorInvalidEnum(type)
+    }
+  }
+
+  assert((size >= 1) && (size <= 4))
+  assert(stride >= 0)
+  ctx := GetContext()
+  a := ctx.VertexAttributeArrays[location]
+  a.Size = as!u32(size)
+  a.Type = type
+  a.Normalized = normalized
+  a.Stride = stride
+  a.Pointer = data
+  a.Buffer = ctx.BoundBuffers[GL_ARRAY_BUFFER]
+}
+
+@Doc("https://www.khronos.org/opengles/sdk/docs/man31/html/glVertexBindingDivisor.xhtml","OpenGL ES 3.1")
+cmd void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor) {
+  minRequiredVersion(3, 1)
+  // TODO
+}
+
diff --git a/gfxapi/templates/go_common.tmpl b/gfxapi/templates/go_common.tmpl
index f8c49f2..d9b24ab 100644
--- a/gfxapi/templates/go_common.tmpl
+++ b/gfxapi/templates/go_common.tmpl
@@ -248,7 +248,7 @@
 {{define "Go.CmdName"}}
   {{AssertType $ "Function"}}
 
-  {{Template "Go.Public" (Macro "CmdName" $)}}
+  {{Macro "CmdName" $ | Title}}
 {{end}}
 
 
diff --git a/gfxapi/test/api.go b/gfxapi/test/api.go
index cf17e2c..8ff3fed 100644
--- a/gfxapi/test/api.go
+++ b/gfxapi/test/api.go
@@ -3111,7 +3111,7 @@
 }
 
 func (a *CmdClone) String() string {
-	return fmt.Sprintf("cmd_clone(src: %v, cnt: %v)", a.Src, a.Cnt)
+	return fmt.Sprintf("cmdClone(src: %v, cnt: %v)", a.Src, a.Cnt)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3143,7 +3143,7 @@
 }
 
 func (a *CmdMake) String() string {
-	return fmt.Sprintf("cmd_make(cnt: %v)", a.Cnt)
+	return fmt.Sprintf("cmdMake(cnt: %v)", a.Cnt)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3176,7 +3176,7 @@
 }
 
 func (a *CmdCopy) String() string {
-	return fmt.Sprintf("cmd_copy(src: %v, cnt: %v)", a.Src, a.Cnt)
+	return fmt.Sprintf("cmdCopy(src: %v, cnt: %v)", a.Src, a.Cnt)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3209,7 +3209,7 @@
 }
 
 func (a *CmdCharsliceToString) String() string {
-	return fmt.Sprintf("cmd_charslice_to_string(s: %v, len: %v)", a.S, a.Len)
+	return fmt.Sprintf("cmdCharsliceToString(s: %v, len: %v)", a.S, a.Len)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3241,7 +3241,7 @@
 }
 
 func (a *CmdCharptrToString) String() string {
-	return fmt.Sprintf("cmd_charptr_to_string(s: %v)", a.S)
+	return fmt.Sprintf("cmdCharptrToString(s: %v)", a.S)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3274,7 +3274,7 @@
 }
 
 func (a *CmdSliceCasts) String() string {
-	return fmt.Sprintf("cmd_slice_casts(s: %v, l: %v)", a.S, a.L)
+	return fmt.Sprintf("cmdSliceCasts(s: %v, l: %v)", a.S, a.L)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3305,7 +3305,7 @@
 }
 
 func (a *CmdVoid) String() string {
-	return fmt.Sprintf("cmd_void()")
+	return fmt.Sprintf("cmdVoid()")
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3337,7 +3337,7 @@
 }
 
 func (a *CmdUnknownRet) String() string {
-	return fmt.Sprintf("cmd_unknown_ret() → %v", a.Result)
+	return fmt.Sprintf("cmdUnknownRet() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3369,7 +3369,7 @@
 }
 
 func (a *CmdUnknownWritePtr) String() string {
-	return fmt.Sprintf("cmd_unknown_write_ptr(p: %v)", a.P)
+	return fmt.Sprintf("cmdUnknownWritePtr(p: %v)", a.P)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3401,7 +3401,7 @@
 }
 
 func (a *CmdUnknownWriteSlice) String() string {
-	return fmt.Sprintf("cmd_unknown_write_slice(a: %v)", a.A)
+	return fmt.Sprintf("cmdUnknownWriteSlice(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3433,7 +3433,7 @@
 }
 
 func (a *CmdVoidU8) String() string {
-	return fmt.Sprintf("cmd_void_u8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidU8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3465,7 +3465,7 @@
 }
 
 func (a *CmdVoidS8) String() string {
-	return fmt.Sprintf("cmd_void_s8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidS8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3497,7 +3497,7 @@
 }
 
 func (a *CmdVoidU16) String() string {
-	return fmt.Sprintf("cmd_void_u16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidU16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3529,7 +3529,7 @@
 }
 
 func (a *CmdVoidS16) String() string {
-	return fmt.Sprintf("cmd_void_s16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidS16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3561,7 +3561,7 @@
 }
 
 func (a *CmdVoidF32) String() string {
-	return fmt.Sprintf("cmd_void_f32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidF32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3593,7 +3593,7 @@
 }
 
 func (a *CmdVoidU32) String() string {
-	return fmt.Sprintf("cmd_void_u32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidU32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3625,7 +3625,7 @@
 }
 
 func (a *CmdVoidS32) String() string {
-	return fmt.Sprintf("cmd_void_s32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidS32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3657,7 +3657,7 @@
 }
 
 func (a *CmdVoidF64) String() string {
-	return fmt.Sprintf("cmd_void_f64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidF64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3689,7 +3689,7 @@
 }
 
 func (a *CmdVoidU64) String() string {
-	return fmt.Sprintf("cmd_void_u64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidU64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3721,7 +3721,7 @@
 }
 
 func (a *CmdVoidS64) String() string {
-	return fmt.Sprintf("cmd_void_s64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidS64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3753,7 +3753,7 @@
 }
 
 func (a *CmdVoidBool) String() string {
-	return fmt.Sprintf("cmd_void_bool(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidBool(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3785,7 +3785,7 @@
 }
 
 func (a *CmdVoidString) String() string {
-	return fmt.Sprintf("cmd_void_string(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidString(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3819,7 +3819,7 @@
 }
 
 func (a *CmdVoid3Strings) String() string {
-	return fmt.Sprintf("cmd_void_3_strings(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
+	return fmt.Sprintf("cmdVoid3Strings(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3853,7 +3853,7 @@
 }
 
 func (a *CmdVoid3InArrays) String() string {
-	return fmt.Sprintf("cmd_void_3_in_arrays(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
+	return fmt.Sprintf("cmdVoid3InArrays(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3886,7 +3886,7 @@
 }
 
 func (a *CmdVoidInArrayOfPointers) String() string {
-	return fmt.Sprintf("cmd_void_in_array_of_pointers(a: %v, count: %v)", a.A, a.Count)
+	return fmt.Sprintf("cmdVoidInArrayOfPointers(a: %v, count: %v)", a.A, a.Count)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3918,7 +3918,7 @@
 }
 
 func (a *CmdVoidReadU8) String() string {
-	return fmt.Sprintf("cmd_void_read_u8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadU8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3950,7 +3950,7 @@
 }
 
 func (a *CmdVoidReadS8) String() string {
-	return fmt.Sprintf("cmd_void_read_s8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadS8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -3982,7 +3982,7 @@
 }
 
 func (a *CmdVoidReadU16) String() string {
-	return fmt.Sprintf("cmd_void_read_u16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadU16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4014,7 +4014,7 @@
 }
 
 func (a *CmdVoidReadS16) String() string {
-	return fmt.Sprintf("cmd_void_read_s16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadS16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4046,7 +4046,7 @@
 }
 
 func (a *CmdVoidReadF32) String() string {
-	return fmt.Sprintf("cmd_void_read_f32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadF32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4078,7 +4078,7 @@
 }
 
 func (a *CmdVoidReadU32) String() string {
-	return fmt.Sprintf("cmd_void_read_u32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadU32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4110,7 +4110,7 @@
 }
 
 func (a *CmdVoidReadS32) String() string {
-	return fmt.Sprintf("cmd_void_read_s32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadS32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4142,7 +4142,7 @@
 }
 
 func (a *CmdVoidReadF64) String() string {
-	return fmt.Sprintf("cmd_void_read_f64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadF64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4174,7 +4174,7 @@
 }
 
 func (a *CmdVoidReadU64) String() string {
-	return fmt.Sprintf("cmd_void_read_u64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadU64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4206,7 +4206,7 @@
 }
 
 func (a *CmdVoidReadS64) String() string {
-	return fmt.Sprintf("cmd_void_read_s64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadS64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4238,7 +4238,7 @@
 }
 
 func (a *CmdVoidReadBool) String() string {
-	return fmt.Sprintf("cmd_void_read_bool(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidReadBool(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4272,7 +4272,7 @@
 }
 
 func (a *CmdVoidReadPtrs) String() string {
-	return fmt.Sprintf("cmd_void_read_ptrs(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
+	return fmt.Sprintf("cmdVoidReadPtrs(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4304,7 +4304,7 @@
 }
 
 func (a *CmdVoidWriteU8) String() string {
-	return fmt.Sprintf("cmd_void_write_u8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteU8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4336,7 +4336,7 @@
 }
 
 func (a *CmdVoidWriteS8) String() string {
-	return fmt.Sprintf("cmd_void_write_s8(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteS8(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4368,7 +4368,7 @@
 }
 
 func (a *CmdVoidWriteU16) String() string {
-	return fmt.Sprintf("cmd_void_write_u16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteU16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4400,7 +4400,7 @@
 }
 
 func (a *CmdVoidWriteS16) String() string {
-	return fmt.Sprintf("cmd_void_write_s16(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteS16(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4432,7 +4432,7 @@
 }
 
 func (a *CmdVoidWriteF32) String() string {
-	return fmt.Sprintf("cmd_void_write_f32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteF32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4464,7 +4464,7 @@
 }
 
 func (a *CmdVoidWriteU32) String() string {
-	return fmt.Sprintf("cmd_void_write_u32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteU32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4496,7 +4496,7 @@
 }
 
 func (a *CmdVoidWriteS32) String() string {
-	return fmt.Sprintf("cmd_void_write_s32(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteS32(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4528,7 +4528,7 @@
 }
 
 func (a *CmdVoidWriteF64) String() string {
-	return fmt.Sprintf("cmd_void_write_f64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteF64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4560,7 +4560,7 @@
 }
 
 func (a *CmdVoidWriteU64) String() string {
-	return fmt.Sprintf("cmd_void_write_u64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteU64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4592,7 +4592,7 @@
 }
 
 func (a *CmdVoidWriteS64) String() string {
-	return fmt.Sprintf("cmd_void_write_s64(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteS64(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4624,7 +4624,7 @@
 }
 
 func (a *CmdVoidWriteBool) String() string {
-	return fmt.Sprintf("cmd_void_write_bool(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidWriteBool(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4658,7 +4658,7 @@
 }
 
 func (a *CmdVoidWritePtrs) String() string {
-	return fmt.Sprintf("cmd_void_write_ptrs(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
+	return fmt.Sprintf("cmdVoidWritePtrs(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4690,7 +4690,7 @@
 }
 
 func (a *CmdU8) String() string {
-	return fmt.Sprintf("cmd_u8() → %v", a.Result)
+	return fmt.Sprintf("cmdU8() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4722,7 +4722,7 @@
 }
 
 func (a *CmdS8) String() string {
-	return fmt.Sprintf("cmd_s8() → %v", a.Result)
+	return fmt.Sprintf("cmdS8() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4754,7 +4754,7 @@
 }
 
 func (a *CmdU16) String() string {
-	return fmt.Sprintf("cmd_u16() → %v", a.Result)
+	return fmt.Sprintf("cmdU16() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4786,7 +4786,7 @@
 }
 
 func (a *CmdS16) String() string {
-	return fmt.Sprintf("cmd_s16() → %v", a.Result)
+	return fmt.Sprintf("cmdS16() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4818,7 +4818,7 @@
 }
 
 func (a *CmdF32) String() string {
-	return fmt.Sprintf("cmd_f32() → %v", a.Result)
+	return fmt.Sprintf("cmdF32() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4850,7 +4850,7 @@
 }
 
 func (a *CmdU32) String() string {
-	return fmt.Sprintf("cmd_u32() → %v", a.Result)
+	return fmt.Sprintf("cmdU32() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4882,7 +4882,7 @@
 }
 
 func (a *CmdS32) String() string {
-	return fmt.Sprintf("cmd_s32() → %v", a.Result)
+	return fmt.Sprintf("cmdS32() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4914,7 +4914,7 @@
 }
 
 func (a *CmdF64) String() string {
-	return fmt.Sprintf("cmd_f64() → %v", a.Result)
+	return fmt.Sprintf("cmdF64() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4946,7 +4946,7 @@
 }
 
 func (a *CmdU64) String() string {
-	return fmt.Sprintf("cmd_u64() → %v", a.Result)
+	return fmt.Sprintf("cmdU64() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -4978,7 +4978,7 @@
 }
 
 func (a *CmdS64) String() string {
-	return fmt.Sprintf("cmd_s64() → %v", a.Result)
+	return fmt.Sprintf("cmdS64() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5010,7 +5010,7 @@
 }
 
 func (a *CmdBool) String() string {
-	return fmt.Sprintf("cmd_bool() → %v", a.Result)
+	return fmt.Sprintf("cmdBool() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5042,7 +5042,7 @@
 }
 
 func (a *CmdString) String() string {
-	return fmt.Sprintf("cmd_string() → %v", a.Result)
+	return fmt.Sprintf("cmdString() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5074,7 +5074,7 @@
 }
 
 func (a *CmdPointer) String() string {
-	return fmt.Sprintf("cmd_pointer() → %v", a.Result)
+	return fmt.Sprintf("cmdPointer() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5108,7 +5108,7 @@
 }
 
 func (a *CmdVoid3Remapped) String() string {
-	return fmt.Sprintf("cmd_void_3_remapped(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
+	return fmt.Sprintf("cmdVoid3Remapped(a: %v, b: %v, c: %v)", a.A, a.B, a.C)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5140,7 +5140,7 @@
 }
 
 func (a *CmdVoidInArrayOfRemapped) String() string {
-	return fmt.Sprintf("cmd_void_in_array_of_remapped(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidInArrayOfRemapped(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5172,7 +5172,7 @@
 }
 
 func (a *CmdVoidOutArrayOfRemapped) String() string {
-	return fmt.Sprintf("cmd_void_out_array_of_remapped(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidOutArrayOfRemapped(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5204,7 +5204,7 @@
 }
 
 func (a *CmdVoidOutArrayOfUnknownRemapped) String() string {
-	return fmt.Sprintf("cmd_void_out_array_of_unknown_remapped(a: %v)", a.A)
+	return fmt.Sprintf("cmdVoidOutArrayOfUnknownRemapped(a: %v)", a.A)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
@@ -5236,7 +5236,7 @@
 }
 
 func (a *CmdRemapped) String() string {
-	return fmt.Sprintf("cmd_remapped() → %v", a.Result)
+	return fmt.Sprintf("cmdRemapped() → %v", a.Result)
 }
 
 // AddRead appends a new read observation to the atom of the range rng with
diff --git a/gfxapi/test/gfxapi_test.api b/gfxapi/test/gfxapi_test.api
index 72696ed..b65e1c1 100644
--- a/gfxapi/test/gfxapi_test.api
+++ b/gfxapi/test/gfxapi_test.api
@@ -29,28 +29,28 @@
 int[]  ints
 string str
 
-cmd void cmd_clone(u8* src, u32 cnt) {
+cmd void cmdClone(u8* src, u32 cnt) {
   u8s = clone(src[0:cnt])
 }
 
-cmd void cmd_make(u32 cnt) {
+cmd void cmdMake(u32 cnt) {
   u8s = make!u8(cnt)
 }
 
-cmd void cmd_copy(u8* src, u32 cnt) {
+cmd void cmdCopy(u8* src, u32 cnt) {
   u8s = make!u8(cnt)
   copy(u8s, src[0:cnt])
 }
 
-cmd void cmd_charslice_to_string(char* s, u32 len) {
+cmd void cmdCharsliceToString(char* s, u32 len) {
   str = as!string(s[0:len])
 }
 
-cmd void cmd_charptr_to_string(char* s) {
+cmd void cmdCharptrToString(char* s) {
   str = as!string(s)
 }
 
-cmd void cmd_slice_casts(u16* s, u32 l) {
+cmd void cmdSliceCasts(u16* s, u32 l) {
   u8s  = as!u8[](s[0:l])
   u16s = as!u16[](s[0:l])
   u32s = as!u32[](s[0:l])
@@ -60,7 +60,7 @@
 ////////////////////////////////////////////////////////////////
 // Void, no args
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void() {}
+cmd void cmdVoid() {}
 
 ////////////////////////////////////////////////////////////////
 // Unknown tests
@@ -68,27 +68,27 @@
 // TODO: These do not currently compile
 // int unk
 //
-// cmd int cmd_unknown_ret() {
+// cmd int cmdUnknownRet() {
 //   i := ?
 //   unk = i
 //   return i
 // }
 //
-// cmd void cmd_unknown_ptr(int* p) {
+// cmd void cmdUnknownPtr(int* p) {
 //   i := ?
 //   unk = i
 //   p[0] = i
 // }
 
-cmd int cmd_unknown_ret() {
+cmd int cmdUnknownRet() {
   return ?
 }
 
-cmd void cmd_unknown_write_ptr(int* p) {
+cmd void cmdUnknownWritePtr(int* p) {
   p[0] = ?
 }
 
-cmd void cmd_unknown_write_slice(int* a) {
+cmd void cmdUnknownWriteSlice(int* a) {
   count := 5
   slice := a[0:count]
   for i in (0 .. count) {
@@ -100,28 +100,28 @@
 ////////////////////////////////////////////////////////////////
 // Commands with a single input argument
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_u8(u8 a)         {}
-cmd void cmd_void_s8(s8 a)         {}
-cmd void cmd_void_u16(u16 a)       {}
-cmd void cmd_void_s16(s16 a)       {}
-cmd void cmd_void_f32(f32 a)       {}
-cmd void cmd_void_u32(u32 a)       {}
-cmd void cmd_void_s32(s32 a)       {}
-cmd void cmd_void_f64(f64 a)       {}
-cmd void cmd_void_u64(u64 a)       {}
-cmd void cmd_void_s64(s64 a)       {}
-cmd void cmd_void_bool(bool a)     {}
-cmd void cmd_void_string(string a) {}
+cmd void cmdVoidU8(u8 a)         {}
+cmd void cmdVoidS8(s8 a)         {}
+cmd void cmdVoidU16(u16 a)       {}
+cmd void cmdVoidS16(s16 a)       {}
+cmd void cmdVoidF32(f32 a)       {}
+cmd void cmdVoidU32(u32 a)       {}
+cmd void cmdVoidS32(s32 a)       {}
+cmd void cmdVoidF64(f64 a)       {}
+cmd void cmdVoidU64(u64 a)       {}
+cmd void cmdVoidS64(s64 a)       {}
+cmd void cmdVoidBool(bool a)     {}
+cmd void cmdVoidString(string a) {}
 
 ////////////////////////////////////////////////////////////////
 // Commands with more than one input
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_3_strings(string a, string b, string c) {}
+cmd void cmdVoid3Strings(string a, string b, string c) {}
 
 ////////////////////////////////////////////////////////////////
 // Commands with input arrays
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_3_in_arrays(u8* a, u32* b, int* c) {
+cmd void cmdVoid3InArrays(u8* a, u32* b, int* c) {
   u8s = make!u8(10)
   read(b[5:15])
 	read(c[5:15])
@@ -131,7 +131,7 @@
 ////////////////////////////////////////////////////////////////
 // Commands with input of arrays of pointers
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_in_array_of_pointers(char** a, s32 count) {
+cmd void cmdVoidInArrayOfPointers(char** a, s32 count) {
   slice := a[0:count]
   for i in (0 .. count) {
     x := slice[i][0]
@@ -141,22 +141,22 @@
 ////////////////////////////////////////////////////////////////
 // Commands with a single pointer element read
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_read_u8(u8* a)     { x := a[0] }
-cmd void cmd_void_read_s8(s8* a)     { x := a[0] }
-cmd void cmd_void_read_u16(u16* a)   { x := a[0] }
-cmd void cmd_void_read_s16(s16* a)   { x := a[0] }
-cmd void cmd_void_read_f32(f32* a)   { x := a[0] }
-cmd void cmd_void_read_u32(u32* a)   { x := a[0] }
-cmd void cmd_void_read_s32(s32* a)   { x := a[0] }
-cmd void cmd_void_read_f64(f64* a)   { x := a[0] }
-cmd void cmd_void_read_u64(u64* a)   { x := a[0] }
-cmd void cmd_void_read_s64(s64* a)   { x := a[0] }
-cmd void cmd_void_read_bool(bool* a) { x := a[0] }
+cmd void cmdVoidReadU8(u8* a)     { x := a[0] }
+cmd void cmdVoidReadS8(s8* a)     { x := a[0] }
+cmd void cmdVoidReadU16(u16* a)   { x := a[0] }
+cmd void cmdVoidReadS16(s16* a)   { x := a[0] }
+cmd void cmdVoidReadF32(f32* a)   { x := a[0] }
+cmd void cmdVoidReadU32(u32* a)   { x := a[0] }
+cmd void cmdVoidReadS32(s32* a)   { x := a[0] }
+cmd void cmdVoidReadF64(f64* a)   { x := a[0] }
+cmd void cmdVoidReadU64(u64* a)   { x := a[0] }
+cmd void cmdVoidReadS64(s64* a)   { x := a[0] }
+cmd void cmdVoidReadBool(bool* a) { x := a[0] }
 
 ////////////////////////////////////////////////////////////////
 // Commands with multiple pointer element reads
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_read_ptrs(f32* a, u16* b, bool* c) {
+cmd void cmdVoidReadPtrs(f32* a, u16* b, bool* c) {
   x := a[0]
   y := b[0]
   z := c[0]
@@ -165,22 +165,22 @@
 ////////////////////////////////////////////////////////////////
 // Commands with a single pointer element write
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_write_u8(u8* a)     { a[0] = 1 }
-cmd void cmd_void_write_s8(s8* a)     { a[0] = 1 }
-cmd void cmd_void_write_u16(u16* a)   { a[0] = 1 }
-cmd void cmd_void_write_s16(s16* a)   { a[0] = 1 }
-cmd void cmd_void_write_f32(f32* a)   { a[0] = 1 }
-cmd void cmd_void_write_u32(u32* a)   { a[0] = 1 }
-cmd void cmd_void_write_s32(s32* a)   { a[0] = 1 }
-cmd void cmd_void_write_f64(f64* a)   { a[0] = 1 }
-cmd void cmd_void_write_u64(u64* a)   { a[0] = 1 }
-cmd void cmd_void_write_s64(s64* a)   { a[0] = 1 }
-cmd void cmd_void_write_bool(bool* a) { a[0] = true }
+cmd void cmdVoidWriteU8(u8* a)     { a[0] = 1 }
+cmd void cmdVoidWriteS8(s8* a)     { a[0] = 1 }
+cmd void cmdVoidWriteU16(u16* a)   { a[0] = 1 }
+cmd void cmdVoidWriteS16(s16* a)   { a[0] = 1 }
+cmd void cmdVoidWriteF32(f32* a)   { a[0] = 1 }
+cmd void cmdVoidWriteU32(u32* a)   { a[0] = 1 }
+cmd void cmdVoidWriteS32(s32* a)   { a[0] = 1 }
+cmd void cmdVoidWriteF64(f64* a)   { a[0] = 1 }
+cmd void cmdVoidWriteU64(u64* a)   { a[0] = 1 }
+cmd void cmdVoidWriteS64(s64* a)   { a[0] = 1 }
+cmd void cmdVoidWriteBool(bool* a) { a[0] = true }
 
 ////////////////////////////////////////////////////////////////
 // Commands with multiple pointer element writes
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_write_ptrs(f32* a, u16* b, bool* c) {
+cmd void cmdVoidWritePtrs(f32* a, u16* b, bool* c) {
   a[0] = 10
   b[0] = 20
   c[0] = false
@@ -189,30 +189,30 @@
 ////////////////////////////////////////////////////////////////
 // Commands with a return value
 ////////////////////////////////////////////////////////////////
-cmd u8     cmd_u8()      { return 0 }
-cmd s8     cmd_s8()      { return 0 }
-cmd u16    cmd_u16()     { return 0 }
-cmd s16    cmd_s16()     { return 0 }
-cmd f32    cmd_f32()     { return 0 }
-cmd u32    cmd_u32()     { return 0 }
-cmd s32    cmd_s32()     { return 0 }
-cmd f64    cmd_f64()     { return 0 }
-cmd u64    cmd_u64()     { return 0 }
-cmd s64    cmd_s64()     { return 0 }
-cmd bool   cmd_bool()    { return false }
-cmd string cmd_string()  { return "" }
-cmd void*  cmd_pointer() { return ? }
+cmd u8     cmdU8()      { return 0 }
+cmd s8     cmdS8()      { return 0 }
+cmd u16    cmdU16()     { return 0 }
+cmd s16    cmdS16()     { return 0 }
+cmd f32    cmdF32()     { return 0 }
+cmd u32    cmdU32()     { return 0 }
+cmd s32    cmdS32()     { return 0 }
+cmd f64    cmdF64()     { return 0 }
+cmd u64    cmdU64()     { return 0 }
+cmd s64    cmdS64()     { return 0 }
+cmd bool   cmdBool()    { return false }
+cmd string cmdString()  { return "" }
+cmd void*  cmdPointer() { return ? }
 
 ////////////////////////////////////////////////////////////////
 // Commands with remapped arguments
 ////////////////////////////////////////////////////////////////
-cmd void cmd_void_3_remapped(remapped a, remapped b, remapped c) {}
+cmd void cmdVoid3Remapped(remapped a, remapped b, remapped c) {}
 
-cmd void cmd_void_in_array_of_remapped(remapped* a) { read(a[0:5]) }
+cmd void cmdVoidInArrayOfRemapped(remapped* a) { read(a[0:5]) }
 
-cmd void cmd_void_out_array_of_remapped(remapped* a) { write(a[0:5]) }
+cmd void cmdVoidOutArrayOfRemapped(remapped* a) { write(a[0:5]) }
 
-cmd void cmd_void_out_array_of_unknown_remapped(remapped* a) {
+cmd void cmdVoidOutArrayOfUnknownRemapped(remapped* a) {
   count := 5
   slice := a[0:count]
   for i in (0 .. count) {
@@ -221,4 +221,4 @@
   }
 }
 
-cmd remapped cmd_remapped() { return ? }
+cmd remapped cmdRemapped() { return ? }
diff --git a/gfxapi/test/schema.go b/gfxapi/test/schema.go
index a0538a4..b49c02f 100644
--- a/gfxapi/test/schema.go
+++ b/gfxapi/test/schema.go
@@ -13,7 +13,7 @@
 	sc_CmdClone := schema.Of((*CmdClone)(nil).Class())
 	sc_CmdClone.Metadata = append(sc_CmdClone.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_clone",
+		DisplayName:      "cmdClone",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -21,7 +21,7 @@
 	sc_CmdMake := schema.Of((*CmdMake)(nil).Class())
 	sc_CmdMake.Metadata = append(sc_CmdMake.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_make",
+		DisplayName:      "cmdMake",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -29,7 +29,7 @@
 	sc_CmdCopy := schema.Of((*CmdCopy)(nil).Class())
 	sc_CmdCopy.Metadata = append(sc_CmdCopy.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_copy",
+		DisplayName:      "cmdCopy",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -37,7 +37,7 @@
 	sc_CmdCharsliceToString := schema.Of((*CmdCharsliceToString)(nil).Class())
 	sc_CmdCharsliceToString.Metadata = append(sc_CmdCharsliceToString.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_charslice_to_string",
+		DisplayName:      "cmdCharsliceToString",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -45,7 +45,7 @@
 	sc_CmdCharptrToString := schema.Of((*CmdCharptrToString)(nil).Class())
 	sc_CmdCharptrToString.Metadata = append(sc_CmdCharptrToString.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_charptr_to_string",
+		DisplayName:      "cmdCharptrToString",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -53,7 +53,7 @@
 	sc_CmdSliceCasts := schema.Of((*CmdSliceCasts)(nil).Class())
 	sc_CmdSliceCasts.Metadata = append(sc_CmdSliceCasts.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_slice_casts",
+		DisplayName:      "cmdSliceCasts",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -61,7 +61,7 @@
 	sc_CmdVoid := schema.Of((*CmdVoid)(nil).Class())
 	sc_CmdVoid.Metadata = append(sc_CmdVoid.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void",
+		DisplayName:      "cmdVoid",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -69,7 +69,7 @@
 	sc_CmdUnknownRet := schema.Of((*CmdUnknownRet)(nil).Class())
 	sc_CmdUnknownRet.Metadata = append(sc_CmdUnknownRet.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_unknown_ret",
+		DisplayName:      "cmdUnknownRet",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -77,7 +77,7 @@
 	sc_CmdUnknownWritePtr := schema.Of((*CmdUnknownWritePtr)(nil).Class())
 	sc_CmdUnknownWritePtr.Metadata = append(sc_CmdUnknownWritePtr.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_unknown_write_ptr",
+		DisplayName:      "cmdUnknownWritePtr",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -85,7 +85,7 @@
 	sc_CmdUnknownWriteSlice := schema.Of((*CmdUnknownWriteSlice)(nil).Class())
 	sc_CmdUnknownWriteSlice.Metadata = append(sc_CmdUnknownWriteSlice.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_unknown_write_slice",
+		DisplayName:      "cmdUnknownWriteSlice",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -93,7 +93,7 @@
 	sc_CmdVoidU8 := schema.Of((*CmdVoidU8)(nil).Class())
 	sc_CmdVoidU8.Metadata = append(sc_CmdVoidU8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_u8",
+		DisplayName:      "cmdVoidU8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -101,7 +101,7 @@
 	sc_CmdVoidS8 := schema.Of((*CmdVoidS8)(nil).Class())
 	sc_CmdVoidS8.Metadata = append(sc_CmdVoidS8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_s8",
+		DisplayName:      "cmdVoidS8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -109,7 +109,7 @@
 	sc_CmdVoidU16 := schema.Of((*CmdVoidU16)(nil).Class())
 	sc_CmdVoidU16.Metadata = append(sc_CmdVoidU16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_u16",
+		DisplayName:      "cmdVoidU16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -117,7 +117,7 @@
 	sc_CmdVoidS16 := schema.Of((*CmdVoidS16)(nil).Class())
 	sc_CmdVoidS16.Metadata = append(sc_CmdVoidS16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_s16",
+		DisplayName:      "cmdVoidS16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -125,7 +125,7 @@
 	sc_CmdVoidF32 := schema.Of((*CmdVoidF32)(nil).Class())
 	sc_CmdVoidF32.Metadata = append(sc_CmdVoidF32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_f32",
+		DisplayName:      "cmdVoidF32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -133,7 +133,7 @@
 	sc_CmdVoidU32 := schema.Of((*CmdVoidU32)(nil).Class())
 	sc_CmdVoidU32.Metadata = append(sc_CmdVoidU32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_u32",
+		DisplayName:      "cmdVoidU32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -141,7 +141,7 @@
 	sc_CmdVoidS32 := schema.Of((*CmdVoidS32)(nil).Class())
 	sc_CmdVoidS32.Metadata = append(sc_CmdVoidS32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_s32",
+		DisplayName:      "cmdVoidS32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -149,7 +149,7 @@
 	sc_CmdVoidF64 := schema.Of((*CmdVoidF64)(nil).Class())
 	sc_CmdVoidF64.Metadata = append(sc_CmdVoidF64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_f64",
+		DisplayName:      "cmdVoidF64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -157,7 +157,7 @@
 	sc_CmdVoidU64 := schema.Of((*CmdVoidU64)(nil).Class())
 	sc_CmdVoidU64.Metadata = append(sc_CmdVoidU64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_u64",
+		DisplayName:      "cmdVoidU64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -165,7 +165,7 @@
 	sc_CmdVoidS64 := schema.Of((*CmdVoidS64)(nil).Class())
 	sc_CmdVoidS64.Metadata = append(sc_CmdVoidS64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_s64",
+		DisplayName:      "cmdVoidS64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -173,7 +173,7 @@
 	sc_CmdVoidBool := schema.Of((*CmdVoidBool)(nil).Class())
 	sc_CmdVoidBool.Metadata = append(sc_CmdVoidBool.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_bool",
+		DisplayName:      "cmdVoidBool",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -181,7 +181,7 @@
 	sc_CmdVoidString := schema.Of((*CmdVoidString)(nil).Class())
 	sc_CmdVoidString.Metadata = append(sc_CmdVoidString.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_string",
+		DisplayName:      "cmdVoidString",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -189,7 +189,7 @@
 	sc_CmdVoid3Strings := schema.Of((*CmdVoid3Strings)(nil).Class())
 	sc_CmdVoid3Strings.Metadata = append(sc_CmdVoid3Strings.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_3_strings",
+		DisplayName:      "cmdVoid3Strings",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -197,7 +197,7 @@
 	sc_CmdVoid3InArrays := schema.Of((*CmdVoid3InArrays)(nil).Class())
 	sc_CmdVoid3InArrays.Metadata = append(sc_CmdVoid3InArrays.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_3_in_arrays",
+		DisplayName:      "cmdVoid3InArrays",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -205,7 +205,7 @@
 	sc_CmdVoidInArrayOfPointers := schema.Of((*CmdVoidInArrayOfPointers)(nil).Class())
 	sc_CmdVoidInArrayOfPointers.Metadata = append(sc_CmdVoidInArrayOfPointers.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_in_array_of_pointers",
+		DisplayName:      "cmdVoidInArrayOfPointers",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -213,7 +213,7 @@
 	sc_CmdVoidReadU8 := schema.Of((*CmdVoidReadU8)(nil).Class())
 	sc_CmdVoidReadU8.Metadata = append(sc_CmdVoidReadU8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_u8",
+		DisplayName:      "cmdVoidReadU8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -221,7 +221,7 @@
 	sc_CmdVoidReadS8 := schema.Of((*CmdVoidReadS8)(nil).Class())
 	sc_CmdVoidReadS8.Metadata = append(sc_CmdVoidReadS8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_s8",
+		DisplayName:      "cmdVoidReadS8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -229,7 +229,7 @@
 	sc_CmdVoidReadU16 := schema.Of((*CmdVoidReadU16)(nil).Class())
 	sc_CmdVoidReadU16.Metadata = append(sc_CmdVoidReadU16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_u16",
+		DisplayName:      "cmdVoidReadU16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -237,7 +237,7 @@
 	sc_CmdVoidReadS16 := schema.Of((*CmdVoidReadS16)(nil).Class())
 	sc_CmdVoidReadS16.Metadata = append(sc_CmdVoidReadS16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_s16",
+		DisplayName:      "cmdVoidReadS16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -245,7 +245,7 @@
 	sc_CmdVoidReadF32 := schema.Of((*CmdVoidReadF32)(nil).Class())
 	sc_CmdVoidReadF32.Metadata = append(sc_CmdVoidReadF32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_f32",
+		DisplayName:      "cmdVoidReadF32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -253,7 +253,7 @@
 	sc_CmdVoidReadU32 := schema.Of((*CmdVoidReadU32)(nil).Class())
 	sc_CmdVoidReadU32.Metadata = append(sc_CmdVoidReadU32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_u32",
+		DisplayName:      "cmdVoidReadU32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -261,7 +261,7 @@
 	sc_CmdVoidReadS32 := schema.Of((*CmdVoidReadS32)(nil).Class())
 	sc_CmdVoidReadS32.Metadata = append(sc_CmdVoidReadS32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_s32",
+		DisplayName:      "cmdVoidReadS32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -269,7 +269,7 @@
 	sc_CmdVoidReadF64 := schema.Of((*CmdVoidReadF64)(nil).Class())
 	sc_CmdVoidReadF64.Metadata = append(sc_CmdVoidReadF64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_f64",
+		DisplayName:      "cmdVoidReadF64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -277,7 +277,7 @@
 	sc_CmdVoidReadU64 := schema.Of((*CmdVoidReadU64)(nil).Class())
 	sc_CmdVoidReadU64.Metadata = append(sc_CmdVoidReadU64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_u64",
+		DisplayName:      "cmdVoidReadU64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -285,7 +285,7 @@
 	sc_CmdVoidReadS64 := schema.Of((*CmdVoidReadS64)(nil).Class())
 	sc_CmdVoidReadS64.Metadata = append(sc_CmdVoidReadS64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_s64",
+		DisplayName:      "cmdVoidReadS64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -293,7 +293,7 @@
 	sc_CmdVoidReadBool := schema.Of((*CmdVoidReadBool)(nil).Class())
 	sc_CmdVoidReadBool.Metadata = append(sc_CmdVoidReadBool.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_bool",
+		DisplayName:      "cmdVoidReadBool",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -301,7 +301,7 @@
 	sc_CmdVoidReadPtrs := schema.Of((*CmdVoidReadPtrs)(nil).Class())
 	sc_CmdVoidReadPtrs.Metadata = append(sc_CmdVoidReadPtrs.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_read_ptrs",
+		DisplayName:      "cmdVoidReadPtrs",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -309,7 +309,7 @@
 	sc_CmdVoidWriteU8 := schema.Of((*CmdVoidWriteU8)(nil).Class())
 	sc_CmdVoidWriteU8.Metadata = append(sc_CmdVoidWriteU8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_u8",
+		DisplayName:      "cmdVoidWriteU8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -317,7 +317,7 @@
 	sc_CmdVoidWriteS8 := schema.Of((*CmdVoidWriteS8)(nil).Class())
 	sc_CmdVoidWriteS8.Metadata = append(sc_CmdVoidWriteS8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_s8",
+		DisplayName:      "cmdVoidWriteS8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -325,7 +325,7 @@
 	sc_CmdVoidWriteU16 := schema.Of((*CmdVoidWriteU16)(nil).Class())
 	sc_CmdVoidWriteU16.Metadata = append(sc_CmdVoidWriteU16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_u16",
+		DisplayName:      "cmdVoidWriteU16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -333,7 +333,7 @@
 	sc_CmdVoidWriteS16 := schema.Of((*CmdVoidWriteS16)(nil).Class())
 	sc_CmdVoidWriteS16.Metadata = append(sc_CmdVoidWriteS16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_s16",
+		DisplayName:      "cmdVoidWriteS16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -341,7 +341,7 @@
 	sc_CmdVoidWriteF32 := schema.Of((*CmdVoidWriteF32)(nil).Class())
 	sc_CmdVoidWriteF32.Metadata = append(sc_CmdVoidWriteF32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_f32",
+		DisplayName:      "cmdVoidWriteF32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -349,7 +349,7 @@
 	sc_CmdVoidWriteU32 := schema.Of((*CmdVoidWriteU32)(nil).Class())
 	sc_CmdVoidWriteU32.Metadata = append(sc_CmdVoidWriteU32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_u32",
+		DisplayName:      "cmdVoidWriteU32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -357,7 +357,7 @@
 	sc_CmdVoidWriteS32 := schema.Of((*CmdVoidWriteS32)(nil).Class())
 	sc_CmdVoidWriteS32.Metadata = append(sc_CmdVoidWriteS32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_s32",
+		DisplayName:      "cmdVoidWriteS32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -365,7 +365,7 @@
 	sc_CmdVoidWriteF64 := schema.Of((*CmdVoidWriteF64)(nil).Class())
 	sc_CmdVoidWriteF64.Metadata = append(sc_CmdVoidWriteF64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_f64",
+		DisplayName:      "cmdVoidWriteF64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -373,7 +373,7 @@
 	sc_CmdVoidWriteU64 := schema.Of((*CmdVoidWriteU64)(nil).Class())
 	sc_CmdVoidWriteU64.Metadata = append(sc_CmdVoidWriteU64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_u64",
+		DisplayName:      "cmdVoidWriteU64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -381,7 +381,7 @@
 	sc_CmdVoidWriteS64 := schema.Of((*CmdVoidWriteS64)(nil).Class())
 	sc_CmdVoidWriteS64.Metadata = append(sc_CmdVoidWriteS64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_s64",
+		DisplayName:      "cmdVoidWriteS64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -389,7 +389,7 @@
 	sc_CmdVoidWriteBool := schema.Of((*CmdVoidWriteBool)(nil).Class())
 	sc_CmdVoidWriteBool.Metadata = append(sc_CmdVoidWriteBool.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_bool",
+		DisplayName:      "cmdVoidWriteBool",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -397,7 +397,7 @@
 	sc_CmdVoidWritePtrs := schema.Of((*CmdVoidWritePtrs)(nil).Class())
 	sc_CmdVoidWritePtrs.Metadata = append(sc_CmdVoidWritePtrs.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_write_ptrs",
+		DisplayName:      "cmdVoidWritePtrs",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -405,7 +405,7 @@
 	sc_CmdU8 := schema.Of((*CmdU8)(nil).Class())
 	sc_CmdU8.Metadata = append(sc_CmdU8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_u8",
+		DisplayName:      "cmdU8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -413,7 +413,7 @@
 	sc_CmdS8 := schema.Of((*CmdS8)(nil).Class())
 	sc_CmdS8.Metadata = append(sc_CmdS8.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_s8",
+		DisplayName:      "cmdS8",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -421,7 +421,7 @@
 	sc_CmdU16 := schema.Of((*CmdU16)(nil).Class())
 	sc_CmdU16.Metadata = append(sc_CmdU16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_u16",
+		DisplayName:      "cmdU16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -429,7 +429,7 @@
 	sc_CmdS16 := schema.Of((*CmdS16)(nil).Class())
 	sc_CmdS16.Metadata = append(sc_CmdS16.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_s16",
+		DisplayName:      "cmdS16",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -437,7 +437,7 @@
 	sc_CmdF32 := schema.Of((*CmdF32)(nil).Class())
 	sc_CmdF32.Metadata = append(sc_CmdF32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_f32",
+		DisplayName:      "cmdF32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -445,7 +445,7 @@
 	sc_CmdU32 := schema.Of((*CmdU32)(nil).Class())
 	sc_CmdU32.Metadata = append(sc_CmdU32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_u32",
+		DisplayName:      "cmdU32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -453,7 +453,7 @@
 	sc_CmdS32 := schema.Of((*CmdS32)(nil).Class())
 	sc_CmdS32.Metadata = append(sc_CmdS32.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_s32",
+		DisplayName:      "cmdS32",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -461,7 +461,7 @@
 	sc_CmdF64 := schema.Of((*CmdF64)(nil).Class())
 	sc_CmdF64.Metadata = append(sc_CmdF64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_f64",
+		DisplayName:      "cmdF64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -469,7 +469,7 @@
 	sc_CmdU64 := schema.Of((*CmdU64)(nil).Class())
 	sc_CmdU64.Metadata = append(sc_CmdU64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_u64",
+		DisplayName:      "cmdU64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -477,7 +477,7 @@
 	sc_CmdS64 := schema.Of((*CmdS64)(nil).Class())
 	sc_CmdS64.Metadata = append(sc_CmdS64.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_s64",
+		DisplayName:      "cmdS64",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -485,7 +485,7 @@
 	sc_CmdBool := schema.Of((*CmdBool)(nil).Class())
 	sc_CmdBool.Metadata = append(sc_CmdBool.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_bool",
+		DisplayName:      "cmdBool",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -493,7 +493,7 @@
 	sc_CmdString := schema.Of((*CmdString)(nil).Class())
 	sc_CmdString.Metadata = append(sc_CmdString.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_string",
+		DisplayName:      "cmdString",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -501,7 +501,7 @@
 	sc_CmdPointer := schema.Of((*CmdPointer)(nil).Class())
 	sc_CmdPointer.Metadata = append(sc_CmdPointer.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_pointer",
+		DisplayName:      "cmdPointer",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -509,7 +509,7 @@
 	sc_CmdVoid3Remapped := schema.Of((*CmdVoid3Remapped)(nil).Class())
 	sc_CmdVoid3Remapped.Metadata = append(sc_CmdVoid3Remapped.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_3_remapped",
+		DisplayName:      "cmdVoid3Remapped",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -517,7 +517,7 @@
 	sc_CmdVoidInArrayOfRemapped := schema.Of((*CmdVoidInArrayOfRemapped)(nil).Class())
 	sc_CmdVoidInArrayOfRemapped.Metadata = append(sc_CmdVoidInArrayOfRemapped.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_in_array_of_remapped",
+		DisplayName:      "cmdVoidInArrayOfRemapped",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -525,7 +525,7 @@
 	sc_CmdVoidOutArrayOfRemapped := schema.Of((*CmdVoidOutArrayOfRemapped)(nil).Class())
 	sc_CmdVoidOutArrayOfRemapped.Metadata = append(sc_CmdVoidOutArrayOfRemapped.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_out_array_of_remapped",
+		DisplayName:      "cmdVoidOutArrayOfRemapped",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -533,7 +533,7 @@
 	sc_CmdVoidOutArrayOfUnknownRemapped := schema.Of((*CmdVoidOutArrayOfUnknownRemapped)(nil).Class())
 	sc_CmdVoidOutArrayOfUnknownRemapped.Metadata = append(sc_CmdVoidOutArrayOfUnknownRemapped.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_void_out_array_of_unknown_remapped",
+		DisplayName:      "cmdVoidOutArrayOfUnknownRemapped",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
@@ -541,7 +541,7 @@
 	sc_CmdRemapped := schema.Of((*CmdRemapped)(nil).Class())
 	sc_CmdRemapped.Metadata = append(sc_CmdRemapped.Metadata, &atom.Metadata{
 		API:              apiID,
-		DisplayName:      "cmd_remapped",
+		DisplayName:      "cmdRemapped",
 		Flags:            0,
 		DocumentationUrl: "[]",
 	})
diff --git a/tools/codergen/format/writer.go b/reflow/writer.go
similarity index 71%
rename from tools/codergen/format/writer.go
rename to reflow/writer.go
index dbcff05..5efd2b6 100644
--- a/tools/codergen/format/writer.go
+++ b/reflow/writer.go
@@ -12,7 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package format
+// Package reflow supports rewriting the whitespace in a stream of runes.
+package reflow
 
 import (
 	"bytes"
@@ -31,6 +32,7 @@
 	Flush    = 'ø' // flushes text, resets column detection
 )
 
+// New constructs a new reflow Writer with the default indent of 2 spaces.
 func New(w io.Writer) *Writer {
 	return &Writer{
 		out:    tabwriter.NewWriter(w, 1, 2, 1, ' ', tabwriter.StripEscape),
@@ -38,10 +40,19 @@
 	}
 }
 
+// Writer is an io.Writer that uses unicode markup to reflow the text passing
+// through it.
+// Whitespace at the start and end of input lines, along with the newline
+// characters themselves will be stripped.
+// ¶ Will be replaced by a newline.
+// • Will be converted to a space.
+// It will attempt to line up columns indicated by ║ in adjacent lines using a tabwriter.
+// The indent level can be increased by » and decreased by «.
+// § can be used to disable the reflow behaviours, and reenable them again.
 type Writer struct {
-	Depth     int
-	Indent    string
-	Disabled  bool
+	Depth     int    // The current indentation depth.
+	Indent    string // The string to repeat as the indentation.
+	Disabled  bool   // The current disabled state of the writer.
 	out       *tabwriter.Writer
 	space     bytes.Buffer
 	lastDepth int
@@ -50,6 +61,7 @@
 	runeBuf   [4]byte
 }
 
+// Write implements io.Writer with the reflow logic.
 func (w *Writer) Write(data []byte) (n int, err error) {
 	n = len(data)
 	for _, r := range string(data) {
@@ -118,12 +130,15 @@
 	return n, err
 }
 
+// WriteRune writes the UTF-8 encoding of Unicode code point r, returning an error if it cannot.
 func (w *Writer) WriteRune(r rune) error {
 	n := utf8.EncodeRune(w.runeBuf[:], r)
 	_, err := w.out.Write(w.runeBuf[:n])
 	return err
 }
 
+// Flush causes any cached bytes to be flushed to the underlying stream.
+// This has the side effect of forcing a reset of column detection.
 func (w *Writer) Flush() {
 	w.out.Flush()
 }
diff --git a/rpc/rpc.go b/rpc/rpc.go
index 103c7a6..708df67 100644
--- a/rpc/rpc.go
+++ b/rpc/rpc.go
@@ -20,6 +20,7 @@
 
 // binary: java.source = base/rpclib/src/main/java
 // binary: java.package = com.android.tools.rpclib.rpccore
+// binary: java.indent = "    "
 // binary: java.member_prefix = m
 
 import (
diff --git a/tools/clean_generated/main.go b/tools/clean_generated/main.go
index 8421fdf..f17b947 100644
--- a/tools/clean_generated/main.go
+++ b/tools/clean_generated/main.go
@@ -22,6 +22,7 @@
 	"os"
 	"path/filepath"
 
+	"android.googlesource.com/platform/tools/gpu/tools/codergen/template"
 	"android.googlesource.com/platform/tools/gpu/tools/copyright"
 )
 
@@ -32,6 +33,8 @@
 options:`
 	noactions = flag.Bool("n", false,
 		"don't perform any actions, just print information")
+	sectionfiles = flag.Bool("sectionfiles", false,
+		"disable section processing, will delete whole files")
 	usage_footer = `
 The search is rooted at the current working directory.
 It finds files with a known extension and a known generated file header comment.
@@ -68,9 +71,45 @@
 			if copyright.MatchGenerated(file) == 0 {
 				return nil
 			}
-			fmt.Printf("rm %s\n", path)
-			if !*noactions {
-				os.Remove(path)
+			var sections []template.Section
+			if !*sectionfiles {
+				sections, err = template.SectionSplit(file)
+				if err != nil {
+					return err
+				}
+			}
+			if len(sections) > 0 {
+				fmt.Printf("rewrite %s\n", path)
+				if !*noactions {
+					out, err := os.Create(path)
+					if err != nil {
+						return err
+					}
+					for _, s := range sections {
+						if s.Name == "" {
+							// copy the non template section back to the file
+							_, err = out.Write(s.Body)
+							if err != nil {
+								return err
+							}
+						} else {
+							// copy the markers but drop the body
+							_, err = out.Write(s.StartMarker)
+							if err != nil {
+								return err
+							}
+							_, err = out.Write(s.EndMarker)
+							if err != nil {
+								return err
+							}
+						}
+					}
+				}
+			} else {
+				fmt.Printf("rm %s\n", path)
+				if !*noactions {
+					os.Remove(path)
+				}
 			}
 			return nil
 		})
diff --git a/tools/codergen/template/embed.go b/tools/codergen/template/embed.go
index d0357c5..7978191 100644
--- a/tools/codergen/template/embed.go
+++ b/tools/codergen/template/embed.go
@@ -1005,6 +1005,50 @@
   «}¶
 {{end}}
 
+{{define "Java.ClassBody"}}
+  ¶{{/*Newline after section marker*/}}
+  {{range .Struct.Fields}}{{template "Java.Field" .}}{{end}}
+  ¶
+  // Constructs a default-initialized {@link {{File.ClassName .Struct}}}.¶
+  public {{File.ClassName .Struct}}() {»¶
+  «}¶
+  ¶
+  // Constructs and decodes a {@link {{File.ClassName .Struct}}} from the {@link Decoder} d.¶
+  public {{File.ClassName .Struct}}(Decoder d) throws IOException {»¶
+    Klass.INSTANCE.decode(d, this);¶
+  «}¶
+  {{range .Struct.Fields}}{{template "Java.Accessors" .}}{{end}}
+  ¶
+  @Override @NotNull¶
+  public BinaryClass klass() { return Klass.INSTANCE; }¶
+  ¶
+  public static byte[] IDBytes = {
+    {{range .Struct.ID}}{{ToS8 .}}, {{end}}
+  •};¶
+  public static BinaryID ID = new BinaryID(IDBytes);¶
+  ¶
+  static {»¶
+    Namespace.register(ID, Klass.INSTANCE);¶
+  «}¶
+  //{{/*Comment the following section marker*/}}
+{{end}}
+
+{{define "Java.KlassBody"}}
+  ¶{{/*Newline after section marker*/}}
+  INSTANCE;¶
+  ¶
+  @Override @NotNull¶
+  public BinaryID id() { return ID; }¶
+  ¶
+  @Override @NotNull¶
+  public BinaryObject create() { return new {{File.ClassName .Struct}}(); }¶
+  ¶
+  {{template "Java.Encoder" .Struct}}
+  ¶
+  {{template "Java.Decoder" .Struct}}
+  //{{/*Comment the following section marker*/}}
+{{end}}
+
 {{define "Java.File"}}
   §{{$.Copyright}}§¶
   package {{.JavaPackage}};¶
@@ -1023,40 +1067,9 @@
   ¶
   {{if .Struct.Exported}}public•{{end}}
   final class {{File.ClassName .Struct}}{{if $e := .Struct.Tags.Get  "implements"}} extends {{File.ClassName $e}}{{end}} implements BinaryObject {»¶
-    {{range .Struct.Fields}}{{template "Java.Field" .}}{{end}}
-    ¶
-    // Constructs a default-initialized {@link {{File.ClassName .Struct}}}.¶
-    public {{File.ClassName .Struct}}() {»¶
-    «}¶
-    ¶
-    // Constructs and decodes a {@link {{File.ClassName .Struct}}} from the {@link Decoder} d.¶
-    public {{File.ClassName .Struct}}(Decoder d) throws IOException {»¶
-      Klass.INSTANCE.decode(d, this);¶
-    «}¶
-    {{range .Struct.Fields}}{{template "Java.Accessors" .}}{{end}}
-    ¶
-    @Override @NotNull¶
-    public BinaryClass klass() { return Klass.INSTANCE; }¶
-    ¶
-    public static byte[] IDBytes = {
-      {{range .Struct.ID}}{{ToS8 .}}, {{end}}
-    •};¶
-    public static BinaryID ID = new BinaryID(IDBytes);¶
+    //{{Section "Java.ClassBody"}}¶
     public enum Klass implements BinaryClass {»¶
-      INSTANCE;¶
-      ¶
-      @Override @NotNull¶
-      public BinaryID id() { return ID; }¶
-      ¶
-      @Override @NotNull¶
-      public BinaryObject create() { return new {{File.ClassName .Struct}}(); }¶
-      ¶
-      {{template "Java.Encoder" .Struct}}
-      ¶
-      {{template "Java.Decoder" .Struct}}
-    «}¶
-    static {»¶
-      Namespace.register(ID, Klass.INSTANCE);¶
+      //{{Section "Java.KlassBody"}}¶
     «}¶
   «}¶
 {{end}}
diff --git a/tools/codergen/template/functions.go b/tools/codergen/template/functions.go
index 0f9fd8c..1771817 100644
--- a/tools/codergen/template/functions.go
+++ b/tools/codergen/template/functions.go
@@ -16,12 +16,9 @@
 
 import (
 	"fmt"
-	"io"
-	"strconv"
 	"strings"
 
 	"android.googlesource.com/platform/tools/gpu/binary/schema"
-	"android.googlesource.com/platform/tools/gpu/tools/codergen/format"
 )
 
 type variable struct {
@@ -44,18 +41,6 @@
 	return "", tmpl.Execute(t.writer, arg)
 }
 
-func (t *Templates) Section(name string) (string, error) {
-	w, ok := t.writer.(*format.Writer)
-	if !ok {
-		return "", fmt.Errorf("Section called inside nested writer")
-	}
-	depth := strconv.Itoa(w.Depth)
-	io.WriteString(t.writer, fmt.Sprintf(sectionMarker, sectionStart, name, depth))
-	err := t.execute(name, t.writer, t.File)
-	io.WriteString(t.writer, fmt.Sprintf(sectionMarker, sectionEnd, name, depth))
-	return "", err
-}
-
 func (*Templates) Lower(s interface{}) string {
 	return strings.ToLower(fmt.Sprint(s))
 }
diff --git a/tools/codergen/template/java_binary.tmpl b/tools/codergen/template/java_binary.tmpl
index bc1a08a..163bad5 100644
--- a/tools/codergen/template/java_binary.tmpl
+++ b/tools/codergen/template/java_binary.tmpl
@@ -95,6 +95,50 @@
   «}¶
 {{end}}
 
+{{define "Java.ClassBody"}}
+  ¶{{/*Newline after section marker*/}}
+  {{range .Struct.Fields}}{{template "Java.Field" .}}{{end}}
+  ¶
+  // Constructs a default-initialized {@link {{File.ClassName .Struct}}}.¶
+  public {{File.ClassName .Struct}}() {»¶
+  «}¶
+  ¶
+  // Constructs and decodes a {@link {{File.ClassName .Struct}}} from the {@link Decoder} d.¶
+  public {{File.ClassName .Struct}}(Decoder d) throws IOException {»¶
+    Klass.INSTANCE.decode(d, this);¶
+  «}¶
+  {{range .Struct.Fields}}{{template "Java.Accessors" .}}{{end}}
+  ¶
+  @Override @NotNull¶
+  public BinaryClass klass() { return Klass.INSTANCE; }¶
+  ¶
+  public static byte[] IDBytes = {
+    {{range .Struct.ID}}{{ToS8 .}}, {{end}}
+  •};¶
+  public static BinaryID ID = new BinaryID(IDBytes);¶
+  ¶
+  static {»¶
+    Namespace.register(ID, Klass.INSTANCE);¶
+  «}¶
+  //{{/*Comment the following section marker*/}}
+{{end}}
+
+{{define "Java.KlassBody"}}
+  ¶{{/*Newline after section marker*/}}
+  INSTANCE;¶
+  ¶
+  @Override @NotNull¶
+  public BinaryID id() { return ID; }¶
+  ¶
+  @Override @NotNull¶
+  public BinaryObject create() { return new {{File.ClassName .Struct}}(); }¶
+  ¶
+  {{template "Java.Encoder" .Struct}}
+  ¶
+  {{template "Java.Decoder" .Struct}}
+  //{{/*Comment the following section marker*/}}
+{{end}}
+
 {{define "Java.File"}}
   §{{$.Copyright}}§¶
   package {{.JavaPackage}};¶
@@ -113,40 +157,9 @@
   ¶
   {{if .Struct.Exported}}public•{{end}}
   final class {{File.ClassName .Struct}}{{if $e := .Struct.Tags.Get  "implements"}} extends {{File.ClassName $e}}{{end}} implements BinaryObject {»¶
-    {{range .Struct.Fields}}{{template "Java.Field" .}}{{end}}
-    ¶
-    // Constructs a default-initialized {@link {{File.ClassName .Struct}}}.¶
-    public {{File.ClassName .Struct}}() {»¶
-    «}¶
-    ¶
-    // Constructs and decodes a {@link {{File.ClassName .Struct}}} from the {@link Decoder} d.¶
-    public {{File.ClassName .Struct}}(Decoder d) throws IOException {»¶
-      Klass.INSTANCE.decode(d, this);¶
-    «}¶
-    {{range .Struct.Fields}}{{template "Java.Accessors" .}}{{end}}
-    ¶
-    @Override @NotNull¶
-    public BinaryClass klass() { return Klass.INSTANCE; }¶
-    ¶
-    public static byte[] IDBytes = {
-      {{range .Struct.ID}}{{ToS8 .}}, {{end}}
-    •};¶
-    public static BinaryID ID = new BinaryID(IDBytes);¶
+    //{{Section "Java.ClassBody"}}¶
     public enum Klass implements BinaryClass {»¶
-      INSTANCE;¶
-      ¶
-      @Override @NotNull¶
-      public BinaryID id() { return ID; }¶
-      ¶
-      @Override @NotNull¶
-      public BinaryObject create() { return new {{File.ClassName .Struct}}(); }¶
-      ¶
-      {{template "Java.Encoder" .Struct}}
-      ¶
-      {{template "Java.Decoder" .Struct}}
-    «}¶
-    static {»¶
-      Namespace.register(ID, Klass.INSTANCE);¶
+      //{{Section "Java.KlassBody"}}¶
     «}¶
   «}¶
 {{end}}
diff --git a/tools/codergen/template/section.go b/tools/codergen/template/section.go
new file mode 100644
index 0000000..b62e7b0
--- /dev/null
+++ b/tools/codergen/template/section.go
@@ -0,0 +1,123 @@
+// Copyright (C) 2014 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package template
+
+import (
+	"fmt"
+	"io"
+	"regexp"
+	"strconv"
+
+	"android.googlesource.com/platform/tools/gpu/reflow"
+)
+
+const (
+	sectionMarker    = `<<<%s:%s:%s>>>`
+	sectionStart     = `Start`
+	sectionEnd       = `End`
+	sectionParameter = `([^\:>]+)`
+)
+
+var (
+	section = regexp.MustCompile(fmt.Sprintf(sectionMarker, sectionParameter, sectionParameter, sectionParameter))
+)
+
+// Section writes a new file section with associated templates.
+// It takes the name of the template to use to fill the section in, and wraps it
+// in the section markers.
+func (t *Templates) Section(name string) (string, error) {
+	w, ok := t.writer.(*reflow.Writer)
+	if !ok {
+		return "", fmt.Errorf("Section called inside nested writer")
+	}
+	depth := strconv.Itoa(w.Depth)
+	io.WriteString(t.writer, fmt.Sprintf(sectionMarker, sectionStart, name, depth))
+	err := t.execute(name, t.writer, t.File)
+	io.WriteString(t.writer, fmt.Sprintf(sectionMarker, sectionEnd, name, depth))
+	return "", err
+}
+
+// Section represents a span of text in a file, segmented using SectionSplit.
+// If the section has a Name it will also have a StartMarker and EndMarker, otherwise
+// they will be empty.
+type Section struct {
+	Name        string // The name the section was given.
+	Indentation int    // The indentation level of the section.
+	StartMarker []byte // The bytes that marked the start of the section.
+	Body        []byte // The content of the section.
+	EndMarker   []byte // The bytes that marked the end of the section.
+}
+
+// SectionSplit breaks a file up into it's sections, and returns the slices with
+// the section header.
+// Named sections are delimited by <<<Start:name:depth>>> to <<<End:name:depth>>>
+// markers, areas between named sections are returned as unnamed sections.
+func SectionSplit(data []byte) ([]Section, error) {
+	matches := section.FindAllSubmatchIndex(data, -1)
+	if len(matches) == 0 {
+		return nil, nil
+	}
+	s := Section{}
+	sections := make([]Section, 0, len(matches)+1)
+	last := 0
+	// we are doing a partial update...
+	for _, match := range matches {
+		marker := data[match[0]:match[1]]
+		mode := string(data[match[2]:match[3]])
+		name := string(data[match[4]:match[5]])
+		level := string(data[match[6]:match[7]])
+		depth, err := strconv.Atoi(string(data[match[6]:match[7]]))
+		if err != nil {
+			return nil, fmt.Errorf("Indentation depth malformed, got %s in %s", level, name)
+		}
+		switch mode {
+		case sectionStart:
+			if s.Name != "" {
+				return nil, fmt.Errorf("Overlapping template %s found starting %s", s.Name, name)
+			}
+			// section start, add the prefix section
+			if last != match[0] {
+				s.Body = data[last:match[0]]
+				sections = append(sections, s)
+			}
+			// And prepare the section itself
+			s = Section{Name: name, Indentation: depth, StartMarker: marker}
+			last = match[1]
+		case sectionEnd:
+			// section end marker, check it matches
+			if name != s.Name {
+				return nil, fmt.Errorf("Invalid end %s found, expected %s", name, s.Name)
+			}
+			// write the end marker out throught the formatting writer
+			s.Body = data[last:match[0]]
+			s.EndMarker = marker
+			sections = append(sections, s)
+			// prepare for the next section
+			s = Section{}
+			last = match[1]
+		default:
+			return nil, fmt.Errorf("Invalid section marker %q", mode)
+		}
+	}
+	if s.Name != "" {
+		return nil, fmt.Errorf("Unclosed template %s found", s.Name)
+	}
+	// section start, add the prefix section
+	if last != len(data) {
+		s.Body = data[last:]
+		sections = append(sections, s)
+	}
+	return sections, nil
+}
diff --git a/tools/codergen/template/template.go b/tools/codergen/template/template.go
index 29538aa..e5dd907 100644
--- a/tools/codergen/template/template.go
+++ b/tools/codergen/template/template.go
@@ -22,15 +22,13 @@
 	"os"
 	"path/filepath"
 	"reflect"
-	"regexp"
-	"strconv"
 	"strings"
 	"text/template"
 	"unicode"
 	"unicode/utf8"
 
 	"android.googlesource.com/platform/tools/gpu/binary/schema"
-	"android.googlesource.com/platform/tools/gpu/tools/codergen/format"
+	"android.googlesource.com/platform/tools/gpu/reflow"
 	"android.googlesource.com/platform/tools/gpu/tools/codergen/generate"
 )
 
@@ -92,67 +90,38 @@
 	return f
 }
 
-var (
-	sectionMarker = "<<<%s:%s:%s>>>"
-	sectionStart  = "Start"
-	sectionEnd    = "End"
-	section       = regexp.MustCompile(fmt.Sprintf(sectionMarker, "(.+)", "(.+)", "(.+)"))
-)
-
 // Generate is an implementation of generate.Generator
 func (t *Templates) Generate(g generate.Generate) (bool, error) {
 	t.File = g.Arg
 	defer func() { t.File = nil }()
 	old, _ := ioutil.ReadFile(g.Output)
 	buf := &bytes.Buffer{}
-	out := format.New(buf)
+	out := reflow.New(buf)
 	out.Indent = g.Indent
-	matches := section.FindAllSubmatchIndex(old, -1)
-	if len(matches) > 0 {
-		last := 0
-		tmpl := ""
+
+	sections, err := SectionSplit(old)
+	if err != nil {
+		return false, err
+	}
+	if len(sections) > 0 {
 		// we are doing a partial update...
-		for _, match := range matches {
-			mode := string(old[match[2]:match[3]])
-			name := string(old[match[4]:match[5]])
-			level := string(old[match[6]:match[7]])
-			depth, err := strconv.Atoi(string(old[match[6]:match[7]]))
-			if err != nil {
-				return false, fmt.Errorf("Indentation depth malformed, got %s in %s", level, name)
-			}
-			switch mode {
-			case sectionStart:
-				if tmpl != "" {
-					return false, fmt.Errorf("Overlapping template %s found starting %s", tmpl, name)
-				}
-				// section start, write the prefix
-				buf.Write(old[last:match[1]])
-				// now run the template
-				tmpl = name
-				out.Depth = depth
-				if err := t.execute(tmpl, out, g.Arg); err != nil {
+		for _, s := range sections {
+			if s.Name == "" {
+				// copy the non template section straight to the underlying buf
+				buf.Write(s.Body)
+			} else {
+				// Write the start marker straight to the underlying buf
+				buf.Write(s.StartMarker)
+				out.Depth = s.Indentation
+				// Execute the template to generate a new body
+				if err := t.execute(s.Name, out, g.Arg); err != nil {
 					return false, err
 				}
-			case sectionEnd:
-				// section end marker, check it matches
-				if name != tmpl {
-					return false, fmt.Errorf("Invalid end %s found, expected %s", name, tmpl)
-				}
-				// write the end marker out throught the formatting writer
-				out.Write(old[match[0]:match[1]])
+				// write the end marker out through the formatting writer
+				out.Write(s.EndMarker)
 				out.Flush()
-				// set the markers ready for the next write
-				tmpl = ""
-				last = match[1]
-			default:
-				return false, fmt.Errorf("Invalid section marker %s:%s", mode, name)
 			}
 		}
-		if tmpl != "" {
-			return false, fmt.Errorf("Unclosed template %s found", tmpl)
-		}
-		// write the prefix
-		buf.Write(old[last:])
 	} else {
 		if err := t.execute(g.Name, out, g.Arg); err != nil {
 			return false, err
diff --git a/tools/generate_gles_api/download.go b/tools/generate_gles_api/download.go
new file mode 100644
index 0000000..b194f15
--- /dev/null
+++ b/tools/generate_gles_api/download.go
@@ -0,0 +1,49 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"os"
+)
+
+// Download the given URL, optionally using disk cache
+func Download(url string) []byte {
+	filename := *cacheDir + string(os.PathSeparator) + CompileRegexp(`[^\w\.]+`).ReplaceAllString(url, "-")
+	if *cacheDir != "" {
+		if bytes, err := ioutil.ReadFile(filename); err == nil {
+			return bytes
+		}
+	}
+	resp, err := http.Get(url)
+	if err != nil {
+		panic(err)
+	}
+	if resp.StatusCode != 200 {
+		panic(fmt.Errorf("%s: %s", url, resp.Status))
+	}
+	bytes, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		panic(err)
+	}
+	resp.Body.Close()
+	if *cacheDir != "" {
+		os.MkdirAll(*cacheDir, 0750)
+		ioutil.WriteFile(filename, bytes, 0666)
+	}
+	return bytes
+}
diff --git a/tools/generate_gles_api/download_doc.go b/tools/generate_gles_api/download_doc.go
new file mode 100644
index 0000000..e512b7e
--- /dev/null
+++ b/tools/generate_gles_api/download_doc.go
@@ -0,0 +1,672 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"encoding/xml"
+	"fmt"
+	"regexp"
+	"sort"
+	"strings"
+)
+
+// Download documentation from the khronos online man pages
+func DownloadDoc(version Version, cmdName string) *CommandDoc {
+	url, manPage, paramSectionIndex, paramSectionCount := GetDocUrl(version, cmdName)
+	page := &html{}
+	if err := xml.Unmarshal(Download(url), page); err != nil {
+		panic(err)
+	}
+	summary := page.FindClass("refnamediv").FindTag("p").Text()
+	paramNameTags := page.FindOne(func(h *html) bool {
+		return h.Class == "funcprototype-table" && h.FindClass("fsfunc").Text() == cmdName
+	}).FindClasses("pdparam")
+	paramSections := page.FindAll(func(h *html) bool {
+		return h.Class == "refsect1" && strings.HasPrefix(h.FindTag("h2").Text(), "Parameters")
+	})
+	paramDocs := make(map[string]string) // name -> doc
+	if len(paramSections) > 0 {
+		if len(paramSections) != paramSectionCount {
+			panic(fmt.Errorf("Expected %v parameter sections, but found %v", paramSectionCount, len(paramSections)))
+		}
+		dlTag := paramSections[paramSectionIndex].FindTag("dl").Children
+		for i := 0; i < len(dlTag); i += 2 {
+			for _, name := range dlTag[i].FindTags("code") {
+				paramDocs[name.Text()] = dlTag[i+1].XML
+			}
+		}
+	}
+	accpets, _ := getAcceptedValues(cmdName, "result", version)
+	params := map[int]ParamDoc{-1: ParamDoc{"result", summary, accpets}}
+	for paramIndex, paramNameTag := range paramNameTags {
+		if name := paramNameTag.Text(); name != "void" {
+			doc := parseParamDoc(name, paramDocs[name])
+			doc.Name = renameParam(cmdName, doc.Name)
+			if accpets, ok := getAcceptedValues(cmdName, doc.Name, version); ok {
+				doc.Accepts = accpets
+			}
+			sort.Sort(sort.StringSlice(doc.Accepts))
+			params[paramIndex] = doc
+		}
+	}
+	return &CommandDoc{
+		ManPage: manPage,
+		Url:     url,
+		Summary: summary,
+		Params:  params,
+	}
+}
+
+type CommandDoc struct {
+	ManPage string
+	Url     string
+	Summary string
+	Params  map[int]ParamDoc
+}
+
+type ParamDoc struct {
+	Name    string
+	Summary string
+	Accepts []string
+}
+
+type html struct {
+	XMLName  xml.Name
+	XML      string  `xml:",innerxml"`
+	Class    string  `xml:"class,attr"`
+	Children []*html `xml:",any"`
+}
+
+func (h *html) FindAll(pred func(*html) bool) (res []*html) {
+	if pred(h) {
+		res = append(res, h)
+	}
+	for _, child := range h.Children {
+		res = append(res, child.FindAll(pred)...)
+	}
+	return
+}
+
+func (h *html) FindOne(pred func(*html) bool) *html {
+	res := h.FindAll(pred)
+	if len(res) == 0 {
+		panic(fmt.Errorf("Could not find matching html element"))
+	} else if len(res) > 1 {
+		panic(fmt.Errorf("Found multiple matching html elements"))
+	} else {
+		return res[0]
+	}
+}
+
+func (h *html) FindTags(tag string) []*html {
+	return h.FindAll(func(h *html) bool { return h.XMLName.Local == tag })
+}
+
+func (h *html) FindTag(tag string) *html {
+	return h.FindOne(func(h *html) bool { return h.XMLName.Local == tag })
+}
+
+func (h *html) FindClasses(class string) []*html {
+	return h.FindAll(func(h *html) bool { return h.Class == class })
+}
+
+func (h *html) FindClass(class string) *html {
+	return h.FindOne(func(h *html) bool { return h.Class == class })
+}
+
+// Remove html tags to obtain plain text
+func htmlToText(page string) string {
+	page = strings.Replace(page, "<mml:msup><mml:mn>2</mml:mn>", "2^", -1)
+	page = CompileRegexp("<.*?>").ReplaceAllString(page, "")
+	page = strings.Replace(page, "&lt;", "<", -1)
+	page = strings.Replace(page, "&gt;", ">", -1)
+	page = CompileRegexp(`\s+`).ReplaceAllString(page, " ")
+	return strings.TrimSpace(page)
+}
+
+func (h *html) Text() string {
+	return htmlToText(h.XML)
+}
+
+// Get the full url for the given command, the page name (eg. "glUniform"), and the relevat section
+func GetDocUrl(version Version, cmdName string) (url, manPage string, paramSectionIndex int, paramSectionCount int) {
+
+	// Sometimes the man page is exactly the command name,
+	// however sometimes one page documents several command.
+	// (overload, enable/disable, begin/end)
+	// We use the following tables to find the relevat man page.
+	// We also sometimes have to specify which section of the page is relevat.
+
+	type redirect struct {
+		oldName           string // regexp
+		newName           string // man page
+		paramSectionIndex int
+		paramSectionCount int // for verification
+	}
+
+	var gles11redirects = []*redirect{
+		{"glAlphaFunc(x)", "glAlphaFunc", 0, 1},
+		{"glClearColor(x)", "glClearColor", 0, 1},
+		{"glClearDepth(f|x)", "glClearDepth", 0, 1},
+		{"glClipPlane(f|x)", "glClipPlane", 0, 1},
+		{"glColor4(f|x|ub)", "glColor", 0, 1},
+		{"glDepthRange(f|x)", "glDepthRange", 0, 1},
+		{"glDisable", "glEnable", 0, 1},
+		{"glDisableClientState", "glEnableClientState", 0, 1},
+		{"glFog(f|x)", "glFog", 0, 2},
+		{"glFog(f|x)v", "glFog", 1, 2},
+		{"glFrustum(f|x)", "glFrustum", 0, 1},
+		{"glGetBoolean(v)", "glGet", 0, 1},
+		{"glGetClipPlane(f|x)", "glGetClipPlane", 0, 1},
+		{"glGetFixed(v)", "glGet", 0, 1},
+		{"glGetFloat(v)", "glGet", 0, 1},
+		{"glGetInteger(v)", "glGet", 0, 1},
+		{"glGetLight(f|x)v", "glGetLight", 0, 1},
+		{"glGetMaterial(f|x)v", "glGetMaterial", 0, 1},
+		{"glGetTexEnv(f|i|x)v", "glGetTexEnv", 0, 1},
+		{"glGetTexParameter(f|i|x)v", "glGetTexParameter", 0, 1},
+		{"glLight(f|x)", "glLight", 0, 2},
+		{"glLight(f|x)v", "glLight", 1, 2},
+		{"glLightModel(f|x)", "glLightModel", 0, 2},
+		{"glLightModel(f|x)v", "glLightModel", 1, 2},
+		{"glLineWidth(x)", "glLineWidth", 0, 1},
+		{"glLoadMatrix(f|x)", "glLoadMatrix", 0, 1},
+		{"glMaterial(f|x)", "glMaterial", 0, 2},
+		{"glMaterial(f|x)v", "glMaterial", 1, 2},
+		{"glMultMatrix(f|x)", "glMultMatrix", 0, 1},
+		{"glMultiTexCoord4(f|x)", "glMultiTexCoord", 0, 1},
+		{"glNormal3(f|x)", "glNormal", 0, 1},
+		{"glOrtho(f|x)", "glOrtho", 0, 1},
+		{"glPointParameter(f|x)", "glPointParameter", 0, 2},
+		{"glPointParameter(f|x)v", "glPointParameter", 1, 2},
+		{"glPointSize(x)", "glPointSize", 0, 1},
+		{"glPolygonOffset(x)", "glPolygonOffset", 0, 1},
+		{"glPopMatrix", "glPushMatrix", 0, 1},
+		{"glRotate(f|x)", "glRotate", 0, 1},
+		{"glSampleCoverage(x)", "glSampleCoverage", 0, 1},
+		{"glScale(f|x)", "glScale", 0, 1},
+		{"glTexEnv(f|i|x)", "glTexEnv", 0, 2},
+		{"glTexEnv(f|i|x)v", "glTexEnv", 1, 2},
+		{"glTexParameter(f|i|x)", "glTexParameter", 0, 2},
+		{"glTexParameter(f|i|x)v", "glTexParameter", 1, 2},
+		{"glTranslate(f|x)", "glTranslate", 0, 1},
+	}
+
+	var gles20redirects = []*redirect{
+		{"glDisable", "glEnable", 1, 2},
+		{"glDisableVertexAttribArray", "glEnableVertexAttribArray", 0, 1},
+		{"glEnable", "glEnable", 0, 2},
+		{"glGetBooleanv", "glGet", 0, 1},
+		{"glGetFloatv", "glGet", 0, 1},
+		{"glGetIntegerv", "glGet", 0, 1},
+		{"glGetTexParameter(f|i)v", "glGetTexParameter", 0, 1},
+		{"glGetUniform(f|i)v", "glGetUniform", 0, 1},
+		{"glGetVertexAttrib(f|i)v", "glGetVertexAttrib", 0, 1},
+		{"glTexParameter(f|i)", "glTexParameter", 0, 2},
+		{"glTexParameter(f|i)v", "glTexParameter", 1, 2},
+		{"glUniform(1|2|3|4)(f|i|ui)", "glUniform", 0, 3},
+		{"glUniform(1|2|3|4)(f|i|ui)v", "glUniform", 1, 3},
+		{"glUniformMatrix(2|3|4|2x3|3x2|2x4|4x2|3x4|4x3)fv", "glUniform", 2, 3},
+		{"glVertexAttrib(1|2|3|4)f", "glVertexAttrib", 0, 2},
+		{"glVertexAttrib(1|2|3|4)fv", "glVertexAttrib", 1, 2},
+	}
+
+	var gles30redirects = append([]*redirect{
+		{"glBeginQuery", "glBeginQuery", 0, 2},
+		{"glClearBuffer(fi|fv|iv|uiv)", "glClearBuffer", 0, 1},
+		{"glDisable", "glEnable", 0, 1},
+		{"glEnable", "glEnable", 0, 1},
+		{"glEndQuery", "glBeginQuery", 1, 2},
+		{"glEndTransformFeedback", "glBeginTransformFeedback", 0, 1},
+		{"glGetBufferParameter(i)(|64)v", "glGetBufferParameter", 0, 1},
+		{"glGetInteger(|64)(|i_)v", "glGet", 0, 1},
+		{"glGetSamplerParameter(f|i)v", "glGetSamplerParameter", 0, 1},
+		{"glGetString(|i)", "glGetString", 0, 1},
+		{"glGetUniform(f|i|ui)v", "glGetUniform", 0, 1},
+		{"glGetVertexAttrib(f|Ii|Iui|i)v", "glGetVertexAttrib", 0, 1},
+		{"glMapBufferRange", "glMapBufferRange", 0, 2},
+		{"glSamplerParameter(f|i)(|v)", "glSamplerParameter", 0, 1},
+		{"glTexParameter(f|i)(|v)", "glTexParameter", 0, 1},
+		{"glUniform(1|2|3|4)(f|i|ui)(|v)", "glUniform", 0, 1},
+		{"glUniformMatrix(2|3|4|2x3|3x2|2x4|4x2|3x4|4x3)fv", "glUniform", 0, 1},
+		{"glUnmapBuffer", "glMapBufferRange", 1, 2},
+		{"glVertexAttrib(1f|2f|3f|4f|I4i|I4ui)(|v)", "glVertexAttrib", 0, 1},
+		{"glVertexAttrib(|I)Pointer", "glVertexAttribPointer", 0, 1},
+	}, gles20redirects...)
+
+	var gles31redirects = append([]*redirect{
+		{"glCreateShaderProgram(v)", "glCreateShaderProgram", 0, 1},
+		{"glGetBoolean(|i_)v", "glGet", 0, 1},
+		{"glGetProgramInterface(iv)", "glGetProgramInterface", 0, 1},
+		{"glGetProgramPipeline(iv)", "glGetProgramPipeline", 0, 1},
+		{"glGetProgramResource(iv)", "glGetProgramResource", 0, 1},
+		{"glGetTexLevelParameter(f|i)v", "glGetTexLevelParameter", 0, 1},
+		{"glMemoryBarrier(|ByRegion)", "glMemoryBarrier", 0, 1},
+		{"glProgramUniform(1|2|3|4)(f|i|ui)(|v)", "glProgramUniform", 0, 1},
+		{"glProgramUniformMatrix(2|3|4|2x3|3x2|2x4|4x2|3x4|4x3)fv", "glProgramUniform", 0, 1},
+		{"glVertexAttrib(|I)Format", "glVertexAttribFormat", 0, 1},
+	}, gles30redirects...)
+
+	var redirects []*redirect
+	var urlFormat string
+	switch version {
+	case "1.1":
+		redirects, urlFormat = gles11redirects, "https://www.khronos.org/opengles/sdk/1.1/docs/man/%s.xml"
+	case "2.0":
+		redirects, urlFormat = gles20redirects, "https://www.khronos.org/opengles/sdk/docs/man/xhtml/%s.xml"
+	case "3.0":
+		redirects, urlFormat = gles30redirects, "https://www.khronos.org/opengles/sdk/docs/man3/html/%s.xhtml"
+	case "3.1":
+		redirects, urlFormat = gles31redirects, "https://www.khronos.org/opengles/sdk/docs/man31/html/%s.xhtml"
+	default:
+		panic(fmt.Errorf("Uknown api version: %v", version))
+	}
+
+	for _, redir := range redirects {
+		if CompileRegexp("^(?:" + redir.oldName + ")$").MatchString(cmdName) {
+			return fmt.Sprintf(urlFormat, redir.newName), redir.newName, redir.paramSectionIndex, redir.paramSectionCount
+		}
+	}
+	return fmt.Sprintf(urlFormat, cmdName), cmdName, 0, 1
+}
+
+func GetExtensionUrl(extension string) string {
+	match := CompileRegexp(`^GL_(([A-Z]+)_\w+)$`).FindStringSubmatch(extension)
+	vendor := match[2]
+	page := match[1] + `.txt`
+	// most of the time the page name includes the vendor prefix, but sometimes it does not
+	for _, rename := range []struct{ oldName, newName string }{
+		{"AMD_performance_monitor.txt", "performance_monitor.txt"},
+		{"APPLE_rgb_422.txt", "rgb_422.txt"},
+		{"EXT_blend_minmax.txt", "blend_minmax.txt"},
+		{"EXT_draw_instanced.txt", "draw_instanced.txt"},
+		{"EXT_multi_draw_arrays.txt", "multi_draw_arrays.txt"},
+		{"EXT_post_depth_coverage.txt", "post_depth_coverage.txt"},
+		{"EXT_raster_multisample.txt", "raster_multisample.txt"},
+		{"EXT_shader_integer_mix.txt", "shader_integer_mix.txt"},
+		{"EXT_texture_compression_dxt1.txt", "texture_compression_dxt1.txt"},
+		{"EXT_texture_compression_s3tc.txt", "texture_compression_s3tc.txt"},
+		{"EXT_texture_filter_anisotropic.txt", "texture_filter_anisotropic.txt"},
+		{"EXT_texture_filter_minmax.txt", "texture_filter_minmax.txt"},
+		{"EXT_texture_lod_bias.txt", "texture_lod_bias.txt"},
+		{"EXT_texture_sRGB_decode.txt", "texture_sRGB_decode.txt"},
+		{"FJ_shader_binary_GCCSO.txt", "shader_binary_GCCSO.txt"},
+		{"INTEL_performance_query.txt", "performance_query.txt"},
+		{"KHR_blend_equation_advanced.txt", "blend_equation_advanced.txt"},
+		{"KHR_context_flush_control.txt", "context_flush_control.txt"},
+		{"KHR_debug.txt", "debug.txt"},
+		{"KHR_robust_buffer_access_behavior.txt", "robust_buffer_access_behavior.txt"},
+		{"KHR_robustness.txt", "robustness.txt"},
+		{"KHR_texture_compression_astc_hdr.txt", "texture_compression_astc_hdr.txt"},
+		{"NV_bindless_texture.txt", "bindless_texture.txt"},
+		{"NV_blend_equation_advanced.txt", "blend_equation_advanced.txt"},
+		{"NV_conditional_render.txt", "conditional_render.txt"},
+		{"NV_conservative_raster.txt", "conservative_raster.txt"},
+		{"NV_draw_texture.txt", "draw_texture.txt"},
+		{"NV_coverage_sample.txt", "EGL_NV_coverage_sample.txt"},
+		{"NV_depth_nonlinear.txt", "EGL_NV_depth_nonlinear.txt"},
+		{"NV_fence.txt", "fence.txt"},
+		{"NV_fill_rectangle.txt", "fill_rectangle.txt"},
+		{"NV_fragment_coverage_to_color.txt", "fragment_coverage_to_color.txt"},
+		{"NV_fragment_shader_interlock.txt", "fragment_shader_interlock.txt"},
+		{"NV_framebuffer_mixed_samples.txt", "framebuffer_mixed_samples.txt"},
+		{"NV_geometry_shader_passthrough.txt", "geometry_shader_passthrough.txt"},
+		{"NV_internalformat_sample_query.txt", "internalformat_sample_query.txt"},
+		{"NV_path_rendering.txt", "path_rendering.txt"},
+		{"NV_path_rendering_shared_edge.txt", "path_rendering_shared_edge.txt"},
+		{"NV_sample_locations.txt", "sample_locations.txt"},
+		{"NV_sample_mask_override_coverage.txt", "sample_mask_override_coverage.txt"},
+		{"NV_viewport_array2.txt", "viewport_array2.txt"},
+		{"OVR_multiview.txt", "multiview.txt"},
+		{"OVR_multiview2.txt", "multiview2.txt"},
+	} {
+		if page == rename.oldName {
+			page = rename.newName
+		}
+	}
+	url := fmt.Sprintf("https://www.khronos.org/registry/gles/extensions/%s/%s", vendor, page)
+	Download(url)
+	return url
+}
+
+// More often than not, the accpted GLenum values can be extracted using regexp.
+func parseParamDoc(paramName, doc string) ParamDoc {
+	// Remove noise
+	for _, tag := range []string{"<span>", "</span>", "<p>", "</p>"} {
+		doc = strings.Replace(doc, tag, "", -1)
+	}
+
+	// Regexp for enum value.  Represented in phrases as $
+	exprConst := `(?:<code class="constant">(\w+)</code>(?:,|\.|\s|and|or)*)`
+
+	// Remove the default value doc
+	phrases := []string{
+		"The initial value is $.",
+		"The intial value is $.", // typo in docs
+	}
+	for _, phrase := range phrases {
+		// Must follow sentence; relaxed whitespace; must be end of doc
+		expr := `\.\s*` + strings.Replace(regexp.QuoteMeta(phrase), ` `, `\s+`, -1) + `\s*$`
+		expr = strings.Replace(expr, `\$`, exprConst, -1)
+		if loc := CompileRegexp(expr).FindStringIndex(doc); loc != nil {
+			doc = doc[:loc[0]+1]
+		}
+	}
+
+	// List of the common phrases which the man pages use
+	paramNameTag := `<em class="parameter"><code>` + paramName + `</code></em>`
+	phrases = []string{
+		"$ are accepted",
+		"$ is accepted",
+		"Accepted symbolic names are $",
+		"Accepted values are $",
+		"Can be either $",
+		"Eight symbolic constants are accepted: $",
+		"Eight symbolic constants are valid: $",
+		"Eight tokens are valid: $",
+		"It must be $",
+		"May be $",
+		"May be either $",
+		"Must be $",
+		"Must be either $",
+		"Must be one of $",
+		"Must be one of the following symbolic constants: $",
+		"Six symbolic constants are accepted: $",
+		"Symbolic constants $ are accepted",
+		"The allowed flags are $",
+		"The following symbolic constants are accepted: $",
+		"The following symbolic values are accepted: $",
+		"The following symbols are accepted: $",
+		"The symbolic constant must be $",
+		"The symbolic constant must be one of $",
+		"The three masks are $",
+		"These values are accepted: $",
+		"These values are accepted: $",
+		"Three symbolic constants are valid: $",
+		"Valid masks are $",
+		"Which can be one of the following: $",
+		paramNameTag + " can be one of the following: $",
+		paramNameTag + " may be $",
+		paramNameTag + " must be $",
+		paramNameTag + " must be either $",
+		paramNameTag + " must be one of $",
+	}
+	var enumValues []string
+	for _, phrase := range phrases {
+		// Must follow sentence (dot); relaxed whitespace; must be end of doc
+		expr := `\.\s*` + strings.Replace(regexp.QuoteMeta(phrase), ` `, `\s+`, -1) + `(?:\.|,|\s)*$`
+		expr = strings.Replace(expr, `\$`, exprConst+`*`, -1)
+		if loc := CompileRegexp(expr).FindStringIndex(doc); loc != nil {
+			for _, match := range CompileRegexp(exprConst).FindAllStringSubmatch(doc[loc[0]:loc[1]], -1) {
+				enumValues = append(enumValues, match[1])
+			}
+			// remove the enum list from the doc
+			doc = doc[:loc[0]+1]
+			break
+		}
+	}
+	return ParamDoc{
+		Name:    paramName,
+		Summary: htmlToText(doc),
+		Accepts: enumValues,
+	}
+}
+
+// rename parameters so that they match names in the khronos registry
+// this used to be important, but it is used just for verification now
+func renameParam(cmdName, paramName string) string {
+	var renames = []struct {
+		cmdName string // regexp
+		newName string
+		oldName string
+	}{
+		{"glBlendFuncSeparate", "dfactorAlpha", "dstAlpha"},
+		{"glBlendFuncSeparate", "dfactorRGB", "dstRGB"},
+		{"glBlendFuncSeparate", "sfactorAlpha", "srcAlpha"},
+		{"glBlendFuncSeparate", "sfactorRGB", "srcRGB"},
+		{"glClearBuffer(fi|fv|iv|uiv)", "drawbuffer", "drawBuffer"},
+		{"glClearDepthf", "d", "depth"},
+		{"glClipPlanef", "eqn", "equation"},
+		{"glClipPlanef", "p", "plane"},
+		{"glCopyBufferSubData", "readOffset", "readoffset"},
+		{"glCopyBufferSubData", "readTarget", "readtarget"},
+		{"glCopyBufferSubData", "writeOffset", "writeoffset"},
+		{"glCopyBufferSubData", "writeTarget", "writetarget"},
+		{"glCreateShader", "type", "shaderType"},
+		{"glDeleteSamplers", "count", "n"},
+		{"glDepthRange(f|x)", "f", "far"},
+		{"glDepthRange(f|x)", "f", "farVal"},
+		{"glDepthRange(f|x)", "n", "near"},
+		{"glDepthRange(f|x)", "n", "nearVal"},
+		{"glDrawArraysInstanced", "instancecount", "primcount"},
+		{"glDrawElementsInstanced", "instancecount", "primcount"},
+		{"glFogxv", "param", "params"},
+		{"glFrustum(f|x)", "b", "bottom"},
+		{"glFrustum(f|x)", "f", "far"},
+		{"glFrustum(f|x)", "l", "left"},
+		{"glFrustum(f|x)", "n", "near"},
+		{"glFrustum(f|x)", "r", "right"},
+		{"glFrustum(f|x)", "t", "top"},
+		{"glGenSamplers", "count", "n"},
+		{"glGetBooleanv", "data", "params"},
+		{"glGetBufferParameteri(64|)v", "params", "data"},
+		{"glGetBufferParameteri(64|)v", "pname", "value"},
+		{"glGetFloatv", "data", "params"},
+		{"glGetIntegerv", "data", "params"},
+		{"glGetProgramBinary", "bufSize", "bufsize"},
+		{"glGetProgramInfoLog", "bufSize", "maxLength"},
+		{"glGetShaderInfoLog", "bufSize", "maxLength"},
+		{"glGetShaderPrecisionFormat", "precisiontype", "precisionType"},
+		{"glGetShaderPrecisionFormat", "shadertype", "shaderType"},
+		{"glIsSampler", "sampler", "id"},
+		{"glLightModelxv", "param", "params"},
+		{"glMaterialxv", "param", "params"},
+		{"glMultiTexCoord4x", "texture", "target"},
+		{"glOrtho(f|x)", "b", "bottom"},
+		{"glOrtho(f|x)", "f", "far"},
+		{"glOrtho(f|x)", "l", "left"},
+		{"glOrtho(f|x)", "n", "near"},
+		{"glOrtho(f|x)", "r", "right"},
+		{"glOrtho(f|x)", "t", "top"},
+		{"glReadPixels", "pixels", "data"},
+		{"glSamplerParameter(fv|iv)", "param", "params"},
+		{"glShaderBinary", "binaryformat", "binaryFormat"},
+		{"glShaderBinary", "count", "n"},
+		{"glStencilOp", "fail", "sfail"},
+		{"glStencilOp", "zfail", "dpfail"},
+		{"glStencilOp", "zpass", "dppass"},
+		{"glTex(Sub|)Image(2D|3D)", "pixels", "data"},
+		{"glTexImage(2D|3D)", "internalformat", "internalFormat"},
+		{"glVertexAttrib(1f|2f|3f|4f|I4i|I4ui)", "w", "v3"},
+		{"glVertexAttrib(1f|2f|3f|4f|I4i|I4ui)", "x", "v0"},
+		{"glVertexAttrib(1f|2f|3f|4f|I4i|I4ui)", "y", "v1"},
+		{"glVertexAttrib(1f|2f|3f|4f|I4i|I4ui)", "z", "v2"},
+	}
+	for _, rename := range renames {
+		if CompileRegexp("^(?:" + rename.cmdName + ")$").MatchString(cmdName) {
+			if rename.oldName == paramName {
+				return rename.newName
+			}
+		}
+	}
+	return paramName
+}
+
+func listContains(commaSeparatedList, value string) bool {
+	if strings.Contains(commaSeparatedList, value) {
+		for _, v := range strings.Split(commaSeparatedList, ",") {
+			if v == value {
+				return true
+			}
+		}
+	}
+	return false
+}
+
+// If the enum values can not be automatically extracted from the documentation,
+// we use the hand-written table blow. (which can also be used for overrides)
+func getAcceptedValues(cmdName, paramName string, apiVersion Version) ([]string, bool) {
+
+	var GL_TEXTUREi = "GL_TEXTURE0,GL_TEXTURE1,GL_TEXTURE2,GL_TEXTURE3,GL_TEXTURE4,GL_TEXTURE5,GL_TEXTURE6,GL_TEXTURE7,GL_TEXTURE8,GL_TEXTURE9,GL_TEXTURE10,GL_TEXTURE11,GL_TEXTURE12,GL_TEXTURE13,GL_TEXTURE14,GL_TEXTURE15,GL_TEXTURE16,GL_TEXTURE17,GL_TEXTURE18,GL_TEXTURE19,GL_TEXTURE20,GL_TEXTURE21,GL_TEXTURE22,GL_TEXTURE23,GL_TEXTURE24,GL_TEXTURE25,GL_TEXTURE26,GL_TEXTURE27,GL_TEXTURE28,GL_TEXTURE29,GL_TEXTURE30,GL_TEXTURE31"
+	var GL_CLIP_PLANEi = "GL_CLIP_PLANE0,GL_CLIP_PLANE1,GL_CLIP_PLANE2,GL_CLIP_PLANE3,GL_CLIP_PLANE4,GL_CLIP_PLANE5"
+	var GL_LIGHTi = "GL_LIGHT0,GL_LIGHT1,GL_LIGHT2,GL_LIGHT3,GL_LIGHT4,GL_LIGHT5,GL_LIGHT6,GL_LIGHT7"
+	var GL_COLOR_ATTACHMENTi = "GL_COLOR_ATTACHMENT0,GL_COLOR_ATTACHMENT1,GL_COLOR_ATTACHMENT2,GL_COLOR_ATTACHMENT3,GL_COLOR_ATTACHMENT4,GL_COLOR_ATTACHMENT5,GL_COLOR_ATTACHMENT6,GL_COLOR_ATTACHMENT7,GL_COLOR_ATTACHMENT8,GL_COLOR_ATTACHMENT9,GL_COLOR_ATTACHMENT10,GL_COLOR_ATTACHMENT11,GL_COLOR_ATTACHMENT12,GL_COLOR_ATTACHMENT13,GL_COLOR_ATTACHMENT14,GL_COLOR_ATTACHMENT15"
+
+	// TODO: When is GL_BACK,GL_DEPTH,GL_STENCIL valid for attachments?
+	// TODO: glGetProgramResourceiv - is GL_TRANSFORM_FEEDBACK_BUFFER supported or not?
+	// TODO: glGetActiveAttrib - accepts value of GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
+
+	var enumMetadata = []struct {
+		// all field are comma separated values
+		cmdName        string
+		paramName      string
+		apiVersion     string
+		acceptedValues string
+	}{
+		{"glActiveTexture", "texture", "1.1,2.0,3.0,3.1", GL_TEXTUREi},
+		{"glBeginTransformFeedback", "primitiveMode", "3.0,3.1", "GL_POINTS,GL_LINES,GL_TRIANGLES"},
+		{"glBindFramebuffer", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glBindImageTexture", "access", "3.1", "GL_READ_ONLY,GL_WRITE_ONLY,GL_READ_WRITE"},
+		{"glBindImageTexture", "format", "3.1", "GL_RGBA32F,GL_RGBA16F,GL_R32F,GL_RGBA32UI,GL_RGBA16UI,GL_RGBA8UI,GL_R32UI,GL_RGBA32I,GL_RGBA16I,GL_RGBA8I,GL_R32I,GL_RGBA8,GL_RGBA8_SNORM"},
+		{"glBlendFunc,glBlendFuncSeparate", "dfactor,dfactorRGB,dfactorAlpha", "2.0,3.0,3.1", "GL_ZERO,GL_ONE,GL_SRC_COLOR,GL_ONE_MINUS_SRC_COLOR,GL_DST_COLOR,GL_ONE_MINUS_DST_COLOR,GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_DST_ALPHA,GL_ONE_MINUS_DST_ALPHA,GL_CONSTANT_COLOR,GL_ONE_MINUS_CONSTANT_COLOR,GL_CONSTANT_ALPHA,GL_ONE_MINUS_CONSTANT_ALPHA"},
+		{"glBlendFunc,glBlendFuncSeparate", "sfactor,sfactorRGB,sfactorAlpha", "2.0,3.0,3.1", "GL_ZERO,GL_ONE,GL_SRC_COLOR,GL_ONE_MINUS_SRC_COLOR,GL_DST_COLOR,GL_ONE_MINUS_DST_COLOR,GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_DST_ALPHA,GL_ONE_MINUS_DST_ALPHA,GL_CONSTANT_COLOR,GL_ONE_MINUS_CONSTANT_COLOR,GL_CONSTANT_ALPHA,GL_ONE_MINUS_CONSTANT_ALPHA,GL_SRC_ALPHA_SATURATE"},
+		{"glCheckFramebufferStatus", "result", "2.0", "GL_FRAMEBUFFER_COMPLETE,GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,GL_FRAMEBUFFER_UNSUPPORTED"},
+		{"glCheckFramebufferStatus", "result", "3.0,3.1", "GL_FRAMEBUFFER_COMPLETE,GL_FRAMEBUFFER_UNDEFINED,GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,GL_FRAMEBUFFER_UNSUPPORTED,GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"},
+		{"glCheckFramebufferStatus", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glClearBufferfi", "buffer", "3.0,3.1", "GL_DEPTH_STENCIL"},
+		{"glClearBufferfv", "buffer", "3.0,3.1", "GL_COLOR,GL_DEPTH"},
+		{"glClearBufferiv", "buffer", "3.0,3.1", "GL_COLOR,GL_STENCIL"},
+		{"glClearBufferuiv", "buffer", "3.0,3.1", "GL_COLOR"},
+		{"glClientActiveTexture", "texture", "1.1", GL_TEXTUREi},
+		{"glClientWaitSync", "result", "3.0,3.1", "GL_ALREADY_SIGNALED,GL_TIMEOUT_EXPIRED,GL_CONDITION_SATISFIED,GL_WAIT_FAILED"},
+		{"glClipPlanef", "p", "1.1", GL_CLIP_PLANEi},
+		{"glClipPlanex", "plane", "1.1", GL_CLIP_PLANEi},
+		{"glColorPointer", "type", "1.1", "GL_UNSIGNED_BYTE,GL_FIXED,GL_FLOAT"}, // TODO
+		{"glCompressedTexImage2D", "internalformat", "2.0", ""},                 // provided by extensions only
+		{"glCompressedTexImage2D,glCompressedTexImage3D,glCompressedTexSubImage2D,glCompressedTexSubImage3D", "internalformat,format", "3.0,3.1", "GL_COMPRESSED_R11_EAC,GL_COMPRESSED_SIGNED_R11_EAC,GL_COMPRESSED_RG11_EAC,GL_COMPRESSED_SIGNED_RG11_EAC,GL_COMPRESSED_RGB8_ETC2,GL_COMPRESSED_SRGB8_ETC2,GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,GL_COMPRESSED_RGBA8_ETC2_EAC,GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"},
+		{"glCompressedTexSubImage2D", "format", "1.1", "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"},
+		{"glCompressedTexSubImage2D", "format", "2.0", ""},
+		{"glCopyBufferSubData", "readTarget,writeTarget", "3.0,3.1", "GL_ARRAY_BUFFER,GL_COPY_READ_BUFFER,GL_COPY_WRITE_BUFFER,GL_ELEMENT_ARRAY_BUFFER,GL_PIXEL_PACK_BUFFER,GL_PIXEL_UNPACK_BUFFER,GL_TRANSFORM_FEEDBACK_BUFFER,GL_UNIFORM_BUFFER"},
+		{"glCreateShader", "type", "3.1", "GL_VERTEX_SHADER,GL_FRAGMENT_SHADER,GL_COMPUTE_SHADER"},
+		{"glCreateShaderProgramv", "type", "3.1", "GL_VERTEX_SHADER,GL_FRAGMENT_SHADER,GL_COMPUTE_SHADER"}, // TODO
+		{"glDrawBuffers", "bufs", "3.0,3.1", "GL_NONE,GL_BACK," + GL_COLOR_ATTACHMENTi},
+		{"glDrawElementsIndirect", "type", "3.1", "GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT,GL_UNSIGNED_INT"},
+		{"glEnable,glDisable", "cap", "1.1", "GL_ALPHA_TEST,GL_BLEND,GL_COLOR_LOGIC_OP,GL_COLOR_MATERIAL,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_FOG,GL_LIGHTING,GL_LINE_SMOOTH,GL_MULTISAMPLE,GL_NORMALIZE,GL_POINT_SMOOTH,GL_POINT_SPRITE_OES,GL_POLYGON_OFFSET_FILL,GL_RESCALE_NORMAL,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_ALPHA_TO_ONE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST,GL_TEXTURE_2D," + GL_CLIP_PLANEi + "," + GL_LIGHTi},
+		{"glEnable,glDisable", "cap", "2.0", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glEnable,glDisable", "cap", "3.0", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_RASTERIZER_DISCARD,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glEnable,glDisable", "cap", "3.1", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_RASTERIZER_DISCARD,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SAMPLE_MASK,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glFramebufferParameteri", "pname", "3.1", "GL_FRAMEBUFFER_DEFAULT_WIDTH,GL_FRAMEBUFFER_DEFAULT_HEIGHT,GL_FRAMEBUFFER_DEFAULT_SAMPLES,GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"},
+		{"glFramebufferParameteri", "target", "3.1", "GL_READ_FRAMEBUFFER,GL_DRAW_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glFramebufferRenderbuffer", "attachment", "3.0,3.1", "GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT,GL_DEPTH_STENCIL_ATTACHMENT," + GL_COLOR_ATTACHMENTi},
+		{"glFramebufferRenderbuffer", "renderbuffertarget", "3.0,3.1", "GL_RENDERBUFFER"},
+		{"glFramebufferRenderbuffer", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glFramebufferTexture2D", "attachment", "3.0,3.1", "GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT,GL_DEPTH_STENCIL_ATTACHMENT," + GL_COLOR_ATTACHMENTi},
+		{"glFramebufferTexture2D", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glFramebufferTexture2D", "textarget", "3.0", "GL_TEXTURE_2D,GL_TEXTURE_CUBE_MAP_POSITIVE_X,GL_TEXTURE_CUBE_MAP_NEGATIVE_X,GL_TEXTURE_CUBE_MAP_POSITIVE_Y,GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,GL_TEXTURE_CUBE_MAP_POSITIVE_Z,GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"},
+		{"glFramebufferTexture2D", "textarget", "3.1", "GL_TEXTURE_2D,GL_TEXTURE_CUBE_MAP_POSITIVE_X,GL_TEXTURE_CUBE_MAP_NEGATIVE_X,GL_TEXTURE_CUBE_MAP_POSITIVE_Y,GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,GL_TEXTURE_CUBE_MAP_POSITIVE_Z,GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,GL_TEXTURE_2D_MULTISAMPLE"},
+		{"glFramebufferTextureLayer", "attachment", "3.0,3.1", "GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT,GL_DEPTH_STENCIL_ATTACHMENT," + GL_COLOR_ATTACHMENTi},
+		{"glFramebufferTextureLayer", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glGetActiveAttrib", "type", "2.0", "GL_FLOAT,GL_FLOAT_VEC2,GL_FLOAT_VEC3,GL_FLOAT_VEC4,GL_FLOAT_MAT2,GL_FLOAT_MAT3,GL_FLOAT_MAT4"},
+		{"glGetActiveAttrib,glGetTransformFeedbackVarying", "type", "3.0,3.1", "GL_FLOAT,GL_FLOAT_VEC2,GL_FLOAT_VEC3,GL_FLOAT_VEC4,GL_FLOAT_MAT2,GL_FLOAT_MAT3,GL_FLOAT_MAT4,GL_FLOAT_MAT2x3,GL_FLOAT_MAT2x4,GL_FLOAT_MAT3x2,GL_FLOAT_MAT3x4,GL_FLOAT_MAT4x2,GL_FLOAT_MAT4x3,GL_INT,GL_INT_VEC2,GL_INT_VEC3,GL_INT_VEC4,GL_UNSIGNED_INT,GL_UNSIGNED_INT_VEC2,GL_UNSIGNED_INT_VEC3,GL_UNSIGNED_INT_VEC4"},
+		{"glGetActiveUniform", "type", "2.0", "GL_FLOAT,GL_FLOAT_VEC2,GL_FLOAT_VEC3,GL_FLOAT_VEC4,GL_INT,GL_INT_VEC2,GL_INT_VEC3,GL_INT_VEC4,GL_BOOL,GL_BOOL_VEC2,GL_BOOL_VEC3,GL_BOOL_VEC4,GL_FLOAT_MAT2,GL_FLOAT_MAT3,GL_FLOAT_MAT4,GL_SAMPLER_2D,GL_SAMPLER_CUBE"},
+		{"glGetActiveUniform", "type", "3.0,3.1", "GL_FLOAT,GL_FLOAT_VEC2,GL_FLOAT_VEC3,GL_FLOAT_VEC4,GL_INT,GL_INT_VEC2,GL_INT_VEC3,GL_INT_VEC4,GL_UNSIGNED_INT,GL_UNSIGNED_INT_VEC2,GL_UNSIGNED_INT_VEC3,GL_UNSIGNED_INT_VEC4,GL_BOOL,GL_BOOL_VEC2,GL_BOOL_VEC3,GL_BOOL_VEC4,GL_FLOAT_MAT2,GL_FLOAT_MAT3,GL_FLOAT_MAT4,GL_FLOAT_MAT2x3,GL_FLOAT_MAT2x4,GL_FLOAT_MAT3x2,GL_FLOAT_MAT3x4,GL_FLOAT_MAT4x2,GL_FLOAT_MAT4x3,GL_SAMPLER_2D,GL_SAMPLER_3D,GL_SAMPLER_CUBE,GL_SAMPLER_2D_SHADOW,GL_SAMPLER_2D_ARRAY,GL_SAMPLER_2D_ARRAY_SHADOW,GL_SAMPLER_CUBE_SHADOW,GL_INT_SAMPLER_2D,GL_INT_SAMPLER_3D,GL_INT_SAMPLER_CUBE,GL_INT_SAMPLER_2D_ARRAY,GL_UNSIGNED_INT_SAMPLER_2D,GL_UNSIGNED_INT_SAMPLER_3D,GL_UNSIGNED_INT_SAMPLER_CUBE,GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"},
+		{"glGetActiveUniformBlockiv", "pname", "3.0,3.1", "GL_UNIFORM_BLOCK_BINDING,GL_UNIFORM_BLOCK_DATA_SIZE,GL_UNIFORM_BLOCK_NAME_LENGTH,GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"},
+		{"glGetActiveUniformsiv", "pname", "3.0,3.1", "GL_UNIFORM_TYPE,GL_UNIFORM_SIZE,GL_UNIFORM_NAME_LENGTH,GL_UNIFORM_BLOCK_INDEX,GL_UNIFORM_OFFSET,GL_UNIFORM_ARRAY_STRIDE,GL_UNIFORM_MATRIX_STRIDE,GL_UNIFORM_IS_ROW_MAJOR"},
+		{"glGetBooleanv,glGetBooleani_v,glGetFloatv,glGetInteger64i_v,glGetInteger64v,glGetIntegeri_v,glGetIntegerv", "pname,target", "3.0", "GL_ACTIVE_TEXTURE,GL_ALIASED_LINE_WIDTH_RANGE,GL_ALIASED_POINT_SIZE_RANGE,GL_ALPHA_BITS,GL_ARRAY_BUFFER_BINDING,GL_BLEND,GL_BLEND_COLOR,GL_BLEND_DST_ALPHA,GL_BLEND_DST_RGB,GL_BLEND_EQUATION_ALPHA,GL_BLEND_EQUATION_RGB,GL_BLEND_SRC_ALPHA,GL_BLEND_SRC_RGB,GL_BLUE_BITS,GL_COLOR_CLEAR_VALUE,GL_COLOR_WRITEMASK,GL_COMPRESSED_TEXTURE_FORMATS,GL_COPY_READ_BUFFER_BINDING,GL_COPY_WRITE_BUFFER_BINDING,GL_CULL_FACE,GL_CULL_FACE_MODE,GL_CURRENT_PROGRAM,GL_DEPTH_BITS,GL_DEPTH_CLEAR_VALUE,GL_DEPTH_FUNC,GL_DEPTH_RANGE,GL_DEPTH_TEST,GL_DEPTH_WRITEMASK,GL_DITHER,GL_DRAW_BUFFER,GL_DRAW_FRAMEBUFFER_BINDING,GL_ELEMENT_ARRAY_BUFFER_BINDING,GL_FRAGMENT_SHADER_DERIVATIVE_HINT,GL_FRONT_FACE,GL_GENERATE_MIPMAP_HINT,GL_GREEN_BITS,GL_IMPLEMENTATION_COLOR_READ_FORMAT,GL_IMPLEMENTATION_COLOR_READ_TYPE,GL_LINE_WIDTH,GL_MAJOR_VERSION,GL_MAX_3D_TEXTURE_SIZE,GL_MAX_ARRAY_TEXTURE_LAYERS,GL_MAX_COLOR_ATTACHMENTS,GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,GL_MAX_COMBINED_UNIFORM_BLOCKS,GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,GL_MAX_CUBE_MAP_TEXTURE_SIZE,GL_MAX_DRAW_BUFFERS,GL_MAX_ELEMENT_INDEX,GL_MAX_ELEMENTS_INDICES,GL_MAX_ELEMENTS_VERTICES,GL_MAX_FRAGMENT_INPUT_COMPONENTS,GL_MAX_FRAGMENT_UNIFORM_BLOCKS,GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,GL_MAX_FRAGMENT_UNIFORM_VECTORS,GL_MAX_PROGRAM_TEXEL_OFFSET,GL_MAX_RENDERBUFFER_SIZE,GL_MAX_SAMPLES,GL_MAX_SERVER_WAIT_TIMEOUT,GL_MAX_TEXTURE_IMAGE_UNITS,GL_MAX_TEXTURE_LOD_BIAS,GL_MAX_TEXTURE_SIZE,GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,GL_MAX_UNIFORM_BLOCK_SIZE,GL_MAX_UNIFORM_BUFFER_BINDINGS,GL_MAX_VARYING_COMPONENTS,GL_MAX_VARYING_VECTORS,GL_MAX_VERTEX_ATTRIBS,GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,GL_MAX_VERTEX_OUTPUT_COMPONENTS,GL_MAX_VERTEX_UNIFORM_BLOCKS,GL_MAX_VERTEX_UNIFORM_COMPONENTS,GL_MAX_VERTEX_UNIFORM_VECTORS,GL_MAX_VIEWPORT_DIMS,GL_MIN_PROGRAM_TEXEL_OFFSET,GL_MINOR_VERSION,GL_NUM_COMPRESSED_TEXTURE_FORMATS,GL_NUM_EXTENSIONS,GL_NUM_PROGRAM_BINARY_FORMATS,GL_NUM_SHADER_BINARY_FORMATS,GL_PACK_ALIGNMENT,GL_PACK_ROW_LENGTH,GL_PACK_SKIP_PIXELS,GL_PACK_SKIP_ROWS,GL_PIXEL_PACK_BUFFER_BINDING,GL_PIXEL_UNPACK_BUFFER_BINDING,GL_POLYGON_OFFSET_FACTOR,GL_POLYGON_OFFSET_FILL,GL_POLYGON_OFFSET_UNITS,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_PROGRAM_BINARY_FORMATS,GL_RASTERIZER_DISCARD,GL_READ_BUFFER,GL_READ_FRAMEBUFFER_BINDING,GL_RED_BITS,GL_RENDERBUFFER_BINDING,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_BUFFERS,GL_SAMPLE_COVERAGE,GL_SAMPLE_COVERAGE_INVERT,GL_SAMPLE_COVERAGE_VALUE,GL_SAMPLER_BINDING,GL_SAMPLES,GL_SCISSOR_BOX,GL_SCISSOR_TEST,GL_SHADER_BINARY_FORMATS,GL_SHADER_COMPILER,GL_STENCIL_BACK_FAIL,GL_STENCIL_BACK_FUNC,GL_STENCIL_BACK_PASS_DEPTH_FAIL,GL_STENCIL_BACK_PASS_DEPTH_PASS,GL_STENCIL_BACK_REF,GL_STENCIL_BACK_VALUE_MASK,GL_STENCIL_BACK_WRITEMASK,GL_STENCIL_BITS,GL_STENCIL_CLEAR_VALUE,GL_STENCIL_FAIL,GL_STENCIL_FUNC,GL_STENCIL_PASS_DEPTH_FAIL,GL_STENCIL_PASS_DEPTH_PASS,GL_STENCIL_REF,GL_STENCIL_TEST,GL_STENCIL_VALUE_MASK,GL_STENCIL_WRITEMASK,GL_SUBPIXEL_BITS,GL_TEXTURE_BINDING_2D,GL_TEXTURE_BINDING_2D_ARRAY,GL_TEXTURE_BINDING_3D,GL_TEXTURE_BINDING_CUBE_MAP,GL_TRANSFORM_FEEDBACK_BINDING,GL_TRANSFORM_FEEDBACK_ACTIVE,GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,GL_TRANSFORM_FEEDBACK_PAUSED,GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,GL_TRANSFORM_FEEDBACK_BUFFER_START,GL_UNIFORM_BUFFER_BINDING,GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,GL_UNIFORM_BUFFER_SIZE,GL_UNIFORM_BUFFER_START,GL_UNPACK_ALIGNMENT,GL_UNPACK_IMAGE_HEIGHT,GL_UNPACK_ROW_LENGTH,GL_UNPACK_SKIP_IMAGES,GL_UNPACK_SKIP_PIXELS,GL_UNPACK_SKIP_ROWS,GL_VERTEX_ARRAY_BINDING,GL_VIEWPORT"},
+		{"glGetBooleanv,glGetBooleani_v,glGetFloatv,glGetInteger64i_v,glGetInteger64v,glGetIntegeri_v,glGetIntegerv", "pname,target", "3.1", "GL_ACTIVE_TEXTURE,GL_ALIASED_LINE_WIDTH_RANGE,GL_ALIASED_POINT_SIZE_RANGE,GL_ALPHA_BITS,GL_ARRAY_BUFFER_BINDING,GL_BLEND,GL_BLEND_COLOR,GL_BLEND_DST_ALPHA,GL_BLEND_DST_RGB,GL_BLEND_EQUATION_ALPHA,GL_BLEND_EQUATION_RGB,GL_BLEND_SRC_ALPHA,GL_BLEND_SRC_RGB,GL_BLUE_BITS,GL_COLOR_CLEAR_VALUE,GL_COLOR_WRITEMASK,GL_COMPRESSED_TEXTURE_FORMATS,GL_COPY_READ_BUFFER_BINDING,GL_COPY_WRITE_BUFFER_BINDING,GL_CULL_FACE,GL_CULL_FACE_MODE,GL_CURRENT_PROGRAM,GL_DEPTH_BITS,GL_DEPTH_CLEAR_VALUE,GL_DEPTH_FUNC,GL_DEPTH_RANGE,GL_DEPTH_TEST,GL_DEPTH_WRITEMASK,GL_DISPATCH_INDIRECT_BUFFER_BINDING,GL_DITHER,GL_DRAW_BUFFER,GL_DRAW_FRAMEBUFFER_BINDING,GL_ELEMENT_ARRAY_BUFFER_BINDING,GL_FRAGMENT_SHADER_DERIVATIVE_HINT,GL_FRONT_FACE,GL_GENERATE_MIPMAP_HINT,GL_GREEN_BITS,GL_IMAGE_BINDING_LAYERED,GL_IMPLEMENTATION_COLOR_READ_FORMAT,GL_IMPLEMENTATION_COLOR_READ_TYPE,GL_LINE_WIDTH,GL_MAJOR_VERSION,GL_MAX_3D_TEXTURE_SIZE,GL_MAX_ARRAY_TEXTURE_LAYERS,GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,GL_MAX_COLOR_ATTACHMENTS,GL_MAX_COLOR_TEXTURE_SAMPLES,GL_MAX_COMBINED_ATOMIC_COUNTERS,GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,GL_MAX_COMBINED_UNIFORM_BLOCKS,GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,GL_MAX_COMPUTE_ATOMIC_COUNTERS,GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,GL_MAX_COMPUTE_UNIFORM_BLOCKS,GL_MAX_COMPUTE_UNIFORM_COMPONENTS,GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,GL_MAX_COMPUTE_WORK_GROUP_COUNT,GL_MAX_COMPUTE_WORK_GROUP_SIZE,GL_MAX_CUBE_MAP_TEXTURE_SIZE,GL_MAX_DRAW_BUFFERS,GL_MAX_ELEMENT_INDEX,GL_MAX_ELEMENTS_INDICES,GL_MAX_ELEMENTS_VERTICES,GL_MAX_FRAGMENT_ATOMIC_COUNTERS,GL_MAX_FRAGMENT_INPUT_COMPONENTS,GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,GL_MAX_FRAGMENT_UNIFORM_BLOCKS,GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,GL_MAX_FRAGMENT_UNIFORM_VECTORS,GL_MAX_FRAMEBUFFER_HEIGHT,GL_MAX_FRAMEBUFFER_SAMPLES,GL_MAX_FRAMEBUFFER_WIDTH,GL_MAX_INTEGER_SAMPLES,GL_MAX_PROGRAM_TEXEL_OFFSET,GL_MAX_RENDERBUFFER_SIZE,GL_MAX_SAMPLE_MASK_WORDS,GL_MAX_SAMPLES,GL_MAX_SERVER_WAIT_TIMEOUT,GL_MAX_SHADER_STORAGE_BLOCK_SIZE,GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,GL_MAX_TEXTURE_IMAGE_UNITS,GL_MAX_TEXTURE_LOD_BIAS,GL_MAX_TEXTURE_SIZE,GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,GL_MAX_UNIFORM_BLOCK_SIZE,GL_MAX_UNIFORM_BUFFER_BINDINGS,GL_MAX_UNIFORM_LOCATIONS,GL_MAX_VARYING_COMPONENTS,GL_MAX_VARYING_VECTORS,GL_MAX_VERTEX_ATOMIC_COUNTERS,GL_MAX_VERTEX_ATTRIB_BINDINGS,GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,GL_MAX_VERTEX_ATTRIBS,GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,GL_MAX_VERTEX_OUTPUT_COMPONENTS,GL_MAX_VERTEX_UNIFORM_BLOCKS,GL_MAX_VERTEX_UNIFORM_COMPONENTS,GL_MAX_VERTEX_UNIFORM_VECTORS,GL_MAX_VIEWPORT_DIMS,GL_MIN_PROGRAM_TEXEL_OFFSET,GL_MINOR_VERSION,GL_NUM_COMPRESSED_TEXTURE_FORMATS,GL_NUM_EXTENSIONS,GL_NUM_PROGRAM_BINARY_FORMATS,GL_NUM_SHADER_BINARY_FORMATS,GL_PACK_ALIGNMENT,GL_PACK_ROW_LENGTH,GL_PACK_SKIP_PIXELS,GL_PACK_SKIP_ROWS,GL_PIXEL_PACK_BUFFER_BINDING,GL_PIXEL_UNPACK_BUFFER_BINDING,GL_POLYGON_OFFSET_FACTOR,GL_POLYGON_OFFSET_FILL,GL_POLYGON_OFFSET_UNITS,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_PROGRAM_BINARY_FORMATS,GL_PROGRAM_PIPELINE_BINDING,GL_RASTERIZER_DISCARD,GL_READ_BUFFER,GL_READ_FRAMEBUFFER_BINDING,GL_RED_BITS,GL_RENDERBUFFER_BINDING,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_BUFFERS,GL_SAMPLE_COVERAGE,GL_SAMPLE_COVERAGE_INVERT,GL_SAMPLE_COVERAGE_VALUE,GL_SAMPLER_BINDING,GL_SAMPLES,GL_SCISSOR_BOX,GL_SCISSOR_TEST,GL_SHADER_BINARY_FORMATS,GL_SHADER_COMPILER,GL_SHADER_STORAGE_BUFFER_BINDING,GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,GL_SHADER_STORAGE_BUFFER_SIZE,GL_SHADER_STORAGE_BUFFER_START,GL_STENCIL_BACK_FAIL,GL_STENCIL_BACK_FUNC,GL_STENCIL_BACK_PASS_DEPTH_FAIL,GL_STENCIL_BACK_PASS_DEPTH_PASS,GL_STENCIL_BACK_REF,GL_STENCIL_BACK_VALUE_MASK,GL_STENCIL_BACK_WRITEMASK,GL_STENCIL_BITS,GL_STENCIL_CLEAR_VALUE,GL_STENCIL_FAIL,GL_STENCIL_FUNC,GL_STENCIL_PASS_DEPTH_FAIL,GL_STENCIL_PASS_DEPTH_PASS,GL_STENCIL_REF,GL_STENCIL_TEST,GL_STENCIL_VALUE_MASK,GL_STENCIL_WRITEMASK,GL_SUBPIXEL_BITS,GL_TEXTURE_BINDING_2D,GL_TEXTURE_BINDING_2D_ARRAY,GL_TEXTURE_BINDING_3D,GL_TEXTURE_BINDING_CUBE_MAP,GL_TEXTURE_BINDING_2D_MULTISAMPLE,GL_TRANSFORM_FEEDBACK_BINDING,GL_TRANSFORM_FEEDBACK_ACTIVE,GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,GL_TRANSFORM_FEEDBACK_PAUSED,GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,GL_TRANSFORM_FEEDBACK_BUFFER_START,GL_UNIFORM_BUFFER_BINDING,GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,GL_UNIFORM_BUFFER_SIZE,GL_UNIFORM_BUFFER_START,GL_UNPACK_ALIGNMENT,GL_UNPACK_IMAGE_HEIGHT,GL_UNPACK_ROW_LENGTH,GL_UNPACK_SKIP_IMAGES,GL_UNPACK_SKIP_PIXELS,GL_UNPACK_SKIP_ROWS,GL_VERTEX_ARRAY_BINDING,GL_VERTEX_BINDING_DIVISOR,GL_VERTEX_BINDING_OFFSET,GL_VERTEX_BINDING_STRIDE,GL_VIEWPORT"},
+		{"glGetBooleanv,glGetFloatv,glGetIntegerv", "pname", "2.0", "GL_ACTIVE_TEXTURE,GL_ALIASED_LINE_WIDTH_RANGE,GL_ALIASED_POINT_SIZE_RANGE,GL_ALPHA_BITS,GL_ARRAY_BUFFER_BINDING,GL_BLEND,GL_BLEND_COLOR,GL_BLEND_DST_ALPHA,GL_BLEND_DST_RGB,GL_BLEND_EQUATION_ALPHA,GL_BLEND_EQUATION_RGB,GL_BLEND_SRC_ALPHA,GL_BLEND_SRC_RGB,GL_BLUE_BITS,GL_COLOR_CLEAR_VALUE,GL_COLOR_WRITEMASK,GL_COMPRESSED_TEXTURE_FORMATS,GL_CULL_FACE,GL_CULL_FACE_MODE,GL_CURRENT_PROGRAM,GL_DEPTH_BITS,GL_DEPTH_CLEAR_VALUE,GL_DEPTH_FUNC,GL_DEPTH_RANGE,GL_DEPTH_TEST,GL_DEPTH_WRITEMASK,GL_DITHER,GL_ELEMENT_ARRAY_BUFFER_BINDING,GL_FRAMEBUFFER_BINDING,GL_FRONT_FACE,GL_GENERATE_MIPMAP_HINT,GL_GREEN_BITS,GL_IMPLEMENTATION_COLOR_READ_FORMAT,GL_IMPLEMENTATION_COLOR_READ_TYPE,GL_LINE_WIDTH,GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,GL_MAX_CUBE_MAP_TEXTURE_SIZE,GL_MAX_FRAGMENT_UNIFORM_VECTORS,GL_MAX_RENDERBUFFER_SIZE,GL_MAX_TEXTURE_IMAGE_UNITS,GL_MAX_TEXTURE_SIZE,GL_MAX_VARYING_VECTORS,GL_MAX_VERTEX_ATTRIBS,GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,GL_MAX_VERTEX_UNIFORM_VECTORS,GL_MAX_VIEWPORT_DIMS,GL_NUM_COMPRESSED_TEXTURE_FORMATS,GL_NUM_SHADER_BINARY_FORMATS,GL_PACK_ALIGNMENT,GL_POLYGON_OFFSET_FACTOR,GL_POLYGON_OFFSET_FILL,GL_POLYGON_OFFSET_UNITS,GL_RED_BITS,GL_RENDERBUFFER_BINDING,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_BUFFERS,GL_SAMPLE_COVERAGE,GL_SAMPLE_COVERAGE_INVERT,GL_SAMPLE_COVERAGE_VALUE,GL_SAMPLES,GL_SCISSOR_BOX,GL_SCISSOR_TEST,GL_SHADER_BINARY_FORMATS,GL_SHADER_COMPILER,GL_STENCIL_BACK_FAIL,GL_STENCIL_BACK_FUNC,GL_STENCIL_BACK_PASS_DEPTH_FAIL,GL_STENCIL_BACK_PASS_DEPTH_PASS,GL_STENCIL_BACK_REF,GL_STENCIL_BACK_VALUE_MASK,GL_STENCIL_BACK_WRITEMASK,GL_STENCIL_BITS,GL_STENCIL_CLEAR_VALUE,GL_STENCIL_FAIL,GL_STENCIL_FUNC,GL_STENCIL_PASS_DEPTH_FAIL,GL_STENCIL_PASS_DEPTH_PASS,GL_STENCIL_REF,GL_STENCIL_TEST,GL_STENCIL_VALUE_MASK,GL_STENCIL_WRITEMASK,GL_SUBPIXEL_BITS,GL_TEXTURE_BINDING_2D,GL_TEXTURE_BINDING_CUBE_MAP,GL_UNPACK_ALIGNMENT,GL_VIEWPORT"},
+		{"glGetBooleanv,glGetFloatv,glGetIntegerv,glGetFixedv", "pname", "1.1", "GL_ACTIVE_TEXTURE,GL_ALIASED_POINT_SIZE_RANGE,GL_ALIASED_LINE_WIDTH_RANGE,GL_ALPHA_BITS,GL_ALPHA_TEST,GL_ALPHA_TEST_FUNC,GL_ALPHA_TEST_REF,GL_ARRAY_BUFFER_BINDING,GL_BLEND,GL_BLEND_DST,GL_BLEND_SRC,GL_BLUE_BITS,GL_CLIENT_ACTIVE_TEXTURE,GL_COLOR_ARRAY,GL_COLOR_ARRAY_BUFFER_BINDING,GL_COLOR_ARRAY_SIZE,GL_COLOR_ARRAY_STRIDE,GL_COLOR_ARRAY_TYPE,GL_COLOR_CLEAR_VALUE,GL_COLOR_LOGIC_OP,GL_COLOR_MATERIAL,GL_COLOR_WRITEMASK,GL_COMPRESSED_TEXTURE_FORMATS,GL_CULL_FACE,GL_CULL_FACE_MODE,GL_CURRENT_COLOR,GL_CURRENT_NORMAL,GL_CURRENT_TEXTURE_COORDS,GL_DEPTH_BITS,GL_DEPTH_CLEAR_VALUE,GL_DEPTH_FUNC,GL_DEPTH_RANGE,GL_DEPTH_TEST,GL_DEPTH_WRITEMASK,GL_ELEMENT_ARRAY_BUFFER_BINDING,GL_FOG,GL_FOG_COLOR,GL_FOG_DENSITY,GL_FOG_END,GL_FOG_HINT,GL_FOG_MODE,GL_FOG_START,GL_FRONT_FACE,GL_GREEN_BITS,GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES,GL_IMPLEMENTATION_COLOR_READ_TYPE_OES,GL_LIGHT_MODEL_AMBIENT,GL_LIGHT_MODEL_TWO_SIDE,GL_LIGHTING,GL_LINE_SMOOTH,GL_LINE_SMOOTH_HINT,GL_LINE_WIDTH,GL_LOGIC_OP_MODE,GL_MATRIX_MODE,GL_MAX_CLIP_PLANES,GL_MAX_LIGHTS,GL_MAX_MODELVIEW_STACK_DEPTH,GL_MAX_PROJECTION_STACK_DEPTH,GL_MAX_TEXTURE_SIZE,GL_MAX_TEXTURE_STACK_DEPTH,GL_MAX_TEXTURE_UNITS,GL_MAX_VIEWPORT_DIMS,GL_MODELVIEW_MATRIX,GL_MODELVIEW_STACK_DEPTH,GL_MULTISAMPLE,GL_NORMAL_ARRAY,GL_NORMAL_ARRAY_BUFFER_BINDING,GL_NORMAL_ARRAY_STRIDE,GL_NORMAL_ARRAY_TYPE,GL_NORMALIZE,GL_NUM_COMPRESSED_TEXTURE_FORMATS,GL_PACK_ALIGNMENT,GL_PERSPECTIVE_CORRECTION_HINT,GL_POINT_DISTANCE_ATTENUATION,GL_POINT_FADE_THRESHOLD_SIZE,GL_POINT_SIZE,GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES,GL_POINT_SIZE_ARRAY_OES,GL_POINT_SIZE_ARRAY_STRIDE_OES,GL_POINT_SIZE_ARRAY_TYPE_OES,GL_POINT_SIZE_MAX,GL_POINT_SIZE_MIN,GL_POINT_SMOOTH,GL_POINT_SMOOTH_HINT,GL_POINT_SPRITE_OES,GL_POLYGON_OFFSET_FACTOR,GL_POLYGON_OFFSET_FILL,GL_POLYGON_OFFSET_UNITS,GL_PROJECTION_MATRIX,GL_PROJECTION_STACK_DEPTH,GL_RED_BITS,GL_RESCALE_NORMAL,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_ALPHA_TO_ONE,GL_SAMPLE_BUFFERS,GL_SAMPLE_COVERAGE,GL_SAMPLE_COVERAGE_INVERT,GL_SAMPLE_COVERAGE_VALUE,GL_SAMPLES,GL_SCISSOR_BOX,GL_SCISSOR_TEST,GL_SHADE_MODEL,GL_SMOOTH_LINE_WIDTH_RANGE,GL_SMOOTH_POINT_SIZE_RANGE,GL_STENCIL_BITS,GL_STENCIL_CLEAR_VALUE,GL_STENCIL_FAIL,GL_STENCIL_FUNC,GL_STENCIL_PASS_DEPTH_FAIL,GL_STENCIL_PASS_DEPTH_PASS,GL_STENCIL_REF,GL_STENCIL_TEST,GL_STENCIL_VALUE_MASK,GL_STENCIL_WRITEMASK,GL_SUBPIXEL_BITS,GL_TEXTURE_2D,GL_TEXTURE_BINDING_2D,GL_TEXTURE_COORD_ARRAY,GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,GL_TEXTURE_COORD_ARRAY_SIZE,GL_TEXTURE_COORD_ARRAY_STRIDE,GL_TEXTURE_COORD_ARRAY_TYPE,GL_TEXTURE_MATRIX,GL_TEXTURE_STACK_DEPTH,GL_UNPACK_ALIGNMENT,GL_VIEWPORT,GL_VERTEX_ARRAY,GL_VERTEX_ARRAY_BUFFER_BINDING,GL_VERTEX_ARRAY_SIZE,GL_VERTEX_ARRAY_STRIDE,GL_VERTEX_ARRAY_TYPE," + GL_CLIP_PLANEi + "," + GL_LIGHTi},
+		{"glGetClipPlanef,glGetClipPlanex", "plane", "1.1", GL_CLIP_PLANEi},
+		{"glGetError", "result", "1.1", "GL_NO_ERROR,GL_INVALID_ENUM,GL_INVALID_VALUE,GL_INVALID_OPERATION,GL_STACK_OVERFLOW,GL_STACK_UNDERFLOW,GL_OUT_OF_MEMORY"},
+		{"glGetError", "result", "2.0,3.0,3.1", "GL_NO_ERROR,GL_INVALID_ENUM,GL_INVALID_VALUE,GL_INVALID_OPERATION,GL_INVALID_FRAMEBUFFER_OPERATION,GL_OUT_OF_MEMORY"},
+		{"glGetFramebufferAttachmentParameteriv", "attachment", "3.0,3.1", "GL_BACK,GL_DEPTH,GL_STENCIL,GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT,GL_DEPTH_STENCIL_ATTACHMENT," + GL_COLOR_ATTACHMENTi},
+		{"glGetFramebufferAttachmentParameteriv", "pname", "3.0,3.1", "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"},
+		{"glGetFramebufferAttachmentParameteriv", "target", "3.0,3.1", "GL_DRAW_FRAMEBUFFER,GL_READ_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glGetFramebufferParameteriv", "pname", "3.1", "GL_FRAMEBUFFER_DEFAULT_WIDTH,GL_FRAMEBUFFER_DEFAULT_HEIGHT,GL_FRAMEBUFFER_DEFAULT_SAMPLES,GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"},
+		{"glGetFramebufferParameteriv", "target", "3.1", "GL_READ_FRAMEBUFFER,GL_DRAW_FRAMEBUFFER,GL_FRAMEBUFFER"},
+		{"glGetInternalformativ", "internalformat", "3.0,3.1", "GL_R8,GL_R8_SNORM,GL_R16F,GL_R32F,GL_R8UI,GL_R8I,GL_R16UI,GL_R16I,GL_R32UI,GL_R32I,GL_RG8,GL_RG8_SNORM,GL_RG16F,GL_RG32F,GL_RG8UI,GL_RG8I,GL_RG16UI,GL_RG16I,GL_RG32UI,GL_RG32I,GL_RGB8,GL_SRGB8,GL_RGB565,GL_RGB8_SNORM,GL_R11F_G11F_B10F,GL_RGB9_E5,GL_RGB16F,GL_RGB32F,GL_RGB8UI,GL_RGB8I,GL_RGB16UI,GL_RGB16I,GL_RGB32UI,GL_RGB32I,GL_RGBA8,GL_SRGB8_ALPHA8,GL_RGBA8_SNORM,GL_RGB5_A1,GL_RGBA4,GL_RGB10_A2,GL_RGBA16F,GL_RGBA32F,GL_RGBA8UI,GL_RGBA8I,GL_RGB10_A2UI,GL_RGBA16UI,GL_RGBA16I,GL_RGBA32I,GL_RGBA32UI,GL_DEPTH_COMPONENT16,GL_DEPTH_COMPONENT24,GL_DEPTH_COMPONENT32F,GL_DEPTH24_STENCIL8,GL_DEPTH32F_STENCIL8"},
+		{"glGetInternalformativ", "pname", "3.0,3.1", "GL_NUM_SAMPLE_COUNTS,GL_SAMPLES"},
+		{"glGetLightfv,glGetLightxv", "light", "1.1", GL_LIGHTi},
+		{"glGetMaterialfv,glGetMaterialxv", "face", "1.1", "GL_FRONT,GL_BACK"},
+		{"glGetProgramInterfaceiv", "pname", "3.1", "GL_ACTIVE_RESOURCES,GL_MAX_NAME_LENGTH,GL_MAX_NUM_ACTIVE_VARIABLES"},
+		{"glGetProgramInterfaceiv", "programInterface", "3.1", "GL_UNIFORM,GL_UNIFORM_BLOCK,GL_ATOMIC_COUNTER_BUFFER,GL_PROGRAM_INPUT,GL_PROGRAM_OUTPUT,GL_TRANSFORM_FEEDBACK_VARYING,GL_BUFFER_VARIABLE,GL_SHADER_STORAGE_BLOCK,GL_TRANSFORM_FEEDBACK_BUFFER"},
+		{"glGetProgramPipelineiv", "pname", "3.1", "GL_ACTIVE_PROGRAM,GL_VERTEX_SHADER,GL_FRAGMENT_SHADER,GL_COMPUTE_SHADER,GL_INFO_LOG_LENGTH,GL_VALIDATE_STATUS"},
+		{"glGetProgramResourceIndex", "programInterface", "3.1", "GL_UNIFORM,GL_UNIFORM_BLOCK,GL_PROGRAM_INPUT,GL_PROGRAM_OUTPUT,GL_TRANSFORM_FEEDBACK_VARYING,GL_BUFFER_VARIABLE,GL_SHADER_STORAGE_BLOCK"},
+		{"glGetProgramResourceLocation", "programInterface", "3.1", "GL_UNIFORM,GL_PROGRAM_INPUT,GL_PROGRAM_OUTPUT,GL_TRANSFORM_FEEDBACK_BUFFER"},
+		{"glGetProgramResourceName", "programInterface", "3.1", "GL_UNIFORM,GL_UNIFORM_BLOCK,GL_PROGRAM_INPUT,GL_PROGRAM_OUTPUT,GL_TRANSFORM_FEEDBACK_VARYING,GL_BUFFER_VARIABLE,GL_SHADER_STORAGE_BLOCK"},
+		{"glGetProgramResourceiv", "programInterface", "3.1", "GL_ATOMIC_COUNTER_BUFFER,GL_BUFFER_VARIABLE,GL_PROGRAM_INPUT,GL_PROGRAM_OUTPUT,GL_SHADER_STORAGE_BLOCK,GL_TRANSFORM_FEEDBACK_VARYING,GL_UNIFORM,GL_UNIFORM_BLOCK,GL_TRANSFORM_FEEDBACK_BUFFER"},
+		{"glGetProgramResourceiv", "props", "3.1", "GL_NAME_LENGTH,GL_TYPE,GL_ARRAY_SIZE,GL_OFFSET,GL_BLOCK_INDEX,GL_ARRAY_STRIDE,GL_MATRIX_STRIDE,GL_IS_ROW_MAJOR,GL_ATOMIC_COUNTER_BUFFER_INDEX,GL_BUFFER_BINDING,GL_BUFFER_DATA_SIZE,GL_NUM_ACTIVE_VARIABLES,GL_ACTIVE_VARIABLES,GL_REFERENCED_BY_VERTEX_SHADER,GL_REFERENCED_BY_FRAGMENT_SHADER,GL_REFERENCED_BY_COMPUTE_SHADER,GL_TOP_LEVEL_ARRAY_SIZE,GL_TOP_LEVEL_ARRAY_STRIDE,GL_LOCATION,GL_LOCATION_INDEX,GL_LOCATION_COMPONENT"},
+		{"glGetRenderbufferParameteriv", "pname", "3.0,3.1", "GL_RENDERBUFFER_WIDTH,GL_RENDERBUFFER_HEIGHT,GL_RENDERBUFFER_INTERNAL_FORMAT,GL_RENDERBUFFER_RED_SIZE,GL_RENDERBUFFER_GREEN_SIZE,GL_RENDERBUFFER_BLUE_SIZE,GL_RENDERBUFFER_ALPHA_SIZE,GL_RENDERBUFFER_DEPTH_SIZE,GL_RENDERBUFFER_STENCIL_SIZE,GL_RENDERBUFFER_SAMPLES"},
+		{"glGetShaderPrecisionFormat", "precisiontype", "3.0,3.1", "GL_LOW_FLOAT,GL_MEDIUM_FLOAT,GL_HIGH_FLOAT,GL_LOW_INT,GL_MEDIUM_INT,GL_HIGH_INT"},
+		{"glGetString", "name", "1.1", "GL_VENDOR,GL_RENDERER,GL_VERSION,GL_EXTENSIONS"},
+		{"glGetString", "name", "2.0", "GL_VENDOR,GL_RENDERER,GL_VERSION,GL_SHADING_LANGUAGE_VERSION,GL_EXTENSIONS"},
+		{"glGetString", "name", "3.0,3.1", "GL_EXTENSIONS,GL_RENDERER,GL_SHADING_LANGUAGE_VERSION,GL_VENDOR,GL_VERSION"},
+		{"glGetStringi", "name", "3.0,3.1", "GL_EXTENSIONS"},
+		{"glGetSynciv", "pname", "3.0,3.1", "GL_OBJECT_TYPE,GL_SYNC_STATUS,GL_SYNC_CONDITION,GL_SYNC_FLAGS"},
+		{"glGetTexLevelParameterfv,glGetTexLevelParameteriv", "target", "3.1", "GL_TEXTURE_2D,GL_TEXTURE_3D,GL_TEXTURE_2D_ARRAY,GL_TEXTURE_2D_MULTISAMPLE,GL_TEXTURE_CUBE_MAP_POSITIVE_X,GL_TEXTURE_CUBE_MAP_NEGATIVE_X,GL_TEXTURE_CUBE_MAP_POSITIVE_Y,GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,GL_TEXTURE_CUBE_MAP_POSITIVE_Z,GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"},
+		{"glGetTexParameterfv,glGetTexParameteriv,glGetTexParameterxv", "target", "1.1", "GL_TEXTURE_2D"},
+		{"glInvalidateFramebuffer,glInvalidateSubFramebuffer", "attachments", "3.0,3.1", "GL_DEPTH_ATTACHMENT,GL_STENCIL_ATTACHMENT,GL_DEPTH_STENCIL_ATTACHMENT," + GL_COLOR_ATTACHMENTi},
+		{"glIsEnabled", "cap", "1.1", "GL_ALPHA_TEST,GL_BLEND,GL_COLOR_ARRAY,GL_COLOR_LOGIC_OP,GL_COLOR_MATERIAL,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_FOG,GL_LIGHTING,GL_LINE_SMOOTH,GL_MULTISAMPLE,GL_NORMAL_ARRAY,GL_NORMALIZE,GL_POINT_SIZE_ARRAY_OES,GL_POINT_SMOOTH,GL_POINT_SPRITE_OES,GL_POLYGON_OFFSET_FILL,GL_RESCALE_NORMAL,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_ALPHA_TO_ONE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST,GL_TEXTURE_2D,GL_TEXTURE_COORD_ARRAY,GL_VERTEX_ARRAY," + GL_CLIP_PLANEi + "," + GL_LIGHTi},
+		{"glIsEnabled", "cap", "2.0", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glIsEnabled", "cap", "3.0", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_RASTERIZER_DISCARD,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glIsEnabled", "cap", "3.1", "GL_BLEND,GL_CULL_FACE,GL_DEPTH_TEST,GL_DITHER,GL_POLYGON_OFFSET_FILL,GL_PRIMITIVE_RESTART_FIXED_INDEX,GL_RASTERIZER_DISCARD,GL_SAMPLE_ALPHA_TO_COVERAGE,GL_SAMPLE_COVERAGE,GL_SCISSOR_TEST,GL_STENCIL_TEST"},
+		{"glLightf,glLightfv,glLightx,glLightxv", "light", "1.1", GL_LIGHTi},
+		{"glMapBufferRange", "access", "3.0,3.1", "GL_MAP_READ_BIT,GL_MAP_WRITE_BIT,GL_MAP_INVALIDATE_RANGE_BIT,GL_MAP_INVALIDATE_BUFFER_BIT,GL_MAP_FLUSH_EXPLICIT_BIT,GL_MAP_UNSYNCHRONIZED_BIT"},
+		{"glMapBufferRange,glUnmapBuffer", "target", "3.0", "GL_ARRAY_BUFFER,GL_COPY_READ_BUFFER,GL_COPY_WRITE_BUFFER,GL_ELEMENT_ARRAY_BUFFER,GL_PIXEL_PACK_BUFFER,GL_PIXEL_UNPACK_BUFFER,GL_TRANSFORM_FEEDBACK_BUFFER,GL_UNIFORM_BUFFER"},
+		{"glMapBufferRange,glUnmapBuffer", "target", "3.1", "GL_ARRAY_BUFFER,GL_ATOMIC_COUNTER_BUFFER,GL_COPY_READ_BUFFER,GL_COPY_WRITE_BUFFER,GL_DISPATCH_INDIRECT_BUFFER,GL_DRAW_INDIRECT_BUFFER,GL_ELEMENT_ARRAY_BUFFER,GL_PIXEL_PACK_BUFFER,GL_PIXEL_UNPACK_BUFFER,GL_SHADER_STORAGE_BUFFER,GL_TRANSFORM_FEEDBACK_BUFFER,GL_UNIFORM_BUFFER"},
+		{"glMemoryBarrier,glMemoryBarrierByRegion", "barriers", "3.1", "GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,GL_ELEMENT_ARRAY_BARRIER_BIT,GL_UNIFORM_BARRIER_BIT,GL_TEXTURE_FETCH_BARRIER_BIT,GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,GL_COMMAND_BARRIER_BIT,GL_PIXEL_BUFFER_BARRIER_BIT,GL_TEXTURE_UPDATE_BARRIER_BIT,GL_BUFFER_UPDATE_BARRIER_BIT,GL_FRAMEBUFFER_BARRIER_BIT,GL_TRANSFORM_FEEDBACK_BARRIER_BIT,GL_ATOMIC_COUNTER_BARRIER_BIT,GL_SHADER_STORAGE_BARRIER_BIT,GL_ALL_BARRIER_BITS"},
+		{"glMultiTexCoord4f", "target", "1.1", GL_TEXTUREi},
+		{"glMultiTexCoord4x", "texture", "1.1", GL_TEXTUREi},
+		{"glPixelStorei", "pname", "1.1,2.0", "GL_PACK_ALIGNMENT,GL_UNPACK_ALIGNMENT"},
+		{"glPixelStorei", "pname", "3.0,3.1", "GL_PACK_ROW_LENGTH,GL_PACK_IMAGE_HEIGHT,GL_PACK_SKIP_PIXELS,GL_PACK_SKIP_ROWS,GL_PACK_SKIP_IMAGES,GL_PACK_ALIGNMENT,GL_UNPACK_ROW_LENGTH,GL_UNPACK_IMAGE_HEIGHT,GL_UNPACK_SKIP_PIXELS,GL_UNPACK_SKIP_ROWS,GL_UNPACK_SKIP_IMAGES,GL_UNPACK_ALIGNMENT"},
+		{"glProgramBinary", "binaryFormat", "3.0,3.1", ""}, // implementation dependent
+		{"glProgramParameteri", "pname", "3.0", "GL_PROGRAM_BINARY_RETRIEVABLE_HINT"},
+		{"glProgramParameteri", "pname", "3.1", "GL_PROGRAM_BINARY_RETRIEVABLE_HINT,GL_PROGRAM_SEPARABLE"},
+		{"glReadBuffer", "src", "3.0,3.1", "GL_BACK,GL_NONE," + GL_COLOR_ATTACHMENTi},
+		{"glReadPixels", "format", "1.1", "GL_ALPHA,GL_RGB,GL_RGBA"},
+		{"glReadPixels", "format", "3.0,3.1", "GL_RED,GL_RED_INTEGER,GL_RG,GL_RG_INTEGER,GL_RGB,GL_RGB_INTEGER,GL_RGBA,GL_RGBA_INTEGER,GL_LUMINANCE_ALPHA,GL_LUMINANCE,GL_ALPHA"},
+		{"glReadPixels", "type", "1.1", "GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4,GL_UNSIGNED_SHORT_5_5_5_1"},
+		{"glReadPixels", "type", "3.0,3.1", "GL_UNSIGNED_BYTE,GL_BYTE,GL_HALF_FLOAT,GL_FLOAT,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4,GL_UNSIGNED_SHORT_5_5_5_1,GL_UNSIGNED_INT_2_10_10_10_REV,GL_UNSIGNED_INT_10F_11F_11F_REV,GL_UNSIGNED_INT_5_9_9_9_REV,GL_UNSIGNED_INT,GL_INT,GL_FLOAT"},
+		{"glRenderbufferStorage,glRenderbufferStorageMultisample", "internalformat", "3.0,3.1", "GL_R8,GL_R8UI,GL_R8I,GL_R16UI,GL_R16I,GL_R32UI,GL_R32I,GL_RG8,GL_RG8UI,GL_RG8I,GL_RG16UI,GL_RG16I,GL_RG32UI,GL_RG32I,GL_RGB8,GL_RGB565,GL_RGBA8,GL_SRGB8_ALPHA8,GL_RGB5_A1,GL_RGBA4,GL_RGB10_A2,GL_RGBA8UI,GL_RGBA8I,GL_RGB10_A2UI,GL_RGBA16UI,GL_RGBA16I,GL_RGBA32I,GL_RGBA32UI,GL_DEPTH_COMPONENT16,GL_DEPTH_COMPONENT24,GL_DEPTH_COMPONENT32F,GL_DEPTH24_STENCIL8,GL_DEPTH32F_STENCIL8,GL_STENCIL_INDEX8"},
+		{"glRenderbufferStorage,glRenderbufferStorageMultisample", "target", "3.0,3.1", "GL_RENDERBUFFER"},
+		{"glShaderBinary", "binaryformat", "2.0,3.0,3.1", ""}, // OpenGL ES defines no specific binary formats
+		{"glStencilOp", "fail,zfail,zpass", "1.1", "GL_KEEP,GL_ZERO,GL_REPLACE,GL_INCR,GL_DECR,GL_INVERT"},
+		{"glStencilOp,glStencilOpSeparate", "fail,zfail,zpass,sfail,dpfail,dppass", "2.0,3.0,3.1", "GL_KEEP,GL_ZERO,GL_REPLACE,GL_INCR,GL_INCR_WRAP,GL_DECR,GL_DECR_WRAP,GL_INVERT"},
+		{"glTexCoordPointer,glVertexPointer,glNormalPointer", "type", "1.1", "GL_BYTE,GL_SHORT,GL_FIXED,GL_FLOAT"}, // TODO: common profile?
+		{"glTexParameterf,glTexParameterfv,glTexParameteri,glTexParameteriv", "target", "1.1", "GL_TEXTURE_2D"},
+		{"glTexParameterf,glTexParameterfv,glTexParameteri,glTexParameteriv", "target", "2.0", "GL_TEXTURE_2D,GL_TEXTURE_CUBE_MAP"},
+		{"glTexParameterf,glTexParameterfv,glTexParameteri,glTexParameteriv", "target", "3.0", "GL_TEXTURE_2D,GL_TEXTURE_3D,GL_TEXTURE_2D_ARRAY,GL_TEXTURE_CUBE_MAP"},
+		{"glTexParameterf,glTexParameterfv,glTexParameteri,glTexParameteriv", "target", "3.1", "GL_TEXTURE_2D,GL_TEXTURE_3D,GL_TEXTURE_2D_ARRAY,GL_TEXTURE_2D_MULTISAMPLE,GL_TEXTURE_CUBE_MAP"},
+		{"glTexParameterx,glTexParameterxv", "target", "1.1", "GL_TEXTURE_2D"},
+		{"glTexStorage2D,glTexStorage3D", "internalformat", "3.0,3.1", "GL_R8,GL_R8_SNORM,GL_R16F,GL_R32F,GL_R8UI,GL_R8I,GL_R16UI,GL_R16I,GL_R32UI,GL_R32I,GL_RG8,GL_RG8_SNORM,GL_RG16F,GL_RG32F,GL_RG8UI,GL_RG8I,GL_RG16UI,GL_RG16I,GL_RG32UI,GL_RG32I,GL_RGB8,GL_SRGB8,GL_RGB565,GL_RGB8_SNORM,GL_R11F_G11F_B10F,GL_RGB9_E5,GL_RGB16F,GL_RGB32F,GL_RGB8UI,GL_RGB8I,GL_RGB16UI,GL_RGB16I,GL_RGB32UI,GL_RGB32I,GL_RGBA8,GL_SRGB8_ALPHA8,GL_RGBA8_SNORM,GL_RGB5_A1,GL_RGBA4,GL_RGB10_A2,GL_RGBA16F,GL_RGBA32F,GL_RGBA8UI,GL_RGBA8I,GL_RGB10_A2UI,GL_RGBA16UI,GL_RGBA16I,GL_RGBA32I,GL_RGBA32UI,GL_DEPTH_COMPONENT16,GL_DEPTH_COMPONENT24,GL_DEPTH_COMPONENT32F,GL_DEPTH24_STENCIL8,GL_DEPTH32F_STENCIL8,GL_COMPRESSED_R11_EAC,GL_COMPRESSED_SIGNED_R11_EAC,GL_COMPRESSED_RG11_EAC,GL_COMPRESSED_SIGNED_RG11_EAC,GL_COMPRESSED_RGB8_ETC2,GL_COMPRESSED_SRGB8_ETC2,GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,GL_COMPRESSED_RGBA8_ETC2_EAC,GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"},
+		{"glTexStorage2DMultisample", "internalformat", "3.1", "GL_R8,GL_R8_SNORM,GL_R16F,GL_R32F,GL_R8UI,GL_R8I,GL_R16UI,GL_R16I,GL_R32UI,GL_R32I,GL_RG8,GL_RG8_SNORM,GL_RG16F,GL_RG32F,GL_RG8UI,GL_RG8I,GL_RG16UI,GL_RG16I,GL_RG32UI,GL_RG32I,GL_RGB8,GL_SRGB8,GL_RGB565,GL_RGB8_SNORM,GL_R11F_G11F_B10F,GL_RGB9_E5,GL_RGB16F,GL_RGB32F,GL_RGB8UI,GL_RGB8I,GL_RGB16UI,GL_RGB16I,GL_RGB32UI,GL_RGB32I,GL_RGBA8,GL_SRGB8_ALPHA8,GL_RGBA8_SNORM,GL_RGB5_A1,GL_RGBA4,GL_RGB10_A2,GL_RGBA16F,GL_RGBA32F,GL_RGBA8UI,GL_RGBA8I,GL_RGB10_A2UI,GL_RGBA16UI,GL_RGBA16I,GL_RGBA32I,GL_RGBA32UI,GL_DEPTH_COMPONENT16,GL_DEPTH_COMPONENT24,GL_DEPTH_COMPONENT32F,GL_DEPTH24_STENCIL8,GL_DEPTH32F_STENCIL8"},
+		{"glUseProgramStages", "stages", "3.1", "GL_VERTEX_SHADER_BIT,GL_FRAGMENT_SHADER_BIT,GL_COMPUTE_SHADER_BIT,GL_ALL_SHADER_BITS"},
+		{"glVertexAttribFormat,glVertexAttribIFormat", "type", "3.1", "GL_BYTE,GL_SHORT,GL_INT,GL_FIXED,GL_FLOAT,GL_HALF_FLOAT,GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT,GL_UNSIGNED_INT,GL_INT_2_10_10_10_REV,GL_UNSIGNED_INT_2_10_10_10_REV"},
+		{"glVertexAttribIPointer", "type", "3.0,3.1", "GL_BYTE,GL_UNSIGNED_BYTE,GL_SHORT,GL_UNSIGNED_SHORT,GL_INT,GL_UNSIGNED_INT"},
+		{"glVertexAttribPointer", "type", "3.0,3.1", "GL_BYTE,GL_UNSIGNED_BYTE,GL_SHORT,GL_UNSIGNED_SHORT,GL_INT,GL_UNSIGNED_INT,GL_HALF_FLOAT,GL_FLOAT,GL_FIXED,GL_INT_2_10_10_10_REV,GL_UNSIGNED_INT_2_10_10_10_REV"},
+	}
+	for _, row := range enumMetadata {
+		if listContains(row.cmdName, cmdName) &&
+			listContains(row.paramName, paramName) &&
+			listContains(row.apiVersion, string(apiVersion)) {
+			if row.acceptedValues != "" {
+				return strings.Split(row.acceptedValues, ","), true
+			} else {
+				return nil, true
+			}
+		}
+	}
+	return nil, false
+}
diff --git a/tools/generate_gles_api/download_reg.go b/tools/generate_gles_api/download_reg.go
new file mode 100644
index 0000000..eeb399d
--- /dev/null
+++ b/tools/generate_gles_api/download_reg.go
@@ -0,0 +1,228 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"encoding/xml"
+	"fmt"
+	"strings"
+)
+
+const url = "https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/gl.xml"
+
+// Download the khronos XML registry file
+func DownloadReg() *Registry {
+	bytes := Download(url)
+	reg := &Registry{}
+	if err := xml.Unmarshal(bytes, reg); err != nil {
+		panic(err.Error())
+	}
+	return reg
+}
+
+type KhronosAPI string
+type Version string
+
+const GLES1API = KhronosAPI("gles1")
+const GLES2API = KhronosAPI("gles2") // Includes GLES 3.0 and later
+
+func (v Version) String() string { return fmt.Sprintf("%s", string(v)) }
+
+type Registry struct {
+	Group     []Group            `xml:"groups>group"`
+	Enums     []Enums            `xml:"enums"`
+	Command   []Command          `xml:"commands>command"`
+	Feature   []Feature          `xml:"feature"`
+	Extension []ExtensionElement `xml:"extensions>extension"`
+}
+
+type NamedElementList []NamedElement
+type NamedElement struct {
+	Name string `xml:"name,attr"`
+}
+
+type Group struct {
+	NamedElement
+	Enum NamedElementList `xml:"enum"`
+}
+
+type Enums struct {
+	Namespace string `xml:"namespace,attr"`
+	Group     string `xml:"group,attr"`
+	Type      string `xml:"type,attr"` // "bitmask"
+	Comment   string `xml:"comment,attr"`
+	Enum      []Enum `xml:"enum"`
+}
+
+type Enum struct {
+	NamedElement
+	Value string     `xml:"value,attr"`
+	Type  string     `xml:"type,attr"` // "u" or "ull"
+	API   KhronosAPI `xml:"api,attr"`
+	Alias string     `xml:"alias,attr"`
+}
+
+type Command struct {
+	Proto ProtoOrParam   `xml:"proto"`
+	Param []ProtoOrParam `xml:"param"`
+	Alias NamedElement   `xml:"alias"`
+}
+
+type ProtoOrParam struct {
+	InnerXML string `xml:",innerxml"`
+	Chardata string `xml:",chardata"`
+	Group    string `xml:"group,attr"`
+	Length   string `xml:"len,attr"`
+	Ptype    string `xml:"ptype"`
+	Name     string `xml:"name"`
+}
+
+type Feature struct {
+	NamedElement
+	API     KhronosAPI          `xml:"api,attr"`
+	Number  Version             `xml:"number,attr"`
+	Require RequireOrRemoveList `xml:"require"`
+	Remove  RequireOrRemoveList `xml:"remove"`
+}
+
+type ExtensionElement struct {
+	NamedElement
+	Supported string              `xml:"supported,attr"`
+	Require   RequireOrRemoveList `xml:"require"`
+	Remove    RequireOrRemoveList `xml:"remove"`
+}
+
+type RequireOrRemoveList []RequireOrRemove
+type RequireOrRemove struct {
+	API     KhronosAPI       `xml:"api,attr"` // for extensions only
+	Profile string           `xml:"profile,attr"`
+	Comment string           `xml:"comment,attr"`
+	Enum    NamedElementList `xml:"enum"`
+	Command NamedElementList `xml:"command"`
+}
+
+func (l NamedElementList) Contains(name string) bool {
+	for _, v := range l {
+		if v.Name == name {
+			return true
+		}
+	}
+	return false
+}
+
+func (r *RequireOrRemove) Contains(name string) bool {
+	return r.Enum.Contains(name) || r.Command.Contains(name)
+}
+
+func (l RequireOrRemoveList) Contains(name string) bool {
+	for _, v := range l {
+		if v.Contains(name) {
+			return true
+		}
+	}
+	return false
+}
+
+func (e *ExtensionElement) IsSupported(api KhronosAPI) bool {
+	for _, v := range strings.Split(e.Supported, "|") {
+		if KhronosAPI(v) == api {
+			return true
+		}
+	}
+	return false
+}
+
+func (c Command) Name() string {
+	return c.Proto.Name
+}
+
+func (p ProtoOrParam) Type() string {
+	name := p.InnerXML
+	name = name[:strings.Index(name, "<name>")]
+	name = strings.Replace(name, "<ptype>", "", 1)
+	name = strings.Replace(name, "</ptype>", "", 1)
+	name = strings.TrimSpace(name)
+	return name
+}
+
+// Add the return value as param "result" at slot -1
+func (cmd *Command) ParamsAndResult() map[int]ProtoOrParam {
+	result := cmd.Proto
+	result.Name = "result"
+	results := map[int]ProtoOrParam{-1: result}
+	for i, param := range cmd.Param {
+		results[i] = param
+	}
+	return results
+}
+
+// Return sorted list of versions which support the given symbol
+func (r *Registry) GetVersions(api KhronosAPI, name string) []Version {
+	version, found := Version(""), false
+	for _, feature := range r.Feature {
+		if feature.API == api {
+			if feature.Require.Contains(name) {
+				if found {
+					panic(fmt.Errorf("redefinition of %s", name))
+				}
+				version, found = feature.Number, true
+			}
+			if feature.Remove != nil {
+				// not used in GLES
+				panic(fmt.Errorf("remove tag is not supported"))
+			}
+		}
+	}
+	if found {
+		switch version {
+		case "1.0":
+			return []Version{"1.0", "1.1"}
+		case "2.0":
+			return []Version{"2.0", "3.0", "3.1"}
+		case "3.0":
+			return []Version{"3.0", "3.1"}
+		case "3.1":
+			return []Version{"3.1"}
+		default:
+			panic(fmt.Errorf("Uknown GLES version: %v", version))
+		}
+	} else {
+		return nil
+	}
+}
+
+// Return extensions which define the given symbol
+func (r *Registry) GetExtensions(api KhronosAPI, name string) []string {
+	var extensions []string
+ExtensionLoop:
+	for _, extension := range r.Extension {
+		if extension.IsSupported(api) {
+			for _, require := range extension.Require {
+				if require.API == "" || require.API == api {
+					if require.Contains(name) {
+						extensions = append(extensions, extension.Name)
+						// sometimes the extension repeats definition - ignore
+						continue ExtensionLoop
+					}
+				}
+			}
+			if extension.Remove != nil {
+				// not used in GLES
+				panic(fmt.Errorf("remove tag is not supported"))
+			}
+		}
+	}
+	return extensions
+}
diff --git a/tools/generate_gles_api/generate_api.go b/tools/generate_gles_api/generate_api.go
new file mode 100644
index 0000000..ee143b8
--- /dev/null
+++ b/tools/generate_gles_api/generate_api.go
@@ -0,0 +1,416 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"os"
+	"strconv"
+	"strings"
+)
+
+const indent = "  "
+
+// Generate the "gles.api" file from combined online and hand written data.
+func GenerateApi(reg *Registry, api KhronosAPI) {
+	files := map[string]*os.File{}
+	printEnums(createFile(files, "glenum"), reg, api, false)
+	printEnums(createFile(files, "glbitfield"), reg, api, true)
+	for _, cmd := range reg.Command {
+		versions := reg.GetVersions(api, cmd.Name())
+		extensions := reg.GetExtensions(api, cmd.Name())
+		if versions != nil {
+			printCommand(createFile(files, getCategory(cmd.Name())), reg, &cmd, api)
+		}
+		if extensions != nil {
+			if isInAndroidExtensionPack(extensions) {
+				printCommand(createFile(files, "android_extension_pack"), reg, &cmd, api)
+			} else {
+				printCommand(createFile(files, "extensions"), reg, &cmd, api)
+			}
+		}
+	}
+	for _, file := range files {
+		if err := file.Close(); err != nil {
+			panic(err)
+		}
+	}
+}
+
+func createFile(files map[string]*os.File, basename string) *os.File {
+	filename := *apiDir + string(os.PathSeparator) + basename + ".api"
+	if file, ok := files[filename]; ok {
+		return file
+	}
+	file, err := os.Create(filename)
+	if err != nil {
+		panic(err)
+	}
+	files[filename] = file
+	fmt.Fprint(file, `// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+`)
+	return file
+}
+
+func getCategory(cmdName string) string {
+	var table = []struct {
+		category string
+		cmdName  string // Regexp
+	}{
+		{"asynchronous_queries", ".*(Query|Queries).*"},
+		{"synchronization", ".*Sync.*"},
+		{"programs_and_shaders", ".*(Program|Shader|Compute|Uniform|MemoryBarrier|GetFragDataLocation|glValidateProgram|AttribLocation|GetActiveAttrib).*"},
+		{"framebuffer", ".*(Framebuffer|Renderbuffer).*|glReadBuffer|glReadPixels|gl(Color|Depth|Stencil)Mask|glClear.*|glInvalidate.*"},
+		{"textures_and_samplers", ".*(Tex|Image|Sampler|PixelStorei|GenerateMipmap).*"},
+		{"transform_feedback", "gl(.*TransformFeedback.*)"},
+		{"vertex_arrays", ".*Vertex(Attrib|Buffer|Binding|Array).*"},
+		{"draw_commands", "glDraw.*"},
+		{"rasterization", "gl(GetMultisamplefv|LineWidth|FrontFace|CullFace|PolygonOffset|DepthRangef|Viewport)"},
+		{"fragment_operations", "glScissor|glSample.*|glStencil.*|glDepthFunc|glBlend.*"},
+		{"state_queries", "gl(GetBoolean|GetInteger|GetFloat|IsEnabled|GetString|GetInternalformativ).*"},
+		{"other", "glEnable|glDisable|glIsEnabled|glHint|glGetError|glFlush|glFinish"},
+		{"buffer_objects", ".*Buffer.*"},
+	}
+	for _, row := range table {
+		if CompileRegexp("^(?:" + row.cmdName + ")").MatchString(cmdName) {
+			return row.category
+		}
+	}
+	panic(fmt.Errorf("Can not find category of %v", cmdName))
+}
+
+func isInAndroidExtensionPack(extensions []string) (result bool) {
+	aep := map[string]bool{
+		"GL_KHR_debug":                                true,
+		"GL_KHR_texture_compression_astc_ldr":         true,
+		"GL_KHR_blend_equation_advanced":              true,
+		"GL_OES_sample_shading":                       true,
+		"GL_OES_sample_variables":                     true,
+		"GL_OES_shader_image_atomic":                  true,
+		"GL_OES_shader_multisample_interpolation":     true,
+		"GL_OES_texture_stencil8":                     true,
+		"GL_OES_texture_storage_multisample_2d_array": true,
+		"GL_EXT_copy_image":                           true,
+		"GL_EXT_draw_buffers_indexed":                 true,
+		"GL_EXT_geometry_shader":                      true,
+		"GL_EXT_gpu_shader5":                          true,
+		"GL_EXT_primitive_bounding_box":               true,
+		"GL_EXT_shader_io_blocks":                     true,
+		"GL_EXT_tessellation_shader":                  true,
+		"GL_EXT_texture_border_clamp":                 true,
+		"GL_EXT_texture_buffer":                       true,
+		"GL_EXT_texture_cube_map_array":               true,
+		"GL_EXT_texture_sRGB_decode":                  true,
+	}
+	for _, extension := range extensions {
+		if aep[extension] {
+			return true
+		}
+	}
+	return false
+}
+
+func wrap(text string, width int, linePrefix string) string {
+	if len(text) > width {
+		if idx := strings.LastIndex(text[0:width], " "); idx != -1 {
+			return text[0:idx] + "\n" + wrap(linePrefix+text[idx+1:], width, linePrefix)
+		}
+	}
+	return text
+}
+
+func printEnums(out io.Writer, r *Registry, api KhronosAPI, bitfields bool) {
+	if bitfields {
+		fmt.Fprintf(out, "bitfield GLbitfield {\n")
+	} else {
+		fmt.Fprintf(out, "enum GLenum {\n")
+	}
+	for _, enums := range r.Enums {
+		if (enums.Type == "bitmask") == bitfields && enums.Namespace == "GL" && len(enums.Enum) > 0 {
+			for _, enum := range enums.Enum {
+				// The following 64bit values are not proper GLenum values.
+				if enum.Name == "GL_TIMEOUT_IGNORED" || enum.Name == "GL_TIMEOUT_IGNORED_APPLE" {
+					continue
+				}
+				if enum.API == "" || enum.API == api {
+					var value uint32
+					if v, err := strconv.ParseUint(enum.Value, 0, 32); err == nil {
+						value = uint32(v)
+					} else if v, err := strconv.ParseInt(enum.Value, 0, 32); err == nil {
+						value = uint32(v)
+					} else {
+						panic(fmt.Errorf("Failed to parse enum value %v", enum.Value))
+					}
+					fmt.Fprintf(out, indent+"%-64s = 0x%08X,\n", enum.Name, value)
+				}
+			}
+		}
+	}
+	fmt.Fprintf(out, "}\n\n")
+}
+
+func renameType(cmdName string, paramIndex int, paramType, paramName string) string {
+	if paramType == "const void *" {
+		if oldType, ok := oldParamType(cmdName, paramIndex); ok {
+			if strings.Contains(oldType, "Pointer") {
+				return oldType
+			}
+		}
+	}
+	if paramType == "const GLchar *" {
+		if oldType, ok := oldParamType(cmdName, paramIndex); ok {
+			if oldType == "string" {
+				return oldType
+			}
+		}
+	}
+
+	// Find the root GL type, ignoring any prefix or sufix
+	loc := CompileRegexp(`\bGL\w+\b`).FindStringIndex(paramType)
+	if loc == nil {
+		return paramType
+	}
+	glType := paramType[loc[0]:loc[1]]
+
+	// Type substitution table
+	table := []struct {
+		oldType   string
+		cmdName   string // regexp
+		paramName string // regexp
+		newType   string
+	}{
+		{"GLboolean", "glIs.*", "result", "bool"},
+		{"GLint", ".*Uniform.*", "location|result", "UniformLocation"},
+		{"GLuint", ".*", "program(|s)", "ProgramId"},
+		{"GLuint", ".*", "texture(|s)", "TextureId"},
+		{"GLuint", ".*", "uniformBlockIndex", "UniformBlockId"},
+		{"GLuint", ".*(Query|Queries).*", "id(|s)", "QueryId"},
+		{"GLuint", ".*Buffer.*", "buffer(|s)", "BufferId"},
+		{"GLuint", ".*Framebuffer.*", "framebuffer(|s)", "FramebufferId"},
+		{"GLuint", ".*Program.*", "pipeline(|s)", "PipelineId"},
+		{"GLuint", ".*Renderbuffer.*", "renderbuffer(|s)", "RenderbufferId"},
+		{"GLuint", ".*Sampler.*", "sampler(|s)", "SamplerId"},
+		{"GLuint", ".*Shader.*", "shader(|s)", "ShaderId"},
+		{"GLuint", ".*TransformFeedback.*", "id(|s)", "TransformFeedbackId"},
+		{"GLuint", ".*VertexArray.*", "array(|s)", "VertexArrayId"},
+		{"GLuint", "glCreateProgram", "result", "ProgramId"},
+		{"GLuint", "glCreateShader", "result", "ShaderId"},
+		{"GLuint", "glCreateShaderProgramv", "result", "ProgramId"},
+		{"GLuint", "glGetUniformBlockIndex", "result", "UniformBlockId"},
+		{"GLuint", ".*Attrib.*", "result|index", "AttributeLocation"},
+	}
+	for _, row := range table {
+		if row.oldType == glType &&
+			CompileRegexp("^(?:"+row.paramName+")$").MatchString(paramName) &&
+			CompileRegexp("^(?:"+row.cmdName+")$").MatchString(cmdName) {
+			// Replacte the GL type, but keep the original prefix and sufix
+			return paramType[:loc[0]] + row.newType + paramType[loc[1]:]
+		}
+	}
+	return paramType
+}
+
+func printChecks(out io.Writer, cmd *Command, versions []Version) {
+	if versions == nil {
+		return
+	}
+	fmt.Fprintf(out, indent+"minRequiredVersion(%v)\n", strings.Replace(string(versions[0]), ".", ", ", -1))
+	for paramIndex, param := range cmd.Param {
+		paramName := oldParamName(cmd.Name(), paramIndex, param.Name)
+		if param.Type() == "GLenum" {
+			fmt.Fprintf(out, indent+"switch (%s) {\n", paramName)
+			seen := map[string]Version{}
+			for _, version := range versions {
+				doc := DownloadDoc(version, cmd.Name())
+				var newCases []string
+				for _, value := range doc.Params[paramIndex].Accepts {
+					if _, ok := seen[value]; !ok {
+						newCases = append(newCases, value)
+					}
+					seen[value] = version
+				}
+				// Check that the set of accepted values is increasing from verions to version.
+				for k, v := range seen {
+					if v != version {
+						fmt.Fprintf(out, indent+indent+"// TODO: %s seems to be removed in %v\n", k, version)
+					}
+				}
+				if newCases != nil {
+					line := fmt.Sprintf(indent+indent+"case %s: {\n", strings.Join(newCases, ", "))
+					fmt.Fprint(out, wrap(line, 100, indent+indent+indent+indent))
+					if version != versions[0] {
+						fmt.Fprintf(out, indent+indent+indent+"minRequiredVersion(%v)\n", strings.Replace(string(version), ".", ", ", -1))
+					} else {
+						fmt.Fprintf(out, indent+indent+indent+"// version %v\n", version)
+					}
+					fmt.Fprint(out, indent+indent+"}\n")
+				}
+			}
+			fmt.Fprint(out, indent+indent+"default: {\n")
+			fmt.Fprintf(out, indent+indent+indent+"glErrorInvalidEnum(%s)\n", paramName)
+			fmt.Fprint(out, indent+indent+"}\n")
+			fmt.Fprintf(out, indent+"}\n")
+		}
+		if param.Type() == "GLbitfield" {
+			bits := []string{}
+			seen := map[string]Version{} // name -> min_version
+			for _, version := range versions {
+				doc := DownloadDoc(version, cmd.Name())
+				for _, value := range doc.Params[paramIndex].Accepts {
+					if _, ok := seen[value]; !ok {
+						bits = append(bits, value)
+						seen[value] = version
+					}
+				}
+			}
+			if len(bits) > 0 {
+				fmt.Fprintf(out, indent+"supportsBits(%s, %s)\n", paramName, strings.Join(bits, "|"))
+				for _, bit := range bits {
+					version := seen[bit]
+					fmt.Fprintf(out, indent+"if (%s in %s) {\n", bit, paramName)
+					if version != versions[0] {
+						fmt.Fprintf(out, indent+indent+"minRequiredVersion(%v)\n", strings.Replace(string(version), ".", ", ", -1))
+					}
+					fmt.Fprintf(out, indent+"}\n")
+				}
+			}
+		}
+	}
+}
+
+func printCommand(out io.Writer, reg *Registry, cmd *Command, api KhronosAPI) {
+	versions := reg.GetVersions(api, cmd.Name())
+	extensions := reg.GetExtensions(api, cmd.Name())
+	if versions != nil && extensions != nil {
+		panic(fmt.Errorf("%s is both core feature and extension", cmd.Name()))
+	}
+
+	// Print comments
+	for _, version := range versions {
+		url, _, _, _ := GetDocUrl(version, cmd.Name())
+		fmt.Fprintf(out, `@Doc("%s","OpenGL ES %v")`+"\n", url, version)
+	}
+	for _, extension := range extensions {
+		url := GetExtensionUrl(extension)
+		fmt.Fprintf(out, `@Doc("%s","%v")`+"\n", url, extension)
+	}
+
+	// Print function signature
+	sig := &bytes.Buffer{}
+	fmt.Fprintf(sig, "cmd %s %s(", renameType(cmd.Name(), -1, cmd.Proto.Type(), "result"), cmd.Name())
+	leadWidth := sig.Len()
+	maxTypeWidth := 0
+	paramTypes := []string{}
+	for paramIndex, param := range cmd.Param {
+		paramType := renameType(cmd.Name(), paramIndex, param.Type(), param.Name)
+		paramTypes = append(paramTypes, paramType)
+		if typeWidth := len(paramType); typeWidth > maxTypeWidth {
+			maxTypeWidth = typeWidth
+		}
+	}
+	for i, param := range cmd.Param {
+		if i > 0 {
+			fmt.Fprintf(sig, ",\n%s", strings.Repeat(" ", leadWidth))
+		}
+		format := fmt.Sprintf("%%-%vs %%s", maxTypeWidth)
+		fmt.Fprintf(sig, format, paramTypes[i], oldParamName(cmd.Name(), i, param.Name))
+		if oldType, ok := oldParamType(cmd.Name(), i); ok {
+			newType := strings.Replace(paramTypes[i], " *", "*", -1)
+			if newType != oldType {
+				// fmt.Printf("Changed type of %s:%s from %s to %s\n", cmd.Name(), param.Name, oldType, newType)
+			}
+		}
+	}
+	fmt.Fprintf(sig, ")")
+	longSig := string(sig.Bytes())
+	shortSig := CompileRegexp(`\s+`).ReplaceAllString(longSig, " ")
+	if len(shortSig)+2 <= 100 {
+		fmt.Fprintf(out, "%s ", shortSig)
+	} else {
+		fmt.Fprintf(out, "%s ", longSig)
+	}
+
+	// Print function body
+	fmt.Fprintf(out, "{\n")
+	for _, extension := range extensions {
+		fmt.Fprintf(out, indent+"requiresExtension(%s)\n", extension)
+	}
+	if len(extensions) > 1 {
+		fmt.Fprintf(out, indent+"// TODO: Multiple extensions\n")
+	}
+	printChecks(out, cmd, versions)
+	foundOldCode := false
+	if oldApi != nil {
+		// Try to add the old code
+		for _, apiCmd := range oldApi.Commands {
+			if apiCmd.Name.Value == cmd.Name() {
+				childs := apiCmd.Block.CST.Children
+				if len(childs) > 0 {
+					start := apiCmd.Block.CST.Children[0].Token()
+					end := apiCmd.Block.CST.Children[len(childs)-1].Token()
+					fmt.Fprintf(out, "%s", string(start.Runes[start.End:end.Start]))
+					foundOldCode = true
+				}
+			}
+		}
+	}
+	if !foundOldCode {
+		fmt.Fprintf(out, indent+"// TODO\n")
+		if cmd.Proto.Type() != "void" {
+			fmt.Fprint(out, indent+"return ?\n")
+		}
+	}
+	fmt.Fprintf(out, "}\n")
+	fmt.Fprintf(out, "\n")
+}
+
+// Rename parameters so that they match our old api file
+func oldParamName(cmdName string, paramIndex int, paramName string) string {
+	if oldApi != nil {
+		for _, cmd := range oldApi.Commands {
+			if cmd.Name.Value == cmdName {
+				return cmd.Parameters[paramIndex].Name.Value
+			}
+		}
+	}
+	return paramName
+}
+
+func oldParamType(cmdName string, paramIndex int) (string, bool) {
+	if oldApi != nil {
+		for _, cmd := range oldApi.Commands {
+			if cmd.Name.Value == cmdName {
+				token := cmd.Parameters[paramIndex].Type.Node().Token()
+				return string(token.Runes[token.Start:token.End]), true
+			}
+		}
+	}
+	return "", false
+}
diff --git a/tools/generate_gles_api/generate_csv.go b/tools/generate_gles_api/generate_csv.go
new file mode 100644
index 0000000..263a558
--- /dev/null
+++ b/tools/generate_gles_api/generate_csv.go
@@ -0,0 +1,64 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"encoding/csv"
+	"fmt"
+	"os"
+	"strings"
+)
+
+// Print most of our data to CSV file
+func GenerateCsv(reg *Registry, api KhronosAPI) {
+	out, err := os.Create(*csvDir + string(os.PathSeparator) + "gles.csv")
+	if err != nil {
+		panic(err)
+	}
+	writer := csv.NewWriter(out)
+	writer.Write([]string{"command", "version", "paramIndex", "paramType", "paramName", "accepts"})
+	for _, cmd := range reg.Command {
+		cmdName := cmd.Proto.Name
+		for _, version := range reg.GetVersions(api, cmdName) {
+			doc := DownloadDoc(version, cmdName)
+			if len(doc.Params)-1 /* result */ != len(cmd.Param) {
+				panic(fmt.Errorf("%s: param count mismatch: %v vs %v", cmdName, len(doc.Params), len(cmd.Param)))
+			}
+			printCsvCommand(writer, &cmd, string(version), doc)
+		}
+		for _, extension := range reg.GetExtensions(api, cmdName) {
+			printCsvCommand(writer, &cmd, extension, &CommandDoc{})
+		}
+	}
+	writer.Flush()
+	if err := out.Close(); err != nil {
+		panic(err)
+	}
+}
+
+func printCsvCommand(writer *csv.Writer, cmd *Command, definedBy string, doc *CommandDoc) {
+	for i := -1; i < len(cmd.Param); i++ {
+		param := cmd.ParamsAndResult()[i]
+		accepts := ""
+		if doc.Params != nil {
+			paramDoc := doc.Params[i]
+			if paramDoc.Name != param.Name {
+				panic(fmt.Errorf("%s: param name mismatch: %s vs %s\n", cmd.Proto.Name, param.Name, paramDoc.Name))
+			}
+			accepts = strings.Join(paramDoc.Accepts, "|")
+		}
+		writer.Write([]string{cmd.Proto.Name, definedBy, fmt.Sprintf("%v", i), param.Type(), param.Name, accepts})
+	}
+}
diff --git a/tools/generate_gles_api/main.go b/tools/generate_gles_api/main.go
new file mode 100644
index 0000000..4771814
--- /dev/null
+++ b/tools/generate_gles_api/main.go
@@ -0,0 +1,60 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"android.googlesource.com/platform/tools/gpu/api/ast"
+	"android.googlesource.com/platform/tools/gpu/api/parser"
+	"flag"
+	"fmt"
+	"io/ioutil"
+)
+
+var (
+	apiDir     = flag.String("api", "", "Directory for the api output files")
+	csvDir     = flag.String("csv", "", "Directory for the csv output file")
+	cacheDir   = flag.String("cache", "", "Directory for caching downloaded files")
+	oldApiPath = flag.String("oldapi", "", "Filename of the old api file to use for reference")
+	oldApi     *ast.API
+)
+
+func main() {
+	flag.Parse()
+	if *apiDir == "" && *csvDir == "" {
+		flag.PrintDefaults()
+		return
+	}
+	if *oldApiPath != "" {
+		f, err := ioutil.ReadFile(*oldApiPath)
+		if err != nil {
+			panic(err)
+		}
+		api, errs := parser.Parse(string(f))
+		if len(errs) > 0 {
+			for i, e := range errs {
+				fmt.Printf("%d: %v", i, e)
+			}
+			return
+		}
+		oldApi = api
+	}
+	reg := DownloadReg()
+	if *apiDir != "" {
+		GenerateApi(reg, GLES2API)
+	}
+	if *csvDir != "" {
+		GenerateCsv(reg, GLES2API)
+	}
+}
diff --git a/tools/generate_gles_api/util.go b/tools/generate_gles_api/util.go
new file mode 100644
index 0000000..6fb6e20
--- /dev/null
+++ b/tools/generate_gles_api/util.go
@@ -0,0 +1,30 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package main
+
+import (
+	"regexp"
+)
+
+var regexpCache = make(map[string]*regexp.Regexp)
+
+func CompileRegexp(exp string) *regexp.Regexp {
+	re, ok := regexpCache[exp]
+	if !ok {
+		re = regexp.MustCompile(exp)
+		regexpCache[exp] = re
+	}
+	return re
+}
