Merge "Add sections to java client generation" into studio-1.4-dev
diff --git a/_experimental/client/application_context.go b/_experimental/client/application_context.go
index 0b3d75c..780299c 100644
--- a/_experimental/client/application_context.go
+++ b/_experimental/client/application_context.go
@@ -83,7 +83,7 @@
 	}
 
 	client := service.NewClient(multiplexer.New(rpcSocket, rpcSocket, rpcSocket, mtu, logger, nil), nil)
-	appCtx.rpc.init(log.Enter(appCtx.logger, "rpc"), client, appCtx.constants)
+	appCtx.rpc.init(logger, client, appCtx.constants)
 	appCtx.events.Init()
 	return appCtx, nil
 }
diff --git a/_experimental/client/colorbuffer_panel.go b/_experimental/client/colorbuffer_panel.go
index c17765e..725bafa 100644
--- a/_experimental/client/colorbuffer_panel.go
+++ b/_experimental/client/colorbuffer_panel.go
@@ -158,7 +158,11 @@
 	settings := service.RenderSettings{
 		MaxWidth:  0xffff,
 		MaxHeight: 0xffff,
-		Wireframe: t.wireframe,
+	}
+	if t.wireframe {
+		settings.WireframeMode = service.AllWireframe
+	} else {
+		settings.WireframeMode = service.WireframeOverlay
 	}
 	if w, h, d, err := t.context.rpc.RequestColorBuffer(t.device, t.after, settings); err == nil {
 		c.Check()
diff --git a/_experimental/client/rpc.go b/_experimental/client/rpc.go
index 6cee6d2..2956c1e 100644
--- a/_experimental/client/rpc.go
+++ b/_experimental/client/rpc.go
@@ -91,8 +91,6 @@
 			captures[i].path = ids[i]
 			if c, err := service.GetCapture(captures[i].path, r.client, l); err == nil {
 				captures[i].info = c
-			} else {
-				log.E(l, "Failed to resolve capture %v: %v", ids[i], err)
 			}
 		}()
 	}
@@ -117,8 +115,6 @@
 			devices[i].path = ids[i]
 			if d, err := service.GetDevice(devices[i].path, r.client, l); err == nil {
 				devices[i].info = d
-			} else {
-				log.E(l, "Failed to resolve device %v: %v", devices[i].path, err)
 			}
 		}()
 	}
@@ -129,19 +125,13 @@
 func (r *rpc) Import(name string, data []byte) (*path.Capture, error) {
 	l := r.beginRPC("Import")
 
-	id, err := r.client.Import(name, data, l)
-	if err != nil {
-		log.E(l, "Error importing capture: %v", err)
-	}
-
-	return id, err
+	return r.client.Import(name, data, l)
 }
 
 func (r *rpc) LoadCapture(p *path.Capture) (service.Capture, error) {
 	l := r.beginRPC("LoadCapture")
 
 	if capture, err := service.GetCapture(p, r.client, l); err == nil {
-		log.E(l, "Error getting capture: %v", err)
 		return service.Capture{}, err
 	} else {
 		return *capture, nil
@@ -153,7 +143,6 @@
 
 	stream, err := r.client.Get(p, l)
 	if err != nil {
-		log.E(l, "Error getting atom stream: %v", err)
 		return nil, err
 	}
 
@@ -165,7 +154,6 @@
 
 	root, err := r.client.Get(p, l)
 	if err != nil {
-		log.E(l, "Error getting hierarchy: %v", err)
 		return atom.Group{}, err
 	}
 
@@ -193,7 +181,6 @@
 
 	report, err := r.client.Get(capture.Report(), l)
 	if err != nil {
-		log.E(l, "Error loading report: %v", err)
 		return service.Report{}, nil
 	}
 
@@ -205,7 +192,6 @@
 
 	object, err := r.client.Get(state, l)
 	if err != nil {
-		log.E(l, "Error loading state: %v", err)
 		return nil, err
 	}
 
@@ -217,7 +203,6 @@
 
 	object, err := r.client.Get(rng, l)
 	if err != nil {
-		log.E(l, "Error loading memory: %v", err)
 		return service.MemoryInfo{}, err
 	}
 
@@ -286,7 +271,6 @@
 	l := r.beginRPC("Follow")
 	p, err := r.client.Follow(p, l)
 	if err != nil {
-		log.E(l, "%v", err)
 		return nil, err
 	}
 	return p, nil
diff --git a/_experimental/client/state_adapter.go b/_experimental/client/state_adapter.go
index 8132840..0582ef3 100644
--- a/_experimental/client/state_adapter.go
+++ b/_experimental/client/state_adapter.go
@@ -86,7 +86,7 @@
 	n.children = nil
 	if v, ok := n.value.(*schema.Object); ok {
 		for i := range v.Fields {
-			name := v.Type.Fields[i].Declared
+			name := v.Type.Fields[i].Name()
 			n.add(name, v.Fields[i], n.path.Field(name))
 		}
 	} else {
diff --git a/builder/builder_binary.go b/builder/builder_binary.go
index 034108b..bb6af01 100644
--- a/builder/builder_binary.go
+++ b/builder/builder_binary.go
@@ -49,7 +49,7 @@
 	binaryIDGetState                        = binary.ID{0x40, 0xfb, 0x42, 0x18, 0xf5, 0x5c, 0xff, 0x11, 0x85, 0x82, 0xaf, 0xf4, 0x6d, 0xc5, 0xde, 0x19, 0x0b, 0x41, 0xba, 0x38}
 	binaryIDGetTimingInfo                   = binary.ID{0x62, 0xaf, 0x98, 0x90, 0x77, 0x84, 0x30, 0xad, 0x1b, 0x37, 0x4d, 0x76, 0xdd, 0xc8, 0xd4, 0xda, 0x41, 0xe7, 0x99, 0xca}
 	binaryIDPrerenderFramebuffers           = binary.ID{0xe5, 0x39, 0x5a, 0x38, 0x7e, 0xd7, 0xfd, 0x1d, 0xfd, 0xc8, 0x41, 0x0b, 0x7a, 0x55, 0x93, 0x3d, 0xdb, 0x51, 0x28, 0xce}
-	binaryIDRenderFramebufferColor          = binary.ID{0xd0, 0x7e, 0x58, 0xd4, 0xf5, 0xd8, 0x9f, 0x1d, 0xe4, 0xb5, 0xfe, 0x9d, 0xe6, 0x9c, 0xe4, 0x5c, 0xef, 0x0b, 0xfc, 0x71}
+	binaryIDRenderFramebufferColor          = binary.ID{0xfe, 0xe2, 0x14, 0xdf, 0xc8, 0x0d, 0xed, 0x58, 0xe4, 0x56, 0xb8, 0xa9, 0x68, 0xd9, 0xc1, 0xa3, 0x50, 0xae, 0xa6, 0x78}
 	binaryIDRenderFramebufferDepth          = binary.ID{0x92, 0xb5, 0x88, 0x2a, 0x1a, 0x6f, 0xa1, 0x3c, 0xff, 0x7a, 0x90, 0xb3, 0x21, 0xa9, 0xe0, 0x67, 0xf4, 0x2c, 0x9e, 0x82}
 	binaryIDSet                             = binary.ID{0x3e, 0x3e, 0xf7, 0x61, 0xd5, 0x5c, 0x3a, 0x76, 0xc6, 0x39, 0x17, 0x5e, 0x37, 0x26, 0x78, 0xaf, 0xdf, 0x83, 0x9f, 0x4e}
 	binaryIDatomFramebufferDimensions       = binary.ID{0xb6, 0xbb, 0x6b, 0x01, 0xb6, 0x82, 0xdb, 0x1f, 0xca, 0x6c, 0x74, 0x22, 0xc4, 0x74, 0xca, 0x61, 0xdd, 0x28, 0xe6, 0xf3}
@@ -853,7 +853,7 @@
 	if err := e.Uint32(o.Height); err != nil {
 		return err
 	}
-	if err := e.Bool(o.Wireframe); err != nil {
+	if err := e.Int32(int32(o.WireframeMode)); err != nil {
 		return err
 	}
 	return nil
@@ -883,10 +883,10 @@
 	} else {
 		o.Height = uint32(obj)
 	}
-	if obj, err := d.Bool(); err != nil {
+	if obj, err := d.Int32(); err != nil {
 		return err
 	} else {
-		o.Wireframe = bool(obj)
+		o.WireframeMode = service.WireframeMode(obj)
 	}
 	return nil
 }
@@ -903,7 +903,7 @@
 	if _, err := d.Uint32(); err != nil {
 		return err
 	}
-	if _, err := d.Bool(); err != nil {
+	if _, err := d.Int32(); err != nil {
 		return err
 	}
 	return nil
@@ -934,7 +934,7 @@
 		{Declared: "After", Type: &schema.Pointer{Type: &schema.Struct{Name: "path.Atom", ID: (*path.Atom)(nil).Class().ID()}}},
 		{Declared: "Width", Type: &schema.Primitive{Name: "uint32", Method: schema.Uint32}},
 		{Declared: "Height", Type: &schema.Primitive{Name: "uint32", Method: schema.Uint32}},
-		{Declared: "Wireframe", Type: &schema.Primitive{Name: "bool", Method: schema.Bool}},
+		{Declared: "WireframeMode", Type: &schema.Primitive{Name: "service.WireframeMode", Method: schema.Int32}},
 	},
 }
 
diff --git a/builder/framebuffer_color.go b/builder/framebuffer_color.go
index d3635bc..7a64b32 100644
--- a/builder/framebuffer_color.go
+++ b/builder/framebuffer_color.go
@@ -37,11 +37,11 @@
 	imgWidth, imgHeight := uniformScale(fbWidth, fbHeight, r.Settings.MaxWidth, r.Settings.MaxHeight)
 
 	data, err := database.Store(&RenderFramebufferColor{
-		Device:    r.Device,
-		After:     r.After,
-		Width:     imgWidth,
-		Height:    imgHeight,
-		Wireframe: r.Settings.Wireframe,
+		Device:        r.Device,
+		After:         r.After,
+		Width:         imgWidth,
+		Height:        imgHeight,
+		WireframeMode: r.Settings.WireframeMode,
 	}, d, l)
 
 	if err != nil {
@@ -82,7 +82,18 @@
 		return nil, fmt.Errorf("The graphics API %s does not support reading color buffers", api.Name())
 	}
 
-	img := <-query.QueryColorBuffer(ctx, mgr, atom.ID(r.After.Index), r.Width, r.Height, r.Wireframe)
+	wireframeMode := replay.NoWireframe
+	switch r.WireframeMode {
+	case service.NoWireframe:
+	case service.AllWireframe:
+		wireframeMode = replay.AllWireframe
+	case service.WireframeOverlay:
+		wireframeMode = replay.WireframeOverlay
+	default:
+		return nil, fmt.Errorf("Unknown wireframe mode %v", r.WireframeMode)
+	}
+
+	img := <-query.QueryColorBuffer(ctx, mgr, atom.ID(r.After.Index), r.Width, r.Height, wireframeMode)
 	if img.Error != nil {
 		err := fmt.Errorf("Failed to retrieve framebuffer: %v", img.Error)
 		log.Errorf(l, "%v", err)
diff --git a/builder/get_set_test.go b/builder/get_set_test.go
index 42c23ad..c27a946 100644
--- a/builder/get_set_test.go
+++ b/builder/get_set_test.go
@@ -103,6 +103,7 @@
 		{p.Atoms().Index(1).Field("Str").ArrayIndex(1), byte('y'), nil},
 		{p.Atoms().Index(1).Field("Str").Slice(1, 3), "yz", nil},
 		{p.Atoms().Index(1).Field("Map").MapIndex("bird"), "tweet", nil},
+		{p.Atoms().Index(1).Field("Map").MapIndex([]rune("bird")), "tweet", nil},
 
 		// Test invalid paths
 		{p.Atoms().Index(5), nil, fmt.Errorf(
@@ -125,8 +126,8 @@
 			"Index at Capture(%v).Atoms[1].Str[4] is out of bounds [0-2]", p.ID)},
 		{p.Atoms().Index(1).Field("Ptr").ArrayIndex(4), nil, fmt.Errorf(
 			"Type *builder.testStruct at Capture(%v).Atoms[1].Ptr is not an array, slice or string", p.ID)},
-		{p.Atoms().Index(1).Field("Map").MapIndex(10), nil, fmt.Errorf(
-			"Map at Capture(%v).Atoms[1].Map has key of type string, got type int", p.ID)},
+		{p.Atoms().Index(1).Field("Map").MapIndex(10.0), nil, fmt.Errorf(
+			"Map at Capture(%v).Atoms[1].Map has key of type string, got type float64", p.ID)},
 		{p.Atoms().Index(1).Field("Map").MapIndex("rabbit"), nil, fmt.Errorf(
 			"Map at Capture(%v).Atoms[1].Map does not contain key rabbit", p.ID)},
 		{p.Atoms().Index(1).Field("Ptr").MapIndex("foo"), nil, fmt.Errorf(
@@ -155,6 +156,9 @@
 		{path: p.Atoms().Index(0).Field("Any"), val: 0.123},
 		{path: p.Atoms().Index(0).Field("Ptr"), val: &testStruct{Str: "ddd"}},
 		{path: p.Atoms().Index(0).Field("Ptr").Field("Str"), val: "purr"},
+		{path: p.Atoms().Index(1).Field("Sli").ArrayIndex(1), val: false},
+		{path: p.Atoms().Index(1).Field("Map").MapIndex("bird"), val: "churp"},
+		{path: p.Atoms().Index(1).Field("Map").MapIndex([]rune("bird")), val: "churp"},
 
 		// Test invalid paths
 		{p.Atoms().Index(5), nil, fmt.Errorf(
@@ -175,12 +179,18 @@
 			"Index at Capture(%v).Atoms[1].Str[4] is out of bounds [0-2]", p.ID)},
 		{p.Atoms().Index(1).Field("Ptr").ArrayIndex(4), nil, fmt.Errorf(
 			"Type *builder.testStruct at Capture(%v).Atoms[1].Ptr is not an array, slice or string", p.ID)},
-		{p.Atoms().Index(1).Field("Map").MapIndex(10), nil, fmt.Errorf(
-			"Map at Capture(%v).Atoms[1].Map has key of type string, got type int", p.ID)},
+		{p.Atoms().Index(1).Field("Map").MapIndex(10.0), nil, fmt.Errorf(
+			"Map at Capture(%v).Atoms[1].Map has key of type string, got type float64", p.ID)},
 		{p.Atoms().Index(1).Field("Map").MapIndex("rabbit"), nil, fmt.Errorf(
 			"Map at Capture(%v).Atoms[1].Map does not contain key rabbit", p.ID)},
 		{p.Atoms().Index(1).Field("Ptr").MapIndex("foo"), nil, fmt.Errorf(
 			"Type *builder.testStruct at Capture(%v).Atoms[1].Ptr is not a map", p.ID)},
+
+		// Test invalid sets
+		{p.Atoms().Index(1).Field("Sli").ArrayIndex(2), "blah", fmt.Errorf(
+			"Slice or array at Capture(%v).Atoms[1].Sli has element of type bool, got type string", p.ID)},
+		{p.Atoms().Index(1).Field("Map").MapIndex("bird"), 10.0, fmt.Errorf(
+			"Map at Capture(%v).Atoms[1].Map has value of type string, got type float64", p.ID)},
 	} {
 		res, err := database.Build(&Set{Path: test.path, Value: test.val}, d, l)
 		if expected := test.err; !reflect.DeepEqual(err, expected) {
diff --git a/builder/prerender_framebuffers.go b/builder/prerender_framebuffers.go
index ef890c4..b8195f5 100644
--- a/builder/prerender_framebuffers.go
+++ b/builder/prerender_framebuffers.go
@@ -28,7 +28,6 @@
 	renderSettings := service.RenderSettings{
 		MaxWidth:  r.Width,
 		MaxHeight: r.Height,
-		Wireframe: false,
 	}
 
 	p := r.Capture.Atoms()
diff --git a/builder/requests.go b/builder/requests.go
index ee88a73..05e601a 100644
--- a/builder/requests.go
+++ b/builder/requests.go
@@ -80,11 +80,11 @@
 // RenderFramebufferColor records the parameters of an internal RenderFramebufferColor request.
 type RenderFramebufferColor struct {
 	binary.Generate
-	Device    *path.Device
-	After     *path.Atom
-	Width     uint32
-	Height    uint32
-	Wireframe bool
+	Device        *path.Device
+	After         *path.Atom
+	Width         uint32
+	Height        uint32
+	WireframeMode service.WireframeMode
 }
 
 // ConvertImage is a request to decode a compressed texture.
diff --git a/builder/resolve.go b/builder/resolve.go
index 16613a3..aaea591 100644
--- a/builder/resolve.go
+++ b/builder/resolve.go
@@ -215,12 +215,12 @@
 			m := reflect.ValueOf(v[i-1])
 			switch m.Kind() {
 			case reflect.Map:
-				key := reflect.ValueOf(p.Key)
-				if key.Type() != m.Type().Key() {
+				key, ok := convert(reflect.ValueOf(p.Key), m.Type().Key())
+				if !ok {
 					return nil, fmt.Errorf("Map at %s has key of type %v, got type %v",
 						paths[i-1].Path(), m.Type().Key(), key.Type())
 				}
-				val := m.MapIndex(reflect.ValueOf(p.Key))
+				val := m.MapIndex(key)
 				if !val.IsValid() {
 					return nil, fmt.Errorf("Map at %s does not contain key %v",
 						paths[i-1].Path(), p.Key)
@@ -239,3 +239,14 @@
 
 	return v, nil
 }
+
+func convert(val reflect.Value, ty reflect.Type) (reflect.Value, bool) {
+	if valTy := val.Type(); valTy != ty {
+		if valTy.ConvertibleTo(ty) {
+			val = val.Convert(ty)
+		} else {
+			return val, false
+		}
+	}
+	return val, true
+}
diff --git a/builder/set.go b/builder/set.go
index 3bbf6c7..092b5f1 100644
--- a/builder/set.go
+++ b/builder/set.go
@@ -29,8 +29,8 @@
 // with the object, value or memory at p replaced with v. The path returned is
 // identical to p, but with the base changed to refer to the new capture.
 func (request *Set) BuildLazy(c interface{}, d database.Database, l log.Logger) (interface{}, error) {
-	p := path.Flatten(request.Path)
-	v, err := resolveChain(p, d, l)
+	paths := path.Flatten(request.Path)
+	v, err := resolveChain(paths, d, l)
 	if err != nil {
 		return nil, err
 	}
@@ -40,7 +40,7 @@
 
 	// Propagate changes back down to the root
 	for i := len(v) - 1; i >= 0; i-- {
-		switch p := p[i].(type) {
+		switch p := paths[i].(type) {
 		case *path.Capture:
 			id, err := database.Store(v[i], d, l)
 			if err != nil {
@@ -101,6 +101,11 @@
 			if err != nil {
 				return nil, err
 			}
+			val, ok := convert(reflect.ValueOf(v[i]), a.Type().Elem())
+			if !ok {
+				return nil, fmt.Errorf("Slice or array at %s has element of type %v, got type %v",
+					paths[i-1].Path(), a.Type().Elem(), val.Type())
+			}
 			if err := assign(a.Index(int(p.Index)), reflect.ValueOf(v[i])); err != nil {
 				return nil, err
 			}
@@ -111,9 +116,17 @@
 			if err != nil {
 				return nil, err
 			}
-			if err := assign(m.MapIndex(reflect.ValueOf(p.Key)), reflect.ValueOf(v[i])); err != nil {
-				return nil, err
+			key, ok := convert(reflect.ValueOf(p.Key), m.Type().Key())
+			if !ok {
+				return nil, fmt.Errorf("Map at %s has key of type %v, got type %v",
+					paths[i-1].Path(), m.Type().Key(), key.Type())
 			}
+			val, ok := convert(reflect.ValueOf(v[i]), m.Type().Elem())
+			if !ok {
+				return nil, fmt.Errorf("Map at %s has value of type %v, got type %v",
+					paths[i-1].Path(), m.Type().Elem(), val.Type())
+			}
+			m.SetMapIndex(key, val)
 			v[i-1] = m.Interface()
 
 		default:
@@ -125,7 +138,15 @@
 }
 
 func clone(v reflect.Value) (reflect.Value, error) {
-	o := reflect.New(v.Type()).Elem()
+	var o reflect.Value
+	switch v.Kind() {
+	case reflect.Slice:
+		o = reflect.MakeSlice(v.Type(), v.Len(), v.Len())
+	case reflect.Map:
+		o = reflect.MakeMap(v.Type())
+	default:
+		o = reflect.New(v.Type()).Elem()
+	}
 	return o, shallowCopy(o, v)
 }
 
@@ -143,7 +164,8 @@
 
 	case reflect.Map:
 		for _, k := range src.MapKeys() {
-			dst.SetMapIndex(k, src.MapIndex(k))
+			val := src.MapIndex(k)
+			dst.SetMapIndex(k, val)
 		}
 
 	default:
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")