Regenerate signatures.xml from OpenGL-Registry
authorFraser Waters <frassle@gmail.com>
Tue, 26 Dec 2017 18:37:26 +0000 (18:37 +0000)
committerFraser Waters <frassle@gmail.com>
Tue, 26 Dec 2017 18:37:26 +0000 (18:37 +0000)
Generated from commit 681c365c012ac9d3bcadd67de10af4730eb460e0

https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/681c365c012ac9d3bcadd67de10af4730eb460e0/xml/gl.xml

src/Generator.Bind/Specifications/GL2/signatures.xml

index 10f55de..40eb575 100644 (file)
@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <signatures version="2">
+  <add name="disabled">
+    <enum name="NVX_cross_process_interop">
+      <token name="EXTERNAL_STORAGE_BIT_NVX" value="0x2000" />
+    </enum>
+  </add>
   <add name="gl">
     <enum name="3DFX_multisample">
       <token name="MULTISAMPLE_3DFX" value="0x86B2" />
     <enum name="AMD_shader_atomic_counter_ops" />
     <enum name="AMD_shader_ballot" />
     <enum name="AMD_shader_explicit_vertex_parameter" />
+    <enum name="AMD_shader_image_load_store_lod" />
     <enum name="AMD_shader_stencil_export" />
     <enum name="AMD_shader_trinary_minmax" />
     <enum name="AMD_sparse_texture">
       <token name="HALF_FLOAT" value="0x140B" />
     </enum>
     <enum name="ARB_imaging">
+      <token name="BLEND_COLOR" value="0x8005" />
+      <token name="BLEND_EQUATION" value="0x8009" />
       <token name="CONSTANT_COLOR" value="0x8001" />
       <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
       <token name="CONSTANT_ALPHA" value="0x8003" />
       <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
-      <token name="BLEND_COLOR" value="0x8005" />
       <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
       <token name="MIN" value="0x8007" />
       <token name="MAX" value="0x8008" />
-      <token name="BLEND_EQUATION" value="0x8009" />
-      <token name="FUNC_SUBTRACT" value="0x800A" />
-      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="SEPARABLE_2D" value="0x8012" />
       <token name="VERTEX_STREAM7_ATI" value="0x8773" />
       <token name="VERTEX_SOURCE_ATI" value="0x8774" />
     </enum>
+    <enum name="AtomicCounterBufferPName">
+      <token name="ATOMIC_COUNTER_BUFFER_BINDING" value="0x92C1" />
+      <token name="ATOMIC_COUNTER_BUFFER_DATA_SIZE" value="0x92C4" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS" value="0x92C5" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES" value="0x92C6" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER" value="0x92C7" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x92C8" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x92C9" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER" value="0x92CA" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER" value="0x92CB" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER" value="0x90ED" />
+    </enum>
     <enum name="AttribMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" deprecated="3.2" />
       <token name="ALL_ATTRIB_BITS" value="0xFFFFFFFF" deprecated="3.2" />
       <token name="TRANSFORM_BIT" value="0x00001000" deprecated="3.2" />
       <token name="VIEWPORT_BIT" value="0x00000800" deprecated="3.2" />
     </enum>
+    <enum name="AttributeType">
+      <token name="FLOAT_VEC2" value="0x8B50" />
+      <token name="FLOAT_VEC2_ARB" value="0x8B50" />
+      <token name="FLOAT_VEC3" value="0x8B51" />
+      <token name="FLOAT_VEC3_ARB" value="0x8B51" />
+      <token name="FLOAT_VEC4" value="0x8B52" />
+      <token name="FLOAT_VEC4_ARB" value="0x8B52" />
+      <token name="INT_VEC2" value="0x8B53" />
+      <token name="INT_VEC2_ARB" value="0x8B53" />
+      <token name="INT_VEC3" value="0x8B54" />
+      <token name="INT_VEC3_ARB" value="0x8B54" />
+      <token name="INT_VEC4" value="0x8B55" />
+      <token name="INT_VEC4_ARB" value="0x8B55" />
+      <token name="BOOL" value="0x8B56" />
+      <token name="BOOL_ARB" value="0x8B56" />
+      <token name="BOOL_VEC2" value="0x8B57" />
+      <token name="BOOL_VEC2_ARB" value="0x8B57" />
+      <token name="BOOL_VEC3" value="0x8B58" />
+      <token name="BOOL_VEC3_ARB" value="0x8B58" />
+      <token name="BOOL_VEC4" value="0x8B59" />
+      <token name="BOOL_VEC4_ARB" value="0x8B59" />
+      <token name="FLOAT_MAT2" value="0x8B5A" />
+      <token name="FLOAT_MAT2_ARB" value="0x8B5A" />
+      <token name="FLOAT_MAT3" value="0x8B5B" />
+      <token name="FLOAT_MAT3_ARB" value="0x8B5B" />
+      <token name="FLOAT_MAT4" value="0x8B5C" />
+      <token name="FLOAT_MAT4_ARB" value="0x8B5C" />
+      <token name="SAMPLER_1D" value="0x8B5D" />
+      <token name="SAMPLER_1D_ARB" value="0x8B5D" />
+      <token name="SAMPLER_2D" value="0x8B5E" />
+      <token name="SAMPLER_2D_ARB" value="0x8B5E" />
+      <token name="SAMPLER_3D" value="0x8B5F" />
+      <token name="SAMPLER_3D_ARB" value="0x8B5F" />
+      <token name="SAMPLER_3D_OES" value="0x8B5F" />
+      <token name="SAMPLER_CUBE" value="0x8B60" />
+      <token name="SAMPLER_CUBE_ARB" value="0x8B60" />
+      <token name="SAMPLER_1D_SHADOW" value="0x8B61" />
+      <token name="SAMPLER_1D_SHADOW_ARB" value="0x8B61" />
+      <token name="SAMPLER_2D_SHADOW" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_ARB" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_EXT" value="0x8B62" />
+      <token name="SAMPLER_2D_RECT" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_ARB" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_SHADOW" value="0x8B64" />
+      <token name="SAMPLER_2D_RECT_SHADOW_ARB" value="0x8B64" />
+      <token name="FLOAT_MAT2x3" value="0x8B65" />
+      <token name="FLOAT_MAT2x3_NV" value="0x8B65" />
+      <token name="FLOAT_MAT2x4" value="0x8B66" />
+      <token name="FLOAT_MAT2x4_NV" value="0x8B66" />
+      <token name="FLOAT_MAT3x2" value="0x8B67" />
+      <token name="FLOAT_MAT3x2_NV" value="0x8B67" />
+      <token name="FLOAT_MAT3x4" value="0x8B68" />
+      <token name="FLOAT_MAT3x4_NV" value="0x8B68" />
+      <token name="FLOAT_MAT4x2" value="0x8B69" />
+      <token name="FLOAT_MAT4x2_NV" value="0x8B69" />
+      <token name="FLOAT_MAT4x3" value="0x8B6A" />
+      <token name="FLOAT_MAT4x3_NV" value="0x8B6A" />
+    </enum>
+    <enum name="BindTransformFeedbackTarget">
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+    </enum>
     <enum name="BlendEquationModeEXT">
       <token name="ALPHA_MAX_SGIX" value="0x8321" />
       <token name="ALPHA_MIN_SGIX" value="0x8320" />
       <token name="LOGIC_OP" value="0x0BF1" deprecated="3.2" />
       <token name="MAX_EXT" value="0x8008" />
       <token name="MIN_EXT" value="0x8007" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
     </enum>
-    <enum name="BlendingFactorDest">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+    <enum name="BlendingFactor">
+      <token name="ZERO" value="0" />
       <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
-      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
-      <token name="SRC_ALPHA" value="0x0302" />
       <token name="SRC_COLOR" value="0x0300" />
-      <token name="ZERO" value="0" />
-    </enum>
-    <enum name="BlendingFactorSrc">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
       <token name="DST_COLOR" value="0x0306" />
-      <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
       <token name="ONE_MINUS_DST_COLOR" value="0x0307" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
       <token name="SRC_ALPHA" value="0x0302" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
+      <token name="CONSTANT_COLOR" value="0x8001" />
+      <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
+      <token name="CONSTANT_ALPHA" value="0x8003" />
+      <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
       <token name="SRC_ALPHA_SATURATE" value="0x0308" />
-      <token name="ZERO" value="0" />
+      <token name="SRC1_COLOR" value="0x88F9" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
+      <token name="SRC1_ALPHA" value="0x8589" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+    </enum>
+    <enum name="BlitFramebufferFilter">
+      <token name="NEAREST" value="0x2600" />
+      <token name="LINEAR" value="0x2601" />
     </enum>
     <enum name="Boolean">
       <token name="FALSE" value="0" />
       <token name="TRUE" value="1" />
     </enum>
+    <enum name="Buffer">
+      <token name="COLOR" value="0x1800" />
+      <token name="DEPTH" value="0x1801" />
+      <token name="STENCIL" value="0x1802" />
+    </enum>
     <enum name="BufferAccessARB">
       <token name="READ_ONLY" value="0x88B8" />
       <token name="WRITE_ONLY" value="0x88B9" />
       <token name="READ_WRITE" value="0x88BA" />
     </enum>
+    <enum name="BufferAccessMask">
+      <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT_EXT" value="0x0008" />
+      <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
+      <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
+      <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
+      <token name="MAP_READ_BIT" value="0x0001" />
+      <token name="MAP_READ_BIT_EXT" value="0x0001" />
+      <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
+      <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
+      <token name="MAP_WRITE_BIT" value="0x0002" />
+      <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+    </enum>
+    <enum name="BufferBitQCOM">
+      <token name="MULTISAMPLE_BUFFER_BIT7_QCOM" value="0x80000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT6_QCOM" value="0x40000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT5_QCOM" value="0x20000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT4_QCOM" value="0x10000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT3_QCOM" value="0x08000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT2_QCOM" value="0x04000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT1_QCOM" value="0x02000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT0_QCOM" value="0x01000000" />
+      <token name="STENCIL_BUFFER_BIT7_QCOM" value="0x00800000" />
+      <token name="STENCIL_BUFFER_BIT6_QCOM" value="0x00400000" />
+      <token name="STENCIL_BUFFER_BIT5_QCOM" value="0x00200000" />
+      <token name="STENCIL_BUFFER_BIT4_QCOM" value="0x00100000" />
+      <token name="STENCIL_BUFFER_BIT3_QCOM" value="0x00080000" />
+      <token name="STENCIL_BUFFER_BIT2_QCOM" value="0x00040000" />
+      <token name="STENCIL_BUFFER_BIT1_QCOM" value="0x00020000" />
+      <token name="STENCIL_BUFFER_BIT0_QCOM" value="0x00010000" />
+      <token name="DEPTH_BUFFER_BIT7_QCOM" value="0x00008000" />
+      <token name="DEPTH_BUFFER_BIT6_QCOM" value="0x00004000" />
+      <token name="DEPTH_BUFFER_BIT5_QCOM" value="0x00002000" />
+      <token name="DEPTH_BUFFER_BIT4_QCOM" value="0x00001000" />
+      <token name="DEPTH_BUFFER_BIT3_QCOM" value="0x00000800" />
+      <token name="DEPTH_BUFFER_BIT2_QCOM" value="0x00000400" />
+      <token name="DEPTH_BUFFER_BIT1_QCOM" value="0x00000200" />
+      <token name="DEPTH_BUFFER_BIT0_QCOM" value="0x00000100" />
+      <token name="COLOR_BUFFER_BIT7_QCOM" value="0x00000080" />
+      <token name="COLOR_BUFFER_BIT6_QCOM" value="0x00000040" />
+      <token name="COLOR_BUFFER_BIT5_QCOM" value="0x00000020" />
+      <token name="COLOR_BUFFER_BIT4_QCOM" value="0x00000010" />
+      <token name="COLOR_BUFFER_BIT3_QCOM" value="0x00000008" />
+      <token name="COLOR_BUFFER_BIT2_QCOM" value="0x00000004" />
+      <token name="COLOR_BUFFER_BIT1_QCOM" value="0x00000002" />
+      <token name="COLOR_BUFFER_BIT0_QCOM" value="0x00000001" />
+    </enum>
+    <enum name="BufferStorageTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="BufferTargetARB">
       <token name="ARRAY_BUFFER" value="0x8892" />
       <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
       <token name="DYNAMIC_READ" value="0x88E9" />
       <token name="DYNAMIC_COPY" value="0x88EA" />
     </enum>
+    <enum name="CheckFramebufferStatusTarget">
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="ClearBufferMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" />
       <token name="COLOR_BUFFER_BIT" value="0x00004000" />
       <token name="CLIENT_PIXEL_STORE_BIT" value="0x00000001" deprecated="3.2" />
       <token name="CLIENT_VERTEX_ARRAY_BIT" value="0x00000002" deprecated="3.2" />
     </enum>
+    <enum name="ClipControlDepth">
+      <token name="NEGATIVE_ONE_TO_ONE" value="0x935E" />
+      <token name="ZERO_TO_ONE" value="0x935F" />
+    </enum>
+    <enum name="ClipControlOrigin">
+      <token name="LOWER_LEFT" value="0x8CA1" />
+      <token name="UPPER_LEFT" value="0x8CA2" />
+    </enum>
     <enum name="ClipPlaneName">
       <token name="CLIP_DISTANCE0" value="0x3000" />
       <token name="CLIP_DISTANCE1" value="0x3001" />
       <token name="CLIP_PLANE4" value="0x3004" deprecated="3.2" />
       <token name="CLIP_PLANE5" value="0x3005" deprecated="3.2" />
     </enum>
+    <enum name="ColorBuffer">
+      <token name="NONE" value="0" />
+      <token name="FRONT_LEFT" value="0x0400" />
+      <token name="FRONT_RIGHT" value="0x0401" />
+      <token name="BACK_LEFT" value="0x0402" />
+      <token name="BACK_RIGHT" value="0x0403" />
+      <token name="FRONT" value="0x0404" />
+      <token name="BACK" value="0x0405" />
+      <token name="LEFT" value="0x0406" />
+      <token name="RIGHT" value="0x0407" />
+      <token name="FRONT_AND_BACK" value="0x0408" />
+      <token name="NONE" value="0" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+    </enum>
     <enum name="ColorMaterialFace">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="COLOR_TABLE_SCALE" value="0x80D6" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
     </enum>
+    <enum name="ColorTableTarget">
+      <token name="COLOR_TABLE" value="0x80D0" />
+      <token name="POST_CONVOLUTION_COLOR_TABLE" value="0x80D1" />
+      <token name="POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D2" />
+    </enum>
     <enum name="ColorTableTargetSGI">
       <token name="COLOR_TABLE" value="0x80D0" />
       <token name="COLOR_TABLE_SGI" value="0x80D0" />
       <token name="CONTEXT_FLAG_DEBUG_BIT" value="0x00000002" />
       <token name="CONTEXT_FLAG_DEBUG_BIT_KHR" value="0x00000002" />
       <token name="CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT" value="0x00000001" />
+      <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT" value="0x00000004" />
       <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004" />
       <token name="CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT" value="0x00000010" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT" value="0x00000008" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
     <enum name="ContextProfileMask">
       <token name="CONTEXT_COMPATIBILITY_PROFILE_BIT" value="0x00000002" />
       <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
       <token name="CONVOLUTION_FILTER_SCALE_EXT" value="0x8014" />
     </enum>
+    <enum name="ConvolutionTarget">
+      <token name="CONVOLUTION_1D" value="0x8010" />
+      <token name="CONVOLUTION_2D" value="0x8011" />
+    </enum>
     <enum name="ConvolutionTargetEXT">
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_1D_EXT" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="CONVOLUTION_2D_EXT" value="0x8011" />
     </enum>
+    <enum name="CopyBufferSubDataTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="CullFaceMode">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="FRONT_AND_BACK" value="0x0408" />
     </enum>
     <enum name="DataType" />
+    <enum name="DebugSeverity">
+      <token name="DEBUG_SEVERITY_LOW" value="0x9148" />
+      <token name="DEBUG_SEVERITY_MEDIUM" value="0x9147" />
+      <token name="DEBUG_SEVERITY_HIGH" value="0x9146" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugSource">
+      <token name="DEBUG_SOURCE_API" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER" value="0x824B" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugType">
+      <token name="DEBUG_TYPE_ERROR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE" value="0x8250" />
+      <token name="DEBUG_TYPE_MARKER" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP" value="0x826A" />
+      <token name="DEBUG_TYPE_OTHER" value="0x8251" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
     <enum name="DepthFunction">
       <token name="ALWAYS" value="0x0207" />
       <token name="EQUAL" value="0x0202" />
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="EXT_semaphore_fd">
       <token name="HANDLE_TYPE_OPAQUE_FD_EXT" value="0x9586" />
       <token name="FOG_OFFSET_VALUE_SGIX" value="0x8199" />
       <token name="FOG_START" value="0x0B63" deprecated="3.2" />
     </enum>
+    <enum name="FogPName">
+      <token name="FOG_MODE" value="0x0B65" />
+      <token name="FOG_DENSITY" value="0x0B62" />
+      <token name="FOG_START" value="0x0B63" />
+      <token name="FOG_END" value="0x0B64" />
+      <token name="FOG_INDEX" value="0x0B61" />
+      <token name="FOG_COORD_SRC" value="0x8450" deprecated="3.2" />
+    </enum>
     <enum name="FogPointerTypeEXT">
       <token name="FLOAT" value="0x1406" />
       <token name="DOUBLE" value="0x140A" />
       <token name="FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX" value="0x840B" />
       <token name="FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX" value="0x8409" />
     </enum>
+    <enum name="FragmentOpATI">
+      <token name="MOV_ATI" value="0x8961" />
+      <token name="ADD_ATI" value="0x8963" />
+      <token name="MUL_ATI" value="0x8964" />
+      <token name="SUB_ATI" value="0x8965" />
+      <token name="DOT3_ATI" value="0x8966" />
+      <token name="DOT4_ATI" value="0x8967" />
+      <token name="MAD_ATI" value="0x8968" />
+      <token name="LERP_ATI" value="0x8969" />
+      <token name="CND_ATI" value="0x896A" />
+      <token name="CND0_ATI" value="0x896B" />
+      <token name="DOT2_ADD_ATI" value="0x896C" />
+    </enum>
+    <enum name="FramebufferAttachment">
+      <token name="MAX_COLOR_ATTACHMENTS" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_EXT" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_NV" value="0x8CDF" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_EXT" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_NV" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_OES" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_EXT" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_NV" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_EXT" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_NV" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_EXT" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_NV" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_EXT" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_NV" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_EXT" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_NV" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_EXT" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_NV" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_EXT" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_NV" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_EXT" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_NV" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_EXT" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_NV" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_EXT" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_NV" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_EXT" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_NV" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_EXT" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_NV" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_EXT" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_NV" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_EXT" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_NV" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_EXT" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_NV" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+      <token name="DEPTH_ATTACHMENT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_EXT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_OES" value="0x8D00" />
+    </enum>
+    <enum name="FramebufferAttachmentParameterName">
+      <token name="FRAMEBUFFER_ATTACHMENT_RED_SIZE" value="0x8212" />
+      <token name="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" value="0x8213" />
+      <token name="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" value="0x8214" />
+      <token name="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" value="0x8215" />
+      <token name="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" value="0x8216" />
+      <token name="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" value="0x8217" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" value="0x8211" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" value="0x8210" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" value="0x8CD2" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" value="0x8CD3" />
+      <token name="FRAMEBUFFER_ATTACHMENT_LAYERED" value="0x8DA7" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" value="0x8CD4" />
+    </enum>
     <enum name="FramebufferFetchNoncoherent">
       <token name="FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" value="0x96A2" />
     </enum>
+    <enum name="FramebufferParameterName">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+    </enum>
+    <enum name="FramebufferStatus">
+      <token name="FRAMEBUFFER_COMPLETE" value="0x8CD5" />
+      <token name="FRAMEBUFFER_UNDEFINED" value="0x8219" />
+      <token name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT" value="0x8CD6" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" value="0x8CD7" />
+      <token name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER" value="0x8CDB" />
+      <token name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER" value="0x8CDC" />
+      <token name="FRAMEBUFFER_UNSUPPORTED" value="0x8CDD" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" value="0x8DA8" />
+    </enum>
+    <enum name="FramebufferTarget">
+      <token name="FRAMEBUFFER" value="0x8D40" />
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+    </enum>
     <enum name="FrontFaceDirection">
       <token name="CCW" value="0x0901" />
       <token name="CW" value="0x0900" />
       <token name="COLOR_TABLE_RED_SIZE_SGI" value="0x80DA" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
       <token name="COLOR_TABLE_WIDTH_SGI" value="0x80D9" />
+      <token name="COLOR_TABLE_BIAS" value="0x80D7" />
+      <token name="COLOR_TABLE_SCALE" value="0x80D6" />
+      <token name="COLOR_TABLE_FORMAT" value="0x80D8" />
+      <token name="COLOR_TABLE_WIDTH" value="0x80D9" />
+      <token name="COLOR_TABLE_RED_SIZE" value="0x80DA" />
+      <token name="COLOR_TABLE_GREEN_SIZE" value="0x80DB" />
+      <token name="COLOR_TABLE_BLUE_SIZE" value="0x80DC" />
+      <token name="COLOR_TABLE_ALPHA_SIZE" value="0x80DD" />
+      <token name="COLOR_TABLE_LUMINANCE_SIZE" value="0x80DE" />
+      <token name="COLOR_TABLE_INTENSITY_SIZE" value="0x80DF" />
     </enum>
     <enum name="GetConvolutionParameter">
       <token name="CONVOLUTION_BORDER_MODE_EXT" value="0x8013" />
       <token name="CONVOLUTION_WIDTH_EXT" value="0x8018" />
       <token name="MAX_CONVOLUTION_HEIGHT_EXT" value="0x801B" />
       <token name="MAX_CONVOLUTION_WIDTH_EXT" value="0x801A" />
+      <token name="CONVOLUTION_BORDER_MODE" value="0x8013" />
+      <token name="CONVOLUTION_BORDER_COLOR" value="0x8154" />
+      <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
+      <token name="CONVOLUTION_FILTER_BIAS" value="0x8015" />
+      <token name="CONVOLUTION_FORMAT" value="0x8017" />
+      <token name="CONVOLUTION_WIDTH" value="0x8018" />
+      <token name="CONVOLUTION_HEIGHT" value="0x8019" />
+      <token name="MAX_CONVOLUTION_WIDTH" value="0x801A" />
+      <token name="MAX_CONVOLUTION_HEIGHT" value="0x801B" />
+    </enum>
+    <enum name="GetFramebufferParameter">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+      <token name="DOUBLEBUFFER" value="0x0C32" />
+      <token name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B" />
+      <token name="IMPLEMENTATION_COLOR_READ_TYPE" value="0x8B9A" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="SAMPLE_BUFFERS" value="0x80A8" />
+      <token name="STEREO" value="0x0C33" />
     </enum>
     <enum name="GetHistogramParameterPNameEXT">
       <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
       <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
       <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
       <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
+      <token name="HISTOGRAM_WIDTH" value="0x8026" />
+      <token name="HISTOGRAM_FORMAT" value="0x8027" />
+      <token name="HISTOGRAM_RED_SIZE" value="0x8028" />
+      <token name="HISTOGRAM_GREEN_SIZE" value="0x8029" />
+      <token name="HISTOGRAM_BLUE_SIZE" value="0x802A" />
+      <token name="HISTOGRAM_ALPHA_SIZE" value="0x802B" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE" value="0x802C" />
+      <token name="HISTOGRAM_SINK" value="0x802D" />
+      <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
+      <token name="HISTOGRAM_BLUE_SIZE_EXT" value="0x802A" />
+      <token name="HISTOGRAM_FORMAT_EXT" value="0x8027" />
+      <token name="HISTOGRAM_GREEN_SIZE_EXT" value="0x8029" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE_EXT" value="0x802C" />
+      <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
+      <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
+      <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
     </enum>
     <enum name="GetMapQuery">
       <token name="COEFF" value="0x0A00" deprecated="3.2" />
       <token name="MINMAX_FORMAT_EXT" value="0x802F" />
       <token name="MINMAX_SINK" value="0x8030" />
       <token name="MINMAX_SINK_EXT" value="0x8030" />
+      <token name="MINMAX_FORMAT" value="0x802F" />
+      <token name="MINMAX_SINK" value="0x8030" />
     </enum>
     <enum name="GetPixelMap">
       <token name="PIXEL_MAP_A_TO_A" value="0x0C79" deprecated="3.2" />
       <token name="TEXTURE_COORD_ARRAY_POINTER_EXT" value="0x8092" />
       <token name="VERTEX_ARRAY_POINTER" value="0x808E" deprecated="3.2" />
       <token name="VERTEX_ARRAY_POINTER_EXT" value="0x808E" />
+      <token name="DEBUG_CALLBACK_FUNCTION" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM" value="0x8245" />
     </enum>
     <enum name="GetTextureParameter">
       <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
       <token name="TEXTURE_WRAP_S" value="0x2802" />
       <token name="TEXTURE_WRAP_T" value="0x2803" />
     </enum>
+    <enum name="GraphicsResetStatus">
+      <token name="NO_ERROR" value="0" />
+      <token name="GUILTY_CONTEXT_RESET" value="0x8253" />
+      <token name="INNOCENT_CONTEXT_RESET" value="0x8254" />
+      <token name="UNKNOWN_CONTEXT_RESET" value="0x8255" />
+    </enum>
     <enum name="GREMEDY_frame_terminator" />
     <enum name="GREMEDY_string_marker" />
     <enum name="HintMode">
       <token name="HISTOGRAM_EXT" value="0x8024" />
       <token name="PROXY_HISTOGRAM" value="0x8025" />
       <token name="PROXY_HISTOGRAM_EXT" value="0x8025" />
+      <token name="HISTOGRAM" value="0x8024" />
+      <token name="PROXY_HISTOGRAM" value="0x8025" />
     </enum>
     <enum name="HP_convolution_border_modes">
       <token name="IGNORE_BORDER_HP" value="0x8150" />
       <token name="ALPHA16" value="0x803E" deprecated="3.2" />
       <token name="ALPHA4" value="0x803B" deprecated="3.2" />
       <token name="ALPHA8" value="0x803C" deprecated="3.2" />
-      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
-      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
-      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
       <token name="DUAL_ALPHA12_SGIS" value="0x8112" />
       <token name="DUAL_ALPHA16_SGIS" value="0x8113" />
       <token name="DUAL_ALPHA4_SGIS" value="0x8110" />
       <token name="QUAD_INTENSITY8_SGIS" value="0x8123" />
       <token name="QUAD_LUMINANCE4_SGIS" value="0x8120" />
       <token name="QUAD_LUMINANCE8_SGIS" value="0x8121" />
-      <token name="R3_G3_B2" value="0x2A10" />
-      <token name="RGB10" value="0x8052" />
-      <token name="RGB10_A2" value="0x8059" />
-      <token name="RGB12" value="0x8053" />
-      <token name="RGB16" value="0x8054" />
+      <token name="RED" value="0x1903" />
+      <token name="RED_EXT" value="0x1903" />
+      <token name="R8" value="0x8229" />
+      <token name="R8_EXT" value="0x8229" />
+      <token name="R8_SNORM" value="0x8F94" />
+      <token name="R16" value="0x822A" />
+      <token name="R16_EXT" value="0x822A" />
+      <token name="R16_SNORM" value="0x8F98" />
+      <token name="R16_SNORM_EXT" value="0x8F98" />
+      <token name="R16F" value="0x822D" />
+      <token name="R16F_EXT" value="0x822D" />
+      <token name="R32F" value="0x822E" />
+      <token name="R32F_EXT" value="0x822E" />
+      <token name="R8I" value="0x8231" />
+      <token name="R16I" value="0x8233" />
+      <token name="R32I" value="0x8235" />
+      <token name="R8UI" value="0x8232" />
+      <token name="R16UI" value="0x8234" />
+      <token name="R32UI" value="0x8236" />
+      <token name="RG" value="0x8227" />
+      <token name="RG8" value="0x822B" />
+      <token name="RG8_EXT" value="0x822B" />
+      <token name="RG8_SNORM" value="0x8F95" />
+      <token name="RG16" value="0x822C" />
+      <token name="RG16_EXT" value="0x822C" />
+      <token name="RG16_SNORM" value="0x8F99" />
+      <token name="RG16_SNORM_EXT" value="0x8F99" />
+      <token name="RG16F" value="0x822F" />
+      <token name="RG16F_EXT" value="0x822F" />
+      <token name="RG32F" value="0x8230" />
+      <token name="RG32F_EXT" value="0x8230" />
+      <token name="RG8I" value="0x8237" />
+      <token name="RG16I" value="0x8239" />
+      <token name="RG32I" value="0x823B" />
+      <token name="RG8UI" value="0x8238" />
+      <token name="RG16UI" value="0x823A" />
+      <token name="RG32UI" value="0x823C" />
+      <token name="RGB" value="0x1907" />
       <token name="RGB2_EXT" value="0x804E" />
       <token name="RGB4" value="0x804F" />
+      <token name="RGB4_EXT" value="0x804F" />
       <token name="RGB5" value="0x8050" />
-      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_EXT" value="0x8050" />
       <token name="RGB8" value="0x8051" />
-      <token name="RGBA12" value="0x805A" />
-      <token name="RGBA16" value="0x805B" />
-      <token name="RGBA2" value="0x8055" />
+      <token name="RGB8_EXT" value="0x8051" />
+      <token name="RGB8_OES" value="0x8051" />
+      <token name="RGB8_SNORM" value="0x8F96" />
+      <token name="RGB10" value="0x8052" />
+      <token name="RGB10_EXT" value="0x8052" />
+      <token name="RGB12" value="0x8053" />
+      <token name="RGB12_EXT" value="0x8053" />
+      <token name="RGB16" value="0x8054" />
+      <token name="RGB16_EXT" value="0x8054" />
+      <token name="RGB16F" value="0x881B" />
+      <token name="RGB16F_ARB" value="0x881B" />
+      <token name="RGB16F_EXT" value="0x881B" />
+      <token name="RGB16_SNORM" value="0x8F9A" />
+      <token name="RGB16_SNORM_EXT" value="0x8F9A" />
+      <token name="RGB8I" value="0x8D8F" />
+      <token name="RGB16I" value="0x8D89" />
+      <token name="RGB32I" value="0x8D83" />
+      <token name="RGB8UI" value="0x8D7D" />
+      <token name="RGB16UI" value="0x8D77" />
+      <token name="RGB32UI" value="0x8D71" />
+      <token name="SRGB" value="0x8C40" />
+      <token name="SRGB_EXT" value="0x8C40" />
+      <token name="SRGB_ALPHA" value="0x8C42" />
+      <token name="SRGB_ALPHA_EXT" value="0x8C42" />
+      <token name="SRGB8" value="0x8C41" />
+      <token name="SRGB8_EXT" value="0x8C41" />
+      <token name="SRGB8_NV" value="0x8C41" />
+      <token name="SRGB8_ALPHA8" value="0x8C43" />
+      <token name="SRGB8_ALPHA8_EXT" value="0x8C43" />
+      <token name="R3_G3_B2" value="0x2A10" />
+      <token name="R11F_G11F_B10F" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_APPLE" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_EXT" value="0x8C3A" />
+      <token name="RGB9_E5" value="0x8C3D" />
+      <token name="RGB9_E5_APPLE" value="0x8C3D" />
+      <token name="RGB9_E5_EXT" value="0x8C3D" />
+      <token name="RGBA" value="0x1908" />
       <token name="RGBA4" value="0x8056" />
+      <token name="RGBA4_EXT" value="0x8056" />
+      <token name="RGBA4_OES" value="0x8056" />
+      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_A1_EXT" value="0x8057" />
+      <token name="RGB5_A1_OES" value="0x8057" />
       <token name="RGBA8" value="0x8058" />
+      <token name="RGBA8_EXT" value="0x8058" />
+      <token name="RGBA8_OES" value="0x8058" />
+      <token name="RGBA8_SNORM" value="0x8F97" />
+      <token name="RGB10_A2" value="0x8059" />
+      <token name="RGB10_A2_EXT" value="0x8059" />
+      <token name="RGBA12" value="0x805A" />
+      <token name="RGBA12_EXT" value="0x805A" />
+      <token name="RGBA16" value="0x805B" />
+      <token name="RGBA16_EXT" value="0x805B" />
+      <token name="RGBA16F" value="0x881A" />
+      <token name="RGBA16F_ARB" value="0x881A" />
+      <token name="RGBA16F_EXT" value="0x881A" />
+      <token name="RGBA32F" value="0x8814" />
+      <token name="RGBA32F_ARB" value="0x8814" />
+      <token name="RGBA32F_EXT" value="0x8814" />
+      <token name="RGBA8I" value="0x8D8E" />
+      <token name="RGBA16I" value="0x8D88" />
+      <token name="RGBA32I" value="0x8D82" />
+      <token name="RGBA8UI" value="0x8D7C" />
+      <token name="RGBA16UI" value="0x8D76" />
+      <token name="RGBA32UI" value="0x8D70" />
+      <token name="RGB10_A2UI" value="0x906F" />
+      <token name="DEPTH_COMPONENT" value="0x1902" />
+      <token name="DEPTH_COMPONENT16" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_ARB" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_OES" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
+      <token name="DEPTH_COMPONENT24_ARB" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_OES" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
+      <token name="DEPTH_COMPONENT32_ARB" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_OES" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32F" value="0x8CAC" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_STENCIL" value="0x84F9" />
+      <token name="DEPTH_STENCIL_EXT" value="0x84F9" />
+      <token name="DEPTH_STENCIL_MESA" value="0x8750" />
+      <token name="DEPTH_STENCIL_NV" value="0x84F9" />
+      <token name="DEPTH_STENCIL_OES" value="0x84F9" />
+      <token name="DEPTH24_STENCIL8" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_EXT" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_OES" value="0x88F0" />
+      <token name="DEPTH32F_STENCIL8" value="0x8CAD" />
+      <token name="DEPTH32F_STENCIL8_NV" value="0x8DAC" />
+      <token name="COMPRESSED_RED" value="0x8225" />
+      <token name="COMPRESSED_RG" value="0x8226" />
+      <token name="COMPRESSED_RGB" value="0x84ED" />
+      <token name="COMPRESSED_RGBA" value="0x84EE" />
+      <token name="COMPRESSED_SRGB" value="0x8C48" />
+      <token name="COMPRESSED_SRGB_ALPHA" value="0x8C49" />
+      <token name="COMPRESSED_RED_RGTC1" value="0x8DBB" />
+      <token name="COMPRESSED_RED_RGTC1_EXT" value="0x8DBB" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1" value="0x8DBC" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1_EXT" value="0x8DBC" />
+      <token name="COMPRESSED_R11_EAC" value="0x9270" />
+      <token name="COMPRESSED_SIGNED_R11_EAC" value="0x9271" />
+      <token name="COMPRESSED_RG_RGTC2" value="0x8DBD" />
+      <token name="COMPRESSED_SIGNED_RG_RGTC2" value="0x8DBE" />
+      <token name="COMPRESSED_RGBA_BPTC_UNORM" value="0x8E8C" />
+      <token name="COMPRESSED_SRGB_ALPHA_BPTC_UNORM" value="0x8E8D" />
+      <token name="COMPRESSED_RGB_BPTC_SIGNED_FLOAT" value="0x8E8E" />
+      <token name="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT" value="0x8E8F" />
+      <token name="COMPRESSED_RGB8_ETC2" value="0x9274" />
+      <token name="COMPRESSED_SRGB8_ETC2" value="0x9275" />
+      <token name="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9276" />
+      <token name="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9277" />
+      <token name="COMPRESSED_RGBA8_ETC2_EAC" value="0x9278" />
+      <token name="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" value="0x9279" />
+      <token name="COMPRESSED_RG11_EAC" value="0x9272" />
+      <token name="COMPRESSED_SIGNED_RG11_EAC" value="0x9273" />
+      <token name="COMPRESSED_RGB_S3TC_DXT1_EXT" value="0x83F0" />
+      <token name="COMPRESSED_SRGB_S3TC_DXT1_EXT" value="0x8C4C" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT1_EXT" value="0x83F1" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" value="0x8C4D" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT3_EXT" value="0x83F2" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" value="0x8C4E" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT5_EXT" value="0x83F3" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" value="0x8C4F" />
+    </enum>
+    <enum name="InternalFormatPName">
+      <token name="NUM_SAMPLE_COUNTS" value="0x9380" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="INTERNALFORMAT_SUPPORTED" value="0x826F" />
+      <token name="INTERNALFORMAT_PREFERRED" value="0x8270" />
+      <token name="INTERNALFORMAT_RED_SIZE" value="0x8271" />
+      <token name="INTERNALFORMAT_GREEN_SIZE" value="0x8272" />
+      <token name="INTERNALFORMAT_BLUE_SIZE" value="0x8273" />
+      <token name="INTERNALFORMAT_ALPHA_SIZE" value="0x8274" />
+      <token name="INTERNALFORMAT_DEPTH_SIZE" value="0x8275" />
+      <token name="INTERNALFORMAT_STENCIL_SIZE" value="0x8276" />
+      <token name="INTERNALFORMAT_SHARED_SIZE" value="0x8277" />
+      <token name="INTERNALFORMAT_RED_TYPE" value="0x8278" />
+      <token name="INTERNALFORMAT_GREEN_TYPE" value="0x8279" />
+      <token name="INTERNALFORMAT_BLUE_TYPE" value="0x827A" />
+      <token name="INTERNALFORMAT_ALPHA_TYPE" value="0x827B" />
+      <token name="INTERNALFORMAT_DEPTH_TYPE" value="0x827C" />
+      <token name="INTERNALFORMAT_STENCIL_TYPE" value="0x827D" />
+      <token name="MAX_WIDTH" value="0x827E" />
+      <token name="MAX_HEIGHT" value="0x827F" />
+      <token name="MAX_DEPTH" value="0x8280" />
+      <token name="MAX_LAYERS" value="0x8281" />
+      <token name="COLOR_COMPONENTS" value="0x8283" />
+      <token name="COLOR_RENDERABLE" value="0x8286" />
+      <token name="DEPTH_RENDERABLE" value="0x8287" />
+      <token name="STENCIL_RENDERABLE" value="0x8288" />
+      <token name="FRAMEBUFFER_RENDERABLE" value="0x8289" />
+      <token name="FRAMEBUFFER_RENDERABLE_LAYERED" value="0x828A" />
+      <token name="FRAMEBUFFER_BLEND" value="0x828B" />
+      <token name="READ_PIXELS" value="0x828C" />
+      <token name="READ_PIXELS_FORMAT" value="0x828D" />
+      <token name="READ_PIXELS_TYPE" value="0x828E" />
+      <token name="TEXTURE_IMAGE_FORMAT" value="0x828F" />
+      <token name="TEXTURE_IMAGE_TYPE" value="0x8290" />
+      <token name="GET_TEXTURE_IMAGE_FORMAT" value="0x8291" />
+      <token name="GET_TEXTURE_IMAGE_TYPE" value="0x8292" />
+      <token name="MIPMAP" value="0x8293" />
+      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="AUTO_GENERATE_MIPMAP" value="0x8295" />
+      <token name="COLOR_ENCODING" value="0x8296" />
+      <token name="SRGB_READ" value="0x8297" />
+      <token name="SRGB_WRITE" value="0x8298" />
+      <token name="FILTER" value="0x829A" />
+      <token name="VERTEX_TEXTURE" value="0x829B" />
+      <token name="TESS_CONTROL_TEXTURE" value="0x829C" />
+      <token name="TESS_EVALUATION_TEXTURE" value="0x829D" />
+      <token name="GEOMETRY_TEXTURE" value="0x829E" />
+      <token name="FRAGMENT_TEXTURE" value="0x829F" />
+      <token name="COMPUTE_TEXTURE" value="0x82A0" />
+      <token name="TEXTURE_SHADOW" value="0x82A1" />
+      <token name="TEXTURE_GATHER" value="0x82A2" />
+      <token name="TEXTURE_GATHER_SHADOW" value="0x82A3" />
+      <token name="SHADER_IMAGE_LOAD" value="0x82A4" />
+      <token name="SHADER_IMAGE_STORE" value="0x82A5" />
+      <token name="SHADER_IMAGE_ATOMIC" value="0x82A6" />
+      <token name="IMAGE_TEXEL_SIZE" value="0x82A7" />
+      <token name="IMAGE_COMPATIBILITY_CLASS" value="0x82A8" />
+      <token name="IMAGE_PIXEL_FORMAT" value="0x82A9" />
+      <token name="IMAGE_PIXEL_TYPE" value="0x82AA" />
+      <token name="IMAGE_FORMAT_COMPATIBILITY_TYPE" value="0x90C7" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST" value="0x82AC" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST" value="0x82AD" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE" value="0x82AE" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE" value="0x82AF" />
+      <token name="TEXTURE_COMPRESSED" value="0x86A1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_WIDTH" value="0x82B1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_HEIGHT" value="0x82B2" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_SIZE" value="0x82B3" />
+      <token name="CLEAR_BUFFER" value="0x82B4" />
+      <token name="TEXTURE_VIEW" value="0x82B5" />
+      <token name="VIEW_COMPATIBILITY_CLASS" value="0x82B6" />
+      <token name="CLEAR_TEXTURE" value="0x9365" />
     </enum>
     <enum name="KHR_blend_equation_advanced">
       <token name="MULTIPLY_KHR" value="0x9294" />
     <enum name="KHR_no_error">
       <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
+    <enum name="KHR_parallel_shader_compile">
+      <token name="MAX_SHADER_COMPILER_THREADS_KHR" value="0x91B0" />
+      <token name="COMPLETION_STATUS_KHR" value="0x91B1" />
+    </enum>
     <enum name="KHR_robust_buffer_access_behavior" />
     <enum name="KHR_robustness">
       <token name="NO_ERROR" value="0" />
     </enum>
     <enum name="MapBufferUsageMask">
       <token name="CLIENT_STORAGE_BIT" value="0x0200" />
+      <token name="CLIENT_STORAGE_BIT_EXT" value="0x0200" />
       <token name="DYNAMIC_STORAGE_BIT" value="0x0100" />
+      <token name="DYNAMIC_STORAGE_BIT_EXT" value="0x0100" />
       <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
       <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
       <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
       <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
       <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
       <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
       <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
       <token name="MAP_READ_BIT" value="0x0001" />
       <token name="MAP_READ_BIT_EXT" value="0x0001" />
       <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
       <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
       <token name="MAP_WRITE_BIT" value="0x0002" />
       <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+      <token name="SPARSE_STORAGE_BIT_ARB" value="0x0400" />
+      <token name="LGPU_SEPARATE_STORAGE_BIT_NVX" value="0x0800" />
+      <token name="PER_GPU_STORAGE_BIT_NV" value="0x0800" />
+    </enum>
+    <enum name="MapQuery">
+      <token name="COEFF" value="0x0A00" />
+      <token name="ORDER" value="0x0A01" />
+      <token name="DOMAIN" value="0x0A02" />
     </enum>
     <enum name="MapTarget">
       <token name="GEOMETRY_DEFORMATION_SGIX" value="0x8194" />
       <token name="BUFFER_UPDATE_BARRIER_BIT" value="0x00000200" />
       <token name="BUFFER_UPDATE_BARRIER_BIT_EXT" value="0x00000200" />
       <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x00004000" />
+      <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT" value="0x00004000" />
       <token name="COMMAND_BARRIER_BIT" value="0x00000040" />
       <token name="COMMAND_BARRIER_BIT_EXT" value="0x00000040" />
       <token name="ELEMENT_ARRAY_BARRIER_BIT" value="0x00000002" />
     <enum name="MESA_pack_invert">
       <token name="PACK_INVERT_MESA" value="0x8758" />
     </enum>
+    <enum name="MESA_program_binary_formats">
+      <token name="PROGRAM_BINARY_FORMAT_MESA" value="0x875F" />
+    </enum>
     <enum name="MESA_resize_buffers" />
     <enum name="MESA_shader_integer_functions" />
+    <enum name="MESA_tile_raster_order">
+      <token name="TILE_RASTER_ORDER_FIXED_MESA" value="0x8BB8" />
+      <token name="TILE_RASTER_ORDER_INCREASING_X_MESA" value="0x8BB9" />
+      <token name="TILE_RASTER_ORDER_INCREASING_Y_MESA" value="0x8BBA" />
+    </enum>
     <enum name="MESA_window_pos" />
     <enum name="MESA_ycbcr_texture">
       <token name="UNSIGNED_SHORT_8_8_MESA" value="0x85BA" />
       <token name="CONSERVATIVE_RASTER_DILATE_RANGE_NV" value="0x937A" />
       <token name="CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV" value="0x937B" />
     </enum>
+    <enum name="NV_conservative_raster_pre_snap">
+      <token name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV" value="0x9550" />
+    </enum>
     <enum name="NV_conservative_raster_pre_snap_triangles">
       <token name="CONSERVATIVE_RASTER_MODE_NV" value="0x954D" />
       <token name="CONSERVATIVE_RASTER_MODE_POST_SNAP_NV" value="0x954E" />
       <token name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV" value="0x954F" />
       <token name="CONSERVATIVE_RASTER_MODE_NV" value="0x954D" />
     </enum>
+    <enum name="NV_conservative_raster_underestimation" />
     <enum name="NV_copy_depth_to_color">
       <token name="DEPTH_STENCIL_TO_RGBA_NV" value="0x886E" />
       <token name="DEPTH_STENCIL_TO_BGRA_NV" value="0x886F" />
       <token name="PRIMITIVE_RESTART_NV" value="0x8558" />
       <token name="PRIMITIVE_RESTART_INDEX_NV" value="0x8559" />
     </enum>
+    <enum name="NV_query_resource">
+      <token name="QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV" value="0x9540" />
+      <token name="QUERY_RESOURCE_MEMTYPE_VIDMEM_NV" value="0x9542" />
+      <token name="QUERY_RESOURCE_SYS_RESERVED_NV" value="0x9544" />
+      <token name="QUERY_RESOURCE_TEXTURE_NV" value="0x9545" />
+      <token name="QUERY_RESOURCE_RENDERBUFFER_NV" value="0x9546" />
+      <token name="QUERY_RESOURCE_BUFFEROBJECT_NV" value="0x9547" />
+    </enum>
+    <enum name="NV_query_resource_tag" />
     <enum name="NV_register_combiners">
       <token name="REGISTER_COMBINERS_NV" value="0x8522" />
       <token name="VARIABLE_A_NV" value="0x8523" />
       <token name="LGPU_SEPARATE_STORAGE_BIT_NVX" value="0x0800" />
       <token name="MAX_LGPU_GPUS_NVX" value="0x92BA" />
     </enum>
+    <enum name="ObjectIdentifier">
+      <token name="BUFFER" value="0x82E0" />
+      <token name="SHADER" value="0x82E1" />
+      <token name="PROGRAM" value="0x82E2" />
+      <token name="VERTEX_ARRAY" value="0x8074" />
+      <token name="QUERY" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE" value="0x82E4" />
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+      <token name="SAMPLER" value="0x82E6" />
+      <token name="TEXTURE" value="0x1702" />
+      <token name="RENDERBUFFER" value="0x8D41" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="OcclusionQueryEventMaskAMD">
       <token name="QUERY_DEPTH_PASS_EVENT_BIT_AMD" value="0x00000001" />
       <token name="QUERY_DEPTH_FAIL_EVENT_BIT_AMD" value="0x00000002" />
       <token name="FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR" value="0x9633" />
     </enum>
     <enum name="OVR_multiview2" />
+    <enum name="PatchParameterName">
+      <token name="PATCH_VERTICES" value="0x8E72" />
+      <token name="PATCH_DEFAULT_OUTER_LEVEL" value="0x8E74" />
+      <token name="PATCH_DEFAULT_INNER_LEVEL" value="0x8E73" />
+    </enum>
+    <enum name="PathColor">
+      <token name="PRIMARY_COLOR" value="0x8577" />
+      <token name="PRIMARY_COLOR_NV" value="0x852C" />
+      <token name="SECONDARY_COLOR_NV" value="0x852D" />
+    </enum>
+    <enum name="PathCoverMode">
+      <token name="CONVEX_HULL_NV" value="0x908B" />
+      <token name="BOUNDING_BOX_NV" value="0x908D" />
+      <token name="BOUNDING_BOX_OF_BOUNDING_BOXES_NV" value="0x909C" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+    </enum>
+    <enum name="PathElementType">
+      <token name="UTF8_NV" value="0x909A" />
+      <token name="UTF16_NV" value="0x909B" />
+    </enum>
+    <enum name="PathFillMode">
+      <token name="INVERT" value="0x150A" />
+      <token name="COUNT_UP_NV" value="0x9088" />
+      <token name="COUNT_DOWN_NV" value="0x9089" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+    </enum>
+    <enum name="PathFontStyle">
+      <token name="NONE" value="0" />
+      <token name="BOLD_BIT_NV" value="0x01" />
+      <token name="ITALIC_BIT_NV" value="0x02" />
+    </enum>
+    <enum name="PathFontTarget">
+      <token name="STANDARD_FONT_NAME_NV" value="0x9072" />
+      <token name="SYSTEM_FONT_NAME_NV" value="0x9073" />
+      <token name="FILE_NAME_NV" value="0x9074" />
+    </enum>
+    <enum name="PathGenMode">
+      <token name="NONE" value="0" />
+      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="CONSTANT" value="0x8576" deprecated="3.2" />
+    </enum>
+    <enum name="PathHandleMissingGlyphs">
+      <token name="SKIP_MISSING_GLYPH_NV" value="0x90A9" />
+      <token name="USE_MISSING_GLYPH_NV" value="0x90AA" />
+    </enum>
+    <enum name="PathListMode">
+      <token name="ACCUM_ADJACENT_PAIRS_NV" value="0x90AD" />
+      <token name="ADJACENT_PAIRS_NV" value="0x90AE" />
+      <token name="FIRST_TO_REST_NV" value="0x90AF" />
+    </enum>
+    <enum name="PathMetricMask">
+      <token name="GLYPH_WIDTH_BIT_NV" value="0x01" />
+      <token name="GLYPH_HEIGHT_BIT_NV" value="0x02" />
+      <token name="GLYPH_HORIZONTAL_BEARING_X_BIT_NV" value="0x04" />
+      <token name="GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" value="0x08" />
+      <token name="GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" value="0x10" />
+      <token name="GLYPH_VERTICAL_BEARING_X_BIT_NV" value="0x20" />
+      <token name="GLYPH_VERTICAL_BEARING_Y_BIT_NV" value="0x40" />
+      <token name="GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" value="0x80" />
+      <token name="GLYPH_HAS_KERNING_BIT_NV" value="0x100" />
+      <token name="FONT_X_MIN_BOUNDS_BIT_NV" value="0x00010000" />
+      <token name="FONT_Y_MIN_BOUNDS_BIT_NV" value="0x00020000" />
+      <token name="FONT_X_MAX_BOUNDS_BIT_NV" value="0x00040000" />
+      <token name="FONT_Y_MAX_BOUNDS_BIT_NV" value="0x00080000" />
+      <token name="FONT_UNITS_PER_EM_BIT_NV" value="0x00100000" />
+      <token name="FONT_ASCENDER_BIT_NV" value="0x00200000" />
+      <token name="FONT_DESCENDER_BIT_NV" value="0x00400000" />
+      <token name="FONT_HEIGHT_BIT_NV" value="0x00800000" />
+      <token name="FONT_MAX_ADVANCE_WIDTH_BIT_NV" value="0x01000000" />
+      <token name="FONT_MAX_ADVANCE_HEIGHT_BIT_NV" value="0x02000000" />
+      <token name="FONT_UNDERLINE_POSITION_BIT_NV" value="0x04000000" />
+      <token name="FONT_UNDERLINE_THICKNESS_BIT_NV" value="0x08000000" />
+      <token name="FONT_HAS_KERNING_BIT_NV" value="0x10000000" />
+      <token name="FONT_NUM_GLYPH_INDICES_BIT_NV" value="0x20000000" />
+    </enum>
+    <enum name="PathParameter">
+      <token name="PATH_STROKE_WIDTH_NV" value="0x9075" />
+      <token name="PATH_INITIAL_END_CAP_NV" value="0x9077" />
+      <token name="PATH_TERMINAL_END_CAP_NV" value="0x9078" />
+      <token name="PATH_JOIN_STYLE_NV" value="0x9079" />
+      <token name="PATH_MITER_LIMIT_NV" value="0x907A" />
+      <token name="PATH_INITIAL_DASH_CAP_NV" value="0x907C" />
+      <token name="PATH_TERMINAL_DASH_CAP_NV" value="0x907D" />
+      <token name="PATH_DASH_OFFSET_NV" value="0x907E" />
+      <token name="PATH_CLIENT_LENGTH_NV" value="0x907F" />
+      <token name="PATH_DASH_OFFSET_RESET_NV" value="0x90B4" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+      <token name="PATH_FILL_MASK_NV" value="0x9081" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+      <token name="PATH_STROKE_COVER_MODE_NV" value="0x9083" />
+      <token name="PATH_STROKE_MASK_NV" value="0x9084" />
+      <token name="PATH_END_CAPS_NV" value="0x9076" />
+      <token name="PATH_DASH_CAPS_NV" value="0x907B" />
+      <token name="PATH_COMMAND_COUNT_NV" value="0x909D" />
+      <token name="PATH_COORD_COUNT_NV" value="0x909E" />
+      <token name="PATH_DASH_ARRAY_COUNT_NV" value="0x909F" />
+      <token name="PATH_COMPUTED_LENGTH_NV" value="0x90A0" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="PATH_FILL_BOUNDING_BOX_NV" value="0x90A1" />
+      <token name="PATH_STROKE_BOUNDING_BOX_NV" value="0x90A2" />
+    </enum>
+    <enum name="PathStringFormat">
+      <token name="PATH_FORMAT_SVG_NV" value="0x9070" />
+      <token name="PATH_FORMAT_PS_NV" value="0x9071" />
+    </enum>
+    <enum name="PathTransformType">
+      <token name="NONE" value="0" />
+      <token name="TRANSLATE_X_NV" value="0x908E" />
+      <token name="TRANSLATE_Y_NV" value="0x908F" />
+      <token name="TRANSLATE_2D_NV" value="0x9090" />
+      <token name="TRANSLATE_3D_NV" value="0x9091" />
+      <token name="AFFINE_2D_NV" value="0x9092" />
+      <token name="AFFINE_3D_NV" value="0x9094" />
+      <token name="TRANSPOSE_AFFINE_2D_NV" value="0x9096" />
+      <token name="TRANSPOSE_AFFINE_3D_NV" value="0x9098" />
+    </enum>
     <enum name="PGI_misc_hints">
       <token name="PREFER_DOUBLEBUFFER_HINT_PGI" value="0x1A1F8" />
       <token name="CONSERVE_MEMORY_HINT_PGI" value="0x1A1FD" />
       <token name="VERTEX23_BIT_PGI" value="0x00000004" />
       <token name="VERTEX4_BIT_PGI" value="0x00000008" />
     </enum>
+    <enum name="PipelineParameterName">
+      <token name="ACTIVE_PROGRAM" value="0x8259" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+    </enum>
     <enum name="PixelCopyType">
       <token name="COLOR" value="0x1800" />
       <token name="COLOR_EXT" value="0x1800" />
       <token name="LINE" value="0x1B01" />
       <token name="POINT" value="0x1B00" />
     </enum>
+    <enum name="PrecisionType">
+      <token name="LOW_FLOAT" value="0x8DF0" />
+      <token name="MEDIUM_FLOAT" value="0x8DF1" />
+      <token name="HIGH_FLOAT" value="0x8DF2" />
+      <token name="LOW_INT" value="0x8DF3" />
+      <token name="MEDIUM_INT" value="0x8DF4" />
+      <token name="HIGH_INT" value="0x8DF5" />
+    </enum>
     <enum name="PrimitiveType">
       <token name="LINES" value="0x0001" />
       <token name="LINES_ADJACENCY" value="0x000A" />
       <token name="TRIANGLE_STRIP_ADJACENCY_ARB" value="0x000D" />
       <token name="TRIANGLE_STRIP_ADJACENCY_EXT" value="0x000D" />
     </enum>
+    <enum name="ProgramInterface">
+      <token name="UNIFORM" value="0x92E1" />
+      <token name="UNIFORM_BLOCK" value="0x92E2" />
+      <token name="PROGRAM_INPUT" value="0x92E3" />
+      <token name="PROGRAM_OUTPUT" value="0x92E4" />
+      <token name="VERTEX_SUBROUTINE" value="0x92E8" />
+      <token name="TESS_CONTROL_SUBROUTINE" value="0x92E9" />
+      <token name="TESS_EVALUATION_SUBROUTINE" value="0x92EA" />
+      <token name="GEOMETRY_SUBROUTINE" value="0x92EB" />
+      <token name="FRAGMENT_SUBROUTINE" value="0x92EC" />
+      <token name="COMPUTE_SUBROUTINE" value="0x92ED" />
+      <token name="VERTEX_SUBROUTINE_UNIFORM" value="0x92EE" />
+      <token name="TESS_CONTROL_SUBROUTINE_UNIFORM" value="0x92EF" />
+      <token name="TESS_EVALUATION_SUBROUTINE_UNIFORM" value="0x92F0" />
+      <token name="GEOMETRY_SUBROUTINE_UNIFORM" value="0x92F1" />
+      <token name="FRAGMENT_SUBROUTINE_UNIFORM" value="0x92F2" />
+      <token name="COMPUTE_SUBROUTINE_UNIFORM" value="0x92F3" />
+      <token name="TRANSFORM_FEEDBACK_VARYING" value="0x92F4" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="BUFFER_VARIABLE" value="0x92E5" />
+      <token name="SHADER_STORAGE_BLOCK" value="0x92E6" />
+    </enum>
+    <enum name="ProgramInterfacePName">
+      <token name="ACTIVE_RESOURCES" value="0x92F5" />
+      <token name="MAX_NAME_LENGTH" value="0x92F6" />
+      <token name="MAX_NUM_ACTIVE_VARIABLES" value="0x92F7" />
+      <token name="MAX_NUM_COMPATIBLE_SUBROUTINES" value="0x92F8" />
+    </enum>
+    <enum name="ProgramParameterPName">
+      <token name="PROGRAM_BINARY_RETRIEVABLE_HINT" value="0x8257" />
+      <token name="PROGRAM_SEPARABLE" value="0x8258" />
+    </enum>
+    <enum name="ProgramPropertyARB">
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="LINK_STATUS" value="0x8B82" />
+      <token name="VALIDATE_STATUS" value="0x8B83" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="ATTACHED_SHADERS" value="0x8B85" />
+      <token name="ACTIVE_ATOMIC_COUNTER_BUFFERS" value="0x92D9" />
+      <token name="ACTIVE_ATTRIBUTES" value="0x8B89" />
+      <token name="ACTIVE_ATTRIBUTE_MAX_LENGTH" value="0x8B8A" />
+      <token name="ACTIVE_UNIFORMS" value="0x8B86" />
+      <token name="ACTIVE_UNIFORM_BLOCKS" value="0x8A36" />
+      <token name="ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" value="0x8A35" />
+      <token name="ACTIVE_UNIFORM_MAX_LENGTH" value="0x8B87" />
+      <token name="COMPUTE_WORK_GROUP_SIZE" value="0x8267" />
+      <token name="PROGRAM_BINARY_LENGTH" value="0x8741" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_MODE" value="0x8C7F" />
+      <token name="TRANSFORM_FEEDBACK_VARYINGS" value="0x8C83" />
+      <token name="TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" value="0x8C76" />
+      <token name="GEOMETRY_VERTICES_OUT" value="0x8916" />
+      <token name="GEOMETRY_INPUT_TYPE" value="0x8917" />
+      <token name="GEOMETRY_OUTPUT_TYPE" value="0x8918" />
+    </enum>
+    <enum name="ProgramStagePName">
+      <token name="ACTIVE_SUBROUTINE_UNIFORMS" value="0x8DE6" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8E47" />
+      <token name="ACTIVE_SUBROUTINES" value="0x8DE5" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" value="0x8E49" />
+      <token name="ACTIVE_SUBROUTINE_MAX_LENGTH" value="0x8E48" />
+    </enum>
+    <enum name="QueryObjectParameterName">
+      <token name="QUERY_RESULT_AVAILABLE" value="0x8867" />
+      <token name="QUERY_RESULT" value="0x8866" />
+      <token name="QUERY_RESULT_NO_WAIT" value="0x9194" />
+      <token name="QUERY_TARGET" value="0x82EA" />
+    </enum>
+    <enum name="QueryParameterName">
+      <token name="CURRENT_QUERY" value="0x8865" />
+      <token name="QUERY_COUNTER_BITS" value="0x8864" />
+    </enum>
+    <enum name="QueryTarget">
+      <token name="SAMPLES_PASSED" value="0x8914" />
+      <token name="ANY_SAMPLES_PASSED" value="0x8C2F" />
+      <token name="ANY_SAMPLES_PASSED_CONSERVATIVE" value="0x8D6A" />
+      <token name="PRIMITIVES_GENERATED" value="0x8C87" />
+      <token name="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" value="0x8C88" />
+      <token name="TIME_ELAPSED" value="0x88BF" />
+    </enum>
     <enum name="ReadBufferMode">
       <token name="AUX0" value="0x0409" />
       <token name="AUX1" value="0x040A" />
       <token name="SCREEN_COORDINATES_REND" value="0x8490" />
       <token name="INVERTED_SCREEN_W_REND" value="0x8491" />
     </enum>
+    <enum name="RenderbufferParameterName">
+      <token name="RENDERBUFFER_WIDTH" value="0x8D42" />
+      <token name="RENDERBUFFER_HEIGHT" value="0x8D43" />
+      <token name="RENDERBUFFER_INTERNAL_FORMAT" value="0x8D44" />
+      <token name="RENDERBUFFER_SAMPLES" value="0x8CAB" />
+      <token name="RENDERBUFFER_RED_SIZE" value="0x8D50" />
+      <token name="RENDERBUFFER_GREEN_SIZE" value="0x8D51" />
+      <token name="RENDERBUFFER_BLUE_SIZE" value="0x8D52" />
+      <token name="RENDERBUFFER_ALPHA_SIZE" value="0x8D53" />
+      <token name="RENDERBUFFER_DEPTH_SIZE" value="0x8D54" />
+      <token name="RENDERBUFFER_STENCIL_SIZE" value="0x8D55" />
+    </enum>
+    <enum name="RenderbufferTarget">
+      <token name="RENDERBUFFER" value="0x8D41" />
+    </enum>
     <enum name="RenderingMode">
       <token name="FEEDBACK" value="0x1C01" deprecated="3.2" />
       <token name="RENDER" value="0x1C00" deprecated="3.2" />
       <token name="4PASS_3_EXT" value="0x80A7" />
       <token name="4PASS_3_SGIS" value="0x80A7" />
     </enum>
+    <enum name="SamplerParameterName">
+      <token name="TEXTURE_WRAP_S" value="0x2802" />
+      <token name="TEXTURE_WRAP_T" value="0x2803" />
+      <token name="TEXTURE_WRAP_R" value="0x8072" />
+      <token name="TEXTURE_MIN_FILTER" value="0x2801" />
+      <token name="TEXTURE_MAG_FILTER" value="0x2800" />
+      <token name="TEXTURE_BORDER_COLOR" value="0x1004" />
+      <token name="TEXTURE_MIN_LOD" value="0x813A" />
+      <token name="TEXTURE_MAX_LOD" value="0x813B" />
+      <token name="TEXTURE_COMPARE_MODE" value="0x884C" />
+      <token name="TEXTURE_COMPARE_FUNC" value="0x884D" />
+    </enum>
     <enum name="SemaphoreParameterName">
       <token name="D3D12_FENCE_VALUE_EXT" value="0x9595" />
     </enum>
       <token name="YCRCB_SGIX" value="0x8318" />
       <token name="YCRCBA_SGIX" value="0x8319" />
     </enum>
+    <enum name="ShaderParameterName">
+      <token name="SHADER_TYPE" value="0x8B4F" />
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="COMPILE_STATUS" value="0x8B81" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="SHADER_SOURCE_LENGTH" value="0x8B88" />
+    </enum>
+    <enum name="ShaderType">
+      <token name="COMPUTE_SHADER" value="0x91B9" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="FRAGMENT_SHADER_ARB" value="0x8B30" />
+      <token name="VERTEX_SHADER_ARB" value="0x8B31" />
+    </enum>
     <enum name="ShadingModel">
       <token name="FLAT" value="0x1D00" deprecated="3.2" />
       <token name="SMOOTH" value="0x1D01" deprecated="3.2" />
       <token name="VERSION" value="0x1F02" />
       <token name="SHADING_LANGUAGE_VERSION" value="0x8B8C" />
     </enum>
+    <enum name="SubroutineParameterName">
+      <token name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A" />
+      <token name="COMPATIBLE_SUBROUTINES" value="0x8E4B" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+    </enum>
     <enum name="SUN_convolution_border_modes">
       <token name="WRAP_BORDER_SUN" value="0x81D4" />
     </enum>
       <token name="UNPACK_CONSTANT_DATA_SUNX" value="0x81D5" />
       <token name="TEXTURE_CONSTANT_DATA_SUNX" value="0x81D6" />
     </enum>
+    <enum name="SyncCondition">
+      <token name="SYNC_GPU_COMMANDS_COMPLETE" value="0x9117" />
+    </enum>
+    <enum name="SyncObjectMask">
+      <token name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001" />
+      <token name="SYNC_FLUSH_COMMANDS_BIT_APPLE" value="0x00000001" />
+    </enum>
+    <enum name="SyncParameterName">
+      <token name="OBJECT_TYPE" value="0x9112" />
+      <token name="SYNC_STATUS" value="0x9114" />
+      <token name="SYNC_CONDITION" value="0x9113" />
+      <token name="SYNC_FLAGS" value="0x9115" />
+    </enum>
+    <enum name="SyncStatus">
+      <token name="ALREADY_SIGNALED" value="0x911A" />
+      <token name="TIMEOUT_EXPIRED" value="0x911B" />
+      <token name="CONDITION_SATISFIED" value="0x911C" />
+      <token name="WAIT_FAILED" value="0x911D" />
+    </enum>
     <enum name="TexCoordPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
     <enum name="TextureGenMode">
       <token name="EYE_DISTANCE_TO_LINE_SGIS" value="0x81F2" />
       <token name="EYE_DISTANCE_TO_POINT_SGIS" value="0x81F0" />
-      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="EYE_LINEAR" value="0x2400" />
       <token name="OBJECT_DISTANCE_TO_LINE_SGIS" value="0x81F3" />
       <token name="OBJECT_DISTANCE_TO_POINT_SGIS" value="0x81F1" />
-      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" />
       <token name="SPHERE_MAP" value="0x2402" deprecated="3.2" />
     </enum>
     <enum name="TextureGenParameter">
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="TextureMagFilter">
       <token name="FILTER4_SGIS" value="0x8146" />
       <token name="DETAIL_TEXTURE_LEVEL_SGIS" value="0x809A" />
       <token name="DETAIL_TEXTURE_MODE_SGIS" value="0x809B" />
       <token name="DUAL_TEXTURE_SELECT_SGIS" value="0x8124" />
-      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="GENERATE_MIPMAP" value="0x8191" />
       <token name="GENERATE_MIPMAP_SGIS" value="0x8191" />
       <token name="POST_TEXTURE_FILTER_BIAS_SGIX" value="0x8179" />
       <token name="POST_TEXTURE_FILTER_SCALE_SGIX" value="0x817A" />
       <token name="TEXTURE_SWIZZLE_RGBA" value="0x8E46" />
       <token name="TEXTURE_TILING_EXT" value="0x9580" />
       <token name="DEPTH_STENCIL_TEXTURE_MODE" value="0x90EA" />
+      <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
+      <token name="SHARPEN_TEXTURE_FUNC_POINTS_SGIS" value="0x80B0" />
+      <token name="TEXTURE_4DSIZE_SGIS" value="0x8136" />
+      <token name="TEXTURE_ALPHA_SIZE" value="0x805F" />
+      <token name="TEXTURE_BASE_LEVEL_SGIS" value="0x813C" />
+      <token name="TEXTURE_BLUE_SIZE" value="0x805E" />
+      <token name="TEXTURE_BORDER" value="0x1005" />
+      <token name="TEXTURE_BORDER_COLOR_NV" value="0x1004" />
+      <token name="TEXTURE_COMPARE_OPERATOR_SGIX" value="0x819B" />
+      <token name="TEXTURE_COMPONENTS" value="0x1003" />
+      <token name="TEXTURE_DEPTH_EXT" value="0x8071" />
+      <token name="TEXTURE_FILTER4_SIZE_SGIS" value="0x8147" />
+      <token name="TEXTURE_GEQUAL_R_SGIX" value="0x819D" />
+      <token name="TEXTURE_GREEN_SIZE" value="0x805D" />
+      <token name="TEXTURE_HEIGHT" value="0x1001" />
+      <token name="TEXTURE_INTENSITY_SIZE" value="0x8061" />
+      <token name="TEXTURE_INTERNAL_FORMAT" value="0x1003" />
+      <token name="TEXTURE_LEQUAL_R_SGIX" value="0x819C" />
+      <token name="TEXTURE_LUMINANCE_SIZE" value="0x8060" />
+      <token name="TEXTURE_MAX_LEVEL_SGIS" value="0x813D" />
+      <token name="TEXTURE_MAX_LOD_SGIS" value="0x813B" />
+      <token name="TEXTURE_MIN_LOD_SGIS" value="0x813A" />
+      <token name="TEXTURE_RED_SIZE" value="0x805C" />
+      <token name="TEXTURE_RESIDENT" value="0x8067" />
+      <token name="TEXTURE_WIDTH" value="0x1000" />
+    </enum>
+    <enum name="TextureStorageMaskAMD">
+      <token name="TEXTURE_STORAGE_SPARSE_BIT_AMD" value="0x00000001" />
     </enum>
     <enum name="TextureTarget">
       <token name="DETAIL_TEXTURE_2D_SGIS" value="0x8095" />
       <token name="TEXTURE_2D_MULTISAMPLE" value="0x9100" />
       <token name="TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9102" />
     </enum>
+    <enum name="TextureUnit">
+      <token name="TEXTURE0" value="0x84C0" />
+      <token name="TEXTURE1" value="0x84C1" />
+      <token name="TEXTURE2" value="0x84C2" />
+      <token name="TEXTURE3" value="0x84C3" />
+      <token name="TEXTURE4" value="0x84C4" />
+      <token name="TEXTURE5" value="0x84C5" />
+      <token name="TEXTURE6" value="0x84C6" />
+      <token name="TEXTURE7" value="0x84C7" />
+      <token name="TEXTURE8" value="0x84C8" />
+      <token name="TEXTURE9" value="0x84C9" />
+      <token name="TEXTURE10" value="0x84CA" />
+      <token name="TEXTURE11" value="0x84CB" />
+      <token name="TEXTURE12" value="0x84CC" />
+      <token name="TEXTURE13" value="0x84CD" />
+      <token name="TEXTURE14" value="0x84CE" />
+      <token name="TEXTURE15" value="0x84CF" />
+      <token name="TEXTURE16" value="0x84D0" />
+      <token name="TEXTURE17" value="0x84D1" />
+      <token name="TEXTURE18" value="0x84D2" />
+      <token name="TEXTURE19" value="0x84D3" />
+      <token name="TEXTURE20" value="0x84D4" />
+      <token name="TEXTURE21" value="0x84D5" />
+      <token name="TEXTURE22" value="0x84D6" />
+      <token name="TEXTURE23" value="0x84D7" />
+      <token name="TEXTURE24" value="0x84D8" />
+      <token name="TEXTURE25" value="0x84D9" />
+      <token name="TEXTURE26" value="0x84DA" />
+      <token name="TEXTURE27" value="0x84DB" />
+      <token name="TEXTURE28" value="0x84DC" />
+      <token name="TEXTURE29" value="0x84DD" />
+      <token name="TEXTURE30" value="0x84DE" />
+      <token name="TEXTURE31" value="0x84DF" />
+    </enum>
     <enum name="TextureWrapMode">
       <token name="CLAMP" value="0x2900" deprecated="3.2" />
       <token name="CLAMP_TO_BORDER" value="0x812D" />
       <token name="CLAMP_TO_EDGE_SGIS" value="0x812F" />
       <token name="REPEAT" value="0x2901" />
     </enum>
+    <enum name="TransformFeedbackPName">
+      <token name="TRANSFORM_FEEDBACK_BUFFER_BINDING" value="0x8C8F" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_START" value="0x8C84" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_SIZE" value="0x8C85" />
+      <token name="TRANSFORM_FEEDBACK_PAUSED" value="0x8E23" />
+      <token name="TRANSFORM_FEEDBACK_ACTIVE" value="0x8E24" />
+    </enum>
+    <enum name="TypeEnum">
+      <token name="QUERY_WAIT" value="0x8E13" />
+      <token name="QUERY_NO_WAIT" value="0x8E14" />
+      <token name="QUERY_BY_REGION_WAIT" value="0x8E15" />
+      <token name="QUERY_BY_REGION_NO_WAIT" value="0x8E16" />
+    </enum>
+    <enum name="UniformBlockPName">
+      <token name="UNIFORM_BLOCK_BINDING" value="0x8A3F" />
+      <token name="UNIFORM_BLOCK_DATA_SIZE" value="0x8A40" />
+      <token name="UNIFORM_BLOCK_NAME_LENGTH" value="0x8A41" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORMS" value="0x8A42" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" value="0x8A43" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" value="0x8A44" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x84F0" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x84F1" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" value="0x8A45" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER" value="0x90EC" />
+    </enum>
+    <enum name="UniformPName">
+      <token name="UNIFORM_TYPE" value="0x8A37" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+      <token name="UNIFORM_BLOCK_INDEX" value="0x8A3A" />
+      <token name="UNIFORM_OFFSET" value="0x8A3B" />
+      <token name="UNIFORM_ARRAY_STRIDE" value="0x8A3C" />
+      <token name="UNIFORM_MATRIX_STRIDE" value="0x8A3D" />
+      <token name="UNIFORM_IS_ROW_MAJOR" value="0x8A3E" />
+      <token name="UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX" value="0x92DA" />
+    </enum>
     <enum name="UseProgramStageMask">
       <token name="VERTEX_SHADER_BIT" value="0x00000001" />
       <token name="VERTEX_SHADER_BIT_EXT" value="0x00000001" />
       <token name="FRAGMENT_SHADER_BIT_EXT" value="0x00000002" />
       <token name="GEOMETRY_SHADER_BIT" value="0x00000004" />
       <token name="GEOMETRY_SHADER_BIT_EXT" value="0x00000004" />
+      <token name="GEOMETRY_SHADER_BIT_OES" value="0x00000004" />
       <token name="TESS_CONTROL_SHADER_BIT" value="0x00000008" />
       <token name="TESS_CONTROL_SHADER_BIT_EXT" value="0x00000008" />
+      <token name="TESS_CONTROL_SHADER_BIT_OES" value="0x00000008" />
       <token name="TESS_EVALUATION_SHADER_BIT" value="0x00000010" />
       <token name="TESS_EVALUATION_SHADER_BIT_EXT" value="0x00000010" />
+      <token name="TESS_EVALUATION_SHADER_BIT_OES" value="0x00000010" />
       <token name="COMPUTE_SHADER_BIT" value="0x00000020" />
       <token name="ALL_SHADER_BITS" value="0xFFFFFFFF" />
       <token name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF" />
     </enum>
+    <enum name="VertexArrayPName">
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_LONG" value="0x874E" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="VERTEX_ATTRIB_RELATIVE_OFFSET" value="0x82D5" />
+    </enum>
+    <enum name="VertexAttribEnum">
+      <token name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" value="0x889F" />
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="CURRENT_VERTEX_ATTRIB" value="0x8626" />
+    </enum>
+    <enum name="VertexAttribPointerType">
+      <token name="BYTE" value="0x1400" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="SHORT" value="0x1402" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="INT" value="0x1404" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="FIXED" value="0x140C" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexAttribType">
+      <token name="BYTE" value="0x1400" />
+      <token name="SHORT" value="0x1402" />
+      <token name="INT" value="0x1404" />
+      <token name="FIXED" value="0x140C" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexBufferObjectParameter">
+      <token name="BUFFER_ACCESS" value="0x88BB" />
+      <token name="BUFFER_ACCESS_FLAGS" value="0x911F" />
+      <token name="BUFFER_IMMUTABLE_STORAGE" value="0x821F" />
+      <token name="BUFFER_MAPPED" value="0x88BC" />
+      <token name="BUFFER_MAP_LENGTH" value="0x9120" />
+      <token name="BUFFER_MAP_OFFSET" value="0x9121" />
+      <token name="BUFFER_SIZE" value="0x8764" />
+      <token name="BUFFER_STORAGE_FLAGS" value="0x8220" />
+      <token name="BUFFER_USAGE" value="0x8765" />
+    </enum>
+    <enum name="VertexBufferObjectUsage">
+      <token name="STREAM_DRAW" value="0x88E0" />
+      <token name="STREAM_READ" value="0x88E1" />
+      <token name="STREAM_COPY" value="0x88E2" />
+      <token name="STATIC_DRAW" value="0x88E4" />
+      <token name="STATIC_READ" value="0x88E5" />
+      <token name="STATIC_COPY" value="0x88E6" />
+      <token name="DYNAMIC_DRAW" value="0x88E8" />
+      <token name="DYNAMIC_READ" value="0x88E9" />
+      <token name="DYNAMIC_COPY" value="0x88EA" />
+    </enum>
     <enum name="VertexPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
       <token name="INT" value="0x1404" />
       <token name="SHORT" value="0x1402" />
     </enum>
+    <enum name="VertexProvokingMode">
+      <token name="FIRST_VERTEX_CONVENTION" value="0x8E4D" />
+      <token name="LAST_VERTEX_CONVENTION" value="0x8E4E" />
+    </enum>
     <enum name="WIN_phong_shading">
       <token name="PHONG_WIN" value="0x80EA" />
       <token name="PHONG_HINT_WIN" value="0x80EB" />
       <returns type="void" />
     </function>
     <function name="AlphaFuncxOES" category="OES_fixed_point" extension="OES">
-      <param name="func" type="GLenum" flow="in" />
+      <param name="func" type="AlphaFunction" flow="in" />
       <param name="ref" type="ClampedFixed" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BeginQueryIndexed" category="ARB_transform_feedback3" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BeginTransformFeedbackEXT" category="EXT_transform_feedback" extension="EXT">
-      <param name="primitiveMode" type="GLenum" flow="in" />
+      <param name="primitiveMode" type="PrimitiveType" flow="in" />
       <returns type="void" />
     </function>
     <function name="BeginTransformFeedbackNV" category="NV_transform_feedback" extension="NV">
-      <param name="primitiveMode" type="GLenum" flow="in" />
+      <param name="primitiveMode" type="PrimitiveType" flow="in" />
       <returns type="void" />
     </function>
     <function name="BeginVertexShaderEXT" category="EXT_vertex_shader" extension="EXT">
       <returns type="void" />
     </function>
     <function name="BindBufferBase" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBaseEXT" category="EXT_transform_feedback" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBaseNV" category="NV_transform_feedback" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferOffsetEXT" category="EXT_transform_feedback" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferOffsetNV" category="NV_transform_feedback" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRangeEXT" category="EXT_transform_feedback" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRangeNV" category="NV_transform_feedback" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBuffersBase" category="ARB_multi_bind" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BindBuffersRange" category="ARB_multi_bind" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
+      <param name="format" type="InternalFormat" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindImageTextureEXT" category="EXT_shader_image_load_store" extension="EXT">
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <param name="format" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="GLuint" />
     </function>
     <function name="BindTransformFeedback" category="ARB_transform_feedback2" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BindTransformFeedbackTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="ARB_imaging" extension="Core">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationEXT" category="EXT_blend_minmax" extension="EXT">
     </function>
     <function name="BlendEquationiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationIndexedAMD" category="AMD_draw_buffers_blend" extension="AMD">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateEXT" category="EXT_blend_equation_separate" extension="EXT">
     </function>
     <function name="BlendEquationSeparateiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateIndexedAMD" category="AMD_draw_buffers_blend" extension="AMD">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunciARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncIndexedAMD" category="AMD_draw_buffers_blend" extension="AMD">
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateEXT" category="EXT_blend_func_separate" extension="EXT">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateIndexedAMD" category="AMD_draw_buffers_blend" extension="AMD">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateINGR" category="INGR_blend_func_separate" extension="INGR">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendParameteriNV" category="NV_blend_equation_advanced" extension="NV">
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlitFramebufferEXT" category="EXT_framebuffer_blit" extension="EXT">
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlitNamedFramebuffer" category="ARB_direct_state_access" extension="Core">
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferAddressRangeNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <returns type="void" />
     </function>
     <function name="BufferStorage" category="ARB_buffer_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferStorageExternalEXT" category="EXT_external_buffer" extension="EXT">
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="clientBuffer" type="GLeglClientBufferEXT" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferStorageMemEXT" category="EXT_memory_object" extension="EXT">
     </function>
     <function name="CheckFramebufferStatus" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="CheckFramebufferStatusEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="CheckNamedFramebufferStatus" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
-      <returns type="GLenum" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="CheckNamedFramebufferStatusEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="framebuffer" type="Framebuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferData" category="ARB_clear_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferSubData" category="ARB_clear_buffer_object" extension="Core">
       <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClearNamedBufferData" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedBufferDataEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
     </function>
     <function name="ClearNamedBufferSubData" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClearNamedFramebufferfi" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
     </function>
     <function name="ClearNamedFramebufferfv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferiv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferuiv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLuint *" flow="in" />
       <returns type="void" />
     <function name="ClearTexImage" category="ARB_clear_texture" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClientWaitSync" category="ARB_sync" extension="Core">
       <param name="sync" type="sync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="ClipControl" category="ARB_clip_control" extension="Core">
-      <param name="origin" type="GLenum" flow="in" />
-      <param name="depth" type="GLenum" flow="in" />
+      <param name="origin" type="ClipControlOrigin" flow="in" />
+      <param name="depth" type="ClipControlDepth" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClipPlanefOES" category="OES_single_precision" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfloat *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="ClipPlanexOES" category="OES_fixed_point" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="ColorP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="ColorP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="ColorTable" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ColorTableEXT" category="EXT_paletted_texture" extension="EXT">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="internalFormat" type="PixelInternalFormat" flow="in" />
+      <param name="internalFormat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ColorTableParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="ColorTableParameterPName" flow="in" />
+      <param name="pname" type="ColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="CheckedFloat32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ColorTableParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="ColorTableParameterPName" flow="in" />
+      <param name="pname" type="ColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="CheckedInt32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ColorTableSGI" category="SGI_color_table" extension="SGI">
       <param name="target" type="ColorTableTargetSGI" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="CompressedTexImage1DARB" category="ARB_texture_compression" extension="ARB">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
     <function name="CompressedTexImage2DARB" category="ARB_texture_compression" extension="ARB">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CompressedTexImage3DARB" category="ARB_texture_compression" extension="ARB">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionFilter1D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ConvolutionFilter1DEXT" category="EXT_convolution" extension="EXT">
       <param name="target" type="ConvolutionTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ConvolutionFilter2D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="ConvolutionFilter2DEXT" category="EXT_convolution" extension="EXT">
       <param name="target" type="ConvolutionTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="ConvolutionParameterf" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedFloat32" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="ConvolutionParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedFloat32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ConvolutionParameteri" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedInt32" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="ConvolutionParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedInt32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="ConvolutionParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTargetEXT" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTargetEXT" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubData" category="ARB_copy_buffer" extension="Core">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     </function>
     <function name="CopyColorTable" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyColorTableSGI" category="SGI_color_table" extension="SGI">
       <param name="target" type="ColorTableTargetSGI" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter1D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter1DEXT" category="EXT_convolution" extension="EXT">
       <param name="target" type="ConvolutionTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter2D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter2DEXT" category="EXT_convolution" extension="EXT">
       <param name="target" type="ConvolutionTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyImageSubData" category="ARB_copy_image" extension="Core">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
     </function>
     <function name="CopyImageSubDataNV" category="NV_copy_image" extension="NV">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="CopyTexImage1DEXT" category="EXT_copy_texture" extension="EXT">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="CopyTexImage2DEXT" category="EXT_copy_texture" extension="EXT">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CoverageModulationTableNV" category="NV_framebuffer_mixed_samples" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="v" type="GLfloat *" flow="in" />
+      <param name="v" type="GLfloat *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="CoverFillPathInstancedNV" category="NV_path_rendering" extension="NV">
     </function>
     <function name="CreateBuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="buffers" type="GLuint *" flow="out" />
+      <param name="buffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateCommandListsNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="lists" type="GLuint *" flow="out" />
+      <param name="lists" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateFramebuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="framebuffers" type="GLuint *" flow="out" />
+      <param name="framebuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateMemoryObjectsEXT" category="EXT_memory_object" extension="EXT">
     </function>
     <function name="CreateProgramPipelines" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="pipelines" type="GLuint *" flow="out" />
+      <param name="pipelines" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateQueries" category="ARB_direct_state_access" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateRenderbuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="renderbuffers" type="GLuint *" flow="out" />
+      <param name="renderbuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSamplers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="samplers" type="GLuint *" flow="out" />
+      <param name="samplers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateShaderObjectARB" category="ARB_shader_objects" extension="ARB">
-      <param name="shaderType" type="GLenum" flow="in" />
+      <param name="shaderType" type="ShaderType" flow="in" />
       <returns type="handleARB" />
     </function>
     <function name="CreateShaderProgramEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="string" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShaderProgramv" category="ARB_separate_shader_objects" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShaderProgramvEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
     </function>
     <function name="CreateStatesNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="states" type="GLuint *" flow="out" />
+      <param name="states" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSyncFromCLeventARB" category="ARB_cl_event" extension="ARB">
       <returns type="sync" />
     </function>
     <function name="CreateTextures" category="ARB_direct_state_access" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="textures" type="GLuint *" flow="out" />
+      <param name="textures" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTransformFeedbacks" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateVertexArrays" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="arrays" type="GLuint *" flow="out" />
+      <param name="arrays" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CullParameterdvEXT" category="EXT_cull_vertex" extension="EXT">
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControlARB" category="ARB_debug_output" extension="ARB">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControlKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" />
       <param name="enabled" type="GLboolean" flow="in" />
     </function>
     <function name="DebugMessageEnableAMD" category="AMD_debug_output" extension="AMD">
       <param name="category" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertAMD" category="AMD_debug_output" extension="AMD">
       <param name="category" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="length" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertARB" category="ARB_debug_output" extension="ARB">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="length" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="DeleteCommandListsNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="lists" type="GLuint *" flow="in" />
+      <param name="lists" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteFencesAPPLE" category="APPLE_fence" extension="APPLE">
       <param name="ids" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
+    <function name="DeleteQueryResourceTagNV" category="NV_query_resource_tag" extension="NV">
+      <param name="n" type="GLsizei" flow="in" />
+      <param name="tagIds" type="GLint *" flow="in" count="n" />
+      <returns type="void" />
+    </function>
     <function name="DeleteRenderbuffers" category="ARB_framebuffer_object" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
       <param name="renderbuffers" type="GLuint *" flow="in" count="n" />
     </function>
     <function name="DeleteSemaphoresEXT" category="EXT_semaphore" extension="EXT">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="semaphores" type="GLuint *" flow="in" count="count" />
+      <param name="semaphores" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteStatesNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="states" type="GLuint *" flow="in" />
+      <param name="states" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteSync" category="ARB_sync" extension="Core">
       <returns type="void" />
     </function>
     <function name="DisableIndexedEXT" category="EXT_direct_state_access|EXT_draw_buffers2" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="DrawElementsIndirect" category="ARB_draw_indirect" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="DrawElementsInstancedBaseInstance" category="ARB_base_instance" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="baseinstance" type="GLuint" flow="in" />
     <function name="DrawElementsInstancedBaseVertexBaseInstance" category="ARB_base_instance" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="basevertex" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="EnableIndexedEXT" category="EXT_direct_state_access|EXT_draw_buffers2" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQueryARB" category="ARB_occlusion_query" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="EndQueryIndexed" category="ARB_transform_feedback3" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FenceSync" category="ARB_sync" extension="Core">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="sync" />
     </function>
       <returns type="void" />
     </function>
     <function name="FlushMappedBufferRangeAPPLE" category="APPLE_flush_buffer_range" extension="APPLE">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="FogxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="FogxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FramebufferParameteri" category="ARB_framebuffer_no_attachments" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FramebufferSampleLocationsfvARB" category="ARB_sample_locations" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="start" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferSampleLocationsfvNV" category="NV_sample_locations" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="start" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferSamplePositionsfvAMD" category="AMD_framebuffer_sample_positions" extension="AMD">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numsamples" type="GLuint" flow="in" />
       <param name="pixelindex" type="GLuint" flow="in" />
       <param name="values" type="GLfloat *" flow="in" />
     <function name="FramebufferTexture1D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture1DEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture2D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture2DEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture3D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
     <function name="FramebufferTexture3DEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="ARB_framebuffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmapEXT" category="EXT_framebuffer_object" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMultiTexMipmapEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
+    <function name="GenQueryResourceTagNV" category="NV_query_resource_tag" extension="NV">
+      <param name="n" type="GLsizei" flow="in" />
+      <param name="tagIds" type="GLint *" flow="out" count="n" />
+      <returns type="void" />
+    </function>
     <function name="GenRenderbuffers" category="ARB_framebuffer_object" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
       <param name="renderbuffers" type="GLuint *" flow="out" count="n" />
     </function>
     <function name="GenSemaphoresEXT" category="EXT_semaphore" extension="EXT">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="semaphores" type="GLuint *" flow="out" count="count" />
+      <param name="semaphores" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="GenSymbolsEXT" category="EXT_vertex_shader" extension="EXT">
     <function name="GetActiveAtomicCounterBufferiv" category="ARB_shader_atomic_counters" extension="Core">
       <param name="program" type="GLuint" flow="in" />
       <param name="bufferIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="AtomicCounterBufferPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="maxLength" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLcharARB *" flow="out" count="maxLength" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineName" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetActiveSubroutineUniformiv" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SubroutineParameterName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineUniformName" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="maxLength" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLcharARB *" flow="out" count="maxLength" />
       <returns type="void" />
     </function>
     <function name="GetActiveUniformBlockiv" category="ARB_uniform_buffer_object" extension="Core">
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformBlockIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformBlockPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(program,uniformBlockIndex,pname)" />
       <returns type="void" />
     </function>
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformCount" type="GLsizei" flow="in" />
       <param name="uniformIndices" type="GLuint *" flow="in" count="uniformCount" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(uniformCount,pname)" />
       <returns type="void" />
     </function>
       <returns type="GLint" />
     </function>
     <function name="GetBooleanIndexedvEXT" category="EXT_direct_state_access|EXT_draw_buffers2" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="Boolean *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetBufferParameterui64vNV" category="NV_shader_buffer_load" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="pname" type="GLenum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetClipPlanefOES" category="OES_single_precision" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfloat *" flow="out" count="4" />
       <returns type="void" />
     </function>
     <function name="GetClipPlanexOES" category="OES_fixed_point" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="out" count="4" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetColorTableParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetColorTableParameterfvEXT" category="EXT_paletted_texture" extension="EXT">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetColorTableParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetColorTableParameterivEXT" category="EXT_paletted_texture" extension="EXT">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetConvolutionParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="GetConvolutionParameterPName" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetConvolutionParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="GetConvolutionParameterPName" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetDebugMessageLog" category="KHR_debug" extension="Core">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
       <param name="count" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="categories" type="GLenum *" flow="out" count="count" />
-      <param name="severities" type="GLuint *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="message" type="GLchar *" flow="out" count="bufsize" />
     <function name="GetDebugMessageLogARB" category="ARB_debug_output" extension="ARB">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     <function name="GetDebugMessageLogKHR" category="KHR_debug" extension="KHR">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
       <returns type="void" />
     </function>
     <function name="GetDoublei_v" category="ARB_viewport_array" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLdouble *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetFixedvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferAttachmentParameteriv" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferAttachmentParameterivEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferParameterfvAMD" category="AMD_framebuffer_sample_positions" extension="AMD">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="numsamples" type="GLuint" flow="in" />
       <param name="pixelindex" type="GLuint" flow="in" />
       <param name="size" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferParameteriv" category="ARB_framebuffer_no_attachments" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatus" category="KHR_robustness" extension="Core">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusARB" category="ARB_robustness" extension="ARB">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusKHR" category="KHR_robustness" extension="KHR">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetHandleARB" category="ARB_shader_objects" extension="ARB">
       <param name="pname" type="GLenum" flow="in" />
       <returns type="handleARB" />
     </function>
     <function name="GetHistogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetHistogramParameterfv" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
-      <param name="pname" type="GetHistogramParameterPName" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetHistogramParameteriv" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
-      <param name="pname" type="GetHistogramParameterPName" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetHistogramParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="GLboolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <returns type="GLuint64" />
     </function>
     <function name="GetImageHandleNV" category="NV_bindless_texture" extension="NV">
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <returns type="GLuint64" />
     </function>
     <function name="GetImageTransformParameterfvHP" category="HP_image_transform" extension="HP">
       <returns type="GLint" />
     </function>
     <function name="GetInteger64v" category="ARB_sync" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetInternalformati64v" category="ARB_internalformat_query2" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetInternalformativ" category="ARB_internalformat_query" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetInternalformatSampleivNV" category="NV_internalformat_sample_query" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetLightxOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetLightxvOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetMapxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="GetMapQuery" flow="in" />
       <param name="v" type="GLfixed *" flow="out" count="COMPSIZE(query)" />
       <returns type="void" />
     </function>
     <function name="GetMaterialxOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetMaterialxvOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetMinmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetMinmaxParameterfv" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="pname" type="GetMinmaxParameterPName" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="pname" type="GetMinmaxParameterPNameEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetMinmaxParameteriv" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="pname" type="GetMinmaxParameterPName" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="pname" type="GetMinmaxParameterPNameEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetMultisamplefv" category="ARB_texture_multisample" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetMultisamplePNameNV" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="val" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteri64v" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedBufferPointerv" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferAttachmentParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetFramebufferParameter" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedProgramivEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="program" type="GLuint" flow="in" />
       <param name="target" type="ProgramTarget" flow="in" />
-      <param name="pname" type="ProgramProperty" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedRenderbufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetnColorTableARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ColorTableTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="table" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnCompressedTexImageARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="lod" type="GLint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="img" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnConvolutionFilterARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="image" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnHistogramARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapdvARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLdouble *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapfvARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapivARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMinmaxARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapfvARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLfloat *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapuivARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLuint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapusvARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLushort *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnSeparableFilterARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="rowBufSize" type="GLsizei" flow="in" />
       <param name="row" type="void *" flow="out" count="rowBufSize" />
       <param name="columnBufSize" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetnTexImageARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="img" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <param name="queryHandle" type="GLuint" flow="in" />
       <param name="flags" type="GLuint" flow="in" />
       <param name="dataSize" type="GLsizei" flow="in" />
-      <param name="data" type="GLvoid *" flow="out" />
+      <param name="data" type="void *" flow="out" />
       <param name="bytesWritten" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetPixelMapxv" category="OES_fixed_point" extension="Core">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="size" type="GLint" flow="in" />
       <param name="values" type="GLfixed *" flow="out" count="size" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetPixelTransformParameterfvEXT" category="EXT_pixel_transform" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="pname" type="GLenum" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetPixelTransformParameterivEXT" category="EXT_pixel_transform" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="pname" type="GLenum" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramInterfaceiv" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
+      <param name="pname" type="ProgramInterfacePName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramPipelineiv" category="ARB_separate_shader_objects" extension="Core">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramPipelineivEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourcefvNV" category="NV_path_rendering" extension="NV">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" />
     </function>
     <function name="GetProgramResourceIndex" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLuint" />
     </function>
     <function name="GetProgramResourceiv" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" count="propCount" />
     </function>
     <function name="GetProgramResourceLocation" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceLocationIndex" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceName" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetProgramStageiv" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="pname" type="ProgramStagePName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjecti64v" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectiv" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectui64v" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectuiv" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryIndexediv" category="ARB_transform_feedback3" extension="Core">
       <param name="target" type="GLenum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryivARB" category="ARB_occlusion_query" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjecti64v" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjecti64vEXT" category="EXT_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectivARB" category="ARB_occlusion_query" extension="ARB">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64v" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64vEXT" category="EXT_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectuivARB" category="ARB_occlusion_query" extension="ARB">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameterivEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterfv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameteriv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetSeparableFilter" category="ARB_imaging" extension="Core">
-      <param name="target" type="SeparableTarget" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <param name="row" type="void *" flow="out" count="COMPSIZE(target,format,type)" />
       <returns type="void" />
     </function>
     <function name="GetShaderPrecisionFormat" category="ARB_ES2_compatibility" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="precisiontype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="precisiontype" type="PrecisionType" flow="in" />
       <param name="range" type="GLint *" flow="out" count="2" />
       <param name="precision" type="GLint *" flow="out" count="1" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetStageIndexNV" category="NV_command_list" extension="NV">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <returns type="GLushort" />
     </function>
     <function name="GetSubroutineIndex" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="GetSubroutineUniformLocation" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLint" />
     </function>
     <function name="GetSynciv" category="ARB_sync" extension="Core">
       <param name="sync" type="sync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetTexEnvxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetTexGenxvOES" category="OES_fixed_point" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexLevelParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetTexParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTextureImage" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetTextureLevelParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureLevelParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterIiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterIuiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki_v" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki64_v" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbackiv" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="BufferOffset" />
     </function>
     <function name="GetUniformSubroutineuiv" category="ARB_shader_subroutine" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="location" type="GLint" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="1" />
       <returns type="void" />
     <function name="GetVertexArrayIndexed64iv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexediv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIntegeri_vEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIntegervEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayiv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayPointeri_vEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="void **" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayPointervEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="void **" flow="out" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetVertexAttribLdv" category="ARB_vertex_attrib_64bit" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLdouble *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLdvEXT" category="EXT_vertex_attrib_64bit" extension="EXT">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLdouble *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLi64vNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLui64vARB" category="ARB_bindless_texture" extension="ARB">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLui64vNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="Histogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="HistogramEXT" category="EXT_histogram" extension="EXT">
       <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="InvalidateFramebuffer" category="ARB_invalidate_subdata" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
       <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
       <returns type="void" />
     <function name="InvalidateNamedFramebufferData" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferSubData" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="InvalidateSubFramebuffer" category="ARB_invalidate_subdata" extension="Core">
       <param name="target" type="GLenum" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" count="numAttachments" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="GLboolean" />
     </function>
     <function name="IsEnabledIndexedEXT" category="EXT_direct_state_access|EXT_draw_buffers2" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
       <returns type="void" />
     </function>
     <function name="LightModelxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="LightModelxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="LightxOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="LightxvOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="Map1xOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
       <param name="u1" type="GLfixed" flow="in" />
       <param name="u2" type="GLfixed" flow="in" />
       <param name="stride" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="Map2xOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
       <param name="u1" type="GLfixed" flow="in" />
       <param name="u2" type="GLfixed" flow="in" />
       <param name="ustride" type="GLint" flow="in" />
     </function>
     <function name="MapNamedBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="VertexBufferObjectAccess" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRange" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="BufferSize" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRangeEXT" category="EXT_direct_state_access" extension="EXT">
       <returns type="void" />
     </function>
     <function name="MaterialxOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MaterialxvOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
-    <function name="MatrixFrustumEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixFrustumEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="left" type="GLdouble" flow="in" />
       <param name="right" type="GLdouble" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoaddEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoaddEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadfEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadfEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadIdentityEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadIdentityEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadTransposedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadTransposedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadTransposefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadTransposefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultdEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultdEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultfEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultfEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultTransposedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultTransposedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultTransposefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultTransposefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixOrthoEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixOrthoEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="left" type="GLdouble" flow="in" />
       <param name="right" type="GLdouble" flow="in" />
       <param name="zFar" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixPopEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixPopEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixPushEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixPushEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixRotatedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixRotatedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="angle" type="GLdouble" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixRotatefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixRotatefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="angle" type="GLfloat" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="z" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixScaledEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixScaledEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="y" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixScalefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixScalefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="y" type="GLfloat" flow="in" />
       <param name="z" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixTranslatedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixTranslatedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="y" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixTranslatefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixTranslatefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="y" type="GLfloat" flow="in" />
       <param name="count" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MaxShaderCompilerThreadsKHR" category="KHR_parallel_shader_compile" extension="KHR">
+      <param name="count" type="GLuint" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="MemoryBarrier" category="ARB_shader_image_load_store" extension="Core">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrierByRegion" category="ARB_ES3_1_compatibility" extension="Core">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrierEXT" category="EXT_shader_image_load_store" extension="EXT">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="MemoryObjectParameterivEXT" category="EXT_memory_object" extension="EXT">
       <returns type="void" />
     </function>
     <function name="Minmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="MinmaxEXT" category="EXT_histogram" extension="EXT">
       <param name="target" type="MinmaxTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
       <param name="filter" type="GLenum" flow="in" />
       <returns type="void" />
     </function>
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
-      <param name="data" type="GLvoid *" flow="in" />
+      <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="MulticastCopyBufferSubDataNV" category="NV_gpu_multicast" extension="NV">
     </function>
     <function name="MultiDrawElementsIndirect" category="ARB_multi_draw_indirect" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" count="COMPSIZE(drawcount,stride)" />
       <param name="drawcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectAMD" category="AMD_multi_draw_indirect" extension="AMD">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="primcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectBindlessCountNV" category="NV_bindless_multi_draw_indirect_count" extension="NV">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawCount" type="GLsizei" flow="in" />
       <param name="maxDrawCount" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectBindlessNV" category="NV_bindless_multi_draw_indirect" extension="NV">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawCount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectCountARB" category="ARB_indirect_parameters" extension="ARB">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawcount" type="GLintptr" flow="in" />
       <param name="maxdrawcount" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="2" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="2" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <param name="r" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="3" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <param name="r" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="3" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <param name="r" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="4" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <param name="r" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" />
-      <param name="usage" type="GLenum" flow="in" />
+      <param name="usage" type="VertexBufferObjectUsage" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferDataEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorageEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorageExternalEXT" category="EXT_external_buffer" extension="EXT">
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="clientBuffer" type="GLeglClientBufferEXT" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorageMemEXT" category="EXT_memory_object" extension="EXT">
     </function>
     <function name="NamedFramebufferDrawBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buf" type="GLenum" flow="in" />
+      <param name="buf" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferDrawBuffers" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="bufs" type="GLenum *" flow="in" />
+      <param name="bufs" type="ColorBuffer *" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferParameteri" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="NamedFramebufferReadBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
+      <param name="src" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferRenderbuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="renderbuffertarget" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="renderbuffertarget" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="NamedFramebufferTexture" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTextureLayer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="layer" type="GLint" flow="in" />
     </function>
     <function name="NamedRenderbufferStorage" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedRenderbufferStorageEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisampleEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="NormalP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NormalP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="KHR_debug" extension="Core">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="ObjectLabelKHR" category="KHR_debug" extension="KHR">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="PatchParameterfv" category="ARB_tessellation_shader" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="values" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="PatchParameteri" category="ARB_tessellation_shader" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <param name="firstPathName" type="GLuint" flow="in" />
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="firstGlyphIndex" type="GLuint" flow="in" />
       <param name="numGlyphs" type="GLsizei" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
     <function name="PathGlyphIndexRangeNV" category="NV_path_rendering" extension="NV">
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
       <param name="emScale" type="GLfloat" flow="in" />
       <param name="baseAndCount" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="PixelMapx" category="OES_fixed_point" extension="Core">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="size" type="GLint" flow="in" />
       <param name="values" type="GLfixed *" flow="in" count="size" />
       <returns type="void" />
     </function>
     <function name="PixelStorex" category="OES_fixed_point" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PixelStoreParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="PixelTransferxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PixelTransferParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="PointParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="PointParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="ProvokingVertex" category="ARB_provoking_vertex" extension="Core">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="VertexProvokingMode" flow="in" />
       <returns type="void" />
     </function>
     <function name="ProvokingVertexEXT" category="EXT_provoking_vertex" extension="EXT">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="VertexProvokingMode" flow="in" />
       <returns type="void" />
     </function>
     <function name="PushClientAttribDefaultEXT" category="EXT_direct_state_access" extension="EXT">
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroupKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" />
     </function>
     <function name="QueryCounter" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="QueryMatrixxOES" category="OES_query_matrix" extension="OES">
       <returns type="GLbitfield" />
     </function>
     <function name="QueryObjectParameteruiAMD" category="AMD_occlusion_query_event" extension="AMD">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="pname" type="GLenum" flow="in" />
       <param name="param" type="OcclusionQueryEventMaskAMD" flow="in" />
       <returns type="void" />
     </function>
+    <function name="QueryResourceNV" category="NV_query_resource" extension="NV">
+      <param name="queryType" type="GLenum" flow="in" />
+      <param name="tagId" type="GLint" flow="in" />
+      <param name="bufSize" type="GLuint" flow="in" />
+      <param name="buffer" type="GLint *" flow="out" />
+      <returns type="GLint" />
+    </function>
+    <function name="QueryResourceTagNV" category="NV_query_resource_tag" extension="NV">
+      <param name="tagId" type="GLint" flow="in" />
+      <param name="tagString" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="RasterPos2xOES" category="OES_fixed_point" extension="OES">
       <param name="x" type="GLfixed" flow="in" />
       <param name="y" type="GLfixed" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorage" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageEXT" category="EXT_framebuffer_object" extension="EXT">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisample" category="ARB_framebuffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleEXT" category="EXT_framebuffer_multisample" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="ResetHistogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="ResetHistogramEXT" category="EXT_histogram" extension="EXT">
       <returns type="void" />
     </function>
     <function name="ResetMinmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="ResetMinmaxEXT" category="EXT_histogram" extension="EXT">
     </function>
     <function name="SamplerParameterf" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterfv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteri" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteriv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="SecondaryColorFormatNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="SeparableFilter2D" category="ARB_imaging" extension="Core">
-      <param name="target" type="SeparableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="SeparableFilter2DEXT" category="EXT_convolution" extension="EXT">
       <param name="target" type="SeparableTargetEXT" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="TexBufferARB" category="ARB_texture_buffer_object" extension="ARB">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferEXT" category="EXT_texture_buffer_object" extension="EXT">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferRange" category="ARB_texture_buffer_range" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="TexEnvxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexEnvxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="TexGenxOES" category="OES_fixed_point" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexGenxvOES" category="OES_fixed_point" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexImage2DMultisample" category="ARB_texture_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage2DMultisampleCoverageNV" category="NV_texture_multisample" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
     <function name="TexImage3DEXT" category="EXT_texture3D" extension="EXT">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DMultisample" category="ARB_texture_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DMultisampleCoverageNV" category="NV_texture_multisample" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
     <function name="TexImage4DSGIS" category="SGIS_texture4D" extension="SGIS">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="TexStorage1D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DMultisample" category="ARB_texture_storage_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisample" category="ARB_texture_storage_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorageSparseAMD" category="AMD_sparse_texture" extension="AMD">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalFormat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalFormat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="layers" type="GLsizei" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="TextureStorageMaskAMD" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexSubImage1DEXT" category="EXT_subtexture" extension="EXT">
     </function>
     <function name="TextureBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferRange" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     <function name="TextureBufferRangeEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     </function>
     <function name="TextureImage2DMultisampleCoverageNV" category="NV_texture_multisample" extension="NV">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
     </function>
     <function name="TextureImage2DMultisampleNV" category="NV_texture_multisample" extension="NV">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureImage3DMultisampleCoverageNV" category="NV_texture_multisample" extension="NV">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
     </function>
     <function name="TextureImage3DMultisampleNV" category="NV_texture_multisample" extension="NV">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <param name="internalFormat" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="TextureParameterf" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameteri" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterIiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterIuiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage1D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage2D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="TextureStorage2DMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="GLboolean" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
     <function name="TextureStorage3D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="TextureStorage3DMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="TextureStorageSparseAMD" category="AMD_sparse_texture" extension="AMD">
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
-      <param name="internalFormat" type="GLenum" flow="in" />
+      <param name="internalFormat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="layers" type="GLsizei" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="TextureStorageMaskAMD" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureSubImage1D" category="ARB_direct_state_access" extension="Core">
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureView" category="ARB_texture_view" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="UniformSubroutinesuiv" category="ARB_shader_subroutine" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="indices" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="UseProgramStages" category="ARB_separate_shader_objects" extension="Core">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="UseProgramStagesEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="normalized" type="GLboolean" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribIPointerEXT" category="NV_vertex_program4" extension="EXT">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="VertexAttribEnum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="COMPSIZE(size,type,stride)" />
       <returns type="void" />
     <function name="VertexAttribLFormat" category="ARB_vertex_attrib_binding" extension="Core">
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLFormatNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLPointer" category="ARB_vertex_attrib_64bit" extension="Core">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="size" />
       <returns type="void" />
     <function name="VertexAttribLPointerEXT" category="EXT_vertex_attrib_64bit" extension="EXT">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="size" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexFormatNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BlendFunc" category="VERSION_1_0" extension="Core" version="1.0">
-      <param name="sfactor" type="BlendingFactorSrc" flow="in" />
-      <param name="dfactor" type="BlendingFactorDest" flow="in" />
+      <param name="sfactor" type="BlendingFactor" flow="in" />
+      <param name="dfactor" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="CallList" category="VERSION_1_0" extension="Core" version="1.0" deprecated="3.2">
     <function name="TexImage1D" category="VERSION_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     <function name="TexImage2D" category="VERSION_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CopyTexImage1D" category="VERSION_1_1" extension="Core" version="1.1">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="CopyTexImage2D" category="VERSION_1_1" extension="Core" version="1.1">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="TexImage3D" category="VERSION_1_2" extension="Core" version="1.2">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="CompressedTexImage1D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
     <function name="CompressedTexImage2D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CompressedTexImage3D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <token name="TEXTURE_FILTER_CONTROL" value="0x8500" deprecated="3.2" />
       <token name="DEPTH_TEXTURE_MODE" value="0x884B" deprecated="3.2" />
       <token name="COMPARE_R_TO_TEXTURE" value="0x884E" deprecated="3.2" />
-      <token name="FUNC_ADD" value="0x8006" />
-      <token name="FUNC_SUBTRACT" value="0x800A" />
-      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
-      <token name="MIN" value="0x8007" />
-      <token name="MAX" value="0x8008" />
+      <token name="BLEND_COLOR" value="0x8005" />
+      <token name="BLEND_EQUATION" value="0x8009" />
       <token name="CONSTANT_COLOR" value="0x8001" />
       <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
       <token name="CONSTANT_ALPHA" value="0x8003" />
       <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
+      <token name="MIN" value="0x8007" />
+      <token name="MAX" value="0x8008" />
     </enum>
     <function name="BlendColor" category="VERSION_1_4" extension="Core" version="1.4">
       <param name="red" type="ColorF" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="VERSION_1_4" extension="Core" version="1.4">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparate" category="VERSION_1_4" extension="Core" version="1.4">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="FogCoordd" category="VERSION_1_4" extension="Core" version="1.4" deprecated="3.2">
       <token name="SRC2_ALPHA" value="0x858A" deprecated="3.2" />
     </enum>
     <function name="BeginQuery" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQuery" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenBuffers" category="VERSION_1_5" extension="Core" version="1.5">
       <returns type="void" />
     </function>
     <function name="GetQueryiv" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectiv" category="VERSION_1_5" extension="Core" version="1.5">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectuiv" category="VERSION_1_5" extension="Core" version="1.5">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="GLuint" />
     </function>
     <function name="CreateShader" category="VERSION_2_0" extension="Core" version="2.0">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="DeleteProgram" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramiv" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetShaderiv" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="shader" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ShaderParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BeginTransformFeedback" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="primitiveMode" type="GLenum" flow="in" />
+      <param name="primitiveMode" type="PrimitiveType" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBase" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="CheckFramebufferStatus" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="ClampColor" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="ClampColorTargetARB" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLfloat *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferiv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferuiv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="Disablei" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="Enablei" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture1D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture2D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture3D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenFramebuffers" category="VERSION_3_0" extension="Core" version="3.0">
       <returns type="void" />
     </function>
     <function name="GetBooleani_v" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="Boolean *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     <function name="GetFramebufferAttachmentParameteriv" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetStringi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="name" type="GLenum" flow="in" />
+      <param name="name" type="StringName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="String" />
     </function>
       <returns type="void" />
     </function>
     <function name="IsEnabledi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
     </function>
     <function name="RenderbufferStorage" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisample" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="VertexAttribIPointer" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="VertexAttribEnum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="COMPSIZE(size,type,stride)" />
       <returns type="void" />
       <token name="INVALID_INDEX" value="0xFFFFFFFF" />
     </enum>
     <function name="BindBufferBase" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubData" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     <function name="GetActiveUniformBlockiv" category="VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformBlockIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformBlockPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(program,uniformBlockIndex,pname)" />
       <returns type="void" />
     </function>
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformCount" type="GLsizei" flow="in" />
       <param name="uniformIndices" type="GLuint *" flow="in" count="uniformCount" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(uniformCount,pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="TexBuffer" category="VERSION_3_1" extension="Core" version="3.1">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </enum>
     <function name="ClientWaitSync" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="DeleteSync" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
       <returns type="void" />
     </function>
     <function name="FenceSync" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="sync" />
     </function>
     <function name="FramebufferTexture" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetInteger64i_v" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetInteger64v" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMultisamplefv" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetMultisamplePNameNV" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="val" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSynciv" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="ProvokingVertex" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="VertexProvokingMode" flow="in" />
       <returns type="void" />
     </function>
     <function name="SampleMaski" category="VERSION_3_2" extension="Core" version="3.2">
       <returns type="void" />
     </function>
     <function name="TexImage2DMultisample" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DMultisample" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="ColorP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetQueryObjecti64v" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64v" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterfv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameteriv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="Boolean" />
     </function>
     <function name="MultiTexCoordP1ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="NormalP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NormalP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="QueryCounter" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterf" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterfv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteri" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteriv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="VertexAttribP1ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <token name="MAX_VERTEX_STREAMS" value="0x8E71" />
     </enum>
     <function name="BeginQueryIndexed" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindTransformFeedback" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BindTransformFeedbackTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationi" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparatei" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunci" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparatei" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="DeleteTransformFeedbacks" category="VERSION_4_0" extension="Core" version="4.0">
     </function>
     <function name="DrawElementsIndirect" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQueryIndexed" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetActiveSubroutineName" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetActiveSubroutineUniformiv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SubroutineParameterName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineUniformName" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetProgramStageiv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="pname" type="ProgramStagePName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetQueryIndexediv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="target" type="GLenum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSubroutineIndex" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="GetSubroutineUniformLocation" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLint" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetUniformSubroutineuiv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="location" type="GLint" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="1" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="PatchParameterfv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="values" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="PatchParameteri" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="UniformSubroutinesuiv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="indices" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="CreateShaderProgramv" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
       <returns type="void" />
     </function>
     <function name="GetDoublei_v" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLdouble *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetProgramPipelineiv" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetShaderPrecisionFormat" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="precisiontype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="precisiontype" type="PrecisionType" flow="in" />
       <param name="range" type="GLint *" flow="out" count="2" />
       <param name="precision" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLdv" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLdouble *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="UseProgramStages" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLPointer" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="size" />
       <returns type="void" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
+      <param name="format" type="InternalFormat" flow="in" />
       <returns type="void" />
     </function>
     <function name="DrawArraysInstancedBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
     <function name="DrawElementsInstancedBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="baseinstance" type="GLuint" flow="in" />
     <function name="DrawElementsInstancedBaseVertexBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="basevertex" type="GLint" flow="in" />
     <function name="GetActiveAtomicCounterBufferiv" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="program" type="GLuint" flow="in" />
       <param name="bufferIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="AtomicCounterBufferPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetInternalformativ" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrier" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage1D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferData" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferSubData" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="CopyImageSubData" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="FramebufferParameteri" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetDebugMessageLog" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     </function>
     <function name="GetFramebufferParameteriv" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetInternalformati64v" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetProgramInterfaceiv" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
+      <param name="pname" type="ProgramInterfacePName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourceIndex" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLuint" />
     </function>
     <function name="GetProgramResourceiv" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" count="propCount" />
     </function>
     <function name="GetProgramResourceLocation" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceLocationIndex" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceName" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="InvalidateFramebuffer" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
       <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
       <returns type="void" />
     <function name="InvalidateSubFramebuffer" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="target" type="GLenum" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" count="numAttachments" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirect" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" count="COMPSIZE(drawcount,stride)" />
       <param name="drawcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <returns type="void" />
     </function>
     <function name="TexBufferRange" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DMultisample" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisample" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureView" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
     <function name="VertexAttribLFormat" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
     </enum>
     <function name="BindBuffersBase" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BindBuffersRange" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BufferStorage" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearTexImage" category="VERSION_4_4" extension="Core" version="4.4">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="CheckNamedFramebufferStatus" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
-      <returns type="GLenum" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="ClearNamedBufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedBufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferfi" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
     </function>
     <function name="ClearNamedFramebufferfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClipControl" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="origin" type="GLenum" flow="in" />
-      <param name="depth" type="GLenum" flow="in" />
+      <param name="origin" type="ClipControlOrigin" flow="in" />
+      <param name="depth" type="ClipControlDepth" flow="in" />
       <returns type="void" />
     </function>
     <function name="CompressedTextureSubImage1D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="CreateBuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="buffers" type="GLuint *" flow="out" />
+      <param name="buffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateFramebuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="framebuffers" type="GLuint *" flow="out" />
+      <param name="framebuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateProgramPipelines" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="pipelines" type="GLuint *" flow="out" />
+      <param name="pipelines" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateQueries" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateRenderbuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="renderbuffers" type="GLuint *" flow="out" />
+      <param name="renderbuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSamplers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="samplers" type="GLuint *" flow="out" />
+      <param name="samplers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTextures" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="textures" type="GLuint *" flow="out" />
+      <param name="textures" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTransformFeedbacks" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateVertexArrays" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="arrays" type="GLuint *" flow="out" />
+      <param name="arrays" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="DisableVertexArrayAttrib" category="VERSION_4_5" extension="Core" version="4.5">
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatus" category="VERSION_4_5" extension="Core" version="4.5">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetNamedBufferParameteri64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferPointerv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferAttachmentParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedFramebufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetFramebufferParameter" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedRenderbufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnColorTable" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ColorTableTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="table" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnCompressedTexImage" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="lod" type="GLint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnConvolutionFilter" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="image" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnHistogram" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="GLboolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapdv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLdouble *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapfv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapiv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMinmax" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="GLboolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapfv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapuiv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapusv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLushort *" flow="out" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnSeparableFilter" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="rowBufSize" type="GLsizei" flow="in" />
       <param name="row" type="void *" flow="out" />
       <param name="columnBufSize" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetnTexImage" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetQueryBufferObjecti64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectui64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetTextureImage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetTextureLevelParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureLevelParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterIiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterIuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki_v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki64_v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbackiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexed64iv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexediv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="MapNamedBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRange" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="BufferSize" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MemoryBarrierByRegion" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" />
-      <param name="usage" type="GLenum" flow="in" />
+      <param name="usage" type="VertexBufferObjectUsage" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
     </function>
     <function name="NamedFramebufferDrawBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buf" type="GLenum" flow="in" />
+      <param name="buf" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferDrawBuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="bufs" type="GLenum *" flow="in" />
+      <param name="bufs" type="ColorBuffer *" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferParameteri" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferReadBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
+      <param name="src" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferRenderbuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="renderbuffertarget" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="renderbuffertarget" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTexture" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTextureLayer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="layer" type="GLint" flow="in" />
     </function>
     <function name="NamedRenderbufferStorage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="TextureBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferRange" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     </function>
     <function name="TextureParameterf" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameteri" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterIiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterIuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage1D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage2D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="TextureStorage2DMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="GLboolean" flow="in" />
     <function name="TextureStorage3D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="TextureStorage3DMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="normalized" type="GLboolean" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <token name="HALF_FLOAT" value="0x140B" />
     </enum>
     <enum name="ARB_imaging">
+      <token name="BLEND_COLOR" value="0x8005" />
+      <token name="BLEND_EQUATION" value="0x8009" />
       <token name="CONSTANT_COLOR" value="0x8001" />
       <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
       <token name="CONSTANT_ALPHA" value="0x8003" />
       <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
-      <token name="BLEND_COLOR" value="0x8005" />
       <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
       <token name="MIN" value="0x8007" />
       <token name="MAX" value="0x8008" />
-      <token name="BLEND_EQUATION" value="0x8009" />
-      <token name="FUNC_SUBTRACT" value="0x800A" />
-      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="SEPARABLE_2D" value="0x8012" />
       <token name="LAST_VERTEX_CONVENTION" value="0x8E4E" />
       <token name="PROVOKING_VERTEX" value="0x8E4F" />
     </enum>
+    <enum name="AtomicCounterBufferPName">
+      <token name="ATOMIC_COUNTER_BUFFER_BINDING" value="0x92C1" />
+      <token name="ATOMIC_COUNTER_BUFFER_DATA_SIZE" value="0x92C4" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS" value="0x92C5" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES" value="0x92C6" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER" value="0x92C7" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x92C8" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x92C9" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER" value="0x92CA" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER" value="0x92CB" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER" value="0x90ED" />
+    </enum>
     <enum name="AttribMask">
       <token name="COLOR_BUFFER_BIT" value="0x00004000" />
       <token name="DEPTH_BUFFER_BIT" value="0x00000100" />
       <token name="MULTISAMPLE_BIT_EXT" value="0x20000000" />
       <token name="STENCIL_BUFFER_BIT" value="0x00000400" />
     </enum>
+    <enum name="AttributeType">
+      <token name="FLOAT_VEC2" value="0x8B50" />
+      <token name="FLOAT_VEC2_ARB" value="0x8B50" />
+      <token name="FLOAT_VEC3" value="0x8B51" />
+      <token name="FLOAT_VEC3_ARB" value="0x8B51" />
+      <token name="FLOAT_VEC4" value="0x8B52" />
+      <token name="FLOAT_VEC4_ARB" value="0x8B52" />
+      <token name="INT_VEC2" value="0x8B53" />
+      <token name="INT_VEC2_ARB" value="0x8B53" />
+      <token name="INT_VEC3" value="0x8B54" />
+      <token name="INT_VEC3_ARB" value="0x8B54" />
+      <token name="INT_VEC4" value="0x8B55" />
+      <token name="INT_VEC4_ARB" value="0x8B55" />
+      <token name="BOOL" value="0x8B56" />
+      <token name="BOOL_ARB" value="0x8B56" />
+      <token name="BOOL_VEC2" value="0x8B57" />
+      <token name="BOOL_VEC2_ARB" value="0x8B57" />
+      <token name="BOOL_VEC3" value="0x8B58" />
+      <token name="BOOL_VEC3_ARB" value="0x8B58" />
+      <token name="BOOL_VEC4" value="0x8B59" />
+      <token name="BOOL_VEC4_ARB" value="0x8B59" />
+      <token name="FLOAT_MAT2" value="0x8B5A" />
+      <token name="FLOAT_MAT2_ARB" value="0x8B5A" />
+      <token name="FLOAT_MAT3" value="0x8B5B" />
+      <token name="FLOAT_MAT3_ARB" value="0x8B5B" />
+      <token name="FLOAT_MAT4" value="0x8B5C" />
+      <token name="FLOAT_MAT4_ARB" value="0x8B5C" />
+      <token name="SAMPLER_1D" value="0x8B5D" />
+      <token name="SAMPLER_1D_ARB" value="0x8B5D" />
+      <token name="SAMPLER_2D" value="0x8B5E" />
+      <token name="SAMPLER_2D_ARB" value="0x8B5E" />
+      <token name="SAMPLER_3D" value="0x8B5F" />
+      <token name="SAMPLER_3D_ARB" value="0x8B5F" />
+      <token name="SAMPLER_3D_OES" value="0x8B5F" />
+      <token name="SAMPLER_CUBE" value="0x8B60" />
+      <token name="SAMPLER_CUBE_ARB" value="0x8B60" />
+      <token name="SAMPLER_1D_SHADOW" value="0x8B61" />
+      <token name="SAMPLER_1D_SHADOW_ARB" value="0x8B61" />
+      <token name="SAMPLER_2D_SHADOW" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_ARB" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_EXT" value="0x8B62" />
+      <token name="SAMPLER_2D_RECT" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_ARB" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_SHADOW" value="0x8B64" />
+      <token name="SAMPLER_2D_RECT_SHADOW_ARB" value="0x8B64" />
+      <token name="FLOAT_MAT2x3" value="0x8B65" />
+      <token name="FLOAT_MAT2x3_NV" value="0x8B65" />
+      <token name="FLOAT_MAT2x4" value="0x8B66" />
+      <token name="FLOAT_MAT2x4_NV" value="0x8B66" />
+      <token name="FLOAT_MAT3x2" value="0x8B67" />
+      <token name="FLOAT_MAT3x2_NV" value="0x8B67" />
+      <token name="FLOAT_MAT3x4" value="0x8B68" />
+      <token name="FLOAT_MAT3x4_NV" value="0x8B68" />
+      <token name="FLOAT_MAT4x2" value="0x8B69" />
+      <token name="FLOAT_MAT4x2_NV" value="0x8B69" />
+      <token name="FLOAT_MAT4x3" value="0x8B6A" />
+      <token name="FLOAT_MAT4x3_NV" value="0x8B6A" />
+    </enum>
+    <enum name="BindTransformFeedbackTarget">
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+    </enum>
     <enum name="BlendEquationModeEXT">
       <token name="ALPHA_MAX_SGIX" value="0x8321" />
       <token name="ALPHA_MIN_SGIX" value="0x8320" />
       <token name="FUNC_SUBTRACT_EXT" value="0x800A" />
       <token name="MAX_EXT" value="0x8008" />
       <token name="MIN_EXT" value="0x8007" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
     </enum>
-    <enum name="BlendingFactorDest">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+    <enum name="BlendingFactor">
+      <token name="ZERO" value="0" />
       <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
-      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
-      <token name="SRC_ALPHA" value="0x0302" />
       <token name="SRC_COLOR" value="0x0300" />
-      <token name="ZERO" value="0" />
-    </enum>
-    <enum name="BlendingFactorSrc">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
       <token name="DST_COLOR" value="0x0306" />
-      <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
       <token name="ONE_MINUS_DST_COLOR" value="0x0307" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
       <token name="SRC_ALPHA" value="0x0302" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
+      <token name="CONSTANT_COLOR" value="0x8001" />
+      <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
+      <token name="CONSTANT_ALPHA" value="0x8003" />
+      <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
       <token name="SRC_ALPHA_SATURATE" value="0x0308" />
-      <token name="ZERO" value="0" />
+      <token name="SRC1_COLOR" value="0x88F9" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
+      <token name="SRC1_ALPHA" value="0x8589" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+    </enum>
+    <enum name="BlitFramebufferFilter">
+      <token name="NEAREST" value="0x2600" />
+      <token name="LINEAR" value="0x2601" />
     </enum>
     <enum name="Boolean">
       <token name="FALSE" value="0" />
       <token name="TRUE" value="1" />
     </enum>
+    <enum name="Buffer">
+      <token name="COLOR" value="0x1800" />
+      <token name="DEPTH" value="0x1801" />
+      <token name="STENCIL" value="0x1802" />
+    </enum>
     <enum name="BufferAccessARB">
       <token name="READ_ONLY" value="0x88B8" />
       <token name="WRITE_ONLY" value="0x88B9" />
       <token name="READ_WRITE" value="0x88BA" />
     </enum>
+    <enum name="BufferAccessMask">
+      <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT_EXT" value="0x0008" />
+      <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
+      <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
+      <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
+      <token name="MAP_READ_BIT" value="0x0001" />
+      <token name="MAP_READ_BIT_EXT" value="0x0001" />
+      <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
+      <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
+      <token name="MAP_WRITE_BIT" value="0x0002" />
+      <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+    </enum>
+    <enum name="BufferBitQCOM">
+      <token name="MULTISAMPLE_BUFFER_BIT7_QCOM" value="0x80000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT6_QCOM" value="0x40000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT5_QCOM" value="0x20000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT4_QCOM" value="0x10000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT3_QCOM" value="0x08000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT2_QCOM" value="0x04000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT1_QCOM" value="0x02000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT0_QCOM" value="0x01000000" />
+      <token name="STENCIL_BUFFER_BIT7_QCOM" value="0x00800000" />
+      <token name="STENCIL_BUFFER_BIT6_QCOM" value="0x00400000" />
+      <token name="STENCIL_BUFFER_BIT5_QCOM" value="0x00200000" />
+      <token name="STENCIL_BUFFER_BIT4_QCOM" value="0x00100000" />
+      <token name="STENCIL_BUFFER_BIT3_QCOM" value="0x00080000" />
+      <token name="STENCIL_BUFFER_BIT2_QCOM" value="0x00040000" />
+      <token name="STENCIL_BUFFER_BIT1_QCOM" value="0x00020000" />
+      <token name="STENCIL_BUFFER_BIT0_QCOM" value="0x00010000" />
+      <token name="DEPTH_BUFFER_BIT7_QCOM" value="0x00008000" />
+      <token name="DEPTH_BUFFER_BIT6_QCOM" value="0x00004000" />
+      <token name="DEPTH_BUFFER_BIT5_QCOM" value="0x00002000" />
+      <token name="DEPTH_BUFFER_BIT4_QCOM" value="0x00001000" />
+      <token name="DEPTH_BUFFER_BIT3_QCOM" value="0x00000800" />
+      <token name="DEPTH_BUFFER_BIT2_QCOM" value="0x00000400" />
+      <token name="DEPTH_BUFFER_BIT1_QCOM" value="0x00000200" />
+      <token name="DEPTH_BUFFER_BIT0_QCOM" value="0x00000100" />
+      <token name="COLOR_BUFFER_BIT7_QCOM" value="0x00000080" />
+      <token name="COLOR_BUFFER_BIT6_QCOM" value="0x00000040" />
+      <token name="COLOR_BUFFER_BIT5_QCOM" value="0x00000020" />
+      <token name="COLOR_BUFFER_BIT4_QCOM" value="0x00000010" />
+      <token name="COLOR_BUFFER_BIT3_QCOM" value="0x00000008" />
+      <token name="COLOR_BUFFER_BIT2_QCOM" value="0x00000004" />
+      <token name="COLOR_BUFFER_BIT1_QCOM" value="0x00000002" />
+      <token name="COLOR_BUFFER_BIT0_QCOM" value="0x00000001" />
+    </enum>
+    <enum name="BufferStorageTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="BufferTargetARB">
       <token name="ARRAY_BUFFER" value="0x8892" />
       <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
       <token name="DYNAMIC_READ" value="0x88E9" />
       <token name="DYNAMIC_COPY" value="0x88EA" />
     </enum>
+    <enum name="CheckFramebufferStatusTarget">
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="ClearBufferMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" />
       <token name="COLOR_BUFFER_BIT" value="0x00004000" />
       <token name="STENCIL_BUFFER_BIT" value="0x00000400" />
     </enum>
     <enum name="ClientAttribMask" />
+    <enum name="ClipControlDepth">
+      <token name="NEGATIVE_ONE_TO_ONE" value="0x935E" />
+      <token name="ZERO_TO_ONE" value="0x935F" />
+    </enum>
+    <enum name="ClipControlOrigin">
+      <token name="LOWER_LEFT" value="0x8CA1" />
+      <token name="UPPER_LEFT" value="0x8CA2" />
+    </enum>
     <enum name="ClipPlaneName">
       <token name="CLIP_DISTANCE0" value="0x3000" />
       <token name="CLIP_DISTANCE1" value="0x3001" />
       <token name="CLIP_DISTANCE6" value="0x3006" />
       <token name="CLIP_DISTANCE7" value="0x3007" />
     </enum>
+    <enum name="ColorBuffer">
+      <token name="NONE" value="0" />
+      <token name="FRONT_LEFT" value="0x0400" />
+      <token name="FRONT_RIGHT" value="0x0401" />
+      <token name="BACK_LEFT" value="0x0402" />
+      <token name="BACK_RIGHT" value="0x0403" />
+      <token name="FRONT" value="0x0404" />
+      <token name="BACK" value="0x0405" />
+      <token name="LEFT" value="0x0406" />
+      <token name="RIGHT" value="0x0407" />
+      <token name="FRONT_AND_BACK" value="0x0408" />
+      <token name="NONE" value="0" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+    </enum>
     <enum name="ColorMaterialFace">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="COLOR_TABLE_SCALE" value="0x80D6" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
     </enum>
+    <enum name="ColorTableTarget">
+      <token name="COLOR_TABLE" value="0x80D0" />
+      <token name="POST_CONVOLUTION_COLOR_TABLE" value="0x80D1" />
+      <token name="POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D2" />
+    </enum>
     <enum name="ColorTableTargetSGI">
       <token name="COLOR_TABLE" value="0x80D0" />
       <token name="COLOR_TABLE_SGI" value="0x80D0" />
       <token name="CONTEXT_FLAG_DEBUG_BIT" value="0x00000002" />
       <token name="CONTEXT_FLAG_DEBUG_BIT_KHR" value="0x00000002" />
       <token name="CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT" value="0x00000001" />
+      <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT" value="0x00000004" />
       <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004" />
       <token name="CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT" value="0x00000010" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT" value="0x00000008" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
     <enum name="ContextProfileMask">
       <token name="CONTEXT_COMPATIBILITY_PROFILE_BIT" value="0x00000002" />
       <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
       <token name="CONVOLUTION_FILTER_SCALE_EXT" value="0x8014" />
     </enum>
+    <enum name="ConvolutionTarget">
+      <token name="CONVOLUTION_1D" value="0x8010" />
+      <token name="CONVOLUTION_2D" value="0x8011" />
+    </enum>
     <enum name="ConvolutionTargetEXT">
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_1D_EXT" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="CONVOLUTION_2D_EXT" value="0x8011" />
     </enum>
+    <enum name="CopyBufferSubDataTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="CullFaceMode">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="FRONT_AND_BACK" value="0x0408" />
     </enum>
     <enum name="DataType" />
+    <enum name="DebugSeverity">
+      <token name="DEBUG_SEVERITY_LOW" value="0x9148" />
+      <token name="DEBUG_SEVERITY_MEDIUM" value="0x9147" />
+      <token name="DEBUG_SEVERITY_HIGH" value="0x9146" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugSource">
+      <token name="DEBUG_SOURCE_API" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER" value="0x824B" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugType">
+      <token name="DEBUG_TYPE_ERROR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE" value="0x8250" />
+      <token name="DEBUG_TYPE_MARKER" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP" value="0x826A" />
+      <token name="DEBUG_TYPE_OTHER" value="0x8251" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
     <enum name="DepthFunction">
       <token name="ALWAYS" value="0x0207" />
       <token name="EQUAL" value="0x0202" />
     <enum name="FogParameter">
       <token name="FOG_OFFSET_VALUE_SGIX" value="0x8199" />
     </enum>
+    <enum name="FogPName">
+      <token name="FOG_MODE" value="0x0B65" />
+      <token name="FOG_DENSITY" value="0x0B62" />
+      <token name="FOG_START" value="0x0B63" />
+      <token name="FOG_END" value="0x0B64" />
+      <token name="FOG_INDEX" value="0x0B61" />
+    </enum>
     <enum name="FogPointerTypeEXT">
       <token name="FLOAT" value="0x1406" />
       <token name="DOUBLE" value="0x140A" />
       <token name="FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX" value="0x840B" />
       <token name="FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX" value="0x8409" />
     </enum>
+    <enum name="FragmentOpATI">
+      <token name="MOV_ATI" value="0x8961" />
+      <token name="ADD_ATI" value="0x8963" />
+      <token name="MUL_ATI" value="0x8964" />
+      <token name="SUB_ATI" value="0x8965" />
+      <token name="DOT3_ATI" value="0x8966" />
+      <token name="DOT4_ATI" value="0x8967" />
+      <token name="MAD_ATI" value="0x8968" />
+      <token name="LERP_ATI" value="0x8969" />
+      <token name="CND_ATI" value="0x896A" />
+      <token name="CND0_ATI" value="0x896B" />
+      <token name="DOT2_ADD_ATI" value="0x896C" />
+    </enum>
+    <enum name="FramebufferAttachment">
+      <token name="MAX_COLOR_ATTACHMENTS" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_EXT" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_NV" value="0x8CDF" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_EXT" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_NV" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_OES" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_EXT" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_NV" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_EXT" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_NV" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_EXT" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_NV" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_EXT" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_NV" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_EXT" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_NV" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_EXT" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_NV" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_EXT" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_NV" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_EXT" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_NV" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_EXT" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_NV" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_EXT" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_NV" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_EXT" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_NV" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_EXT" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_NV" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_EXT" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_NV" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_EXT" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_NV" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_EXT" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_NV" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+      <token name="DEPTH_ATTACHMENT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_EXT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_OES" value="0x8D00" />
+    </enum>
+    <enum name="FramebufferAttachmentParameterName">
+      <token name="FRAMEBUFFER_ATTACHMENT_RED_SIZE" value="0x8212" />
+      <token name="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" value="0x8213" />
+      <token name="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" value="0x8214" />
+      <token name="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" value="0x8215" />
+      <token name="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" value="0x8216" />
+      <token name="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" value="0x8217" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" value="0x8211" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" value="0x8210" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" value="0x8CD2" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" value="0x8CD3" />
+      <token name="FRAMEBUFFER_ATTACHMENT_LAYERED" value="0x8DA7" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" value="0x8CD4" />
+    </enum>
     <enum name="FramebufferFetchNoncoherent">
       <token name="FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" value="0x96A2" />
     </enum>
+    <enum name="FramebufferParameterName">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+    </enum>
+    <enum name="FramebufferStatus">
+      <token name="FRAMEBUFFER_COMPLETE" value="0x8CD5" />
+      <token name="FRAMEBUFFER_UNDEFINED" value="0x8219" />
+      <token name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT" value="0x8CD6" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" value="0x8CD7" />
+      <token name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER" value="0x8CDB" />
+      <token name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER" value="0x8CDC" />
+      <token name="FRAMEBUFFER_UNSUPPORTED" value="0x8CDD" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" value="0x8DA8" />
+    </enum>
+    <enum name="FramebufferTarget">
+      <token name="FRAMEBUFFER" value="0x8D40" />
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+    </enum>
     <enum name="FrontFaceDirection">
       <token name="CCW" value="0x0901" />
       <token name="CW" value="0x0900" />
       <token name="COLOR_TABLE_RED_SIZE_SGI" value="0x80DA" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
       <token name="COLOR_TABLE_WIDTH_SGI" value="0x80D9" />
+      <token name="COLOR_TABLE_BIAS" value="0x80D7" />
+      <token name="COLOR_TABLE_SCALE" value="0x80D6" />
+      <token name="COLOR_TABLE_FORMAT" value="0x80D8" />
+      <token name="COLOR_TABLE_WIDTH" value="0x80D9" />
+      <token name="COLOR_TABLE_RED_SIZE" value="0x80DA" />
+      <token name="COLOR_TABLE_GREEN_SIZE" value="0x80DB" />
+      <token name="COLOR_TABLE_BLUE_SIZE" value="0x80DC" />
+      <token name="COLOR_TABLE_ALPHA_SIZE" value="0x80DD" />
+      <token name="COLOR_TABLE_LUMINANCE_SIZE" value="0x80DE" />
+      <token name="COLOR_TABLE_INTENSITY_SIZE" value="0x80DF" />
     </enum>
     <enum name="GetConvolutionParameter">
       <token name="CONVOLUTION_BORDER_MODE_EXT" value="0x8013" />
       <token name="CONVOLUTION_WIDTH_EXT" value="0x8018" />
       <token name="MAX_CONVOLUTION_HEIGHT_EXT" value="0x801B" />
       <token name="MAX_CONVOLUTION_WIDTH_EXT" value="0x801A" />
+      <token name="CONVOLUTION_BORDER_MODE" value="0x8013" />
+      <token name="CONVOLUTION_BORDER_COLOR" value="0x8154" />
+      <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
+      <token name="CONVOLUTION_FILTER_BIAS" value="0x8015" />
+      <token name="CONVOLUTION_FORMAT" value="0x8017" />
+      <token name="CONVOLUTION_WIDTH" value="0x8018" />
+      <token name="CONVOLUTION_HEIGHT" value="0x8019" />
+      <token name="MAX_CONVOLUTION_WIDTH" value="0x801A" />
+      <token name="MAX_CONVOLUTION_HEIGHT" value="0x801B" />
+    </enum>
+    <enum name="GetFramebufferParameter">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+      <token name="DOUBLEBUFFER" value="0x0C32" />
+      <token name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B" />
+      <token name="IMPLEMENTATION_COLOR_READ_TYPE" value="0x8B9A" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="SAMPLE_BUFFERS" value="0x80A8" />
+      <token name="STEREO" value="0x0C33" />
     </enum>
     <enum name="GetHistogramParameterPNameEXT">
       <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
       <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
       <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
       <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
+      <token name="HISTOGRAM_WIDTH" value="0x8026" />
+      <token name="HISTOGRAM_FORMAT" value="0x8027" />
+      <token name="HISTOGRAM_RED_SIZE" value="0x8028" />
+      <token name="HISTOGRAM_GREEN_SIZE" value="0x8029" />
+      <token name="HISTOGRAM_BLUE_SIZE" value="0x802A" />
+      <token name="HISTOGRAM_ALPHA_SIZE" value="0x802B" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE" value="0x802C" />
+      <token name="HISTOGRAM_SINK" value="0x802D" />
+      <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
+      <token name="HISTOGRAM_BLUE_SIZE_EXT" value="0x802A" />
+      <token name="HISTOGRAM_FORMAT_EXT" value="0x8027" />
+      <token name="HISTOGRAM_GREEN_SIZE_EXT" value="0x8029" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE_EXT" value="0x802C" />
+      <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
+      <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
+      <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
     </enum>
     <enum name="GetMapQuery" />
     <enum name="GetMinmaxParameterPNameEXT">
       <token name="MINMAX_FORMAT_EXT" value="0x802F" />
       <token name="MINMAX_SINK" value="0x8030" />
       <token name="MINMAX_SINK_EXT" value="0x8030" />
+      <token name="MINMAX_FORMAT" value="0x802F" />
+      <token name="MINMAX_SINK" value="0x8030" />
     </enum>
     <enum name="GetPixelMap" />
     <enum name="GetPName">
       <token name="NORMAL_ARRAY_POINTER_EXT" value="0x808F" />
       <token name="TEXTURE_COORD_ARRAY_POINTER_EXT" value="0x8092" />
       <token name="VERTEX_ARRAY_POINTER_EXT" value="0x808E" />
+      <token name="DEBUG_CALLBACK_FUNCTION" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM" value="0x8245" />
     </enum>
     <enum name="GetTextureParameter">
       <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
       <token name="TEXTURE_WRAP_S" value="0x2802" />
       <token name="TEXTURE_WRAP_T" value="0x2803" />
     </enum>
+    <enum name="GraphicsResetStatus">
+      <token name="NO_ERROR" value="0" />
+      <token name="GUILTY_CONTEXT_RESET" value="0x8253" />
+      <token name="INNOCENT_CONTEXT_RESET" value="0x8254" />
+      <token name="UNKNOWN_CONTEXT_RESET" value="0x8255" />
+    </enum>
     <enum name="HintMode">
       <token name="DONT_CARE" value="0x1100" />
       <token name="FASTEST" value="0x1101" />
       <token name="HISTOGRAM_EXT" value="0x8024" />
       <token name="PROXY_HISTOGRAM" value="0x8025" />
       <token name="PROXY_HISTOGRAM_EXT" value="0x8025" />
+      <token name="HISTOGRAM" value="0x8024" />
+      <token name="PROXY_HISTOGRAM" value="0x8025" />
     </enum>
     <enum name="IndexPointerType">
       <token name="DOUBLE" value="0x140A" />
     </enum>
     <enum name="InterleavedArrayFormat" />
     <enum name="InternalFormat">
-      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
-      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
-      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
       <token name="DUAL_ALPHA12_SGIS" value="0x8112" />
       <token name="DUAL_ALPHA16_SGIS" value="0x8113" />
       <token name="DUAL_ALPHA4_SGIS" value="0x8110" />
       <token name="QUAD_INTENSITY8_SGIS" value="0x8123" />
       <token name="QUAD_LUMINANCE4_SGIS" value="0x8120" />
       <token name="QUAD_LUMINANCE8_SGIS" value="0x8121" />
-      <token name="R3_G3_B2" value="0x2A10" />
-      <token name="RGB10" value="0x8052" />
-      <token name="RGB10_A2" value="0x8059" />
-      <token name="RGB12" value="0x8053" />
-      <token name="RGB16" value="0x8054" />
+      <token name="RED" value="0x1903" />
+      <token name="RED_EXT" value="0x1903" />
+      <token name="R8" value="0x8229" />
+      <token name="R8_EXT" value="0x8229" />
+      <token name="R8_SNORM" value="0x8F94" />
+      <token name="R16" value="0x822A" />
+      <token name="R16_EXT" value="0x822A" />
+      <token name="R16_SNORM" value="0x8F98" />
+      <token name="R16_SNORM_EXT" value="0x8F98" />
+      <token name="R16F" value="0x822D" />
+      <token name="R16F_EXT" value="0x822D" />
+      <token name="R32F" value="0x822E" />
+      <token name="R32F_EXT" value="0x822E" />
+      <token name="R8I" value="0x8231" />
+      <token name="R16I" value="0x8233" />
+      <token name="R32I" value="0x8235" />
+      <token name="R8UI" value="0x8232" />
+      <token name="R16UI" value="0x8234" />
+      <token name="R32UI" value="0x8236" />
+      <token name="RG" value="0x8227" />
+      <token name="RG8" value="0x822B" />
+      <token name="RG8_EXT" value="0x822B" />
+      <token name="RG8_SNORM" value="0x8F95" />
+      <token name="RG16" value="0x822C" />
+      <token name="RG16_EXT" value="0x822C" />
+      <token name="RG16_SNORM" value="0x8F99" />
+      <token name="RG16_SNORM_EXT" value="0x8F99" />
+      <token name="RG16F" value="0x822F" />
+      <token name="RG16F_EXT" value="0x822F" />
+      <token name="RG32F" value="0x8230" />
+      <token name="RG32F_EXT" value="0x8230" />
+      <token name="RG8I" value="0x8237" />
+      <token name="RG16I" value="0x8239" />
+      <token name="RG32I" value="0x823B" />
+      <token name="RG8UI" value="0x8238" />
+      <token name="RG16UI" value="0x823A" />
+      <token name="RG32UI" value="0x823C" />
+      <token name="RGB" value="0x1907" />
       <token name="RGB2_EXT" value="0x804E" />
       <token name="RGB4" value="0x804F" />
+      <token name="RGB4_EXT" value="0x804F" />
       <token name="RGB5" value="0x8050" />
-      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_EXT" value="0x8050" />
       <token name="RGB8" value="0x8051" />
-      <token name="RGBA12" value="0x805A" />
-      <token name="RGBA16" value="0x805B" />
-      <token name="RGBA2" value="0x8055" />
+      <token name="RGB8_EXT" value="0x8051" />
+      <token name="RGB8_OES" value="0x8051" />
+      <token name="RGB8_SNORM" value="0x8F96" />
+      <token name="RGB10" value="0x8052" />
+      <token name="RGB10_EXT" value="0x8052" />
+      <token name="RGB12" value="0x8053" />
+      <token name="RGB12_EXT" value="0x8053" />
+      <token name="RGB16" value="0x8054" />
+      <token name="RGB16_EXT" value="0x8054" />
+      <token name="RGB16F" value="0x881B" />
+      <token name="RGB16F_ARB" value="0x881B" />
+      <token name="RGB16F_EXT" value="0x881B" />
+      <token name="RGB16_SNORM" value="0x8F9A" />
+      <token name="RGB16_SNORM_EXT" value="0x8F9A" />
+      <token name="RGB8I" value="0x8D8F" />
+      <token name="RGB16I" value="0x8D89" />
+      <token name="RGB32I" value="0x8D83" />
+      <token name="RGB8UI" value="0x8D7D" />
+      <token name="RGB16UI" value="0x8D77" />
+      <token name="RGB32UI" value="0x8D71" />
+      <token name="SRGB" value="0x8C40" />
+      <token name="SRGB_EXT" value="0x8C40" />
+      <token name="SRGB_ALPHA" value="0x8C42" />
+      <token name="SRGB_ALPHA_EXT" value="0x8C42" />
+      <token name="SRGB8" value="0x8C41" />
+      <token name="SRGB8_EXT" value="0x8C41" />
+      <token name="SRGB8_NV" value="0x8C41" />
+      <token name="SRGB8_ALPHA8" value="0x8C43" />
+      <token name="SRGB8_ALPHA8_EXT" value="0x8C43" />
+      <token name="R3_G3_B2" value="0x2A10" />
+      <token name="R11F_G11F_B10F" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_APPLE" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_EXT" value="0x8C3A" />
+      <token name="RGB9_E5" value="0x8C3D" />
+      <token name="RGB9_E5_APPLE" value="0x8C3D" />
+      <token name="RGB9_E5_EXT" value="0x8C3D" />
+      <token name="RGBA" value="0x1908" />
       <token name="RGBA4" value="0x8056" />
+      <token name="RGBA4_EXT" value="0x8056" />
+      <token name="RGBA4_OES" value="0x8056" />
+      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_A1_EXT" value="0x8057" />
+      <token name="RGB5_A1_OES" value="0x8057" />
       <token name="RGBA8" value="0x8058" />
+      <token name="RGBA8_EXT" value="0x8058" />
+      <token name="RGBA8_OES" value="0x8058" />
+      <token name="RGBA8_SNORM" value="0x8F97" />
+      <token name="RGB10_A2" value="0x8059" />
+      <token name="RGB10_A2_EXT" value="0x8059" />
+      <token name="RGBA12" value="0x805A" />
+      <token name="RGBA12_EXT" value="0x805A" />
+      <token name="RGBA16" value="0x805B" />
+      <token name="RGBA16_EXT" value="0x805B" />
+      <token name="RGBA16F" value="0x881A" />
+      <token name="RGBA16F_ARB" value="0x881A" />
+      <token name="RGBA16F_EXT" value="0x881A" />
+      <token name="RGBA32F" value="0x8814" />
+      <token name="RGBA32F_ARB" value="0x8814" />
+      <token name="RGBA32F_EXT" value="0x8814" />
+      <token name="RGBA8I" value="0x8D8E" />
+      <token name="RGBA16I" value="0x8D88" />
+      <token name="RGBA32I" value="0x8D82" />
+      <token name="RGBA8UI" value="0x8D7C" />
+      <token name="RGBA16UI" value="0x8D76" />
+      <token name="RGBA32UI" value="0x8D70" />
+      <token name="RGB10_A2UI" value="0x906F" />
+      <token name="DEPTH_COMPONENT" value="0x1902" />
+      <token name="DEPTH_COMPONENT16" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_ARB" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_OES" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
+      <token name="DEPTH_COMPONENT24_ARB" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_OES" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
+      <token name="DEPTH_COMPONENT32_ARB" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_OES" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32F" value="0x8CAC" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_STENCIL" value="0x84F9" />
+      <token name="DEPTH_STENCIL_EXT" value="0x84F9" />
+      <token name="DEPTH_STENCIL_MESA" value="0x8750" />
+      <token name="DEPTH_STENCIL_NV" value="0x84F9" />
+      <token name="DEPTH_STENCIL_OES" value="0x84F9" />
+      <token name="DEPTH24_STENCIL8" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_EXT" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_OES" value="0x88F0" />
+      <token name="DEPTH32F_STENCIL8" value="0x8CAD" />
+      <token name="DEPTH32F_STENCIL8_NV" value="0x8DAC" />
+      <token name="COMPRESSED_RED" value="0x8225" />
+      <token name="COMPRESSED_RG" value="0x8226" />
+      <token name="COMPRESSED_RGB" value="0x84ED" />
+      <token name="COMPRESSED_RGBA" value="0x84EE" />
+      <token name="COMPRESSED_SRGB" value="0x8C48" />
+      <token name="COMPRESSED_SRGB_ALPHA" value="0x8C49" />
+      <token name="COMPRESSED_RED_RGTC1" value="0x8DBB" />
+      <token name="COMPRESSED_RED_RGTC1_EXT" value="0x8DBB" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1" value="0x8DBC" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1_EXT" value="0x8DBC" />
+      <token name="COMPRESSED_R11_EAC" value="0x9270" />
+      <token name="COMPRESSED_SIGNED_R11_EAC" value="0x9271" />
+      <token name="COMPRESSED_RG_RGTC2" value="0x8DBD" />
+      <token name="COMPRESSED_SIGNED_RG_RGTC2" value="0x8DBE" />
+      <token name="COMPRESSED_RGBA_BPTC_UNORM" value="0x8E8C" />
+      <token name="COMPRESSED_SRGB_ALPHA_BPTC_UNORM" value="0x8E8D" />
+      <token name="COMPRESSED_RGB_BPTC_SIGNED_FLOAT" value="0x8E8E" />
+      <token name="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT" value="0x8E8F" />
+      <token name="COMPRESSED_RGB8_ETC2" value="0x9274" />
+      <token name="COMPRESSED_SRGB8_ETC2" value="0x9275" />
+      <token name="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9276" />
+      <token name="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9277" />
+      <token name="COMPRESSED_RGBA8_ETC2_EAC" value="0x9278" />
+      <token name="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" value="0x9279" />
+      <token name="COMPRESSED_RG11_EAC" value="0x9272" />
+      <token name="COMPRESSED_SIGNED_RG11_EAC" value="0x9273" />
+      <token name="COMPRESSED_RGB_S3TC_DXT1_EXT" value="0x83F0" />
+      <token name="COMPRESSED_SRGB_S3TC_DXT1_EXT" value="0x8C4C" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT1_EXT" value="0x83F1" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" value="0x8C4D" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT3_EXT" value="0x83F2" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" value="0x8C4E" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT5_EXT" value="0x83F3" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" value="0x8C4F" />
+    </enum>
+    <enum name="InternalFormatPName">
+      <token name="NUM_SAMPLE_COUNTS" value="0x9380" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="INTERNALFORMAT_SUPPORTED" value="0x826F" />
+      <token name="INTERNALFORMAT_PREFERRED" value="0x8270" />
+      <token name="INTERNALFORMAT_RED_SIZE" value="0x8271" />
+      <token name="INTERNALFORMAT_GREEN_SIZE" value="0x8272" />
+      <token name="INTERNALFORMAT_BLUE_SIZE" value="0x8273" />
+      <token name="INTERNALFORMAT_ALPHA_SIZE" value="0x8274" />
+      <token name="INTERNALFORMAT_DEPTH_SIZE" value="0x8275" />
+      <token name="INTERNALFORMAT_STENCIL_SIZE" value="0x8276" />
+      <token name="INTERNALFORMAT_SHARED_SIZE" value="0x8277" />
+      <token name="INTERNALFORMAT_RED_TYPE" value="0x8278" />
+      <token name="INTERNALFORMAT_GREEN_TYPE" value="0x8279" />
+      <token name="INTERNALFORMAT_BLUE_TYPE" value="0x827A" />
+      <token name="INTERNALFORMAT_ALPHA_TYPE" value="0x827B" />
+      <token name="INTERNALFORMAT_DEPTH_TYPE" value="0x827C" />
+      <token name="INTERNALFORMAT_STENCIL_TYPE" value="0x827D" />
+      <token name="MAX_WIDTH" value="0x827E" />
+      <token name="MAX_HEIGHT" value="0x827F" />
+      <token name="MAX_DEPTH" value="0x8280" />
+      <token name="MAX_LAYERS" value="0x8281" />
+      <token name="COLOR_COMPONENTS" value="0x8283" />
+      <token name="COLOR_RENDERABLE" value="0x8286" />
+      <token name="DEPTH_RENDERABLE" value="0x8287" />
+      <token name="STENCIL_RENDERABLE" value="0x8288" />
+      <token name="FRAMEBUFFER_RENDERABLE" value="0x8289" />
+      <token name="FRAMEBUFFER_RENDERABLE_LAYERED" value="0x828A" />
+      <token name="FRAMEBUFFER_BLEND" value="0x828B" />
+      <token name="READ_PIXELS" value="0x828C" />
+      <token name="READ_PIXELS_FORMAT" value="0x828D" />
+      <token name="READ_PIXELS_TYPE" value="0x828E" />
+      <token name="TEXTURE_IMAGE_FORMAT" value="0x828F" />
+      <token name="TEXTURE_IMAGE_TYPE" value="0x8290" />
+      <token name="GET_TEXTURE_IMAGE_FORMAT" value="0x8291" />
+      <token name="GET_TEXTURE_IMAGE_TYPE" value="0x8292" />
+      <token name="MIPMAP" value="0x8293" />
+      <token name="AUTO_GENERATE_MIPMAP" value="0x8295" />
+      <token name="COLOR_ENCODING" value="0x8296" />
+      <token name="SRGB_READ" value="0x8297" />
+      <token name="SRGB_WRITE" value="0x8298" />
+      <token name="FILTER" value="0x829A" />
+      <token name="VERTEX_TEXTURE" value="0x829B" />
+      <token name="TESS_CONTROL_TEXTURE" value="0x829C" />
+      <token name="TESS_EVALUATION_TEXTURE" value="0x829D" />
+      <token name="GEOMETRY_TEXTURE" value="0x829E" />
+      <token name="FRAGMENT_TEXTURE" value="0x829F" />
+      <token name="COMPUTE_TEXTURE" value="0x82A0" />
+      <token name="TEXTURE_SHADOW" value="0x82A1" />
+      <token name="TEXTURE_GATHER" value="0x82A2" />
+      <token name="TEXTURE_GATHER_SHADOW" value="0x82A3" />
+      <token name="SHADER_IMAGE_LOAD" value="0x82A4" />
+      <token name="SHADER_IMAGE_STORE" value="0x82A5" />
+      <token name="SHADER_IMAGE_ATOMIC" value="0x82A6" />
+      <token name="IMAGE_TEXEL_SIZE" value="0x82A7" />
+      <token name="IMAGE_COMPATIBILITY_CLASS" value="0x82A8" />
+      <token name="IMAGE_PIXEL_FORMAT" value="0x82A9" />
+      <token name="IMAGE_PIXEL_TYPE" value="0x82AA" />
+      <token name="IMAGE_FORMAT_COMPATIBILITY_TYPE" value="0x90C7" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST" value="0x82AC" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST" value="0x82AD" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE" value="0x82AE" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE" value="0x82AF" />
+      <token name="TEXTURE_COMPRESSED" value="0x86A1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_WIDTH" value="0x82B1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_HEIGHT" value="0x82B2" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_SIZE" value="0x82B3" />
+      <token name="CLEAR_BUFFER" value="0x82B4" />
+      <token name="TEXTURE_VIEW" value="0x82B5" />
+      <token name="VIEW_COMPATIBILITY_CLASS" value="0x82B6" />
+      <token name="CLEAR_TEXTURE" value="0x9365" />
     </enum>
     <enum name="KHR_blend_equation_advanced">
       <token name="MULTIPLY_KHR" value="0x9294" />
     <enum name="KHR_no_error">
       <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
+    <enum name="KHR_parallel_shader_compile">
+      <token name="MAX_SHADER_COMPILER_THREADS_KHR" value="0x91B0" />
+      <token name="COMPLETION_STATUS_KHR" value="0x91B1" />
+    </enum>
     <enum name="KHR_robust_buffer_access_behavior" />
     <enum name="KHR_robustness">
       <token name="NO_ERROR" value="0" />
     </enum>
     <enum name="MapBufferUsageMask">
       <token name="CLIENT_STORAGE_BIT" value="0x0200" />
+      <token name="CLIENT_STORAGE_BIT_EXT" value="0x0200" />
       <token name="DYNAMIC_STORAGE_BIT" value="0x0100" />
+      <token name="DYNAMIC_STORAGE_BIT_EXT" value="0x0100" />
       <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
       <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
       <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
       <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
       <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
       <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
       <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
       <token name="MAP_READ_BIT" value="0x0001" />
       <token name="MAP_READ_BIT_EXT" value="0x0001" />
       <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
       <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
       <token name="MAP_WRITE_BIT" value="0x0002" />
       <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+      <token name="SPARSE_STORAGE_BIT_ARB" value="0x0400" />
+      <token name="LGPU_SEPARATE_STORAGE_BIT_NVX" value="0x0800" />
+      <token name="PER_GPU_STORAGE_BIT_NV" value="0x0800" />
+    </enum>
+    <enum name="MapQuery">
+      <token name="COEFF" value="0x0A00" />
+      <token name="ORDER" value="0x0A01" />
+      <token name="DOMAIN" value="0x0A02" />
     </enum>
     <enum name="MapTarget">
       <token name="GEOMETRY_DEFORMATION_SGIX" value="0x8194" />
       <token name="BUFFER_UPDATE_BARRIER_BIT" value="0x00000200" />
       <token name="BUFFER_UPDATE_BARRIER_BIT_EXT" value="0x00000200" />
       <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x00004000" />
+      <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT" value="0x00004000" />
       <token name="COMMAND_BARRIER_BIT" value="0x00000040" />
       <token name="COMMAND_BARRIER_BIT_EXT" value="0x00000040" />
       <token name="ELEMENT_ARRAY_BARRIER_BIT" value="0x00000002" />
       <token name="CONSERVATIVE_RASTER_DILATE_RANGE_NV" value="0x937A" />
       <token name="CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV" value="0x937B" />
     </enum>
+    <enum name="NV_conservative_raster_pre_snap">
+      <token name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV" value="0x9550" />
+    </enum>
     <enum name="NV_conservative_raster_pre_snap_triangles">
       <token name="CONSERVATIVE_RASTER_MODE_NV" value="0x954D" />
       <token name="CONSERVATIVE_RASTER_MODE_POST_SNAP_NV" value="0x954E" />
       <token name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV" value="0x954F" />
       <token name="CONSERVATIVE_RASTER_MODE_NV" value="0x954D" />
     </enum>
+    <enum name="NV_conservative_raster_underestimation" />
     <enum name="NV_draw_vulkan_image" />
     <enum name="NV_fill_rectangle">
       <token name="FILL_RECTANGLE_NV" value="0x933C" />
       <token name="VIEWPORT_SWIZZLE_Z_NV" value="0x935A" />
       <token name="VIEWPORT_SWIZZLE_W_NV" value="0x935B" />
     </enum>
+    <enum name="ObjectIdentifier">
+      <token name="BUFFER" value="0x82E0" />
+      <token name="SHADER" value="0x82E1" />
+      <token name="PROGRAM" value="0x82E2" />
+      <token name="VERTEX_ARRAY" value="0x8074" />
+      <token name="QUERY" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE" value="0x82E4" />
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+      <token name="SAMPLER" value="0x82E6" />
+      <token name="TEXTURE" value="0x1702" />
+      <token name="RENDERBUFFER" value="0x8D41" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="OcclusionQueryEventMaskAMD">
       <token name="QUERY_DEPTH_PASS_EVENT_BIT_AMD" value="0x00000001" />
       <token name="QUERY_DEPTH_FAIL_EVENT_BIT_AMD" value="0x00000002" />
       <token name="FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR" value="0x9633" />
     </enum>
     <enum name="OVR_multiview2" />
+    <enum name="PatchParameterName">
+      <token name="PATCH_VERTICES" value="0x8E72" />
+      <token name="PATCH_DEFAULT_OUTER_LEVEL" value="0x8E74" />
+      <token name="PATCH_DEFAULT_INNER_LEVEL" value="0x8E73" />
+    </enum>
+    <enum name="PathColor">
+      <token name="PRIMARY_COLOR" value="0x8577" />
+      <token name="PRIMARY_COLOR_NV" value="0x852C" />
+      <token name="SECONDARY_COLOR_NV" value="0x852D" />
+    </enum>
+    <enum name="PathCoverMode">
+      <token name="CONVEX_HULL_NV" value="0x908B" />
+      <token name="BOUNDING_BOX_NV" value="0x908D" />
+      <token name="BOUNDING_BOX_OF_BOUNDING_BOXES_NV" value="0x909C" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+    </enum>
+    <enum name="PathElementType">
+      <token name="UTF8_NV" value="0x909A" />
+      <token name="UTF16_NV" value="0x909B" />
+    </enum>
+    <enum name="PathFillMode">
+      <token name="INVERT" value="0x150A" />
+      <token name="COUNT_UP_NV" value="0x9088" />
+      <token name="COUNT_DOWN_NV" value="0x9089" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+    </enum>
+    <enum name="PathFontStyle">
+      <token name="NONE" value="0" />
+      <token name="BOLD_BIT_NV" value="0x01" />
+      <token name="ITALIC_BIT_NV" value="0x02" />
+    </enum>
+    <enum name="PathFontTarget">
+      <token name="STANDARD_FONT_NAME_NV" value="0x9072" />
+      <token name="SYSTEM_FONT_NAME_NV" value="0x9073" />
+      <token name="FILE_NAME_NV" value="0x9074" />
+    </enum>
+    <enum name="PathGenMode">
+      <token name="NONE" value="0" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+    </enum>
+    <enum name="PathHandleMissingGlyphs">
+      <token name="SKIP_MISSING_GLYPH_NV" value="0x90A9" />
+      <token name="USE_MISSING_GLYPH_NV" value="0x90AA" />
+    </enum>
+    <enum name="PathListMode">
+      <token name="ACCUM_ADJACENT_PAIRS_NV" value="0x90AD" />
+      <token name="ADJACENT_PAIRS_NV" value="0x90AE" />
+      <token name="FIRST_TO_REST_NV" value="0x90AF" />
+    </enum>
+    <enum name="PathMetricMask">
+      <token name="GLYPH_WIDTH_BIT_NV" value="0x01" />
+      <token name="GLYPH_HEIGHT_BIT_NV" value="0x02" />
+      <token name="GLYPH_HORIZONTAL_BEARING_X_BIT_NV" value="0x04" />
+      <token name="GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" value="0x08" />
+      <token name="GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" value="0x10" />
+      <token name="GLYPH_VERTICAL_BEARING_X_BIT_NV" value="0x20" />
+      <token name="GLYPH_VERTICAL_BEARING_Y_BIT_NV" value="0x40" />
+      <token name="GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" value="0x80" />
+      <token name="GLYPH_HAS_KERNING_BIT_NV" value="0x100" />
+      <token name="FONT_X_MIN_BOUNDS_BIT_NV" value="0x00010000" />
+      <token name="FONT_Y_MIN_BOUNDS_BIT_NV" value="0x00020000" />
+      <token name="FONT_X_MAX_BOUNDS_BIT_NV" value="0x00040000" />
+      <token name="FONT_Y_MAX_BOUNDS_BIT_NV" value="0x00080000" />
+      <token name="FONT_UNITS_PER_EM_BIT_NV" value="0x00100000" />
+      <token name="FONT_ASCENDER_BIT_NV" value="0x00200000" />
+      <token name="FONT_DESCENDER_BIT_NV" value="0x00400000" />
+      <token name="FONT_HEIGHT_BIT_NV" value="0x00800000" />
+      <token name="FONT_MAX_ADVANCE_WIDTH_BIT_NV" value="0x01000000" />
+      <token name="FONT_MAX_ADVANCE_HEIGHT_BIT_NV" value="0x02000000" />
+      <token name="FONT_UNDERLINE_POSITION_BIT_NV" value="0x04000000" />
+      <token name="FONT_UNDERLINE_THICKNESS_BIT_NV" value="0x08000000" />
+      <token name="FONT_HAS_KERNING_BIT_NV" value="0x10000000" />
+      <token name="FONT_NUM_GLYPH_INDICES_BIT_NV" value="0x20000000" />
+    </enum>
+    <enum name="PathParameter">
+      <token name="PATH_STROKE_WIDTH_NV" value="0x9075" />
+      <token name="PATH_INITIAL_END_CAP_NV" value="0x9077" />
+      <token name="PATH_TERMINAL_END_CAP_NV" value="0x9078" />
+      <token name="PATH_JOIN_STYLE_NV" value="0x9079" />
+      <token name="PATH_MITER_LIMIT_NV" value="0x907A" />
+      <token name="PATH_INITIAL_DASH_CAP_NV" value="0x907C" />
+      <token name="PATH_TERMINAL_DASH_CAP_NV" value="0x907D" />
+      <token name="PATH_DASH_OFFSET_NV" value="0x907E" />
+      <token name="PATH_CLIENT_LENGTH_NV" value="0x907F" />
+      <token name="PATH_DASH_OFFSET_RESET_NV" value="0x90B4" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+      <token name="PATH_FILL_MASK_NV" value="0x9081" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+      <token name="PATH_STROKE_COVER_MODE_NV" value="0x9083" />
+      <token name="PATH_STROKE_MASK_NV" value="0x9084" />
+      <token name="PATH_END_CAPS_NV" value="0x9076" />
+      <token name="PATH_DASH_CAPS_NV" value="0x907B" />
+      <token name="PATH_COMMAND_COUNT_NV" value="0x909D" />
+      <token name="PATH_COORD_COUNT_NV" value="0x909E" />
+      <token name="PATH_DASH_ARRAY_COUNT_NV" value="0x909F" />
+      <token name="PATH_COMPUTED_LENGTH_NV" value="0x90A0" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="PATH_FILL_BOUNDING_BOX_NV" value="0x90A1" />
+      <token name="PATH_STROKE_BOUNDING_BOX_NV" value="0x90A2" />
+    </enum>
+    <enum name="PathStringFormat">
+      <token name="PATH_FORMAT_SVG_NV" value="0x9070" />
+      <token name="PATH_FORMAT_PS_NV" value="0x9071" />
+    </enum>
+    <enum name="PathTransformType">
+      <token name="NONE" value="0" />
+      <token name="TRANSLATE_X_NV" value="0x908E" />
+      <token name="TRANSLATE_Y_NV" value="0x908F" />
+      <token name="TRANSLATE_2D_NV" value="0x9090" />
+      <token name="TRANSLATE_3D_NV" value="0x9091" />
+      <token name="AFFINE_2D_NV" value="0x9092" />
+      <token name="AFFINE_3D_NV" value="0x9094" />
+      <token name="TRANSPOSE_AFFINE_2D_NV" value="0x9096" />
+      <token name="TRANSPOSE_AFFINE_3D_NV" value="0x9098" />
+    </enum>
+    <enum name="PipelineParameterName">
+      <token name="ACTIVE_PROGRAM" value="0x8259" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+    </enum>
     <enum name="PixelCopyType">
       <token name="COLOR" value="0x1800" />
       <token name="COLOR_EXT" value="0x1800" />
       <token name="LINE" value="0x1B01" />
       <token name="POINT" value="0x1B00" />
     </enum>
+    <enum name="PrecisionType">
+      <token name="LOW_FLOAT" value="0x8DF0" />
+      <token name="MEDIUM_FLOAT" value="0x8DF1" />
+      <token name="HIGH_FLOAT" value="0x8DF2" />
+      <token name="LOW_INT" value="0x8DF3" />
+      <token name="MEDIUM_INT" value="0x8DF4" />
+      <token name="HIGH_INT" value="0x8DF5" />
+    </enum>
     <enum name="PrimitiveType">
       <token name="LINES" value="0x0001" />
       <token name="LINES_ADJACENCY" value="0x000A" />
       <token name="TRIANGLE_STRIP_ADJACENCY_ARB" value="0x000D" />
       <token name="TRIANGLE_STRIP_ADJACENCY_EXT" value="0x000D" />
     </enum>
+    <enum name="ProgramInterface">
+      <token name="UNIFORM" value="0x92E1" />
+      <token name="UNIFORM_BLOCK" value="0x92E2" />
+      <token name="PROGRAM_INPUT" value="0x92E3" />
+      <token name="PROGRAM_OUTPUT" value="0x92E4" />
+      <token name="VERTEX_SUBROUTINE" value="0x92E8" />
+      <token name="TESS_CONTROL_SUBROUTINE" value="0x92E9" />
+      <token name="TESS_EVALUATION_SUBROUTINE" value="0x92EA" />
+      <token name="GEOMETRY_SUBROUTINE" value="0x92EB" />
+      <token name="FRAGMENT_SUBROUTINE" value="0x92EC" />
+      <token name="COMPUTE_SUBROUTINE" value="0x92ED" />
+      <token name="VERTEX_SUBROUTINE_UNIFORM" value="0x92EE" />
+      <token name="TESS_CONTROL_SUBROUTINE_UNIFORM" value="0x92EF" />
+      <token name="TESS_EVALUATION_SUBROUTINE_UNIFORM" value="0x92F0" />
+      <token name="GEOMETRY_SUBROUTINE_UNIFORM" value="0x92F1" />
+      <token name="FRAGMENT_SUBROUTINE_UNIFORM" value="0x92F2" />
+      <token name="COMPUTE_SUBROUTINE_UNIFORM" value="0x92F3" />
+      <token name="TRANSFORM_FEEDBACK_VARYING" value="0x92F4" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="BUFFER_VARIABLE" value="0x92E5" />
+      <token name="SHADER_STORAGE_BLOCK" value="0x92E6" />
+    </enum>
+    <enum name="ProgramInterfacePName">
+      <token name="ACTIVE_RESOURCES" value="0x92F5" />
+      <token name="MAX_NAME_LENGTH" value="0x92F6" />
+      <token name="MAX_NUM_ACTIVE_VARIABLES" value="0x92F7" />
+      <token name="MAX_NUM_COMPATIBLE_SUBROUTINES" value="0x92F8" />
+    </enum>
+    <enum name="ProgramParameterPName">
+      <token name="PROGRAM_BINARY_RETRIEVABLE_HINT" value="0x8257" />
+      <token name="PROGRAM_SEPARABLE" value="0x8258" />
+    </enum>
+    <enum name="ProgramPropertyARB">
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="LINK_STATUS" value="0x8B82" />
+      <token name="VALIDATE_STATUS" value="0x8B83" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="ATTACHED_SHADERS" value="0x8B85" />
+      <token name="ACTIVE_ATOMIC_COUNTER_BUFFERS" value="0x92D9" />
+      <token name="ACTIVE_ATTRIBUTES" value="0x8B89" />
+      <token name="ACTIVE_ATTRIBUTE_MAX_LENGTH" value="0x8B8A" />
+      <token name="ACTIVE_UNIFORMS" value="0x8B86" />
+      <token name="ACTIVE_UNIFORM_BLOCKS" value="0x8A36" />
+      <token name="ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" value="0x8A35" />
+      <token name="ACTIVE_UNIFORM_MAX_LENGTH" value="0x8B87" />
+      <token name="COMPUTE_WORK_GROUP_SIZE" value="0x8267" />
+      <token name="PROGRAM_BINARY_LENGTH" value="0x8741" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_MODE" value="0x8C7F" />
+      <token name="TRANSFORM_FEEDBACK_VARYINGS" value="0x8C83" />
+      <token name="TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" value="0x8C76" />
+      <token name="GEOMETRY_VERTICES_OUT" value="0x8916" />
+      <token name="GEOMETRY_INPUT_TYPE" value="0x8917" />
+      <token name="GEOMETRY_OUTPUT_TYPE" value="0x8918" />
+    </enum>
+    <enum name="ProgramStagePName">
+      <token name="ACTIVE_SUBROUTINE_UNIFORMS" value="0x8DE6" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8E47" />
+      <token name="ACTIVE_SUBROUTINES" value="0x8DE5" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" value="0x8E49" />
+      <token name="ACTIVE_SUBROUTINE_MAX_LENGTH" value="0x8E48" />
+    </enum>
+    <enum name="QueryObjectParameterName">
+      <token name="QUERY_RESULT_AVAILABLE" value="0x8867" />
+      <token name="QUERY_RESULT" value="0x8866" />
+      <token name="QUERY_RESULT_NO_WAIT" value="0x9194" />
+      <token name="QUERY_TARGET" value="0x82EA" />
+    </enum>
+    <enum name="QueryParameterName">
+      <token name="CURRENT_QUERY" value="0x8865" />
+      <token name="QUERY_COUNTER_BITS" value="0x8864" />
+    </enum>
+    <enum name="QueryTarget">
+      <token name="SAMPLES_PASSED" value="0x8914" />
+      <token name="ANY_SAMPLES_PASSED" value="0x8C2F" />
+      <token name="ANY_SAMPLES_PASSED_CONSERVATIVE" value="0x8D6A" />
+      <token name="PRIMITIVES_GENERATED" value="0x8C87" />
+      <token name="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" value="0x8C88" />
+      <token name="TIME_ELAPSED" value="0x88BF" />
+    </enum>
     <enum name="ReadBufferMode">
       <token name="AUX0" value="0x0409" />
       <token name="AUX1" value="0x040A" />
       <token name="LEFT" value="0x0406" />
       <token name="RIGHT" value="0x0407" />
     </enum>
+    <enum name="RenderbufferParameterName">
+      <token name="RENDERBUFFER_WIDTH" value="0x8D42" />
+      <token name="RENDERBUFFER_HEIGHT" value="0x8D43" />
+      <token name="RENDERBUFFER_INTERNAL_FORMAT" value="0x8D44" />
+      <token name="RENDERBUFFER_SAMPLES" value="0x8CAB" />
+      <token name="RENDERBUFFER_RED_SIZE" value="0x8D50" />
+      <token name="RENDERBUFFER_GREEN_SIZE" value="0x8D51" />
+      <token name="RENDERBUFFER_BLUE_SIZE" value="0x8D52" />
+      <token name="RENDERBUFFER_ALPHA_SIZE" value="0x8D53" />
+      <token name="RENDERBUFFER_DEPTH_SIZE" value="0x8D54" />
+      <token name="RENDERBUFFER_STENCIL_SIZE" value="0x8D55" />
+    </enum>
+    <enum name="RenderbufferTarget">
+      <token name="RENDERBUFFER" value="0x8D41" />
+    </enum>
     <enum name="RenderingMode" />
     <enum name="SamplePatternSGIS">
       <token name="1PASS_EXT" value="0x80A1" />
       <token name="4PASS_3_EXT" value="0x80A7" />
       <token name="4PASS_3_SGIS" value="0x80A7" />
     </enum>
+    <enum name="SamplerParameterName">
+      <token name="TEXTURE_WRAP_S" value="0x2802" />
+      <token name="TEXTURE_WRAP_T" value="0x2803" />
+      <token name="TEXTURE_WRAP_R" value="0x8072" />
+      <token name="TEXTURE_MIN_FILTER" value="0x2801" />
+      <token name="TEXTURE_MAG_FILTER" value="0x2800" />
+      <token name="TEXTURE_BORDER_COLOR" value="0x1004" />
+      <token name="TEXTURE_MIN_LOD" value="0x813A" />
+      <token name="TEXTURE_MAX_LOD" value="0x813B" />
+      <token name="TEXTURE_COMPARE_MODE" value="0x884C" />
+      <token name="TEXTURE_COMPARE_FUNC" value="0x884D" />
+    </enum>
     <enum name="SemaphoreParameterName">
       <token name="D3D12_FENCE_VALUE_EXT" value="0x9595" />
     </enum>
       <token name="SEPARABLE_2D" value="0x8012" />
       <token name="SEPARABLE_2D_EXT" value="0x8012" />
     </enum>
+    <enum name="ShaderParameterName">
+      <token name="SHADER_TYPE" value="0x8B4F" />
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="COMPILE_STATUS" value="0x8B81" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="SHADER_SOURCE_LENGTH" value="0x8B88" />
+    </enum>
+    <enum name="ShaderType">
+      <token name="COMPUTE_SHADER" value="0x91B9" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="FRAGMENT_SHADER_ARB" value="0x8B30" />
+      <token name="VERTEX_SHADER_ARB" value="0x8B31" />
+    </enum>
     <enum name="ShadingModel" />
     <enum name="StencilFaceDirection">
       <token name="FRONT" value="0x0404" />
       <token name="VERSION" value="0x1F02" />
       <token name="SHADING_LANGUAGE_VERSION" value="0x8B8C" />
     </enum>
+    <enum name="SubroutineParameterName">
+      <token name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A" />
+      <token name="COMPATIBLE_SUBROUTINES" value="0x8E4B" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+    </enum>
+    <enum name="SyncCondition">
+      <token name="SYNC_GPU_COMMANDS_COMPLETE" value="0x9117" />
+    </enum>
+    <enum name="SyncObjectMask">
+      <token name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001" />
+      <token name="SYNC_FLUSH_COMMANDS_BIT_APPLE" value="0x00000001" />
+    </enum>
+    <enum name="SyncParameterName">
+      <token name="OBJECT_TYPE" value="0x9112" />
+      <token name="SYNC_STATUS" value="0x9114" />
+      <token name="SYNC_CONDITION" value="0x9113" />
+      <token name="SYNC_FLAGS" value="0x9115" />
+    </enum>
+    <enum name="SyncStatus">
+      <token name="ALREADY_SIGNALED" value="0x911A" />
+      <token name="TIMEOUT_EXPIRED" value="0x911B" />
+      <token name="CONDITION_SATISFIED" value="0x911C" />
+      <token name="WAIT_FAILED" value="0x911D" />
+    </enum>
     <enum name="TexCoordPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
     <enum name="TextureGenMode">
       <token name="EYE_DISTANCE_TO_LINE_SGIS" value="0x81F2" />
       <token name="EYE_DISTANCE_TO_POINT_SGIS" value="0x81F0" />
+      <token name="EYE_LINEAR" value="0x2400" />
       <token name="OBJECT_DISTANCE_TO_LINE_SGIS" value="0x81F3" />
       <token name="OBJECT_DISTANCE_TO_POINT_SGIS" value="0x81F1" />
+      <token name="OBJECT_LINEAR" value="0x2401" />
     </enum>
     <enum name="TextureGenParameter">
       <token name="EYE_LINE_SGIS" value="0x81F6" />
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="TextureMagFilter">
       <token name="FILTER4_SGIS" value="0x8146" />
       <token name="DETAIL_TEXTURE_LEVEL_SGIS" value="0x809A" />
       <token name="DETAIL_TEXTURE_MODE_SGIS" value="0x809B" />
       <token name="DUAL_TEXTURE_SELECT_SGIS" value="0x8124" />
+      <token name="GENERATE_MIPMAP" value="0x8191" />
       <token name="GENERATE_MIPMAP_SGIS" value="0x8191" />
       <token name="POST_TEXTURE_FILTER_BIAS_SGIX" value="0x8179" />
       <token name="POST_TEXTURE_FILTER_SCALE_SGIX" value="0x817A" />
       <token name="TEXTURE_SWIZZLE_RGBA" value="0x8E46" />
       <token name="TEXTURE_TILING_EXT" value="0x9580" />
       <token name="DEPTH_STENCIL_TEXTURE_MODE" value="0x90EA" />
+      <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
+      <token name="SHARPEN_TEXTURE_FUNC_POINTS_SGIS" value="0x80B0" />
+      <token name="TEXTURE_4DSIZE_SGIS" value="0x8136" />
+      <token name="TEXTURE_ALPHA_SIZE" value="0x805F" />
+      <token name="TEXTURE_BASE_LEVEL_SGIS" value="0x813C" />
+      <token name="TEXTURE_BLUE_SIZE" value="0x805E" />
+      <token name="TEXTURE_BORDER" value="0x1005" />
+      <token name="TEXTURE_BORDER_COLOR_NV" value="0x1004" />
+      <token name="TEXTURE_COMPARE_OPERATOR_SGIX" value="0x819B" />
+      <token name="TEXTURE_COMPONENTS" value="0x1003" />
+      <token name="TEXTURE_DEPTH_EXT" value="0x8071" />
+      <token name="TEXTURE_FILTER4_SIZE_SGIS" value="0x8147" />
+      <token name="TEXTURE_GEQUAL_R_SGIX" value="0x819D" />
+      <token name="TEXTURE_GREEN_SIZE" value="0x805D" />
+      <token name="TEXTURE_HEIGHT" value="0x1001" />
+      <token name="TEXTURE_INTENSITY_SIZE" value="0x8061" />
+      <token name="TEXTURE_INTERNAL_FORMAT" value="0x1003" />
+      <token name="TEXTURE_LEQUAL_R_SGIX" value="0x819C" />
+      <token name="TEXTURE_LUMINANCE_SIZE" value="0x8060" />
+      <token name="TEXTURE_MAX_LEVEL_SGIS" value="0x813D" />
+      <token name="TEXTURE_MAX_LOD_SGIS" value="0x813B" />
+      <token name="TEXTURE_MIN_LOD_SGIS" value="0x813A" />
+      <token name="TEXTURE_RED_SIZE" value="0x805C" />
+      <token name="TEXTURE_RESIDENT" value="0x8067" />
+      <token name="TEXTURE_WIDTH" value="0x1000" />
+    </enum>
+    <enum name="TextureStorageMaskAMD">
+      <token name="TEXTURE_STORAGE_SPARSE_BIT_AMD" value="0x00000001" />
     </enum>
     <enum name="TextureTarget">
       <token name="DETAIL_TEXTURE_2D_SGIS" value="0x8095" />
       <token name="TEXTURE_2D_MULTISAMPLE" value="0x9100" />
       <token name="TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9102" />
     </enum>
+    <enum name="TextureUnit">
+      <token name="TEXTURE0" value="0x84C0" />
+      <token name="TEXTURE1" value="0x84C1" />
+      <token name="TEXTURE2" value="0x84C2" />
+      <token name="TEXTURE3" value="0x84C3" />
+      <token name="TEXTURE4" value="0x84C4" />
+      <token name="TEXTURE5" value="0x84C5" />
+      <token name="TEXTURE6" value="0x84C6" />
+      <token name="TEXTURE7" value="0x84C7" />
+      <token name="TEXTURE8" value="0x84C8" />
+      <token name="TEXTURE9" value="0x84C9" />
+      <token name="TEXTURE10" value="0x84CA" />
+      <token name="TEXTURE11" value="0x84CB" />
+      <token name="TEXTURE12" value="0x84CC" />
+      <token name="TEXTURE13" value="0x84CD" />
+      <token name="TEXTURE14" value="0x84CE" />
+      <token name="TEXTURE15" value="0x84CF" />
+      <token name="TEXTURE16" value="0x84D0" />
+      <token name="TEXTURE17" value="0x84D1" />
+      <token name="TEXTURE18" value="0x84D2" />
+      <token name="TEXTURE19" value="0x84D3" />
+      <token name="TEXTURE20" value="0x84D4" />
+      <token name="TEXTURE21" value="0x84D5" />
+      <token name="TEXTURE22" value="0x84D6" />
+      <token name="TEXTURE23" value="0x84D7" />
+      <token name="TEXTURE24" value="0x84D8" />
+      <token name="TEXTURE25" value="0x84D9" />
+      <token name="TEXTURE26" value="0x84DA" />
+      <token name="TEXTURE27" value="0x84DB" />
+      <token name="TEXTURE28" value="0x84DC" />
+      <token name="TEXTURE29" value="0x84DD" />
+      <token name="TEXTURE30" value="0x84DE" />
+      <token name="TEXTURE31" value="0x84DF" />
+    </enum>
     <enum name="TextureWrapMode">
       <token name="CLAMP_TO_BORDER" value="0x812D" />
       <token name="CLAMP_TO_BORDER_ARB" value="0x812D" />
       <token name="CLAMP_TO_EDGE_SGIS" value="0x812F" />
       <token name="REPEAT" value="0x2901" />
     </enum>
+    <enum name="TransformFeedbackPName">
+      <token name="TRANSFORM_FEEDBACK_BUFFER_BINDING" value="0x8C8F" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_START" value="0x8C84" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_SIZE" value="0x8C85" />
+      <token name="TRANSFORM_FEEDBACK_PAUSED" value="0x8E23" />
+      <token name="TRANSFORM_FEEDBACK_ACTIVE" value="0x8E24" />
+    </enum>
+    <enum name="TypeEnum">
+      <token name="QUERY_WAIT" value="0x8E13" />
+      <token name="QUERY_NO_WAIT" value="0x8E14" />
+      <token name="QUERY_BY_REGION_WAIT" value="0x8E15" />
+      <token name="QUERY_BY_REGION_NO_WAIT" value="0x8E16" />
+    </enum>
+    <enum name="UniformBlockPName">
+      <token name="UNIFORM_BLOCK_BINDING" value="0x8A3F" />
+      <token name="UNIFORM_BLOCK_DATA_SIZE" value="0x8A40" />
+      <token name="UNIFORM_BLOCK_NAME_LENGTH" value="0x8A41" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORMS" value="0x8A42" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" value="0x8A43" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" value="0x8A44" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x84F0" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x84F1" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" value="0x8A45" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER" value="0x90EC" />
+    </enum>
+    <enum name="UniformPName">
+      <token name="UNIFORM_TYPE" value="0x8A37" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+      <token name="UNIFORM_BLOCK_INDEX" value="0x8A3A" />
+      <token name="UNIFORM_OFFSET" value="0x8A3B" />
+      <token name="UNIFORM_ARRAY_STRIDE" value="0x8A3C" />
+      <token name="UNIFORM_MATRIX_STRIDE" value="0x8A3D" />
+      <token name="UNIFORM_IS_ROW_MAJOR" value="0x8A3E" />
+      <token name="UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX" value="0x92DA" />
+    </enum>
     <enum name="UseProgramStageMask">
       <token name="VERTEX_SHADER_BIT" value="0x00000001" />
       <token name="VERTEX_SHADER_BIT_EXT" value="0x00000001" />
       <token name="FRAGMENT_SHADER_BIT_EXT" value="0x00000002" />
       <token name="GEOMETRY_SHADER_BIT" value="0x00000004" />
       <token name="GEOMETRY_SHADER_BIT_EXT" value="0x00000004" />
+      <token name="GEOMETRY_SHADER_BIT_OES" value="0x00000004" />
       <token name="TESS_CONTROL_SHADER_BIT" value="0x00000008" />
       <token name="TESS_CONTROL_SHADER_BIT_EXT" value="0x00000008" />
+      <token name="TESS_CONTROL_SHADER_BIT_OES" value="0x00000008" />
       <token name="TESS_EVALUATION_SHADER_BIT" value="0x00000010" />
       <token name="TESS_EVALUATION_SHADER_BIT_EXT" value="0x00000010" />
+      <token name="TESS_EVALUATION_SHADER_BIT_OES" value="0x00000010" />
       <token name="COMPUTE_SHADER_BIT" value="0x00000020" />
       <token name="ALL_SHADER_BITS" value="0xFFFFFFFF" />
       <token name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF" />
     </enum>
+    <enum name="VertexArrayPName">
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_LONG" value="0x874E" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="VERTEX_ATTRIB_RELATIVE_OFFSET" value="0x82D5" />
+    </enum>
+    <enum name="VertexAttribEnum">
+      <token name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" value="0x889F" />
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="CURRENT_VERTEX_ATTRIB" value="0x8626" />
+    </enum>
+    <enum name="VertexAttribPointerType">
+      <token name="BYTE" value="0x1400" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="SHORT" value="0x1402" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="INT" value="0x1404" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="FIXED" value="0x140C" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexAttribType">
+      <token name="BYTE" value="0x1400" />
+      <token name="SHORT" value="0x1402" />
+      <token name="INT" value="0x1404" />
+      <token name="FIXED" value="0x140C" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexBufferObjectParameter">
+      <token name="BUFFER_ACCESS" value="0x88BB" />
+      <token name="BUFFER_ACCESS_FLAGS" value="0x911F" />
+      <token name="BUFFER_IMMUTABLE_STORAGE" value="0x821F" />
+      <token name="BUFFER_MAPPED" value="0x88BC" />
+      <token name="BUFFER_MAP_LENGTH" value="0x9120" />
+      <token name="BUFFER_MAP_OFFSET" value="0x9121" />
+      <token name="BUFFER_SIZE" value="0x8764" />
+      <token name="BUFFER_STORAGE_FLAGS" value="0x8220" />
+      <token name="BUFFER_USAGE" value="0x8765" />
+    </enum>
+    <enum name="VertexBufferObjectUsage">
+      <token name="STREAM_DRAW" value="0x88E0" />
+      <token name="STREAM_READ" value="0x88E1" />
+      <token name="STREAM_COPY" value="0x88E2" />
+      <token name="STATIC_DRAW" value="0x88E4" />
+      <token name="STATIC_READ" value="0x88E5" />
+      <token name="STATIC_COPY" value="0x88E6" />
+      <token name="DYNAMIC_DRAW" value="0x88E8" />
+      <token name="DYNAMIC_READ" value="0x88E9" />
+      <token name="DYNAMIC_COPY" value="0x88EA" />
+    </enum>
     <enum name="VertexPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
       <token name="INT" value="0x1404" />
       <token name="SHORT" value="0x1402" />
     </enum>
+    <enum name="VertexProvokingMode">
+      <token name="FIRST_VERTEX_CONVENTION" value="0x8E4D" />
+      <token name="LAST_VERTEX_CONVENTION" value="0x8E4E" />
+    </enum>
     <function name="ActiveProgramEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="BeginQueryIndexed" category="ARB_transform_feedback3" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBase" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBuffersBase" category="ARB_multi_bind" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BindBuffersRange" category="ARB_multi_bind" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
+      <param name="format" type="InternalFormat" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindImageTextures" category="ARB_multi_bind" extension="Core">
       <returns type="void" />
     </function>
     <function name="BindTransformFeedback" category="ARB_transform_feedback2" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BindTransformFeedbackTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="ARB_imaging" extension="Core">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunciARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateiARB" category="ARB_draw_buffers_blend" extension="ARB">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendParameteriNV" category="NV_blend_equation_advanced" extension="NV">
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlitNamedFramebuffer" category="ARB_direct_state_access" extension="Core">
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferAddressRangeNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <returns type="void" />
     </function>
     <function name="BufferStorage" category="ARB_buffer_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="CallCommandListNV" category="NV_command_list" extension="NV">
     </function>
     <function name="CheckFramebufferStatus" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="CheckNamedFramebufferStatus" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
-      <returns type="GLenum" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="CheckNamedFramebufferStatusEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="framebuffer" type="Framebuffer" flow="in" />
       <returns type="FramebufferStatus" />
     </function>
     <function name="ClearBufferData" category="ARB_clear_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferSubData" category="ARB_clear_buffer_object" extension="Core">
       <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClearNamedBufferData" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedBufferDataEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
     </function>
     <function name="ClearNamedBufferSubData" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClearNamedFramebufferfi" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
     </function>
     <function name="ClearNamedFramebufferfv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferiv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferuiv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLuint *" flow="in" />
       <returns type="void" />
     <function name="ClearTexImage" category="ARB_clear_texture" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     </function>
     <function name="ClientWaitSync" category="ARB_sync" extension="Core">
       <param name="sync" type="sync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="ClipControl" category="ARB_clip_control" extension="Core">
-      <param name="origin" type="GLenum" flow="in" />
-      <param name="depth" type="GLenum" flow="in" />
+      <param name="origin" type="ClipControlOrigin" flow="in" />
+      <param name="depth" type="ClipControlDepth" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorFormatNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <returns type="void" />
     </function>
     <function name="ColorP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="ColorP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="ColorTable" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ColorTableParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="ColorTableParameterPName" flow="in" />
+      <param name="pname" type="ColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="CheckedFloat32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="ColorTableParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="ColorTableParameterPName" flow="in" />
+      <param name="pname" type="ColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="CheckedInt32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionFilter1D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
     </function>
     <function name="ConvolutionFilter2D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="ConvolutionParameterf" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedFloat32" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedFloat32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="ConvolutionParameteri" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedInt32" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="ConvolutionParameter" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="CheckedInt32 *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubData" category="ARB_copy_buffer" extension="Core">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     </function>
     <function name="CopyColorTable" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter1D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyConvolutionFilter2D" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CopyImageSubData" category="ARB_copy_image" extension="Core">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="CoverageModulationTableNV" category="NV_framebuffer_mixed_samples" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="v" type="GLfloat *" flow="in" />
+      <param name="v" type="GLfloat *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="CoverFillPathInstancedNV" category="NV_path_rendering" extension="NV">
     </function>
     <function name="CreateBuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="buffers" type="GLuint *" flow="out" />
+      <param name="buffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateCommandListsNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="lists" type="GLuint *" flow="out" />
+      <param name="lists" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateFramebuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="framebuffers" type="GLuint *" flow="out" />
+      <param name="framebuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreatePerfQueryINTEL" category="INTEL_performance_query" extension="INTEL">
     </function>
     <function name="CreateProgramPipelines" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="pipelines" type="GLuint *" flow="out" />
+      <param name="pipelines" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateQueries" category="ARB_direct_state_access" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateRenderbuffers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="renderbuffers" type="GLuint *" flow="out" />
+      <param name="renderbuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSamplers" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="samplers" type="GLuint *" flow="out" />
+      <param name="samplers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateShaderProgramEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="string" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShaderProgramv" category="ARB_separate_shader_objects" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShaderProgramvEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
     </function>
     <function name="CreateStatesNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="states" type="GLuint *" flow="out" />
+      <param name="states" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSyncFromCLeventARB" category="ARB_cl_event" extension="ARB">
       <returns type="sync" />
     </function>
     <function name="CreateTextures" category="ARB_direct_state_access" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="textures" type="GLuint *" flow="out" />
+      <param name="textures" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTransformFeedbacks" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateVertexArrays" category="ARB_direct_state_access" extension="Core">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="arrays" type="GLuint *" flow="out" />
+      <param name="arrays" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="DebugMessageCallback" category="KHR_debug" extension="Core">
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControlARB" category="ARB_debug_output" extension="ARB">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControlKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" />
       <param name="enabled" type="GLboolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertARB" category="ARB_debug_output" extension="ARB">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="length" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="DeleteCommandListsNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="lists" type="GLuint *" flow="in" />
+      <param name="lists" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteFramebuffers" category="ARB_framebuffer_object" extension="Core">
     </function>
     <function name="DeleteStatesNV" category="NV_command_list" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="states" type="GLuint *" flow="in" />
+      <param name="states" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteSync" category="ARB_sync" extension="Core">
       <returns type="void" />
     </function>
     <function name="DisableIndexedEXT" category="EXT_direct_state_access" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="DrawElementsIndirect" category="ARB_draw_indirect" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="DrawElementsInstancedBaseInstance" category="ARB_base_instance" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="baseinstance" type="GLuint" flow="in" />
     <function name="DrawElementsInstancedBaseVertexBaseInstance" category="ARB_base_instance" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="basevertex" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="EnableIndexedEXT" category="EXT_direct_state_access" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQueryIndexed" category="ARB_transform_feedback3" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FenceSync" category="ARB_sync" extension="Core">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="sync" />
     </function>
       <returns type="void" />
     </function>
     <function name="FramebufferParameteri" category="ARB_framebuffer_no_attachments" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FramebufferSampleLocationsfvARB" category="ARB_sample_locations" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="start" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferSampleLocationsfvNV" category="NV_sample_locations" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="start" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="in" />
     <function name="FramebufferTexture1D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture2D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture3D" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="ARB_framebuffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMultiTexMipmapEXT" category="EXT_direct_state_access" extension="EXT">
     <function name="GetActiveAtomicCounterBufferiv" category="ARB_shader_atomic_counters" extension="Core">
       <param name="program" type="GLuint" flow="in" />
       <param name="bufferIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="AtomicCounterBufferPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineName" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetActiveSubroutineUniformiv" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SubroutineParameterName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineUniformName" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     <function name="GetActiveUniformBlockiv" category="ARB_uniform_buffer_object" extension="Core">
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformBlockIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformBlockPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(program,uniformBlockIndex,pname)" />
       <returns type="void" />
     </function>
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformCount" type="GLsizei" flow="in" />
       <param name="uniformIndices" type="GLuint *" flow="in" count="uniformCount" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(uniformCount,pname)" />
       <returns type="void" />
     </function>
     <function name="GetBooleanIndexedvEXT" category="EXT_direct_state_access" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="Boolean *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetBufferParameterui64vNV" category="NV_shader_buffer_load" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="pname" type="GLenum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetColorTableParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetColorTableParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ColorTableTarget" flow="in" />
-      <param name="pname" type="GetColorTableParameterPName" flow="in" />
+      <param name="pname" type="GetColorTableParameterPNameSGI" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetConvolutionParameterfv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="GetConvolutionParameterPName" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetConvolutionParameteriv" category="ARB_imaging" extension="Core">
       <param name="target" type="ConvolutionTarget" flow="in" />
-      <param name="pname" type="GetConvolutionParameterPName" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetDebugMessageLog" category="KHR_debug" extension="Core">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     <function name="GetDebugMessageLogARB" category="ARB_debug_output" extension="ARB">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     <function name="GetDebugMessageLogKHR" category="KHR_debug" extension="KHR">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     </function>
     <function name="GetDoublei_v" category="ARB_viewport_array" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLdouble *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     <function name="GetFramebufferAttachmentParameteriv" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferParameteriv" category="ARB_framebuffer_no_attachments" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatus" category="KHR_robustness" extension="Core">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusARB" category="ARB_robustness" extension="ARB">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusKHR" category="KHR_robustness" extension="KHR">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetHistogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetHistogramParameterfv" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
-      <param name="pname" type="GetHistogramParameterPName" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetHistogramParameteriv" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
-      <param name="pname" type="GetHistogramParameterPName" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="GLboolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <returns type="GLuint64" />
     </function>
     <function name="GetImageHandleNV" category="NV_bindless_texture" extension="NV">
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <returns type="GLuint64" />
     </function>
     <function name="GetInteger64v" category="ARB_sync" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="ARB_uniform_buffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetInternalformati64v" category="ARB_internalformat_query2" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetInternalformativ" category="ARB_internalformat_query" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetInternalformatSampleivNV" category="NV_internalformat_sample_query" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetMinmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetMinmaxParameterfv" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="pname" type="GetMinmaxParameterPName" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="pname" type="GetMinmaxParameterPNameEXT" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMinmaxParameteriv" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="pname" type="GetMinmaxParameterPName" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="pname" type="GetMinmaxParameterPNameEXT" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMultisamplefv" category="ARB_texture_multisample" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetMultisamplePNameNV" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="val" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteri64v" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedBufferPointerv" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferAttachmentParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetFramebufferParameter" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedProgramivEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="program" type="GLuint" flow="in" />
       <param name="target" type="ProgramTarget" flow="in" />
-      <param name="pname" type="ProgramProperty" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedRenderbufferParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetnColorTableARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ColorTableTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="table" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnCompressedTexImageARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="lod" type="GLint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="img" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnConvolutionFilterARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="image" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnHistogramARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapdvARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLdouble *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapfvARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMapivARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnMinmaxARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="Boolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapfvARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLfloat *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapuivARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLuint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapusvARB" category="ARB_robustness" extension="ARB">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLushort *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnSeparableFilterARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="rowBufSize" type="GLsizei" flow="in" />
       <param name="row" type="void *" flow="out" count="rowBufSize" />
       <param name="columnBufSize" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetnTexImageARB" category="ARB_robustness" extension="ARB">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="img" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <param name="queryHandle" type="GLuint" flow="in" />
       <param name="flags" type="GLuint" flow="in" />
       <param name="dataSize" type="GLsizei" flow="in" />
-      <param name="data" type="GLvoid *" flow="out" />
+      <param name="data" type="void *" flow="out" />
       <param name="bytesWritten" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramInterfaceiv" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
+      <param name="pname" type="ProgramInterfacePName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramPipelineiv" category="ARB_separate_shader_objects" extension="Core">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramPipelineivEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourcefvNV" category="NV_path_rendering" extension="NV">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" />
     </function>
     <function name="GetProgramResourceIndex" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLuint" />
     </function>
     <function name="GetProgramResourceiv" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" count="propCount" />
     </function>
     <function name="GetProgramResourceLocation" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceLocationIndex" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceName" category="ARB_program_interface_query" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetProgramStageiv" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="pname" type="ProgramStagePName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjecti64v" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectiv" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectui64v" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectuiv" category="ARB_direct_state_access" extension="Core">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryIndexediv" category="ARB_transform_feedback3" extension="Core">
       <param name="target" type="GLenum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjecti64v" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64v" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterfv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameteriv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSeparableFilter" category="ARB_imaging" extension="Core">
-      <param name="target" type="SeparableTarget" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="type" type="PixelType" flow="in" />
       <param name="row" type="void *" flow="out" count="COMPSIZE(target,format,type)" />
       <returns type="void" />
     </function>
     <function name="GetShaderPrecisionFormat" category="ARB_ES2_compatibility" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="precisiontype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="precisiontype" type="PrecisionType" flow="in" />
       <param name="range" type="GLint *" flow="out" count="2" />
       <param name="precision" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetStageIndexNV" category="NV_command_list" extension="NV">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <returns type="GLushort" />
     </function>
     <function name="GetSubroutineIndex" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="GetSubroutineUniformLocation" category="ARB_shader_subroutine" extension="Core">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLint" />
     </function>
     <function name="GetSynciv" category="ARB_sync" extension="Core">
       <param name="sync" type="sync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
     <function name="GetTextureImage" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetTextureLevelParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureLevelParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterIiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameterIuiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetTextureParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki_v" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki64_v" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbackiv" category="ARB_direct_state_access" extension="Core">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetUniformSubroutineuiv" category="ARB_shader_subroutine" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="location" type="GLint" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="1" />
       <returns type="void" />
     <function name="GetVertexArrayIndexed64iv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexediv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIntegeri_vEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIntegervEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayiv" category="ARB_direct_state_access" extension="Core">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayPointeri_vEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="void **" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayPointervEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="void **" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLdv" category="ARB_vertex_attrib_64bit" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLdouble *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLi64vNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLui64vARB" category="ARB_bindless_texture" extension="ARB">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLui64vNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLuint64EXT *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="GLVULKANPROCNV" />
     </function>
     <function name="Histogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="InvalidateFramebuffer" category="ARB_invalidate_subdata" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
       <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
       <returns type="void" />
     <function name="InvalidateNamedFramebufferData" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferSubData" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="InvalidateSubFramebuffer" category="ARB_invalidate_subdata" extension="Core">
       <param name="target" type="GLenum" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" count="numAttachments" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="GLboolean" />
     </function>
     <function name="IsEnabledIndexedEXT" category="EXT_direct_state_access" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
     </function>
     <function name="MapNamedBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="VertexBufferObjectAccess" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRange" category="ARB_direct_state_access" extension="Core">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="BufferSize" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRangeEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
-    <function name="MatrixFrustumEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixFrustumEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="left" type="GLdouble" flow="in" />
       <param name="right" type="GLdouble" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoaddEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoaddEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadfEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadfEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadIdentityEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadIdentityEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadTransposedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadTransposedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixLoadTransposefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixLoadTransposefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultdEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultdEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultfEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultfEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultTransposedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultTransposedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLdouble *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixMultTransposefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixMultTransposefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="m" type="GLfloat *" flow="in" count="16" />
       <returns type="void" />
     </function>
-    <function name="MatrixOrthoEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixOrthoEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="left" type="GLdouble" flow="in" />
       <param name="right" type="GLdouble" flow="in" />
       <param name="zFar" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixPopEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixPopEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixPushEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixPushEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixRotatedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixRotatedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="angle" type="GLdouble" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixRotatefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixRotatefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="angle" type="GLfloat" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="z" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixScaledEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixScaledEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="y" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixScalefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixScalefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="y" type="GLfloat" flow="in" />
       <param name="z" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixTranslatedEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixTranslatedEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLdouble" flow="in" />
       <param name="y" type="GLdouble" flow="in" />
       <param name="z" type="GLdouble" flow="in" />
       <returns type="void" />
     </function>
-    <function name="MatrixTranslatefEXT" category="EXT_direct_state_access" extension="EXT">
+    <function name="MatrixTranslatefEXT" category="EXT_direct_state_access|NV_path_rendering" extension="EXT" version="">
       <param name="mode" type="MatrixMode" flow="in" />
       <param name="x" type="GLfloat" flow="in" />
       <param name="y" type="GLfloat" flow="in" />
       <param name="count" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MaxShaderCompilerThreadsKHR" category="KHR_parallel_shader_compile" extension="KHR">
+      <param name="count" type="GLuint" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="MemoryBarrier" category="ARB_shader_image_load_store" extension="Core">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrierByRegion" category="ARB_ES3_1_compatibility" extension="Core">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="Minmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="sink" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="MultiDrawElementsIndirect" category="ARB_multi_draw_indirect" extension="Core">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" count="COMPSIZE(drawcount,stride)" />
       <param name="drawcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectBindlessCountNV" category="NV_bindless_multi_draw_indirect_count" extension="NV">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawCount" type="GLsizei" flow="in" />
       <param name="maxDrawCount" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectBindlessNV" category="NV_bindless_multi_draw_indirect" extension="NV">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawCount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectCountARB" category="ARB_indirect_parameters" extension="ARB">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <param name="drawcount" type="GLintptr" flow="in" />
       <param name="maxdrawcount" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texunit" type="TextureUnit" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" />
-      <param name="usage" type="GLenum" flow="in" />
+      <param name="usage" type="VertexBufferObjectUsage" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferDataEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorageEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferSubData" category="ARB_direct_state_access" extension="Core">
     </function>
     <function name="NamedFramebufferDrawBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buf" type="GLenum" flow="in" />
+      <param name="buf" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferDrawBuffers" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="bufs" type="GLenum *" flow="in" />
+      <param name="bufs" type="ColorBuffer *" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferParameteri" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="NamedFramebufferReadBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
+      <param name="src" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferRenderbuffer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="renderbuffertarget" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="renderbuffertarget" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="NamedFramebufferTexture" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTextureLayer" category="ARB_direct_state_access" extension="Core">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="layer" type="GLint" flow="in" />
     </function>
     <function name="NamedRenderbufferStorage" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedRenderbufferStorageEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="renderbuffer" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisampleEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="renderbuffer" type="Renderbuffer" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="NormalP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NormalP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="KHR_debug" extension="Core">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="ObjectLabelKHR" category="KHR_debug" extension="KHR">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="PatchParameterfv" category="ARB_tessellation_shader" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="values" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="PatchParameteri" category="ARB_tessellation_shader" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <param name="firstPathName" type="GLuint" flow="in" />
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="firstGlyphIndex" type="GLuint" flow="in" />
       <param name="numGlyphs" type="GLsizei" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
     <function name="PathGlyphIndexRangeNV" category="NV_path_rendering" extension="NV">
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
       <param name="emScale" type="GLfloat" flow="in" />
       <param name="baseAndCount" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ProvokingVertex" category="ARB_provoking_vertex" extension="Core">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="VertexProvokingMode" flow="in" />
       <returns type="void" />
     </function>
     <function name="PushClientAttribDefaultEXT" category="EXT_direct_state_access" extension="EXT">
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroupKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" />
     </function>
     <function name="QueryCounter" category="ARB_timer_query" extension="Core">
       <param name="id" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="RasterSamplesEXT" category="EXT_raster_multisample|EXT_texture_filter_minmax|NV_framebuffer_mixed_samples" extension="EXT" version="">
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorage" category="ARB_framebuffer_object" extension="Core">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisample" category="ARB_framebuffer_object" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="coverageSamples" type="GLsizei" flow="in" />
       <param name="colorSamples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ResetHistogram" category="ARB_imaging" extension="Core">
-      <param name="target" type="HistogramTarget" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="ResetMinmax" category="ARB_imaging" extension="Core">
-      <param name="target" type="MinmaxTarget" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="ResolveDepthValuesNV" category="NV_sample_locations" extension="NV">
     </function>
     <function name="SamplerParameterf" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterfv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteri" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuiv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteriv" category="ARB_sampler_objects" extension="Core">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="SecondaryColorFormatNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="SeparableFilter2D" category="ARB_imaging" extension="Core">
-      <param name="target" type="SeparableTarget" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     </function>
     <function name="TexBufferARB" category="ARB_texture_buffer_object" extension="ARB">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferRange" category="ARB_texture_buffer_range" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexImage2DMultisample" category="ARB_texture_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DMultisample" category="ARB_texture_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage1D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DMultisample" category="ARB_texture_storage_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3D" category="ARB_texture_storage" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisample" category="ARB_texture_storage_multisample" extension="Core">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureBuffer" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferRange" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     <function name="TextureBufferRangeEXT" category="EXT_direct_state_access" extension="EXT">
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureParameterf" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterfv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameteri" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterIiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameterIuiv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureParameteriv" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage1D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage2D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="TextureStorage2DMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="GLboolean" flow="in" />
       <param name="texture" type="Texture" flow="in" />
       <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="TextureInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
     <function name="TextureStorage3D" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="TextureStorage3DMultisample" category="ARB_direct_state_access" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="TextureView" category="ARB_texture_view" extension="Core">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="UniformSubroutinesuiv" category="ARB_shader_subroutine" extension="Core">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="indices" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="UseProgramStages" category="ARB_separate_shader_objects" extension="Core">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="UseProgramStagesEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="normalized" type="GLboolean" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLFormat" category="ARB_vertex_attrib_binding" extension="Core">
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLFormatNV" category="NV_vertex_attrib_integer_64bit" extension="NV">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLPointer" category="ARB_vertex_attrib_64bit" extension="Core">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="size" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexFormatNV" category="NV_vertex_buffer_unified_memory" extension="NV">
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP3ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP3uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP4ui" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP4uiv" category="ARB_vertex_type_2_10_10_10_rev" extension="Core">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <token name="REPEAT" value="0x2901" />
     </enum>
     <function name="BlendFunc" category="VERSION_1_0" extension="Core" version="1.0">
-      <param name="sfactor" type="BlendingFactorSrc" flow="in" />
-      <param name="dfactor" type="BlendingFactorDest" flow="in" />
+      <param name="sfactor" type="BlendingFactor" flow="in" />
+      <param name="dfactor" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="Clear" category="VERSION_1_0" extension="Core" version="1.0">
     <function name="TexImage1D" category="VERSION_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="format" type="PixelFormat" flow="in" />
     <function name="TexImage2D" category="VERSION_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CopyTexImage1D" category="VERSION_1_1" extension="Core" version="1.1">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="CopyTexImage2D" category="VERSION_1_1" extension="Core" version="1.1">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     <function name="TexImage3D" category="VERSION_1_2" extension="Core" version="1.2">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="CompressedTexImage1D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
     <function name="CompressedTexImage2D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CompressedTexImage3D" category="VERSION_1_3" extension="Core" version="1.3">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <token name="TEXTURE_DEPTH_SIZE" value="0x884A" />
       <token name="TEXTURE_COMPARE_MODE" value="0x884C" />
       <token name="TEXTURE_COMPARE_FUNC" value="0x884D" />
-      <token name="FUNC_ADD" value="0x8006" />
-      <token name="FUNC_SUBTRACT" value="0x800A" />
-      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
-      <token name="MIN" value="0x8007" />
-      <token name="MAX" value="0x8008" />
+      <token name="BLEND_COLOR" value="0x8005" />
+      <token name="BLEND_EQUATION" value="0x8009" />
       <token name="CONSTANT_COLOR" value="0x8001" />
       <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
       <token name="CONSTANT_ALPHA" value="0x8003" />
       <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
+      <token name="MIN" value="0x8007" />
+      <token name="MAX" value="0x8008" />
     </enum>
     <function name="BlendColor" category="VERSION_1_4" extension="Core" version="1.4">
       <param name="red" type="ColorF" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="VERSION_1_4" extension="Core" version="1.4">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparate" category="VERSION_1_4" extension="Core" version="1.4">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiDrawArrays" category="VERSION_1_4" extension="Core" version="1.4">
       <token name="SRC1_ALPHA" value="0x8589" />
     </enum>
     <function name="BeginQuery" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQuery" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenBuffers" category="VERSION_1_5" extension="Core" version="1.5">
       <returns type="void" />
     </function>
     <function name="GetQueryiv" category="VERSION_1_5" extension="Core" version="1.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectiv" category="VERSION_1_5" extension="Core" version="1.5">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectuiv" category="VERSION_1_5" extension="Core" version="1.5">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="GLuint" />
     </function>
     <function name="CreateShader" category="VERSION_2_0" extension="Core" version="2.0">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="DeleteProgram" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramiv" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetShaderiv" category="VERSION_2_0" extension="Core" version="2.0">
       <param name="shader" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ShaderParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BeginTransformFeedback" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="primitiveMode" type="GLenum" flow="in" />
+      <param name="primitiveMode" type="PrimitiveType" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBase" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="CheckFramebufferStatus" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="ClampColor" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="ClampColorTargetARB" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLfloat *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferiv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferuiv" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="Disablei" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="Enablei" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture1D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture2D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="FramebufferTexture3D" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenFramebuffers" category="VERSION_3_0" extension="Core" version="3.0">
       <returns type="void" />
     </function>
     <function name="GetBooleani_v" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="Boolean *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     <function name="GetFramebufferAttachmentParameteriv" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetStringi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="name" type="GLenum" flow="in" />
+      <param name="name" type="StringName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="String" />
     </function>
       <returns type="void" />
     </function>
     <function name="IsEnabledi" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
     </function>
     <function name="RenderbufferStorage" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisample" category="VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="VertexAttribIPointer" category="VERSION_3_0" extension="Core" version="3.0">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="VertexAttribEnum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="COMPSIZE(size,type,stride)" />
       <returns type="void" />
       <token name="INVALID_INDEX" value="0xFFFFFFFF" />
     </enum>
     <function name="BindBufferBase" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubData" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     <function name="GetActiveUniformBlockiv" category="VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformBlockIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformBlockPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(program,uniformBlockIndex,pname)" />
       <returns type="void" />
     </function>
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformCount" type="GLsizei" flow="in" />
       <param name="uniformIndices" type="GLuint *" flow="in" count="uniformCount" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(uniformCount,pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="TexBuffer" category="VERSION_3_1" extension="Core" version="3.1">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </enum>
     <function name="ClientWaitSync" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="DeleteSync" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
       <returns type="void" />
     </function>
     <function name="FenceSync" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="sync" />
     </function>
     <function name="FramebufferTexture" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetInteger64i_v" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetInteger64v" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMultisamplefv" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetMultisamplePNameNV" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="val" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSynciv" category="VERSION_3_2" extension="Core" version="3.2">
       <param name="sync" type="sync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="ProvokingVertex" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="VertexProvokingMode" flow="in" />
       <returns type="void" />
     </function>
     <function name="SampleMaski" category="VERSION_3_2" extension="Core" version="3.2">
       <returns type="void" />
     </function>
     <function name="TexImage2DMultisample" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DMultisample" category="VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="ColorP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetQueryObjecti64v" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64v" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterfv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameteriv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="Boolean" />
     </function>
     <function name="MultiTexCoordP1ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoordP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="texture" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="NormalP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NormalP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="NormalPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="QueryCounter" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="id" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterf" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterfv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteri" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteriv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SecondaryColorP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ColorPointerType" flow="in" />
       <param name="color" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexCoordP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="TexCoordPointerType" flow="in" />
       <param name="coords" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     </function>
     <function name="VertexAttribP1ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP1uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4ui" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
       <param name="index" type="GLuint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="normalized" type="Boolean" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP2ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP2uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP3ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP3uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="VertexP4ui" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexP4uiv" category="VERSION_3_3" extension="Core" version="3.3">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexPointerType" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="1" />
       <returns type="void" />
     </function>
       <token name="MAX_VERTEX_STREAMS" value="0x8E71" />
     </enum>
     <function name="BeginQueryIndexed" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindTransformFeedback" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BindTransformFeedbackTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationi" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparatei" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunci" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparatei" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="DeleteTransformFeedbacks" category="VERSION_4_0" extension="Core" version="4.0">
     </function>
     <function name="DrawElementsIndirect" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQueryIndexed" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetActiveSubroutineName" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetActiveSubroutineUniformiv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SubroutineParameterName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetActiveSubroutineUniformName" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufsize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
     </function>
     <function name="GetProgramStageiv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="pname" type="ProgramStagePName" flow="in" />
       <param name="values" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetQueryIndexediv" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="target" type="GLenum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSubroutineIndex" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="GetSubroutineUniformLocation" category="VERSION_4_0" extension="Core" version="4.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="name" type="GLchar *" flow="in" />
       <returns type="GLint" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetUniformSubroutineuiv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="location" type="GLint" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="1" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="PatchParameterfv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="values" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="PatchParameteri" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="UniformSubroutinesuiv" category="VERSION_4_0" extension="Core" version="4.0">
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="indices" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="CreateShaderProgramv" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
       <returns type="void" />
     </function>
     <function name="GetDoublei_v" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLdouble *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetProgramPipelineiv" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetShaderPrecisionFormat" category="VERSION_4_1" extension="Core" version="4.1">
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="precisiontype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="precisiontype" type="PrecisionType" flow="in" />
       <param name="range" type="GLint *" flow="out" count="2" />
       <param name="precision" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="GetVertexAttribLdv" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexAttribEnum" flow="in" />
       <param name="params" type="GLdouble *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="UseProgramStages" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="VertexAttribLPointer" category="VERSION_4_1" extension="Core" version="4.1">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="size" />
       <returns type="void" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
+      <param name="format" type="InternalFormat" flow="in" />
       <returns type="void" />
     </function>
     <function name="DrawArraysInstancedBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
     <function name="DrawElementsInstancedBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="baseinstance" type="GLuint" flow="in" />
     <function name="DrawElementsInstancedBaseVertexBaseInstance" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="basevertex" type="GLint" flow="in" />
     <function name="GetActiveAtomicCounterBufferiv" category="VERSION_4_2" extension="Core" version="4.2">
       <param name="program" type="GLuint" flow="in" />
       <param name="bufferIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="AtomicCounterBufferPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetInternalformativ" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrier" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage1D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3D" category="VERSION_4_2" extension="Core" version="4.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferData" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferSubData" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="CopyImageSubData" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="FramebufferParameteri" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetDebugMessageLog" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     </function>
     <function name="GetFramebufferParameteriv" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetInternalformati64v" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetProgramInterfaceiv" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
+      <param name="pname" type="ProgramInterfacePName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourceIndex" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLuint" />
     </function>
     <function name="GetProgramResourceiv" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" count="propCount" />
     </function>
     <function name="GetProgramResourceLocation" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceLocationIndex" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceName" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="InvalidateFramebuffer" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
       <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
       <returns type="void" />
     <function name="InvalidateSubFramebuffer" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="target" type="GLenum" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" count="numAttachments" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirect" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" count="COMPSIZE(drawcount,stride)" />
       <param name="drawcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <returns type="void" />
     </function>
     <function name="TexBufferRange" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DMultisample" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisample" category="VERSION_4_3" extension="Core" version="4.3">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureView" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
     <function name="VertexAttribLFormat" category="VERSION_4_3" extension="Core" version="4.3">
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
     </enum>
     <function name="BindBuffersBase" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BindBuffersRange" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="first" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="buffers" type="GLuint *" flow="in" count="count" />
       <returns type="void" />
     </function>
     <function name="BufferStorage" category="VERSION_4_4" extension="Core" version="4.4">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearTexImage" category="VERSION_4_4" extension="Core" version="4.4">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="CheckNamedFramebufferStatus" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
-      <returns type="GLenum" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="ClearNamedBufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedBufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferfi" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
     </function>
     <function name="ClearNamedFramebufferfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearNamedFramebufferuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="GLint" flow="in" />
       <param name="value" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClipControl" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="origin" type="GLenum" flow="in" />
-      <param name="depth" type="GLenum" flow="in" />
+      <param name="origin" type="ClipControlOrigin" flow="in" />
+      <param name="depth" type="ClipControlDepth" flow="in" />
       <returns type="void" />
     </function>
     <function name="CompressedTextureSubImage1D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="CreateBuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="buffers" type="GLuint *" flow="out" />
+      <param name="buffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateFramebuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="framebuffers" type="GLuint *" flow="out" />
+      <param name="framebuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateProgramPipelines" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="pipelines" type="GLuint *" flow="out" />
+      <param name="pipelines" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateQueries" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateRenderbuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="renderbuffers" type="GLuint *" flow="out" />
+      <param name="renderbuffers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateSamplers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="samplers" type="GLuint *" flow="out" />
+      <param name="samplers" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTextures" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="textures" type="GLuint *" flow="out" />
+      <param name="textures" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateTransformFeedbacks" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="ids" type="GLuint *" flow="out" />
+      <param name="ids" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="CreateVertexArrays" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="arrays" type="GLuint *" flow="out" />
+      <param name="arrays" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="DisableVertexArrayAttrib" category="VERSION_4_5" extension="Core" version="4.5">
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatus" category="VERSION_4_5" extension="Core" version="4.5">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetNamedBufferParameteri64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedBufferPointerv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexBufferObjectParameter" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetNamedFramebufferAttachmentParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedFramebufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetFramebufferParameter" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetNamedRenderbufferParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnColorTable" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ColorTableTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="table" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnCompressedTexImage" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="lod" type="GLint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnConvolutionFilter" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTarget" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="image" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnHistogram" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
       <param name="reset" type="GLboolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapdv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLdouble *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapfv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMapiv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="MapQuery" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="v" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnMinmax" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MinmaxTargetEXT" flow="in" />
       <param name="reset" type="GLboolean" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapfv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapuiv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetnPixelMapusv" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="values" type="GLushort *" flow="out" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetnSeparableFilter" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="target" type="SeparableTargetEXT" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="rowBufSize" type="GLsizei" flow="in" />
       <param name="row" type="void *" flow="out" />
       <param name="columnBufSize" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetnTexImage" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetQueryBufferObjecti64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectui64v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetQueryBufferObjectuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="id" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetTextureImage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     <function name="GetTextureLevelParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureLevelParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterIiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameterIuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTextureParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="pixels" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki_v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbacki64_v" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetTransformFeedbackiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="xfb" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TransformFeedbackPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexed64iv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayIndexediv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="index" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetVertexArrayiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="vaobj" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="VertexArrayPName" flow="in" />
       <param name="param" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <returns type="void" />
     </function>
     <function name="InvalidateNamedFramebufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
     </function>
     <function name="MapNamedBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapNamedBufferRange" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="BufferSize" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MemoryBarrierByRegion" category="VERSION_4_5" extension="Core" version="4.5">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferData" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" />
-      <param name="usage" type="GLenum" flow="in" />
+      <param name="usage" type="VertexBufferObjectUsage" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="buffer" type="GLuint" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferSubData" category="VERSION_4_5" extension="Core" version="4.5">
     </function>
     <function name="NamedFramebufferDrawBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="buf" type="GLenum" flow="in" />
+      <param name="buf" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferDrawBuffers" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="bufs" type="GLenum *" flow="in" />
+      <param name="bufs" type="ColorBuffer *" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferParameteri" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferReadBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
+      <param name="src" type="ColorBuffer" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferRenderbuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="renderbuffertarget" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="renderbuffertarget" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTexture" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedFramebufferTextureLayer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="framebuffer" type="GLuint" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="layer" type="GLint" flow="in" />
     </function>
     <function name="NamedRenderbufferStorage" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="NamedRenderbufferStorageMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="renderbuffer" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="TextureBuffer" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureBufferRange" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     </function>
     <function name="TextureParameterf" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterfv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameteri" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterIiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameterIuiv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureParameteriv" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="TextureParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage1D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TextureStorage2D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="TextureStorage2DMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="GLboolean" flow="in" />
     <function name="TextureStorage3D" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="TextureStorage3DMultisample" category="VERSION_4_5" extension="Core" version="4.5">
       <param name="texture" type="GLuint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="normalized" type="GLboolean" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="vaobj" type="GLuint" flow="in" />
       <param name="attribindex" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="VertexAttribType" flow="in" />
       <param name="relativeoffset" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <token name="TEXTURE_MAX_LEVEL_APPLE" value="0x813D" />
     </enum>
     <enum name="ARM_rgba8" />
+    <enum name="AtomicCounterBufferPName">
+      <token name="ATOMIC_COUNTER_BUFFER_BINDING" value="0x92C1" />
+      <token name="ATOMIC_COUNTER_BUFFER_DATA_SIZE" value="0x92C4" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS" value="0x92C5" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES" value="0x92C6" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER" value="0x92C7" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x92C8" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x92C9" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER" value="0x92CA" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER" value="0x92CB" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER" value="0x90ED" />
+    </enum>
     <enum name="AttribMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" deprecated="3.2" />
       <token name="ALL_ATTRIB_BITS" value="0xFFFFFFFF" deprecated="3.2" />
       <token name="TRANSFORM_BIT" value="0x00001000" deprecated="3.2" />
       <token name="VIEWPORT_BIT" value="0x00000800" deprecated="3.2" />
     </enum>
+    <enum name="AttributeType">
+      <token name="FLOAT_VEC2" value="0x8B50" />
+      <token name="FLOAT_VEC2_ARB" value="0x8B50" />
+      <token name="FLOAT_VEC3" value="0x8B51" />
+      <token name="FLOAT_VEC3_ARB" value="0x8B51" />
+      <token name="FLOAT_VEC4" value="0x8B52" />
+      <token name="FLOAT_VEC4_ARB" value="0x8B52" />
+      <token name="INT_VEC2" value="0x8B53" />
+      <token name="INT_VEC2_ARB" value="0x8B53" />
+      <token name="INT_VEC3" value="0x8B54" />
+      <token name="INT_VEC3_ARB" value="0x8B54" />
+      <token name="INT_VEC4" value="0x8B55" />
+      <token name="INT_VEC4_ARB" value="0x8B55" />
+      <token name="BOOL" value="0x8B56" />
+      <token name="BOOL_ARB" value="0x8B56" />
+      <token name="BOOL_VEC2" value="0x8B57" />
+      <token name="BOOL_VEC2_ARB" value="0x8B57" />
+      <token name="BOOL_VEC3" value="0x8B58" />
+      <token name="BOOL_VEC3_ARB" value="0x8B58" />
+      <token name="BOOL_VEC4" value="0x8B59" />
+      <token name="BOOL_VEC4_ARB" value="0x8B59" />
+      <token name="FLOAT_MAT2" value="0x8B5A" />
+      <token name="FLOAT_MAT2_ARB" value="0x8B5A" />
+      <token name="FLOAT_MAT3" value="0x8B5B" />
+      <token name="FLOAT_MAT3_ARB" value="0x8B5B" />
+      <token name="FLOAT_MAT4" value="0x8B5C" />
+      <token name="FLOAT_MAT4_ARB" value="0x8B5C" />
+      <token name="SAMPLER_1D" value="0x8B5D" />
+      <token name="SAMPLER_1D_ARB" value="0x8B5D" />
+      <token name="SAMPLER_2D" value="0x8B5E" />
+      <token name="SAMPLER_2D_ARB" value="0x8B5E" />
+      <token name="SAMPLER_3D" value="0x8B5F" />
+      <token name="SAMPLER_3D_ARB" value="0x8B5F" />
+      <token name="SAMPLER_3D_OES" value="0x8B5F" />
+      <token name="SAMPLER_CUBE" value="0x8B60" />
+      <token name="SAMPLER_CUBE_ARB" value="0x8B60" />
+      <token name="SAMPLER_1D_SHADOW" value="0x8B61" />
+      <token name="SAMPLER_1D_SHADOW_ARB" value="0x8B61" />
+      <token name="SAMPLER_2D_SHADOW" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_ARB" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_EXT" value="0x8B62" />
+      <token name="SAMPLER_2D_RECT" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_ARB" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_SHADOW" value="0x8B64" />
+      <token name="SAMPLER_2D_RECT_SHADOW_ARB" value="0x8B64" />
+      <token name="FLOAT_MAT2x3" value="0x8B65" />
+      <token name="FLOAT_MAT2x3_NV" value="0x8B65" />
+      <token name="FLOAT_MAT2x4" value="0x8B66" />
+      <token name="FLOAT_MAT2x4_NV" value="0x8B66" />
+      <token name="FLOAT_MAT3x2" value="0x8B67" />
+      <token name="FLOAT_MAT3x2_NV" value="0x8B67" />
+      <token name="FLOAT_MAT3x4" value="0x8B68" />
+      <token name="FLOAT_MAT3x4_NV" value="0x8B68" />
+      <token name="FLOAT_MAT4x2" value="0x8B69" />
+      <token name="FLOAT_MAT4x2_NV" value="0x8B69" />
+      <token name="FLOAT_MAT4x3" value="0x8B6A" />
+      <token name="FLOAT_MAT4x3_NV" value="0x8B6A" />
+    </enum>
+    <enum name="BindTransformFeedbackTarget">
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+    </enum>
     <enum name="BlendEquationModeEXT">
       <token name="ALPHA_MAX_SGIX" value="0x8321" />
       <token name="ALPHA_MIN_SGIX" value="0x8320" />
       <token name="LOGIC_OP" value="0x0BF1" deprecated="3.2" />
       <token name="MAX_EXT" value="0x8008" />
       <token name="MIN_EXT" value="0x8007" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
     </enum>
-    <enum name="BlendingFactorDest">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+    <enum name="BlendingFactor">
+      <token name="ZERO" value="0" />
       <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
-      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
-      <token name="SRC_ALPHA" value="0x0302" />
       <token name="SRC_COLOR" value="0x0300" />
-      <token name="ZERO" value="0" />
-    </enum>
-    <enum name="BlendingFactorSrc">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
       <token name="DST_COLOR" value="0x0306" />
-      <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
       <token name="ONE_MINUS_DST_COLOR" value="0x0307" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
       <token name="SRC_ALPHA" value="0x0302" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
+      <token name="CONSTANT_COLOR" value="0x8001" />
+      <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
+      <token name="CONSTANT_ALPHA" value="0x8003" />
+      <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
       <token name="SRC_ALPHA_SATURATE" value="0x0308" />
-      <token name="ZERO" value="0" />
+      <token name="SRC1_COLOR" value="0x88F9" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
+      <token name="SRC1_ALPHA" value="0x8589" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+    </enum>
+    <enum name="BlitFramebufferFilter">
+      <token name="NEAREST" value="0x2600" />
+      <token name="LINEAR" value="0x2601" />
     </enum>
     <enum name="Boolean">
       <token name="FALSE" value="0" />
       <token name="TRUE" value="1" />
     </enum>
+    <enum name="Buffer">
+      <token name="COLOR" value="0x1800" />
+      <token name="DEPTH" value="0x1801" />
+      <token name="STENCIL" value="0x1802" />
+    </enum>
     <enum name="BufferAccessARB">
       <token name="READ_ONLY" value="0x88B8" />
       <token name="WRITE_ONLY" value="0x88B9" />
       <token name="READ_WRITE" value="0x88BA" />
     </enum>
+    <enum name="BufferAccessMask">
+      <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT_EXT" value="0x0008" />
+      <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
+      <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
+      <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
+      <token name="MAP_READ_BIT" value="0x0001" />
+      <token name="MAP_READ_BIT_EXT" value="0x0001" />
+      <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
+      <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
+      <token name="MAP_WRITE_BIT" value="0x0002" />
+      <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+    </enum>
+    <enum name="BufferBitQCOM">
+      <token name="MULTISAMPLE_BUFFER_BIT7_QCOM" value="0x80000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT6_QCOM" value="0x40000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT5_QCOM" value="0x20000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT4_QCOM" value="0x10000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT3_QCOM" value="0x08000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT2_QCOM" value="0x04000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT1_QCOM" value="0x02000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT0_QCOM" value="0x01000000" />
+      <token name="STENCIL_BUFFER_BIT7_QCOM" value="0x00800000" />
+      <token name="STENCIL_BUFFER_BIT6_QCOM" value="0x00400000" />
+      <token name="STENCIL_BUFFER_BIT5_QCOM" value="0x00200000" />
+      <token name="STENCIL_BUFFER_BIT4_QCOM" value="0x00100000" />
+      <token name="STENCIL_BUFFER_BIT3_QCOM" value="0x00080000" />
+      <token name="STENCIL_BUFFER_BIT2_QCOM" value="0x00040000" />
+      <token name="STENCIL_BUFFER_BIT1_QCOM" value="0x00020000" />
+      <token name="STENCIL_BUFFER_BIT0_QCOM" value="0x00010000" />
+      <token name="DEPTH_BUFFER_BIT7_QCOM" value="0x00008000" />
+      <token name="DEPTH_BUFFER_BIT6_QCOM" value="0x00004000" />
+      <token name="DEPTH_BUFFER_BIT5_QCOM" value="0x00002000" />
+      <token name="DEPTH_BUFFER_BIT4_QCOM" value="0x00001000" />
+      <token name="DEPTH_BUFFER_BIT3_QCOM" value="0x00000800" />
+      <token name="DEPTH_BUFFER_BIT2_QCOM" value="0x00000400" />
+      <token name="DEPTH_BUFFER_BIT1_QCOM" value="0x00000200" />
+      <token name="DEPTH_BUFFER_BIT0_QCOM" value="0x00000100" />
+      <token name="COLOR_BUFFER_BIT7_QCOM" value="0x00000080" />
+      <token name="COLOR_BUFFER_BIT6_QCOM" value="0x00000040" />
+      <token name="COLOR_BUFFER_BIT5_QCOM" value="0x00000020" />
+      <token name="COLOR_BUFFER_BIT4_QCOM" value="0x00000010" />
+      <token name="COLOR_BUFFER_BIT3_QCOM" value="0x00000008" />
+      <token name="COLOR_BUFFER_BIT2_QCOM" value="0x00000004" />
+      <token name="COLOR_BUFFER_BIT1_QCOM" value="0x00000002" />
+      <token name="COLOR_BUFFER_BIT0_QCOM" value="0x00000001" />
+    </enum>
+    <enum name="BufferStorageTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="BufferTargetARB">
       <token name="ARRAY_BUFFER" value="0x8892" />
       <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
       <token name="DYNAMIC_READ" value="0x88E9" />
       <token name="DYNAMIC_COPY" value="0x88EA" />
     </enum>
+    <enum name="CheckFramebufferStatusTarget">
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="ClearBufferMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" />
       <token name="COLOR_BUFFER_BIT" value="0x00004000" />
       <token name="CLIENT_PIXEL_STORE_BIT" value="0x00000001" deprecated="3.2" />
       <token name="CLIENT_VERTEX_ARRAY_BIT" value="0x00000002" deprecated="3.2" />
     </enum>
+    <enum name="ClipControlDepth">
+      <token name="NEGATIVE_ONE_TO_ONE" value="0x935E" />
+      <token name="ZERO_TO_ONE" value="0x935F" />
+    </enum>
+    <enum name="ClipControlOrigin">
+      <token name="LOWER_LEFT" value="0x8CA1" />
+      <token name="UPPER_LEFT" value="0x8CA2" />
+    </enum>
     <enum name="ClipPlaneName">
       <token name="CLIP_DISTANCE0" value="0x3000" />
       <token name="CLIP_DISTANCE1" value="0x3001" />
       <token name="CLIP_PLANE4" value="0x3004" deprecated="3.2" />
       <token name="CLIP_PLANE5" value="0x3005" deprecated="3.2" />
     </enum>
+    <enum name="ColorBuffer">
+      <token name="NONE" value="0" />
+      <token name="FRONT_LEFT" value="0x0400" />
+      <token name="FRONT_RIGHT" value="0x0401" />
+      <token name="BACK_LEFT" value="0x0402" />
+      <token name="BACK_RIGHT" value="0x0403" />
+      <token name="FRONT" value="0x0404" />
+      <token name="BACK" value="0x0405" />
+      <token name="LEFT" value="0x0406" />
+      <token name="RIGHT" value="0x0407" />
+      <token name="FRONT_AND_BACK" value="0x0408" />
+      <token name="NONE" value="0" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+    </enum>
     <enum name="ColorMaterialFace">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="COLOR_TABLE_SCALE" value="0x80D6" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
     </enum>
+    <enum name="ColorTableTarget">
+      <token name="COLOR_TABLE" value="0x80D0" />
+      <token name="POST_CONVOLUTION_COLOR_TABLE" value="0x80D1" />
+      <token name="POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D2" />
+    </enum>
     <enum name="ColorTableTargetSGI">
       <token name="COLOR_TABLE" value="0x80D0" />
       <token name="COLOR_TABLE_SGI" value="0x80D0" />
       <token name="CONTEXT_FLAG_DEBUG_BIT" value="0x00000002" />
       <token name="CONTEXT_FLAG_DEBUG_BIT_KHR" value="0x00000002" />
       <token name="CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT" value="0x00000001" />
+      <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT" value="0x00000004" />
       <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004" />
       <token name="CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT" value="0x00000010" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT" value="0x00000008" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
     <enum name="ContextProfileMask">
       <token name="CONTEXT_COMPATIBILITY_PROFILE_BIT" value="0x00000002" />
       <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
       <token name="CONVOLUTION_FILTER_SCALE_EXT" value="0x8014" />
     </enum>
+    <enum name="ConvolutionTarget">
+      <token name="CONVOLUTION_1D" value="0x8010" />
+      <token name="CONVOLUTION_2D" value="0x8011" />
+    </enum>
     <enum name="ConvolutionTargetEXT">
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_1D_EXT" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="CONVOLUTION_2D_EXT" value="0x8011" />
     </enum>
+    <enum name="CopyBufferSubDataTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="CullFaceMode">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="FRONT_AND_BACK" value="0x0408" />
     </enum>
     <enum name="DataType" />
+    <enum name="DebugSeverity">
+      <token name="DEBUG_SEVERITY_LOW" value="0x9148" />
+      <token name="DEBUG_SEVERITY_MEDIUM" value="0x9147" />
+      <token name="DEBUG_SEVERITY_HIGH" value="0x9146" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugSource">
+      <token name="DEBUG_SOURCE_API" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER" value="0x824B" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugType">
+      <token name="DEBUG_TYPE_ERROR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE" value="0x8250" />
+      <token name="DEBUG_TYPE_MARKER" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP" value="0x826A" />
+      <token name="DEBUG_TYPE_OTHER" value="0x8251" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
     <enum name="DepthFunction">
       <token name="ALWAYS" value="0x0207" />
       <token name="EQUAL" value="0x0202" />
       <token name="FUNC_ADD_EXT" value="0x8006" />
       <token name="BLEND_EQUATION_EXT" value="0x8009" />
     </enum>
+    <enum name="EXT_debug_marker" />
     <enum name="EXT_discard_framebuffer">
       <token name="COLOR_EXT" value="0x1800" />
       <token name="DEPTH_EXT" value="0x1801" />
       <token name="FOG_OFFSET_VALUE_SGIX" value="0x8199" />
       <token name="FOG_START" value="0x0B63" deprecated="3.2" />
     </enum>
+    <enum name="FogPName">
+      <token name="FOG_MODE" value="0x0B65" />
+      <token name="FOG_DENSITY" value="0x0B62" />
+      <token name="FOG_START" value="0x0B63" />
+      <token name="FOG_END" value="0x0B64" />
+      <token name="FOG_INDEX" value="0x0B61" />
+      <token name="FOG_COORD_SRC" value="0x8450" deprecated="3.2" />
+    </enum>
     <enum name="FogPointerTypeEXT">
       <token name="FLOAT" value="0x1406" />
       <token name="DOUBLE" value="0x140A" />
       <token name="FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX" value="0x840B" />
       <token name="FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX" value="0x8409" />
     </enum>
+    <enum name="FragmentOpATI">
+      <token name="MOV_ATI" value="0x8961" />
+      <token name="ADD_ATI" value="0x8963" />
+      <token name="MUL_ATI" value="0x8964" />
+      <token name="SUB_ATI" value="0x8965" />
+      <token name="DOT3_ATI" value="0x8966" />
+      <token name="DOT4_ATI" value="0x8967" />
+      <token name="MAD_ATI" value="0x8968" />
+      <token name="LERP_ATI" value="0x8969" />
+      <token name="CND_ATI" value="0x896A" />
+      <token name="CND0_ATI" value="0x896B" />
+      <token name="DOT2_ADD_ATI" value="0x896C" />
+    </enum>
+    <enum name="FramebufferAttachment">
+      <token name="MAX_COLOR_ATTACHMENTS" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_EXT" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_NV" value="0x8CDF" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_EXT" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_NV" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_OES" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_EXT" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_NV" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_EXT" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_NV" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_EXT" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_NV" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_EXT" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_NV" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_EXT" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_NV" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_EXT" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_NV" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_EXT" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_NV" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_EXT" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_NV" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_EXT" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_NV" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_EXT" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_NV" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_EXT" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_NV" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_EXT" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_NV" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_EXT" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_NV" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_EXT" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_NV" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_EXT" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_NV" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+      <token name="DEPTH_ATTACHMENT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_EXT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_OES" value="0x8D00" />
+    </enum>
+    <enum name="FramebufferAttachmentParameterName">
+      <token name="FRAMEBUFFER_ATTACHMENT_RED_SIZE" value="0x8212" />
+      <token name="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" value="0x8213" />
+      <token name="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" value="0x8214" />
+      <token name="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" value="0x8215" />
+      <token name="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" value="0x8216" />
+      <token name="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" value="0x8217" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" value="0x8211" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" value="0x8210" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" value="0x8CD2" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" value="0x8CD3" />
+      <token name="FRAMEBUFFER_ATTACHMENT_LAYERED" value="0x8DA7" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" value="0x8CD4" />
+    </enum>
     <enum name="FramebufferFetchNoncoherent">
       <token name="FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" value="0x96A2" />
     </enum>
+    <enum name="FramebufferParameterName">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+    </enum>
+    <enum name="FramebufferStatus">
+      <token name="FRAMEBUFFER_COMPLETE" value="0x8CD5" />
+      <token name="FRAMEBUFFER_UNDEFINED" value="0x8219" />
+      <token name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT" value="0x8CD6" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" value="0x8CD7" />
+      <token name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER" value="0x8CDB" />
+      <token name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER" value="0x8CDC" />
+      <token name="FRAMEBUFFER_UNSUPPORTED" value="0x8CDD" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" value="0x8DA8" />
+    </enum>
+    <enum name="FramebufferTarget">
+      <token name="FRAMEBUFFER" value="0x8D40" />
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+    </enum>
     <enum name="FrontFaceDirection">
       <token name="CCW" value="0x0901" />
       <token name="CW" value="0x0900" />
       <token name="COLOR_TABLE_RED_SIZE_SGI" value="0x80DA" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
       <token name="COLOR_TABLE_WIDTH_SGI" value="0x80D9" />
+      <token name="COLOR_TABLE_BIAS" value="0x80D7" />
+      <token name="COLOR_TABLE_SCALE" value="0x80D6" />
+      <token name="COLOR_TABLE_FORMAT" value="0x80D8" />
+      <token name="COLOR_TABLE_WIDTH" value="0x80D9" />
+      <token name="COLOR_TABLE_RED_SIZE" value="0x80DA" />
+      <token name="COLOR_TABLE_GREEN_SIZE" value="0x80DB" />
+      <token name="COLOR_TABLE_BLUE_SIZE" value="0x80DC" />
+      <token name="COLOR_TABLE_ALPHA_SIZE" value="0x80DD" />
+      <token name="COLOR_TABLE_LUMINANCE_SIZE" value="0x80DE" />
+      <token name="COLOR_TABLE_INTENSITY_SIZE" value="0x80DF" />
     </enum>
     <enum name="GetConvolutionParameter">
       <token name="CONVOLUTION_BORDER_MODE_EXT" value="0x8013" />
       <token name="CONVOLUTION_WIDTH_EXT" value="0x8018" />
       <token name="MAX_CONVOLUTION_HEIGHT_EXT" value="0x801B" />
       <token name="MAX_CONVOLUTION_WIDTH_EXT" value="0x801A" />
+      <token name="CONVOLUTION_BORDER_MODE" value="0x8013" />
+      <token name="CONVOLUTION_BORDER_COLOR" value="0x8154" />
+      <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
+      <token name="CONVOLUTION_FILTER_BIAS" value="0x8015" />
+      <token name="CONVOLUTION_FORMAT" value="0x8017" />
+      <token name="CONVOLUTION_WIDTH" value="0x8018" />
+      <token name="CONVOLUTION_HEIGHT" value="0x8019" />
+      <token name="MAX_CONVOLUTION_WIDTH" value="0x801A" />
+      <token name="MAX_CONVOLUTION_HEIGHT" value="0x801B" />
+    </enum>
+    <enum name="GetFramebufferParameter">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+      <token name="DOUBLEBUFFER" value="0x0C32" />
+      <token name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B" />
+      <token name="IMPLEMENTATION_COLOR_READ_TYPE" value="0x8B9A" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="SAMPLE_BUFFERS" value="0x80A8" />
+      <token name="STEREO" value="0x0C33" />
     </enum>
     <enum name="GetHistogramParameterPNameEXT">
       <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
       <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
       <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
       <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
+      <token name="HISTOGRAM_WIDTH" value="0x8026" />
+      <token name="HISTOGRAM_FORMAT" value="0x8027" />
+      <token name="HISTOGRAM_RED_SIZE" value="0x8028" />
+      <token name="HISTOGRAM_GREEN_SIZE" value="0x8029" />
+      <token name="HISTOGRAM_BLUE_SIZE" value="0x802A" />
+      <token name="HISTOGRAM_ALPHA_SIZE" value="0x802B" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE" value="0x802C" />
+      <token name="HISTOGRAM_SINK" value="0x802D" />
+      <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
+      <token name="HISTOGRAM_BLUE_SIZE_EXT" value="0x802A" />
+      <token name="HISTOGRAM_FORMAT_EXT" value="0x8027" />
+      <token name="HISTOGRAM_GREEN_SIZE_EXT" value="0x8029" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE_EXT" value="0x802C" />
+      <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
+      <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
+      <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
     </enum>
     <enum name="GetMapQuery">
       <token name="COEFF" value="0x0A00" deprecated="3.2" />
       <token name="MINMAX_FORMAT_EXT" value="0x802F" />
       <token name="MINMAX_SINK" value="0x8030" />
       <token name="MINMAX_SINK_EXT" value="0x8030" />
+      <token name="MINMAX_FORMAT" value="0x802F" />
+      <token name="MINMAX_SINK" value="0x8030" />
     </enum>
     <enum name="GetPixelMap">
       <token name="PIXEL_MAP_A_TO_A" value="0x0C79" deprecated="3.2" />
       <token name="TEXTURE_COORD_ARRAY_POINTER_EXT" value="0x8092" />
       <token name="VERTEX_ARRAY_POINTER" value="0x808E" deprecated="3.2" />
       <token name="VERTEX_ARRAY_POINTER_EXT" value="0x808E" />
+      <token name="DEBUG_CALLBACK_FUNCTION" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM" value="0x8245" />
     </enum>
     <enum name="GetTextureParameter">
       <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
       <token name="TEXTURE_WRAP_S" value="0x2802" />
       <token name="TEXTURE_WRAP_T" value="0x2803" />
     </enum>
+    <enum name="GraphicsResetStatus">
+      <token name="NO_ERROR" value="0" />
+      <token name="GUILTY_CONTEXT_RESET" value="0x8253" />
+      <token name="INNOCENT_CONTEXT_RESET" value="0x8254" />
+      <token name="UNKNOWN_CONTEXT_RESET" value="0x8255" />
+    </enum>
     <enum name="HintMode">
       <token name="DONT_CARE" value="0x1100" />
       <token name="FASTEST" value="0x1101" />
       <token name="HISTOGRAM_EXT" value="0x8024" />
       <token name="PROXY_HISTOGRAM" value="0x8025" />
       <token name="PROXY_HISTOGRAM_EXT" value="0x8025" />
+      <token name="HISTOGRAM" value="0x8024" />
+      <token name="PROXY_HISTOGRAM" value="0x8025" />
     </enum>
     <enum name="IMG_multisampled_render_to_texture">
       <token name="RENDERBUFFER_SAMPLES_IMG" value="0x9133" />
       <token name="ALPHA16" value="0x803E" deprecated="3.2" />
       <token name="ALPHA4" value="0x803B" deprecated="3.2" />
       <token name="ALPHA8" value="0x803C" deprecated="3.2" />
-      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
-      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
-      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
       <token name="DUAL_ALPHA12_SGIS" value="0x8112" />
       <token name="DUAL_ALPHA16_SGIS" value="0x8113" />
       <token name="DUAL_ALPHA4_SGIS" value="0x8110" />
       <token name="QUAD_INTENSITY8_SGIS" value="0x8123" />
       <token name="QUAD_LUMINANCE4_SGIS" value="0x8120" />
       <token name="QUAD_LUMINANCE8_SGIS" value="0x8121" />
-      <token name="R3_G3_B2" value="0x2A10" />
-      <token name="RGB10" value="0x8052" />
-      <token name="RGB10_A2" value="0x8059" />
-      <token name="RGB12" value="0x8053" />
-      <token name="RGB16" value="0x8054" />
+      <token name="RED" value="0x1903" />
+      <token name="RED_EXT" value="0x1903" />
+      <token name="R8" value="0x8229" />
+      <token name="R8_EXT" value="0x8229" />
+      <token name="R8_SNORM" value="0x8F94" />
+      <token name="R16" value="0x822A" />
+      <token name="R16_EXT" value="0x822A" />
+      <token name="R16_SNORM" value="0x8F98" />
+      <token name="R16_SNORM_EXT" value="0x8F98" />
+      <token name="R16F" value="0x822D" />
+      <token name="R16F_EXT" value="0x822D" />
+      <token name="R32F" value="0x822E" />
+      <token name="R32F_EXT" value="0x822E" />
+      <token name="R8I" value="0x8231" />
+      <token name="R16I" value="0x8233" />
+      <token name="R32I" value="0x8235" />
+      <token name="R8UI" value="0x8232" />
+      <token name="R16UI" value="0x8234" />
+      <token name="R32UI" value="0x8236" />
+      <token name="RG" value="0x8227" />
+      <token name="RG8" value="0x822B" />
+      <token name="RG8_EXT" value="0x822B" />
+      <token name="RG8_SNORM" value="0x8F95" />
+      <token name="RG16" value="0x822C" />
+      <token name="RG16_EXT" value="0x822C" />
+      <token name="RG16_SNORM" value="0x8F99" />
+      <token name="RG16_SNORM_EXT" value="0x8F99" />
+      <token name="RG16F" value="0x822F" />
+      <token name="RG16F_EXT" value="0x822F" />
+      <token name="RG32F" value="0x8230" />
+      <token name="RG32F_EXT" value="0x8230" />
+      <token name="RG8I" value="0x8237" />
+      <token name="RG16I" value="0x8239" />
+      <token name="RG32I" value="0x823B" />
+      <token name="RG8UI" value="0x8238" />
+      <token name="RG16UI" value="0x823A" />
+      <token name="RG32UI" value="0x823C" />
+      <token name="RGB" value="0x1907" />
       <token name="RGB2_EXT" value="0x804E" />
       <token name="RGB4" value="0x804F" />
+      <token name="RGB4_EXT" value="0x804F" />
       <token name="RGB5" value="0x8050" />
-      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_EXT" value="0x8050" />
       <token name="RGB8" value="0x8051" />
-      <token name="RGBA12" value="0x805A" />
-      <token name="RGBA16" value="0x805B" />
-      <token name="RGBA2" value="0x8055" />
+      <token name="RGB8_EXT" value="0x8051" />
+      <token name="RGB8_OES" value="0x8051" />
+      <token name="RGB8_SNORM" value="0x8F96" />
+      <token name="RGB10" value="0x8052" />
+      <token name="RGB10_EXT" value="0x8052" />
+      <token name="RGB12" value="0x8053" />
+      <token name="RGB12_EXT" value="0x8053" />
+      <token name="RGB16" value="0x8054" />
+      <token name="RGB16_EXT" value="0x8054" />
+      <token name="RGB16F" value="0x881B" />
+      <token name="RGB16F_ARB" value="0x881B" />
+      <token name="RGB16F_EXT" value="0x881B" />
+      <token name="RGB16_SNORM" value="0x8F9A" />
+      <token name="RGB16_SNORM_EXT" value="0x8F9A" />
+      <token name="RGB8I" value="0x8D8F" />
+      <token name="RGB16I" value="0x8D89" />
+      <token name="RGB32I" value="0x8D83" />
+      <token name="RGB8UI" value="0x8D7D" />
+      <token name="RGB16UI" value="0x8D77" />
+      <token name="RGB32UI" value="0x8D71" />
+      <token name="SRGB" value="0x8C40" />
+      <token name="SRGB_EXT" value="0x8C40" />
+      <token name="SRGB_ALPHA" value="0x8C42" />
+      <token name="SRGB_ALPHA_EXT" value="0x8C42" />
+      <token name="SRGB8" value="0x8C41" />
+      <token name="SRGB8_EXT" value="0x8C41" />
+      <token name="SRGB8_NV" value="0x8C41" />
+      <token name="SRGB8_ALPHA8" value="0x8C43" />
+      <token name="SRGB8_ALPHA8_EXT" value="0x8C43" />
+      <token name="R3_G3_B2" value="0x2A10" />
+      <token name="R11F_G11F_B10F" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_APPLE" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_EXT" value="0x8C3A" />
+      <token name="RGB9_E5" value="0x8C3D" />
+      <token name="RGB9_E5_APPLE" value="0x8C3D" />
+      <token name="RGB9_E5_EXT" value="0x8C3D" />
+      <token name="RGBA" value="0x1908" />
       <token name="RGBA4" value="0x8056" />
+      <token name="RGBA4_EXT" value="0x8056" />
+      <token name="RGBA4_OES" value="0x8056" />
+      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_A1_EXT" value="0x8057" />
+      <token name="RGB5_A1_OES" value="0x8057" />
       <token name="RGBA8" value="0x8058" />
+      <token name="RGBA8_EXT" value="0x8058" />
+      <token name="RGBA8_OES" value="0x8058" />
+      <token name="RGBA8_SNORM" value="0x8F97" />
+      <token name="RGB10_A2" value="0x8059" />
+      <token name="RGB10_A2_EXT" value="0x8059" />
+      <token name="RGBA12" value="0x805A" />
+      <token name="RGBA12_EXT" value="0x805A" />
+      <token name="RGBA16" value="0x805B" />
+      <token name="RGBA16_EXT" value="0x805B" />
+      <token name="RGBA16F" value="0x881A" />
+      <token name="RGBA16F_ARB" value="0x881A" />
+      <token name="RGBA16F_EXT" value="0x881A" />
+      <token name="RGBA32F" value="0x8814" />
+      <token name="RGBA32F_ARB" value="0x8814" />
+      <token name="RGBA32F_EXT" value="0x8814" />
+      <token name="RGBA8I" value="0x8D8E" />
+      <token name="RGBA16I" value="0x8D88" />
+      <token name="RGBA32I" value="0x8D82" />
+      <token name="RGBA8UI" value="0x8D7C" />
+      <token name="RGBA16UI" value="0x8D76" />
+      <token name="RGBA32UI" value="0x8D70" />
+      <token name="RGB10_A2UI" value="0x906F" />
+      <token name="DEPTH_COMPONENT" value="0x1902" />
+      <token name="DEPTH_COMPONENT16" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_ARB" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_OES" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
+      <token name="DEPTH_COMPONENT24_ARB" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_OES" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
+      <token name="DEPTH_COMPONENT32_ARB" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_OES" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32F" value="0x8CAC" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_STENCIL" value="0x84F9" />
+      <token name="DEPTH_STENCIL_EXT" value="0x84F9" />
+      <token name="DEPTH_STENCIL_MESA" value="0x8750" />
+      <token name="DEPTH_STENCIL_NV" value="0x84F9" />
+      <token name="DEPTH_STENCIL_OES" value="0x84F9" />
+      <token name="DEPTH24_STENCIL8" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_EXT" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_OES" value="0x88F0" />
+      <token name="DEPTH32F_STENCIL8" value="0x8CAD" />
+      <token name="DEPTH32F_STENCIL8_NV" value="0x8DAC" />
+      <token name="COMPRESSED_RED" value="0x8225" />
+      <token name="COMPRESSED_RG" value="0x8226" />
+      <token name="COMPRESSED_RGB" value="0x84ED" />
+      <token name="COMPRESSED_RGBA" value="0x84EE" />
+      <token name="COMPRESSED_SRGB" value="0x8C48" />
+      <token name="COMPRESSED_SRGB_ALPHA" value="0x8C49" />
+      <token name="COMPRESSED_RED_RGTC1" value="0x8DBB" />
+      <token name="COMPRESSED_RED_RGTC1_EXT" value="0x8DBB" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1" value="0x8DBC" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1_EXT" value="0x8DBC" />
+      <token name="COMPRESSED_R11_EAC" value="0x9270" />
+      <token name="COMPRESSED_SIGNED_R11_EAC" value="0x9271" />
+      <token name="COMPRESSED_RG_RGTC2" value="0x8DBD" />
+      <token name="COMPRESSED_SIGNED_RG_RGTC2" value="0x8DBE" />
+      <token name="COMPRESSED_RGBA_BPTC_UNORM" value="0x8E8C" />
+      <token name="COMPRESSED_SRGB_ALPHA_BPTC_UNORM" value="0x8E8D" />
+      <token name="COMPRESSED_RGB_BPTC_SIGNED_FLOAT" value="0x8E8E" />
+      <token name="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT" value="0x8E8F" />
+      <token name="COMPRESSED_RGB8_ETC2" value="0x9274" />
+      <token name="COMPRESSED_SRGB8_ETC2" value="0x9275" />
+      <token name="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9276" />
+      <token name="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9277" />
+      <token name="COMPRESSED_RGBA8_ETC2_EAC" value="0x9278" />
+      <token name="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" value="0x9279" />
+      <token name="COMPRESSED_RG11_EAC" value="0x9272" />
+      <token name="COMPRESSED_SIGNED_RG11_EAC" value="0x9273" />
+      <token name="COMPRESSED_RGB_S3TC_DXT1_EXT" value="0x83F0" />
+      <token name="COMPRESSED_SRGB_S3TC_DXT1_EXT" value="0x8C4C" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT1_EXT" value="0x83F1" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" value="0x8C4D" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT3_EXT" value="0x83F2" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" value="0x8C4E" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT5_EXT" value="0x83F3" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" value="0x8C4F" />
+    </enum>
+    <enum name="InternalFormatPName">
+      <token name="NUM_SAMPLE_COUNTS" value="0x9380" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="INTERNALFORMAT_SUPPORTED" value="0x826F" />
+      <token name="INTERNALFORMAT_PREFERRED" value="0x8270" />
+      <token name="INTERNALFORMAT_RED_SIZE" value="0x8271" />
+      <token name="INTERNALFORMAT_GREEN_SIZE" value="0x8272" />
+      <token name="INTERNALFORMAT_BLUE_SIZE" value="0x8273" />
+      <token name="INTERNALFORMAT_ALPHA_SIZE" value="0x8274" />
+      <token name="INTERNALFORMAT_DEPTH_SIZE" value="0x8275" />
+      <token name="INTERNALFORMAT_STENCIL_SIZE" value="0x8276" />
+      <token name="INTERNALFORMAT_SHARED_SIZE" value="0x8277" />
+      <token name="INTERNALFORMAT_RED_TYPE" value="0x8278" />
+      <token name="INTERNALFORMAT_GREEN_TYPE" value="0x8279" />
+      <token name="INTERNALFORMAT_BLUE_TYPE" value="0x827A" />
+      <token name="INTERNALFORMAT_ALPHA_TYPE" value="0x827B" />
+      <token name="INTERNALFORMAT_DEPTH_TYPE" value="0x827C" />
+      <token name="INTERNALFORMAT_STENCIL_TYPE" value="0x827D" />
+      <token name="MAX_WIDTH" value="0x827E" />
+      <token name="MAX_HEIGHT" value="0x827F" />
+      <token name="MAX_DEPTH" value="0x8280" />
+      <token name="MAX_LAYERS" value="0x8281" />
+      <token name="COLOR_COMPONENTS" value="0x8283" />
+      <token name="COLOR_RENDERABLE" value="0x8286" />
+      <token name="DEPTH_RENDERABLE" value="0x8287" />
+      <token name="STENCIL_RENDERABLE" value="0x8288" />
+      <token name="FRAMEBUFFER_RENDERABLE" value="0x8289" />
+      <token name="FRAMEBUFFER_RENDERABLE_LAYERED" value="0x828A" />
+      <token name="FRAMEBUFFER_BLEND" value="0x828B" />
+      <token name="READ_PIXELS" value="0x828C" />
+      <token name="READ_PIXELS_FORMAT" value="0x828D" />
+      <token name="READ_PIXELS_TYPE" value="0x828E" />
+      <token name="TEXTURE_IMAGE_FORMAT" value="0x828F" />
+      <token name="TEXTURE_IMAGE_TYPE" value="0x8290" />
+      <token name="GET_TEXTURE_IMAGE_FORMAT" value="0x8291" />
+      <token name="GET_TEXTURE_IMAGE_TYPE" value="0x8292" />
+      <token name="MIPMAP" value="0x8293" />
+      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="AUTO_GENERATE_MIPMAP" value="0x8295" />
+      <token name="COLOR_ENCODING" value="0x8296" />
+      <token name="SRGB_READ" value="0x8297" />
+      <token name="SRGB_WRITE" value="0x8298" />
+      <token name="FILTER" value="0x829A" />
+      <token name="VERTEX_TEXTURE" value="0x829B" />
+      <token name="TESS_CONTROL_TEXTURE" value="0x829C" />
+      <token name="TESS_EVALUATION_TEXTURE" value="0x829D" />
+      <token name="GEOMETRY_TEXTURE" value="0x829E" />
+      <token name="FRAGMENT_TEXTURE" value="0x829F" />
+      <token name="COMPUTE_TEXTURE" value="0x82A0" />
+      <token name="TEXTURE_SHADOW" value="0x82A1" />
+      <token name="TEXTURE_GATHER" value="0x82A2" />
+      <token name="TEXTURE_GATHER_SHADOW" value="0x82A3" />
+      <token name="SHADER_IMAGE_LOAD" value="0x82A4" />
+      <token name="SHADER_IMAGE_STORE" value="0x82A5" />
+      <token name="SHADER_IMAGE_ATOMIC" value="0x82A6" />
+      <token name="IMAGE_TEXEL_SIZE" value="0x82A7" />
+      <token name="IMAGE_COMPATIBILITY_CLASS" value="0x82A8" />
+      <token name="IMAGE_PIXEL_FORMAT" value="0x82A9" />
+      <token name="IMAGE_PIXEL_TYPE" value="0x82AA" />
+      <token name="IMAGE_FORMAT_COMPATIBILITY_TYPE" value="0x90C7" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST" value="0x82AC" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST" value="0x82AD" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE" value="0x82AE" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE" value="0x82AF" />
+      <token name="TEXTURE_COMPRESSED" value="0x86A1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_WIDTH" value="0x82B1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_HEIGHT" value="0x82B2" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_SIZE" value="0x82B3" />
+      <token name="CLEAR_BUFFER" value="0x82B4" />
+      <token name="TEXTURE_VIEW" value="0x82B5" />
+      <token name="VIEW_COMPATIBILITY_CLASS" value="0x82B6" />
+      <token name="CLEAR_TEXTURE" value="0x9365" />
+    </enum>
+    <enum name="KHR_debug">
+      <token name="DEBUG_OUTPUT_SYNCHRONOUS" value="0x8242" />
+      <token name="DEBUG_NEXT_LOGGED_MESSAGE_LENGTH" value="0x8243" />
+      <token name="DEBUG_CALLBACK_FUNCTION" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM" value="0x8245" />
+      <token name="DEBUG_SOURCE_API" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER" value="0x824B" />
+      <token name="DEBUG_TYPE_ERROR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE" value="0x8250" />
+      <token name="DEBUG_TYPE_OTHER" value="0x8251" />
+      <token name="DEBUG_TYPE_MARKER" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP" value="0x826A" />
+      <token name="DEBUG_SEVERITY_NOTIFICATION" value="0x826B" />
+      <token name="MAX_DEBUG_GROUP_STACK_DEPTH" value="0x826C" />
+      <token name="DEBUG_GROUP_STACK_DEPTH" value="0x826D" />
+      <token name="BUFFER" value="0x82E0" />
+      <token name="SHADER" value="0x82E1" />
+      <token name="PROGRAM" value="0x82E2" />
+      <token name="VERTEX_ARRAY" value="0x8074" />
+      <token name="QUERY" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE" value="0x82E4" />
+      <token name="SAMPLER" value="0x82E6" />
+      <token name="MAX_LABEL_LENGTH" value="0x82E8" />
+      <token name="MAX_DEBUG_MESSAGE_LENGTH" value="0x9143" />
+      <token name="MAX_DEBUG_LOGGED_MESSAGES" value="0x9144" />
+      <token name="DEBUG_LOGGED_MESSAGES" value="0x9145" />
+      <token name="DEBUG_SEVERITY_HIGH" value="0x9146" />
+      <token name="DEBUG_SEVERITY_MEDIUM" value="0x9147" />
+      <token name="DEBUG_SEVERITY_LOW" value="0x9148" />
+      <token name="DEBUG_OUTPUT" value="0x92E0" />
+      <token name="CONTEXT_FLAG_DEBUG_BIT" value="0x00000002" />
+      <token name="STACK_OVERFLOW" value="0x0503" />
+      <token name="STACK_UNDERFLOW" value="0x0504" />
+      <token name="DEBUG_OUTPUT_SYNCHRONOUS_KHR" value="0x8242" />
+      <token name="DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR" value="0x8243" />
+      <token name="DEBUG_CALLBACK_FUNCTION_KHR" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM_KHR" value="0x8245" />
+      <token name="DEBUG_SOURCE_API_KHR" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM_KHR" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER_KHR" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY_KHR" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION_KHR" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER_KHR" value="0x824B" />
+      <token name="DEBUG_TYPE_ERROR_KHR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY_KHR" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE_KHR" value="0x8250" />
+      <token name="DEBUG_TYPE_OTHER_KHR" value="0x8251" />
+      <token name="DEBUG_TYPE_MARKER_KHR" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP_KHR" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP_KHR" value="0x826A" />
+      <token name="DEBUG_SEVERITY_NOTIFICATION_KHR" value="0x826B" />
+      <token name="MAX_DEBUG_GROUP_STACK_DEPTH_KHR" value="0x826C" />
+      <token name="DEBUG_GROUP_STACK_DEPTH_KHR" value="0x826D" />
+      <token name="BUFFER_KHR" value="0x82E0" />
+      <token name="SHADER_KHR" value="0x82E1" />
+      <token name="PROGRAM_KHR" value="0x82E2" />
+      <token name="VERTEX_ARRAY_KHR" value="0x8074" />
+      <token name="QUERY_KHR" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE_KHR" value="0x82E4" />
+      <token name="SAMPLER_KHR" value="0x82E6" />
+      <token name="MAX_LABEL_LENGTH_KHR" value="0x82E8" />
+      <token name="MAX_DEBUG_MESSAGE_LENGTH_KHR" value="0x9143" />
+      <token name="MAX_DEBUG_LOGGED_MESSAGES_KHR" value="0x9144" />
+      <token name="DEBUG_LOGGED_MESSAGES_KHR" value="0x9145" />
+      <token name="DEBUG_SEVERITY_HIGH_KHR" value="0x9146" />
+      <token name="DEBUG_SEVERITY_MEDIUM_KHR" value="0x9147" />
+      <token name="DEBUG_SEVERITY_LOW_KHR" value="0x9148" />
+      <token name="DEBUG_OUTPUT_KHR" value="0x92E0" />
+      <token name="CONTEXT_FLAG_DEBUG_BIT_KHR" value="0x00000002" />
+      <token name="STACK_OVERFLOW_KHR" value="0x0503" />
+      <token name="STACK_UNDERFLOW_KHR" value="0x0504" />
+      <token name="DISPLAY_LIST" value="0x82E7" />
     </enum>
     <enum name="LightEnvModeSGIX">
       <token name="ADD" value="0x0104" />
     </enum>
     <enum name="MapBufferUsageMask">
       <token name="CLIENT_STORAGE_BIT" value="0x0200" />
+      <token name="CLIENT_STORAGE_BIT_EXT" value="0x0200" />
       <token name="DYNAMIC_STORAGE_BIT" value="0x0100" />
+      <token name="DYNAMIC_STORAGE_BIT_EXT" value="0x0100" />
       <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
       <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
       <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
       <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
       <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
       <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
       <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
       <token name="MAP_READ_BIT" value="0x0001" />
       <token name="MAP_READ_BIT_EXT" value="0x0001" />
       <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
       <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
       <token name="MAP_WRITE_BIT" value="0x0002" />
       <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+      <token name="SPARSE_STORAGE_BIT_ARB" value="0x0400" />
+      <token name="LGPU_SEPARATE_STORAGE_BIT_NVX" value="0x0800" />
+      <token name="PER_GPU_STORAGE_BIT_NV" value="0x0800" />
+    </enum>
+    <enum name="MapQuery">
+      <token name="COEFF" value="0x0A00" />
+      <token name="ORDER" value="0x0A01" />
+      <token name="DOMAIN" value="0x0A02" />
     </enum>
     <enum name="MapTarget">
       <token name="GEOMETRY_DEFORMATION_SGIX" value="0x8194" />
       <token name="BUFFER_UPDATE_BARRIER_BIT" value="0x00000200" />
       <token name="BUFFER_UPDATE_BARRIER_BIT_EXT" value="0x00000200" />
       <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x00004000" />
+      <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT" value="0x00004000" />
       <token name="COMMAND_BARRIER_BIT" value="0x00000040" />
       <token name="COMMAND_BARRIER_BIT_EXT" value="0x00000040" />
       <token name="ELEMENT_ARRAY_BARRIER_BIT" value="0x00000002" />
       <token name="FENCE_STATUS_NV" value="0x84F3" />
       <token name="FENCE_CONDITION_NV" value="0x84F4" />
     </enum>
+    <enum name="ObjectIdentifier">
+      <token name="BUFFER" value="0x82E0" />
+      <token name="SHADER" value="0x82E1" />
+      <token name="PROGRAM" value="0x82E2" />
+      <token name="VERTEX_ARRAY" value="0x8074" />
+      <token name="QUERY" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE" value="0x82E4" />
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+      <token name="SAMPLER" value="0x82E6" />
+      <token name="TEXTURE" value="0x1702" />
+      <token name="RENDERBUFFER" value="0x8D41" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="OcclusionQueryEventMaskAMD">
       <token name="QUERY_DEPTH_PASS_EVENT_BIT_AMD" value="0x00000001" />
       <token name="QUERY_DEPTH_FAIL_EVENT_BIT_AMD" value="0x00000002" />
     <enum name="OES_stencil8">
       <token name="STENCIL_INDEX8_OES" value="0x8D48" />
     </enum>
+    <enum name="OES_surfaceless_context">
+      <token name="FRAMEBUFFER_UNDEFINED_OES" value="0x8219" />
+    </enum>
     <enum name="OES_texture_cube_map">
       <token name="NORMAL_MAP_OES" value="0x8511" />
       <token name="REFLECTION_MAP_OES" value="0x8512" />
     <enum name="OES_texture_mirrored_repeat">
       <token name="MIRRORED_REPEAT_OES" value="0x8370" />
     </enum>
+    <enum name="OES_texture_npot" />
     <enum name="OES_vertex_array_object">
       <token name="VERTEX_ARRAY_BINDING_OES" value="0x85B5" />
     </enum>
+    <enum name="PatchParameterName">
+      <token name="PATCH_VERTICES" value="0x8E72" />
+      <token name="PATCH_DEFAULT_OUTER_LEVEL" value="0x8E74" />
+      <token name="PATCH_DEFAULT_INNER_LEVEL" value="0x8E73" />
+    </enum>
+    <enum name="PathColor">
+      <token name="PRIMARY_COLOR" value="0x8577" deprecated="3.2" />
+      <token name="PRIMARY_COLOR_NV" value="0x852C" />
+      <token name="SECONDARY_COLOR_NV" value="0x852D" />
+    </enum>
+    <enum name="PathCoverMode">
+      <token name="CONVEX_HULL_NV" value="0x908B" />
+      <token name="BOUNDING_BOX_NV" value="0x908D" />
+      <token name="BOUNDING_BOX_OF_BOUNDING_BOXES_NV" value="0x909C" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+    </enum>
+    <enum name="PathElementType">
+      <token name="UTF8_NV" value="0x909A" />
+      <token name="UTF16_NV" value="0x909B" />
+    </enum>
+    <enum name="PathFillMode">
+      <token name="INVERT" value="0x150A" />
+      <token name="COUNT_UP_NV" value="0x9088" />
+      <token name="COUNT_DOWN_NV" value="0x9089" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+    </enum>
+    <enum name="PathFontStyle">
+      <token name="NONE" value="0" />
+      <token name="BOLD_BIT_NV" value="0x01" />
+      <token name="ITALIC_BIT_NV" value="0x02" />
+    </enum>
+    <enum name="PathFontTarget">
+      <token name="STANDARD_FONT_NAME_NV" value="0x9072" />
+      <token name="SYSTEM_FONT_NAME_NV" value="0x9073" />
+      <token name="FILE_NAME_NV" value="0x9074" />
+    </enum>
+    <enum name="PathGenMode">
+      <token name="NONE" value="0" />
+      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="CONSTANT" value="0x8576" deprecated="3.2" />
+    </enum>
+    <enum name="PathHandleMissingGlyphs">
+      <token name="SKIP_MISSING_GLYPH_NV" value="0x90A9" />
+      <token name="USE_MISSING_GLYPH_NV" value="0x90AA" />
+    </enum>
+    <enum name="PathListMode">
+      <token name="ACCUM_ADJACENT_PAIRS_NV" value="0x90AD" />
+      <token name="ADJACENT_PAIRS_NV" value="0x90AE" />
+      <token name="FIRST_TO_REST_NV" value="0x90AF" />
+    </enum>
+    <enum name="PathMetricMask">
+      <token name="GLYPH_WIDTH_BIT_NV" value="0x01" />
+      <token name="GLYPH_HEIGHT_BIT_NV" value="0x02" />
+      <token name="GLYPH_HORIZONTAL_BEARING_X_BIT_NV" value="0x04" />
+      <token name="GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" value="0x08" />
+      <token name="GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" value="0x10" />
+      <token name="GLYPH_VERTICAL_BEARING_X_BIT_NV" value="0x20" />
+      <token name="GLYPH_VERTICAL_BEARING_Y_BIT_NV" value="0x40" />
+      <token name="GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" value="0x80" />
+      <token name="GLYPH_HAS_KERNING_BIT_NV" value="0x100" />
+      <token name="FONT_X_MIN_BOUNDS_BIT_NV" value="0x00010000" />
+      <token name="FONT_Y_MIN_BOUNDS_BIT_NV" value="0x00020000" />
+      <token name="FONT_X_MAX_BOUNDS_BIT_NV" value="0x00040000" />
+      <token name="FONT_Y_MAX_BOUNDS_BIT_NV" value="0x00080000" />
+      <token name="FONT_UNITS_PER_EM_BIT_NV" value="0x00100000" />
+      <token name="FONT_ASCENDER_BIT_NV" value="0x00200000" />
+      <token name="FONT_DESCENDER_BIT_NV" value="0x00400000" />
+      <token name="FONT_HEIGHT_BIT_NV" value="0x00800000" />
+      <token name="FONT_MAX_ADVANCE_WIDTH_BIT_NV" value="0x01000000" />
+      <token name="FONT_MAX_ADVANCE_HEIGHT_BIT_NV" value="0x02000000" />
+      <token name="FONT_UNDERLINE_POSITION_BIT_NV" value="0x04000000" />
+      <token name="FONT_UNDERLINE_THICKNESS_BIT_NV" value="0x08000000" />
+      <token name="FONT_HAS_KERNING_BIT_NV" value="0x10000000" />
+      <token name="FONT_NUM_GLYPH_INDICES_BIT_NV" value="0x20000000" />
+    </enum>
+    <enum name="PathParameter">
+      <token name="PATH_STROKE_WIDTH_NV" value="0x9075" />
+      <token name="PATH_INITIAL_END_CAP_NV" value="0x9077" />
+      <token name="PATH_TERMINAL_END_CAP_NV" value="0x9078" />
+      <token name="PATH_JOIN_STYLE_NV" value="0x9079" />
+      <token name="PATH_MITER_LIMIT_NV" value="0x907A" />
+      <token name="PATH_INITIAL_DASH_CAP_NV" value="0x907C" />
+      <token name="PATH_TERMINAL_DASH_CAP_NV" value="0x907D" />
+      <token name="PATH_DASH_OFFSET_NV" value="0x907E" />
+      <token name="PATH_CLIENT_LENGTH_NV" value="0x907F" />
+      <token name="PATH_DASH_OFFSET_RESET_NV" value="0x90B4" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+      <token name="PATH_FILL_MASK_NV" value="0x9081" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+      <token name="PATH_STROKE_COVER_MODE_NV" value="0x9083" />
+      <token name="PATH_STROKE_MASK_NV" value="0x9084" />
+      <token name="PATH_END_CAPS_NV" value="0x9076" />
+      <token name="PATH_DASH_CAPS_NV" value="0x907B" />
+      <token name="PATH_COMMAND_COUNT_NV" value="0x909D" />
+      <token name="PATH_COORD_COUNT_NV" value="0x909E" />
+      <token name="PATH_DASH_ARRAY_COUNT_NV" value="0x909F" />
+      <token name="PATH_COMPUTED_LENGTH_NV" value="0x90A0" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="PATH_FILL_BOUNDING_BOX_NV" value="0x90A1" />
+      <token name="PATH_STROKE_BOUNDING_BOX_NV" value="0x90A2" />
+    </enum>
+    <enum name="PathStringFormat">
+      <token name="PATH_FORMAT_SVG_NV" value="0x9070" />
+      <token name="PATH_FORMAT_PS_NV" value="0x9071" />
+    </enum>
+    <enum name="PathTransformType">
+      <token name="NONE" value="0" />
+      <token name="TRANSLATE_X_NV" value="0x908E" />
+      <token name="TRANSLATE_Y_NV" value="0x908F" />
+      <token name="TRANSLATE_2D_NV" value="0x9090" />
+      <token name="TRANSLATE_3D_NV" value="0x9091" />
+      <token name="AFFINE_2D_NV" value="0x9092" />
+      <token name="AFFINE_3D_NV" value="0x9094" />
+      <token name="TRANSPOSE_AFFINE_2D_NV" value="0x9096" />
+      <token name="TRANSPOSE_AFFINE_3D_NV" value="0x9098" />
+    </enum>
+    <enum name="PipelineParameterName">
+      <token name="ACTIVE_PROGRAM" value="0x8259" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+    </enum>
     <enum name="PixelCopyType">
       <token name="COLOR" value="0x1800" />
       <token name="COLOR_EXT" value="0x1800" />
       <token name="LINE" value="0x1B01" />
       <token name="POINT" value="0x1B00" />
     </enum>
+    <enum name="PrecisionType">
+      <token name="LOW_FLOAT" value="0x8DF0" />
+      <token name="MEDIUM_FLOAT" value="0x8DF1" />
+      <token name="HIGH_FLOAT" value="0x8DF2" />
+      <token name="LOW_INT" value="0x8DF3" />
+      <token name="MEDIUM_INT" value="0x8DF4" />
+      <token name="HIGH_INT" value="0x8DF5" />
+    </enum>
     <enum name="PrimitiveType">
       <token name="LINES" value="0x0001" />
       <token name="LINES_ADJACENCY" value="0x000A" />
       <token name="TRIANGLE_STRIP_ADJACENCY_ARB" value="0x000D" />
       <token name="TRIANGLE_STRIP_ADJACENCY_EXT" value="0x000D" />
     </enum>
+    <enum name="ProgramInterface">
+      <token name="UNIFORM" value="0x92E1" />
+      <token name="UNIFORM_BLOCK" value="0x92E2" />
+      <token name="PROGRAM_INPUT" value="0x92E3" />
+      <token name="PROGRAM_OUTPUT" value="0x92E4" />
+      <token name="VERTEX_SUBROUTINE" value="0x92E8" />
+      <token name="TESS_CONTROL_SUBROUTINE" value="0x92E9" />
+      <token name="TESS_EVALUATION_SUBROUTINE" value="0x92EA" />
+      <token name="GEOMETRY_SUBROUTINE" value="0x92EB" />
+      <token name="FRAGMENT_SUBROUTINE" value="0x92EC" />
+      <token name="COMPUTE_SUBROUTINE" value="0x92ED" />
+      <token name="VERTEX_SUBROUTINE_UNIFORM" value="0x92EE" />
+      <token name="TESS_CONTROL_SUBROUTINE_UNIFORM" value="0x92EF" />
+      <token name="TESS_EVALUATION_SUBROUTINE_UNIFORM" value="0x92F0" />
+      <token name="GEOMETRY_SUBROUTINE_UNIFORM" value="0x92F1" />
+      <token name="FRAGMENT_SUBROUTINE_UNIFORM" value="0x92F2" />
+      <token name="COMPUTE_SUBROUTINE_UNIFORM" value="0x92F3" />
+      <token name="TRANSFORM_FEEDBACK_VARYING" value="0x92F4" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="BUFFER_VARIABLE" value="0x92E5" />
+      <token name="SHADER_STORAGE_BLOCK" value="0x92E6" />
+    </enum>
+    <enum name="ProgramInterfacePName">
+      <token name="ACTIVE_RESOURCES" value="0x92F5" />
+      <token name="MAX_NAME_LENGTH" value="0x92F6" />
+      <token name="MAX_NUM_ACTIVE_VARIABLES" value="0x92F7" />
+      <token name="MAX_NUM_COMPATIBLE_SUBROUTINES" value="0x92F8" />
+    </enum>
+    <enum name="ProgramParameterPName">
+      <token name="PROGRAM_BINARY_RETRIEVABLE_HINT" value="0x8257" />
+      <token name="PROGRAM_SEPARABLE" value="0x8258" />
+    </enum>
+    <enum name="ProgramPropertyARB">
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="LINK_STATUS" value="0x8B82" />
+      <token name="VALIDATE_STATUS" value="0x8B83" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="ATTACHED_SHADERS" value="0x8B85" />
+      <token name="ACTIVE_ATOMIC_COUNTER_BUFFERS" value="0x92D9" />
+      <token name="ACTIVE_ATTRIBUTES" value="0x8B89" />
+      <token name="ACTIVE_ATTRIBUTE_MAX_LENGTH" value="0x8B8A" />
+      <token name="ACTIVE_UNIFORMS" value="0x8B86" />
+      <token name="ACTIVE_UNIFORM_BLOCKS" value="0x8A36" />
+      <token name="ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" value="0x8A35" />
+      <token name="ACTIVE_UNIFORM_MAX_LENGTH" value="0x8B87" />
+      <token name="COMPUTE_WORK_GROUP_SIZE" value="0x8267" />
+      <token name="PROGRAM_BINARY_LENGTH" value="0x8741" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_MODE" value="0x8C7F" />
+      <token name="TRANSFORM_FEEDBACK_VARYINGS" value="0x8C83" />
+      <token name="TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" value="0x8C76" />
+      <token name="GEOMETRY_VERTICES_OUT" value="0x8916" />
+      <token name="GEOMETRY_INPUT_TYPE" value="0x8917" />
+      <token name="GEOMETRY_OUTPUT_TYPE" value="0x8918" />
+    </enum>
+    <enum name="ProgramStagePName">
+      <token name="ACTIVE_SUBROUTINE_UNIFORMS" value="0x8DE6" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8E47" />
+      <token name="ACTIVE_SUBROUTINES" value="0x8DE5" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" value="0x8E49" />
+      <token name="ACTIVE_SUBROUTINE_MAX_LENGTH" value="0x8E48" />
+    </enum>
     <enum name="QCOM_driver_control" />
     <enum name="QCOM_extended_get">
       <token name="TEXTURE_WIDTH_QCOM" value="0x8BD2" />
     <enum name="QCOM_writeonly_rendering">
       <token name="WRITEONLY_RENDERING_QCOM" value="0x8823" />
     </enum>
+    <enum name="QueryObjectParameterName">
+      <token name="QUERY_RESULT_AVAILABLE" value="0x8867" />
+      <token name="QUERY_RESULT" value="0x8866" />
+      <token name="QUERY_RESULT_NO_WAIT" value="0x9194" />
+      <token name="QUERY_TARGET" value="0x82EA" />
+    </enum>
+    <enum name="QueryParameterName">
+      <token name="CURRENT_QUERY" value="0x8865" />
+      <token name="QUERY_COUNTER_BITS" value="0x8864" />
+    </enum>
+    <enum name="QueryTarget">
+      <token name="SAMPLES_PASSED" value="0x8914" />
+      <token name="ANY_SAMPLES_PASSED" value="0x8C2F" />
+      <token name="ANY_SAMPLES_PASSED_CONSERVATIVE" value="0x8D6A" />
+      <token name="PRIMITIVES_GENERATED" value="0x8C87" />
+      <token name="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" value="0x8C88" />
+      <token name="TIME_ELAPSED" value="0x88BF" />
+    </enum>
     <enum name="ReadBufferMode">
       <token name="AUX0" value="0x0409" />
       <token name="AUX1" value="0x040A" />
       <token name="LEFT" value="0x0406" />
       <token name="RIGHT" value="0x0407" />
     </enum>
+    <enum name="RenderbufferParameterName">
+      <token name="RENDERBUFFER_WIDTH" value="0x8D42" />
+      <token name="RENDERBUFFER_HEIGHT" value="0x8D43" />
+      <token name="RENDERBUFFER_INTERNAL_FORMAT" value="0x8D44" />
+      <token name="RENDERBUFFER_SAMPLES" value="0x8CAB" />
+      <token name="RENDERBUFFER_RED_SIZE" value="0x8D50" />
+      <token name="RENDERBUFFER_GREEN_SIZE" value="0x8D51" />
+      <token name="RENDERBUFFER_BLUE_SIZE" value="0x8D52" />
+      <token name="RENDERBUFFER_ALPHA_SIZE" value="0x8D53" />
+      <token name="RENDERBUFFER_DEPTH_SIZE" value="0x8D54" />
+      <token name="RENDERBUFFER_STENCIL_SIZE" value="0x8D55" />
+    </enum>
+    <enum name="RenderbufferTarget">
+      <token name="RENDERBUFFER" value="0x8D41" />
+    </enum>
     <enum name="RenderingMode">
       <token name="FEEDBACK" value="0x1C01" deprecated="3.2" />
       <token name="RENDER" value="0x1C00" deprecated="3.2" />
       <token name="4PASS_3_EXT" value="0x80A7" />
       <token name="4PASS_3_SGIS" value="0x80A7" />
     </enum>
+    <enum name="SamplerParameterName">
+      <token name="TEXTURE_WRAP_S" value="0x2802" />
+      <token name="TEXTURE_WRAP_T" value="0x2803" />
+      <token name="TEXTURE_WRAP_R" value="0x8072" />
+      <token name="TEXTURE_MIN_FILTER" value="0x2801" />
+      <token name="TEXTURE_MAG_FILTER" value="0x2800" />
+      <token name="TEXTURE_BORDER_COLOR" value="0x1004" />
+      <token name="TEXTURE_MIN_LOD" value="0x813A" />
+      <token name="TEXTURE_MAX_LOD" value="0x813B" />
+      <token name="TEXTURE_COMPARE_MODE" value="0x884C" />
+      <token name="TEXTURE_COMPARE_FUNC" value="0x884D" />
+    </enum>
     <enum name="SemaphoreParameterName">
       <token name="D3D12_FENCE_VALUE_EXT" value="0x9595" />
     </enum>
       <token name="SEPARABLE_2D" value="0x8012" />
       <token name="SEPARABLE_2D_EXT" value="0x8012" />
     </enum>
+    <enum name="ShaderParameterName">
+      <token name="SHADER_TYPE" value="0x8B4F" />
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="COMPILE_STATUS" value="0x8B81" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="SHADER_SOURCE_LENGTH" value="0x8B88" />
+    </enum>
+    <enum name="ShaderType">
+      <token name="COMPUTE_SHADER" value="0x91B9" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="FRAGMENT_SHADER_ARB" value="0x8B30" />
+      <token name="VERTEX_SHADER_ARB" value="0x8B31" />
+    </enum>
     <enum name="ShadingModel">
       <token name="FLAT" value="0x1D00" deprecated="3.2" />
       <token name="SMOOTH" value="0x1D01" deprecated="3.2" />
       <token name="VERSION" value="0x1F02" />
       <token name="SHADING_LANGUAGE_VERSION" value="0x8B8C" />
     </enum>
+    <enum name="SubroutineParameterName">
+      <token name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A" />
+      <token name="COMPATIBLE_SUBROUTINES" value="0x8E4B" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+    </enum>
+    <enum name="SyncCondition">
+      <token name="SYNC_GPU_COMMANDS_COMPLETE" value="0x9117" />
+    </enum>
+    <enum name="SyncObjectMask">
+      <token name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001" />
+      <token name="SYNC_FLUSH_COMMANDS_BIT_APPLE" value="0x00000001" />
+    </enum>
+    <enum name="SyncParameterName">
+      <token name="OBJECT_TYPE" value="0x9112" />
+      <token name="SYNC_STATUS" value="0x9114" />
+      <token name="SYNC_CONDITION" value="0x9113" />
+      <token name="SYNC_FLAGS" value="0x9115" />
+    </enum>
+    <enum name="SyncStatus">
+      <token name="ALREADY_SIGNALED" value="0x911A" />
+      <token name="TIMEOUT_EXPIRED" value="0x911B" />
+      <token name="CONDITION_SATISFIED" value="0x911C" />
+      <token name="WAIT_FAILED" value="0x911D" />
+    </enum>
     <enum name="TexCoordPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
     <enum name="TextureGenMode">
       <token name="EYE_DISTANCE_TO_LINE_SGIS" value="0x81F2" />
       <token name="EYE_DISTANCE_TO_POINT_SGIS" value="0x81F0" />
-      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="EYE_LINEAR" value="0x2400" />
       <token name="OBJECT_DISTANCE_TO_LINE_SGIS" value="0x81F3" />
       <token name="OBJECT_DISTANCE_TO_POINT_SGIS" value="0x81F1" />
-      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" />
       <token name="SPHERE_MAP" value="0x2402" deprecated="3.2" />
     </enum>
     <enum name="TextureGenParameter">
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="TextureMagFilter">
       <token name="FILTER4_SGIS" value="0x8146" />
       <token name="DETAIL_TEXTURE_LEVEL_SGIS" value="0x809A" />
       <token name="DETAIL_TEXTURE_MODE_SGIS" value="0x809B" />
       <token name="DUAL_TEXTURE_SELECT_SGIS" value="0x8124" />
-      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="GENERATE_MIPMAP" value="0x8191" />
       <token name="GENERATE_MIPMAP_SGIS" value="0x8191" />
       <token name="POST_TEXTURE_FILTER_BIAS_SGIX" value="0x8179" />
       <token name="POST_TEXTURE_FILTER_SCALE_SGIX" value="0x817A" />
       <token name="TEXTURE_SWIZZLE_RGBA" value="0x8E46" />
       <token name="TEXTURE_TILING_EXT" value="0x9580" />
       <token name="DEPTH_STENCIL_TEXTURE_MODE" value="0x90EA" />
+      <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
+      <token name="SHARPEN_TEXTURE_FUNC_POINTS_SGIS" value="0x80B0" />
+      <token name="TEXTURE_4DSIZE_SGIS" value="0x8136" />
+      <token name="TEXTURE_ALPHA_SIZE" value="0x805F" />
+      <token name="TEXTURE_BASE_LEVEL_SGIS" value="0x813C" />
+      <token name="TEXTURE_BLUE_SIZE" value="0x805E" />
+      <token name="TEXTURE_BORDER" value="0x1005" />
+      <token name="TEXTURE_BORDER_COLOR_NV" value="0x1004" />
+      <token name="TEXTURE_COMPARE_OPERATOR_SGIX" value="0x819B" />
+      <token name="TEXTURE_COMPONENTS" value="0x1003" />
+      <token name="TEXTURE_DEPTH_EXT" value="0x8071" />
+      <token name="TEXTURE_FILTER4_SIZE_SGIS" value="0x8147" />
+      <token name="TEXTURE_GEQUAL_R_SGIX" value="0x819D" />
+      <token name="TEXTURE_GREEN_SIZE" value="0x805D" />
+      <token name="TEXTURE_HEIGHT" value="0x1001" />
+      <token name="TEXTURE_INTENSITY_SIZE" value="0x8061" />
+      <token name="TEXTURE_INTERNAL_FORMAT" value="0x1003" />
+      <token name="TEXTURE_LEQUAL_R_SGIX" value="0x819C" />
+      <token name="TEXTURE_LUMINANCE_SIZE" value="0x8060" />
+      <token name="TEXTURE_MAX_LEVEL_SGIS" value="0x813D" />
+      <token name="TEXTURE_MAX_LOD_SGIS" value="0x813B" />
+      <token name="TEXTURE_MIN_LOD_SGIS" value="0x813A" />
+      <token name="TEXTURE_RED_SIZE" value="0x805C" />
+      <token name="TEXTURE_RESIDENT" value="0x8067" />
+      <token name="TEXTURE_WIDTH" value="0x1000" />
+    </enum>
+    <enum name="TextureStorageMaskAMD">
+      <token name="TEXTURE_STORAGE_SPARSE_BIT_AMD" value="0x00000001" />
     </enum>
     <enum name="TextureTarget">
       <token name="DETAIL_TEXTURE_2D_SGIS" value="0x8095" />
       <token name="TEXTURE_2D_MULTISAMPLE" value="0x9100" />
       <token name="TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9102" />
     </enum>
+    <enum name="TextureUnit">
+      <token name="TEXTURE0" value="0x84C0" />
+      <token name="TEXTURE1" value="0x84C1" />
+      <token name="TEXTURE2" value="0x84C2" />
+      <token name="TEXTURE3" value="0x84C3" />
+      <token name="TEXTURE4" value="0x84C4" />
+      <token name="TEXTURE5" value="0x84C5" />
+      <token name="TEXTURE6" value="0x84C6" />
+      <token name="TEXTURE7" value="0x84C7" />
+      <token name="TEXTURE8" value="0x84C8" />
+      <token name="TEXTURE9" value="0x84C9" />
+      <token name="TEXTURE10" value="0x84CA" />
+      <token name="TEXTURE11" value="0x84CB" />
+      <token name="TEXTURE12" value="0x84CC" />
+      <token name="TEXTURE13" value="0x84CD" />
+      <token name="TEXTURE14" value="0x84CE" />
+      <token name="TEXTURE15" value="0x84CF" />
+      <token name="TEXTURE16" value="0x84D0" />
+      <token name="TEXTURE17" value="0x84D1" />
+      <token name="TEXTURE18" value="0x84D2" />
+      <token name="TEXTURE19" value="0x84D3" />
+      <token name="TEXTURE20" value="0x84D4" />
+      <token name="TEXTURE21" value="0x84D5" />
+      <token name="TEXTURE22" value="0x84D6" />
+      <token name="TEXTURE23" value="0x84D7" />
+      <token name="TEXTURE24" value="0x84D8" />
+      <token name="TEXTURE25" value="0x84D9" />
+      <token name="TEXTURE26" value="0x84DA" />
+      <token name="TEXTURE27" value="0x84DB" />
+      <token name="TEXTURE28" value="0x84DC" />
+      <token name="TEXTURE29" value="0x84DD" />
+      <token name="TEXTURE30" value="0x84DE" />
+      <token name="TEXTURE31" value="0x84DF" />
+    </enum>
     <enum name="TextureWrapMode">
       <token name="CLAMP" value="0x2900" deprecated="3.2" />
       <token name="CLAMP_TO_BORDER" value="0x812D" />
       <token name="CLAMP_TO_EDGE_SGIS" value="0x812F" />
       <token name="REPEAT" value="0x2901" />
     </enum>
+    <enum name="TransformFeedbackPName">
+      <token name="TRANSFORM_FEEDBACK_BUFFER_BINDING" value="0x8C8F" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_START" value="0x8C84" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_SIZE" value="0x8C85" />
+      <token name="TRANSFORM_FEEDBACK_PAUSED" value="0x8E23" />
+      <token name="TRANSFORM_FEEDBACK_ACTIVE" value="0x8E24" />
+    </enum>
+    <enum name="TypeEnum">
+      <token name="QUERY_WAIT" value="0x8E13" />
+      <token name="QUERY_NO_WAIT" value="0x8E14" />
+      <token name="QUERY_BY_REGION_WAIT" value="0x8E15" />
+      <token name="QUERY_BY_REGION_NO_WAIT" value="0x8E16" />
+    </enum>
+    <enum name="UniformBlockPName">
+      <token name="UNIFORM_BLOCK_BINDING" value="0x8A3F" />
+      <token name="UNIFORM_BLOCK_DATA_SIZE" value="0x8A40" />
+      <token name="UNIFORM_BLOCK_NAME_LENGTH" value="0x8A41" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORMS" value="0x8A42" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" value="0x8A43" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" value="0x8A44" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x84F0" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x84F1" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" value="0x8A45" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER" value="0x90EC" />
+    </enum>
+    <enum name="UniformPName">
+      <token name="UNIFORM_TYPE" value="0x8A37" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+      <token name="UNIFORM_BLOCK_INDEX" value="0x8A3A" />
+      <token name="UNIFORM_OFFSET" value="0x8A3B" />
+      <token name="UNIFORM_ARRAY_STRIDE" value="0x8A3C" />
+      <token name="UNIFORM_MATRIX_STRIDE" value="0x8A3D" />
+      <token name="UNIFORM_IS_ROW_MAJOR" value="0x8A3E" />
+      <token name="UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX" value="0x92DA" />
+    </enum>
     <enum name="UseProgramStageMask">
       <token name="VERTEX_SHADER_BIT" value="0x00000001" />
       <token name="VERTEX_SHADER_BIT_EXT" value="0x00000001" />
       <token name="FRAGMENT_SHADER_BIT_EXT" value="0x00000002" />
       <token name="GEOMETRY_SHADER_BIT" value="0x00000004" />
       <token name="GEOMETRY_SHADER_BIT_EXT" value="0x00000004" />
+      <token name="GEOMETRY_SHADER_BIT_OES" value="0x00000004" />
       <token name="TESS_CONTROL_SHADER_BIT" value="0x00000008" />
       <token name="TESS_CONTROL_SHADER_BIT_EXT" value="0x00000008" />
+      <token name="TESS_CONTROL_SHADER_BIT_OES" value="0x00000008" />
       <token name="TESS_EVALUATION_SHADER_BIT" value="0x00000010" />
       <token name="TESS_EVALUATION_SHADER_BIT_EXT" value="0x00000010" />
+      <token name="TESS_EVALUATION_SHADER_BIT_OES" value="0x00000010" />
       <token name="COMPUTE_SHADER_BIT" value="0x00000020" />
       <token name="ALL_SHADER_BITS" value="0xFFFFFFFF" />
       <token name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF" />
     </enum>
+    <enum name="VertexArrayPName">
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_LONG" value="0x874E" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="VERTEX_ATTRIB_RELATIVE_OFFSET" value="0x82D5" />
+    </enum>
+    <enum name="VertexAttribEnum">
+      <token name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" value="0x889F" />
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="CURRENT_VERTEX_ATTRIB" value="0x8626" />
+    </enum>
+    <enum name="VertexAttribPointerType">
+      <token name="BYTE" value="0x1400" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="SHORT" value="0x1402" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="INT" value="0x1404" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="FIXED" value="0x140C" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexAttribType">
+      <token name="BYTE" value="0x1400" />
+      <token name="SHORT" value="0x1402" />
+      <token name="INT" value="0x1404" />
+      <token name="FIXED" value="0x140C" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexBufferObjectParameter">
+      <token name="BUFFER_ACCESS" value="0x88BB" />
+      <token name="BUFFER_ACCESS_FLAGS" value="0x911F" />
+      <token name="BUFFER_IMMUTABLE_STORAGE" value="0x821F" />
+      <token name="BUFFER_MAPPED" value="0x88BC" />
+      <token name="BUFFER_MAP_LENGTH" value="0x9120" />
+      <token name="BUFFER_MAP_OFFSET" value="0x9121" />
+      <token name="BUFFER_SIZE" value="0x8764" />
+      <token name="BUFFER_STORAGE_FLAGS" value="0x8220" />
+      <token name="BUFFER_USAGE" value="0x8765" />
+    </enum>
+    <enum name="VertexBufferObjectUsage">
+      <token name="STREAM_DRAW" value="0x88E0" />
+      <token name="STREAM_READ" value="0x88E1" />
+      <token name="STREAM_COPY" value="0x88E2" />
+      <token name="STATIC_DRAW" value="0x88E4" />
+      <token name="STATIC_READ" value="0x88E5" />
+      <token name="STATIC_COPY" value="0x88E6" />
+      <token name="DYNAMIC_DRAW" value="0x88E8" />
+      <token name="DYNAMIC_READ" value="0x88E9" />
+      <token name="DYNAMIC_COPY" value="0x88EA" />
+    </enum>
     <enum name="VertexPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
       <token name="INT" value="0x1404" />
       <token name="SHORT" value="0x1402" />
     </enum>
+    <enum name="VertexProvokingMode">
+      <token name="FIRST_VERTEX_CONVENTION" value="0x8E4D" />
+      <token name="LAST_VERTEX_CONVENTION" value="0x8E4E" />
+    </enum>
     <function name="AccumxOES" category="OES_fixed_point" extension="OES">
       <param name="op" type="GLenum" flow="in" />
       <param name="value" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="AlphaFuncxOES" category="OES_fixed_point" extension="OES">
-      <param name="func" type="GLenum" flow="in" />
+      <param name="func" type="AlphaFunction" flow="in" />
       <param name="ref" type="ClampedFixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindFramebufferOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="framebuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindRenderbufferOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BlendEquationOES" category="OES_blend_subtract" extension="OES">
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateOES" category="OES_blend_equation_separate" extension="OES">
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateOES" category="OES_blend_func_separate" extension="OES">
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="CheckFramebufferStatusOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <returns type="GLenum" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="ClearAccumxOES" category="OES_fixed_point" extension="OES">
       <param name="red" type="ClampedFixed" flow="in" />
     </function>
     <function name="ClientWaitSyncAPPLE" category="APPLE_sync" extension="APPLE">
       <param name="sync" type="GLsync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="ClipPlanefIMG" category="IMG_user_clip_plane" extension="IMG">
-      <param name="p" type="GLenum" flow="in" />
+      <param name="p" type="ClipPlaneName" flow="in" />
       <param name="eqn" type="GLfloat *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="ClipPlanefOES" category="OES_single_precision" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfloat *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="ClipPlanexIMG" category="IMG_user_clip_plane" extension="IMG">
-      <param name="p" type="GLenum" flow="in" />
+      <param name="p" type="ClipPlaneName" flow="in" />
       <param name="eqn" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="ClipPlanexOES" category="OES_fixed_point" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="ConvolutionParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTargetEXT" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="ConvolutionParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="ConvolutionTargetEXT" flow="in" />
+      <param name="pname" type="ConvolutionParameterEXT" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="matrixpaletteindex" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
+    <function name="DebugMessageCallback" category="KHR_debug" extension="Core">
+      <param name="callback" type="GLDEBUGPROC" flow="in" />
+      <param name="userParam" type="void *" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="DebugMessageCallbackKHR" category="KHR_debug" extension="KHR">
+      <param name="callback" type="GLDEBUGPROCKHR" flow="in" />
+      <param name="userParam" type="void *" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="DebugMessageControl" category="KHR_debug" extension="Core">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
+      <param name="count" type="GLsizei" flow="in" />
+      <param name="ids" type="GLuint *" flow="in" count="count" />
+      <param name="enabled" type="Boolean" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="DebugMessageControlKHR" category="KHR_debug" extension="KHR">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
+      <param name="count" type="GLsizei" flow="in" />
+      <param name="ids" type="GLuint *" flow="in" />
+      <param name="enabled" type="GLboolean" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="DebugMessageInsert" category="KHR_debug" extension="Core">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="id" type="GLuint" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
+      <returns type="void" />
+    </function>
+    <function name="DebugMessageInsertKHR" category="KHR_debug" extension="KHR">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="id" type="GLuint" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="buf" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="DeleteFencesNV" category="NV_fence" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
       <param name="fences" type="FenceNV *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="EndTilingQCOM" category="QCOM_tiled_rendering" extension="QCOM">
-      <param name="preserveMask" type="GLbitfield" flow="in" />
+      <param name="preserveMask" type="BufferBitQCOM" flow="in" />
       <returns type="void" />
     </function>
     <function name="EvalCoord1xOES" category="OES_fixed_point" extension="OES">
     </function>
     <function name="ExtGetProgramBinarySourceQCOM" category="QCOM_extended_get2" extension="QCOM">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="source" type="GLchar *" flow="out" />
       <param name="length" type="GLint *" flow="out" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="texels" type="void *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FenceSyncAPPLE" category="APPLE_sync" extension="APPLE">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="GLsync" />
     </function>
       <returns type="void" />
     </function>
     <function name="FlushMappedBufferRangeEXT" category="EXT_map_buffer_range" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="GLsizeiptr" flow="in" />
       <returns type="void" />
     </function>
     <function name="FogxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="FogxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="FramebufferRenderbufferOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="renderbuffertarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="renderbuffertarget" type="RenderbufferTarget" flow="in" />
       <param name="renderbuffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DMultisampleEXT" category="EXT_multisampled_render_to_texture" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DMultisampleIMG" category="IMG_multisampled_render_to_texture" extension="IMG">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmapOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenFencesNV" category="NV_fence" extension="NV">
       <returns type="void" />
     </function>
     <function name="GetBufferPointervOES" category="OES_mapbuffer" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
+      <param name="pname" type="BufferPointerNameARB" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetClipPlanefOES" category="OES_single_precision" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfloat *" flow="out" count="4" />
       <returns type="void" />
     </function>
     <function name="GetClipPlanexOES" category="OES_fixed_point" extension="OES">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="out" count="4" />
       <returns type="void" />
     </function>
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
+    <function name="GetDebugMessageLog" category="KHR_debug" extension="Core">
+      <param name="count" type="GLuint" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
+      <param name="ids" type="GLuint *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
+      <param name="lengths" type="GLsizei *" flow="out" count="count" />
+      <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="GLuint" />
+    </function>
+    <function name="GetDebugMessageLogKHR" category="KHR_debug" extension="KHR">
+      <param name="count" type="GLuint" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
+      <param name="ids" type="GLuint *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
+      <param name="lengths" type="GLsizei *" flow="out" count="count" />
+      <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="GLuint" />
+    </function>
     <function name="GetDriverControlsQCOM" category="QCOM_driver_control" extension="QCOM">
       <param name="num" type="GLint *" flow="out" />
       <param name="size" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetFixedvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferAttachmentParameterivOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatusEXT" category="EXT_robustness" extension="EXT">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetHistogramParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="HistogramTargetEXT" flow="in" />
+      <param name="pname" type="GetHistogramParameterPNameEXT" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetInteger64vAPPLE" category="APPLE_sync" extension="APPLE">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetLightxOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetLightxvOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMapxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="query" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
+      <param name="query" type="GetMapQuery" flow="in" />
       <param name="v" type="GLfixed *" flow="out" count="COMPSIZE(query)" />
       <returns type="void" />
     </function>
     <function name="GetMaterialxOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="GetMaterialxvOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
+    <function name="GetObjectLabel" category="KHR_debug" extension="Core">
+      <param name="identifier" type="GLenum" flow="in" />
+      <param name="name" type="GLuint" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="length" type="GLsizei *" flow="out" count="1" />
+      <param name="label" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="void" />
+    </function>
+    <function name="GetObjectLabelKHR" category="KHR_debug" extension="KHR">
+      <param name="identifier" type="GLenum" flow="in" />
+      <param name="name" type="GLuint" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="length" type="GLsizei *" flow="out" />
+      <param name="label" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="void" />
+    </function>
+    <function name="GetObjectPtrLabel" category="KHR_debug" extension="Core">
+      <param name="ptr" type="void *" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="length" type="GLsizei *" flow="out" count="1" />
+      <param name="label" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="void" />
+    </function>
+    <function name="GetObjectPtrLabelKHR" category="KHR_debug" extension="KHR">
+      <param name="ptr" type="void *" flow="in" />
+      <param name="bufSize" type="GLsizei" flow="in" />
+      <param name="length" type="GLsizei *" flow="out" count="1" />
+      <param name="label" type="GLchar *" flow="out" count="bufSize" />
+      <returns type="void" />
+    </function>
     <function name="GetPixelMapxv" category="OES_fixed_point" extension="Core">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="size" type="GLint" flow="in" />
       <param name="values" type="GLfixed *" flow="out" count="size" />
       <returns type="void" />
     </function>
-    <function name="GetRenderbufferParameterivOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+    <function name="GetPointerv" category="KHR_debug" extension="Core">
+      <param name="pname" type="GetPointervPName" flow="in" />
+      <param name="params" type="void **" flow="out" count="1" />
+      <returns type="void" />
+    </function>
+    <function name="GetPointervKHR" category="KHR_debug" extension="KHR">
       <param name="pname" type="GLenum" flow="in" />
+      <param name="params" type="void **" flow="out" />
+      <returns type="void" />
+    </function>
+    <function name="GetRenderbufferParameterivOES" category="OES_framebuffer_object" extension="OES">
+      <param name="target" type="RenderbufferTarget" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSyncivAPPLE" category="APPLE_sync" extension="APPLE">
       <param name="sync" type="GLsync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetTexEnvxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexGenfvOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexGenivOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexGenxvOES" category="OES_fixed_point|OES_texture_cube_map" extension="OES" version="">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexLevelParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetTexParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="component" type="GLfixed *" flow="in" count="1" />
       <returns type="void" />
     </function>
+    <function name="InsertEventMarkerEXT" category="EXT_debug_marker" extension="EXT">
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="marker" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="IsFenceNV" category="NV_fence" extension="NV">
       <param name="fence" type="FenceNV" flow="in" />
       <returns type="Boolean" />
       <returns type="GLboolean" />
     </function>
     <function name="LightModelxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="LightModelxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="LightxOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="LightxvOES" category="OES_fixed_point" extension="OES">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="Map1xOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
       <param name="u1" type="GLfixed" flow="in" />
       <param name="u2" type="GLfixed" flow="in" />
       <param name="stride" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="Map2xOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="MapTarget" flow="in" />
       <param name="u1" type="GLfixed" flow="in" />
       <param name="u2" type="GLfixed" flow="in" />
       <param name="ustride" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="MapBufferOES" category="OES_mapbuffer" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapBufferRangeEXT" category="EXT_map_buffer_range" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="GLsizeiptr" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapGrid1xOES" category="OES_fixed_point" extension="OES">
       <returns type="void" />
     </function>
     <function name="MaterialxOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MaterialxvOES" category="OES_fixed_point" extension="OES">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="MatrixIndexPointerOES" category="OES_matrix_palette" extension="OES">
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="MatrixIndexPointerTypeARB" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="COMPSIZE(size,type,stride)" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord1xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="1" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="2" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord2xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="2" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <param name="r" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="3" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <param name="r" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord3xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="3" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4bOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLbyte" flow="in" />
       <param name="t" type="GLbyte" flow="in" />
       <param name="r" type="GLbyte" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4bvOES" category="OES_byte_coordinates" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLbyte *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4xOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <param name="r" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4xvOES" category="OES_fixed_point" extension="OES">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="coords" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
       <param name="coords" type="GLfixed *" flow="in" count="3" />
       <returns type="void" />
     </function>
+    <function name="ObjectLabel" category="KHR_debug" extension="Core">
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
+      <param name="name" type="GLuint" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
+      <returns type="void" />
+    </function>
+    <function name="ObjectLabelKHR" category="KHR_debug" extension="KHR">
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
+      <param name="name" type="GLuint" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="label" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="ObjectPtrLabel" category="KHR_debug" extension="Core">
+      <param name="ptr" type="void *" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
+      <returns type="void" />
+    </function>
+    <function name="ObjectPtrLabelKHR" category="KHR_debug" extension="KHR">
+      <param name="ptr" type="void *" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="label" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="OrthofOES" category="OES_single_precision" extension="OES">
       <param name="l" type="GLfloat" flow="in" />
       <param name="r" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="PixelMapx" category="OES_fixed_point" extension="Core">
-      <param name="map" type="GLenum" flow="in" />
+      <param name="map" type="PixelMap" flow="in" />
       <param name="size" type="GLint" flow="in" />
       <param name="values" type="GLfixed *" flow="in" count="size" />
       <returns type="void" />
     </function>
     <function name="PixelStorex" category="OES_fixed_point" extension="Core">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PixelStoreParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="PixelTransferxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PixelTransferParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="PointParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="PointParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="units" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
+    <function name="PopDebugGroup" category="KHR_debug" extension="Core">
+      <returns type="void" />
+    </function>
+    <function name="PopDebugGroupKHR" category="KHR_debug" extension="KHR">
+      <returns type="void" />
+    </function>
+    <function name="PopGroupMarkerEXT" category="EXT_debug_marker" extension="EXT">
+      <returns type="void" />
+    </function>
     <function name="PrioritizeTexturesxOES" category="OES_fixed_point" extension="OES">
       <param name="n" type="GLsizei" flow="in" />
       <param name="textures" type="GLuint *" flow="in" count="n" />
       <param name="priorities" type="ClampedFixed *" flow="in" count="n" />
       <returns type="void" />
     </function>
+    <function name="PushDebugGroup" category="KHR_debug" extension="Core">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="id" type="GLuint" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
+      <returns type="void" />
+    </function>
+    <function name="PushDebugGroupKHR" category="KHR_debug" extension="KHR">
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="id" type="GLuint" flow="in" />
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="message" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="PushGroupMarkerEXT" category="EXT_debug_marker" extension="EXT">
+      <param name="length" type="GLsizei" flow="in" />
+      <param name="marker" type="GLchar *" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="QueryMatrixxOES" category="OES_query_matrix" extension="OES">
       <param name="mantissa" type="GLfixed *" flow="out" count="16" />
       <param name="exponent" type="GLint *" flow="out" count="16" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleAPPLE" category="APPLE_framebuffer_multisample" extension="APPLE">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleEXT" category="EXT_multisampled_render_to_texture" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleIMG" category="IMG_multisampled_render_to_texture" extension="IMG">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageOES" category="OES_framebuffer_object" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="y" type="GLuint" flow="in" />
       <param name="width" type="GLuint" flow="in" />
       <param name="height" type="GLuint" flow="in" />
-      <param name="preserveMask" type="GLbitfield" flow="in" />
+      <param name="preserveMask" type="BufferBitQCOM" flow="in" />
       <returns type="void" />
     </function>
     <function name="TestFenceNV" category="NV_fence" extension="NV">
       <returns type="void" />
     </function>
     <function name="TexEnvxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexEnvxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexGenfOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexGenfvOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexGeniOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexGenivOES" category="OES_texture_cube_map" extension="OES">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexGenxOES" category="OES_fixed_point|OES_texture_cube_map" extension="OES" version="">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexGenxvOES" category="OES_fixed_point|OES_texture_cube_map" extension="OES" version="">
-      <param name="coord" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="coord" type="TextureCoordName" flow="in" />
+      <param name="pname" type="TextureGenParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexParameterxOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexParameterxvOES" category="OES_fixed_point" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexStorage1DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="AlphaFuncx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="func" type="GLenum" flow="in" />
+      <param name="func" type="AlphaFunction" flow="in" />
       <param name="ref" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="BlendFunc" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="sfactor" type="BlendingFactorSrc" flow="in" />
-      <param name="dfactor" type="BlendingFactorDest" flow="in" />
+      <param name="sfactor" type="BlendingFactor" flow="in" />
+      <param name="dfactor" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferData" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
       <returns type="void" />
     </function>
     <function name="ClipPlanef" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="p" type="GLenum" flow="in" />
+      <param name="p" type="ClipPlaneName" flow="in" />
       <param name="eqn" type="GLfloat *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="ClipPlanex" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="in" count="4" />
       <returns type="void" />
     </function>
     <function name="CompressedTexImage2D" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CopyTexImage2D" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="Fogx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="Fogxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FogPName" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetClipPlanef" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfloat *" flow="out" count="4" />
       <returns type="void" />
     </function>
     <function name="GetClipPlanex" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="plane" type="GLenum" flow="in" />
+      <param name="plane" type="ClipPlaneName" flow="in" />
       <param name="equation" type="GLfixed *" flow="out" count="4" />
       <returns type="void" />
     </function>
       <returns type="ErrorCode" />
     </function>
     <function name="GetFixedv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="params" type="GLfixed *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetLightxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetMaterialxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetTexEnvxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetTexParameterxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="LightModelx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="LightModelxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="LightModelParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="Lightx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="Lightxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="light" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="light" type="LightName" flow="in" />
+      <param name="pname" type="LightParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="Materialx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="Materialxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="face" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="face" type="MaterialFace" flow="in" />
+      <param name="pname" type="MaterialParameter" flow="in" />
       <param name="param" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="MultiTexCoord4x" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="texture" type="GLenum" flow="in" />
+      <param name="texture" type="TextureUnit" flow="in" />
       <param name="s" type="GLfixed" flow="in" />
       <param name="t" type="GLfixed" flow="in" />
       <param name="r" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="PointParameterx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="PointParameterxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PointParameterNameARB" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="TexEnvx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexEnvxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureEnvTarget" flow="in" />
+      <param name="pname" type="TextureEnvParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexImage2D" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexParameterx" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="param" type="GLfixed" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexParameterxv" category="VERSION_ES_CM_1_0" extension="Core" version="1.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="pname" type="GetTextureParameter" flow="in" />
       <param name="params" type="GLfixed *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <token name="FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM" value="0x8F66" />
     </enum>
     <enum name="ARM_shader_framebuffer_fetch_depth_stencil" />
+    <enum name="AtomicCounterBufferPName">
+      <token name="ATOMIC_COUNTER_BUFFER_BINDING" value="0x92C1" />
+      <token name="ATOMIC_COUNTER_BUFFER_DATA_SIZE" value="0x92C4" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS" value="0x92C5" />
+      <token name="ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES" value="0x92C6" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER" value="0x92C7" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x92C8" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x92C9" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER" value="0x92CA" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER" value="0x92CB" />
+      <token name="ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER" value="0x90ED" />
+    </enum>
     <enum name="AttribMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" deprecated="3.2" />
       <token name="ALL_ATTRIB_BITS" value="0xFFFFFFFF" deprecated="3.2" />
       <token name="TRANSFORM_BIT" value="0x00001000" deprecated="3.2" />
       <token name="VIEWPORT_BIT" value="0x00000800" deprecated="3.2" />
     </enum>
+    <enum name="AttributeType">
+      <token name="FLOAT_VEC2" value="0x8B50" />
+      <token name="FLOAT_VEC2_ARB" value="0x8B50" />
+      <token name="FLOAT_VEC3" value="0x8B51" />
+      <token name="FLOAT_VEC3_ARB" value="0x8B51" />
+      <token name="FLOAT_VEC4" value="0x8B52" />
+      <token name="FLOAT_VEC4_ARB" value="0x8B52" />
+      <token name="INT_VEC2" value="0x8B53" />
+      <token name="INT_VEC2_ARB" value="0x8B53" />
+      <token name="INT_VEC3" value="0x8B54" />
+      <token name="INT_VEC3_ARB" value="0x8B54" />
+      <token name="INT_VEC4" value="0x8B55" />
+      <token name="INT_VEC4_ARB" value="0x8B55" />
+      <token name="BOOL" value="0x8B56" />
+      <token name="BOOL_ARB" value="0x8B56" />
+      <token name="BOOL_VEC2" value="0x8B57" />
+      <token name="BOOL_VEC2_ARB" value="0x8B57" />
+      <token name="BOOL_VEC3" value="0x8B58" />
+      <token name="BOOL_VEC3_ARB" value="0x8B58" />
+      <token name="BOOL_VEC4" value="0x8B59" />
+      <token name="BOOL_VEC4_ARB" value="0x8B59" />
+      <token name="FLOAT_MAT2" value="0x8B5A" />
+      <token name="FLOAT_MAT2_ARB" value="0x8B5A" />
+      <token name="FLOAT_MAT3" value="0x8B5B" />
+      <token name="FLOAT_MAT3_ARB" value="0x8B5B" />
+      <token name="FLOAT_MAT4" value="0x8B5C" />
+      <token name="FLOAT_MAT4_ARB" value="0x8B5C" />
+      <token name="SAMPLER_1D" value="0x8B5D" />
+      <token name="SAMPLER_1D_ARB" value="0x8B5D" />
+      <token name="SAMPLER_2D" value="0x8B5E" />
+      <token name="SAMPLER_2D_ARB" value="0x8B5E" />
+      <token name="SAMPLER_3D" value="0x8B5F" />
+      <token name="SAMPLER_3D_ARB" value="0x8B5F" />
+      <token name="SAMPLER_3D_OES" value="0x8B5F" />
+      <token name="SAMPLER_CUBE" value="0x8B60" />
+      <token name="SAMPLER_CUBE_ARB" value="0x8B60" />
+      <token name="SAMPLER_1D_SHADOW" value="0x8B61" />
+      <token name="SAMPLER_1D_SHADOW_ARB" value="0x8B61" />
+      <token name="SAMPLER_2D_SHADOW" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_ARB" value="0x8B62" />
+      <token name="SAMPLER_2D_SHADOW_EXT" value="0x8B62" />
+      <token name="SAMPLER_2D_RECT" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_ARB" value="0x8B63" />
+      <token name="SAMPLER_2D_RECT_SHADOW" value="0x8B64" />
+      <token name="SAMPLER_2D_RECT_SHADOW_ARB" value="0x8B64" />
+      <token name="FLOAT_MAT2x3" value="0x8B65" />
+      <token name="FLOAT_MAT2x3_NV" value="0x8B65" />
+      <token name="FLOAT_MAT2x4" value="0x8B66" />
+      <token name="FLOAT_MAT2x4_NV" value="0x8B66" />
+      <token name="FLOAT_MAT3x2" value="0x8B67" />
+      <token name="FLOAT_MAT3x2_NV" value="0x8B67" />
+      <token name="FLOAT_MAT3x4" value="0x8B68" />
+      <token name="FLOAT_MAT3x4_NV" value="0x8B68" />
+      <token name="FLOAT_MAT4x2" value="0x8B69" />
+      <token name="FLOAT_MAT4x2_NV" value="0x8B69" />
+      <token name="FLOAT_MAT4x3" value="0x8B6A" />
+      <token name="FLOAT_MAT4x3_NV" value="0x8B6A" />
+    </enum>
+    <enum name="BindTransformFeedbackTarget">
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+    </enum>
     <enum name="BlendEquationModeEXT">
       <token name="ALPHA_MAX_SGIX" value="0x8321" />
       <token name="ALPHA_MIN_SGIX" value="0x8320" />
       <token name="LOGIC_OP" value="0x0BF1" deprecated="3.2" />
       <token name="MAX_EXT" value="0x8008" />
       <token name="MIN_EXT" value="0x8007" />
+      <token name="FUNC_ADD" value="0x8006" />
+      <token name="FUNC_REVERSE_SUBTRACT" value="0x800B" />
+      <token name="FUNC_SUBTRACT" value="0x800A" />
     </enum>
-    <enum name="BlendingFactorDest">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+    <enum name="BlendingFactor">
+      <token name="ZERO" value="0" />
       <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
-      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
-      <token name="SRC_ALPHA" value="0x0302" />
       <token name="SRC_COLOR" value="0x0300" />
-      <token name="ZERO" value="0" />
-    </enum>
-    <enum name="BlendingFactorSrc">
-      <token name="CONSTANT_ALPHA_EXT" value="0x8003" />
-      <token name="CONSTANT_COLOR_EXT" value="0x8001" />
-      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
       <token name="DST_COLOR" value="0x0306" />
-      <token name="ONE" value="1" />
-      <token name="ONE_MINUS_CONSTANT_ALPHA_EXT" value="0x8004" />
-      <token name="ONE_MINUS_CONSTANT_COLOR_EXT" value="0x8002" />
-      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
       <token name="ONE_MINUS_DST_COLOR" value="0x0307" />
-      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
       <token name="SRC_ALPHA" value="0x0302" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+      <token name="DST_ALPHA" value="0x0304" />
+      <token name="ONE_MINUS_DST_ALPHA" value="0x0305" />
+      <token name="CONSTANT_COLOR" value="0x8001" />
+      <token name="ONE_MINUS_CONSTANT_COLOR" value="0x8002" />
+      <token name="CONSTANT_ALPHA" value="0x8003" />
+      <token name="ONE_MINUS_CONSTANT_ALPHA" value="0x8004" />
       <token name="SRC_ALPHA_SATURATE" value="0x0308" />
-      <token name="ZERO" value="0" />
+      <token name="SRC1_COLOR" value="0x88F9" />
+      <token name="ONE_MINUS_SRC_COLOR" value="0x0301" />
+      <token name="SRC1_ALPHA" value="0x8589" />
+      <token name="ONE_MINUS_SRC_ALPHA" value="0x0303" />
+    </enum>
+    <enum name="BlitFramebufferFilter">
+      <token name="NEAREST" value="0x2600" />
+      <token name="LINEAR" value="0x2601" />
     </enum>
     <enum name="Boolean">
       <token name="FALSE" value="0" />
       <token name="TRUE" value="1" />
     </enum>
+    <enum name="Buffer">
+      <token name="COLOR" value="0x1800" />
+      <token name="DEPTH" value="0x1801" />
+      <token name="STENCIL" value="0x1802" />
+    </enum>
     <enum name="BufferAccessARB">
       <token name="READ_ONLY" value="0x88B8" />
       <token name="WRITE_ONLY" value="0x88B9" />
       <token name="READ_WRITE" value="0x88BA" />
     </enum>
+    <enum name="BufferAccessMask">
+      <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
+      <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
+      <token name="MAP_INVALIDATE_BUFFER_BIT_EXT" value="0x0008" />
+      <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
+      <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
+      <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
+      <token name="MAP_READ_BIT" value="0x0001" />
+      <token name="MAP_READ_BIT_EXT" value="0x0001" />
+      <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
+      <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
+      <token name="MAP_WRITE_BIT" value="0x0002" />
+      <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+    </enum>
+    <enum name="BufferBitQCOM">
+      <token name="MULTISAMPLE_BUFFER_BIT7_QCOM" value="0x80000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT6_QCOM" value="0x40000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT5_QCOM" value="0x20000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT4_QCOM" value="0x10000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT3_QCOM" value="0x08000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT2_QCOM" value="0x04000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT1_QCOM" value="0x02000000" />
+      <token name="MULTISAMPLE_BUFFER_BIT0_QCOM" value="0x01000000" />
+      <token name="STENCIL_BUFFER_BIT7_QCOM" value="0x00800000" />
+      <token name="STENCIL_BUFFER_BIT6_QCOM" value="0x00400000" />
+      <token name="STENCIL_BUFFER_BIT5_QCOM" value="0x00200000" />
+      <token name="STENCIL_BUFFER_BIT4_QCOM" value="0x00100000" />
+      <token name="STENCIL_BUFFER_BIT3_QCOM" value="0x00080000" />
+      <token name="STENCIL_BUFFER_BIT2_QCOM" value="0x00040000" />
+      <token name="STENCIL_BUFFER_BIT1_QCOM" value="0x00020000" />
+      <token name="STENCIL_BUFFER_BIT0_QCOM" value="0x00010000" />
+      <token name="DEPTH_BUFFER_BIT7_QCOM" value="0x00008000" />
+      <token name="DEPTH_BUFFER_BIT6_QCOM" value="0x00004000" />
+      <token name="DEPTH_BUFFER_BIT5_QCOM" value="0x00002000" />
+      <token name="DEPTH_BUFFER_BIT4_QCOM" value="0x00001000" />
+      <token name="DEPTH_BUFFER_BIT3_QCOM" value="0x00000800" />
+      <token name="DEPTH_BUFFER_BIT2_QCOM" value="0x00000400" />
+      <token name="DEPTH_BUFFER_BIT1_QCOM" value="0x00000200" />
+      <token name="DEPTH_BUFFER_BIT0_QCOM" value="0x00000100" />
+      <token name="COLOR_BUFFER_BIT7_QCOM" value="0x00000080" />
+      <token name="COLOR_BUFFER_BIT6_QCOM" value="0x00000040" />
+      <token name="COLOR_BUFFER_BIT5_QCOM" value="0x00000020" />
+      <token name="COLOR_BUFFER_BIT4_QCOM" value="0x00000010" />
+      <token name="COLOR_BUFFER_BIT3_QCOM" value="0x00000008" />
+      <token name="COLOR_BUFFER_BIT2_QCOM" value="0x00000004" />
+      <token name="COLOR_BUFFER_BIT1_QCOM" value="0x00000002" />
+      <token name="COLOR_BUFFER_BIT0_QCOM" value="0x00000001" />
+    </enum>
+    <enum name="BufferStorageTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="BufferTargetARB">
       <token name="ARRAY_BUFFER" value="0x8892" />
       <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
       <token name="DYNAMIC_READ" value="0x88E9" />
       <token name="DYNAMIC_COPY" value="0x88EA" />
     </enum>
+    <enum name="CheckFramebufferStatusTarget">
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="ClearBufferMask">
       <token name="ACCUM_BUFFER_BIT" value="0x00000200" />
       <token name="COLOR_BUFFER_BIT" value="0x00004000" />
       <token name="CLIENT_PIXEL_STORE_BIT" value="0x00000001" deprecated="3.2" />
       <token name="CLIENT_VERTEX_ARRAY_BIT" value="0x00000002" deprecated="3.2" />
     </enum>
+    <enum name="ClipControlDepth">
+      <token name="NEGATIVE_ONE_TO_ONE" value="0x935E" />
+      <token name="ZERO_TO_ONE" value="0x935F" />
+    </enum>
+    <enum name="ClipControlOrigin">
+      <token name="LOWER_LEFT" value="0x8CA1" />
+      <token name="UPPER_LEFT" value="0x8CA2" />
+    </enum>
     <enum name="ClipPlaneName">
       <token name="CLIP_DISTANCE0" value="0x3000" />
       <token name="CLIP_DISTANCE1" value="0x3001" />
       <token name="CLIP_PLANE4" value="0x3004" deprecated="3.2" />
       <token name="CLIP_PLANE5" value="0x3005" deprecated="3.2" />
     </enum>
+    <enum name="ColorBuffer">
+      <token name="NONE" value="0" />
+      <token name="FRONT_LEFT" value="0x0400" />
+      <token name="FRONT_RIGHT" value="0x0401" />
+      <token name="BACK_LEFT" value="0x0402" />
+      <token name="BACK_RIGHT" value="0x0403" />
+      <token name="FRONT" value="0x0404" />
+      <token name="BACK" value="0x0405" />
+      <token name="LEFT" value="0x0406" />
+      <token name="RIGHT" value="0x0407" />
+      <token name="FRONT_AND_BACK" value="0x0408" />
+      <token name="NONE" value="0" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+    </enum>
     <enum name="ColorMaterialFace">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="COLOR_TABLE_SCALE" value="0x80D6" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
     </enum>
+    <enum name="ColorTableTarget">
+      <token name="COLOR_TABLE" value="0x80D0" />
+      <token name="POST_CONVOLUTION_COLOR_TABLE" value="0x80D1" />
+      <token name="POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D2" />
+    </enum>
     <enum name="ColorTableTargetSGI">
       <token name="COLOR_TABLE" value="0x80D0" />
       <token name="COLOR_TABLE_SGI" value="0x80D0" />
       <token name="CONTEXT_FLAG_DEBUG_BIT" value="0x00000002" />
       <token name="CONTEXT_FLAG_DEBUG_BIT_KHR" value="0x00000002" />
       <token name="CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT" value="0x00000001" />
+      <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT" value="0x00000004" />
       <token name="CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" value="0x00000004" />
       <token name="CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT" value="0x00000010" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT" value="0x00000008" />
+      <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
     <enum name="ContextProfileMask">
       <token name="CONTEXT_COMPATIBILITY_PROFILE_BIT" value="0x00000002" />
       <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
       <token name="CONVOLUTION_FILTER_SCALE_EXT" value="0x8014" />
     </enum>
+    <enum name="ConvolutionTarget">
+      <token name="CONVOLUTION_1D" value="0x8010" />
+      <token name="CONVOLUTION_2D" value="0x8011" />
+    </enum>
     <enum name="ConvolutionTargetEXT">
       <token name="CONVOLUTION_1D" value="0x8010" />
       <token name="CONVOLUTION_1D_EXT" value="0x8010" />
       <token name="CONVOLUTION_2D" value="0x8011" />
       <token name="CONVOLUTION_2D_EXT" value="0x8011" />
     </enum>
+    <enum name="CopyBufferSubDataTarget">
+      <token name="ARRAY_BUFFER" value="0x8892" />
+      <token name="ATOMIC_COUNTER_BUFFER" value="0x92C0" />
+      <token name="COPY_READ_BUFFER" value="0x8F36" />
+      <token name="COPY_WRITE_BUFFER" value="0x8F37" />
+      <token name="DISPATCH_INDIRECT_BUFFER" value="0x90EE" />
+      <token name="DRAW_INDIRECT_BUFFER" value="0x8F3F" />
+      <token name="ELEMENT_ARRAY_BUFFER" value="0x8893" />
+      <token name="PIXEL_PACK_BUFFER" value="0x88EB" />
+      <token name="PIXEL_UNPACK_BUFFER" value="0x88EC" />
+      <token name="QUERY_BUFFER" value="0x9192" />
+      <token name="SHADER_STORAGE_BUFFER" value="0x90D2" />
+      <token name="TEXTURE_BUFFER" value="0x8C2A" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="UNIFORM_BUFFER" value="0x8A11" />
+    </enum>
     <enum name="CullFaceMode">
       <token name="BACK" value="0x0405" />
       <token name="FRONT" value="0x0404" />
       <token name="FRONT_AND_BACK" value="0x0408" />
     </enum>
     <enum name="DataType" />
+    <enum name="DebugSeverity">
+      <token name="DEBUG_SEVERITY_LOW" value="0x9148" />
+      <token name="DEBUG_SEVERITY_MEDIUM" value="0x9147" />
+      <token name="DEBUG_SEVERITY_HIGH" value="0x9146" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugSource">
+      <token name="DEBUG_SOURCE_API" value="0x8246" />
+      <token name="DEBUG_SOURCE_WINDOW_SYSTEM" value="0x8247" />
+      <token name="DEBUG_SOURCE_SHADER_COMPILER" value="0x8248" />
+      <token name="DEBUG_SOURCE_THIRD_PARTY" value="0x8249" />
+      <token name="DEBUG_SOURCE_APPLICATION" value="0x824A" />
+      <token name="DEBUG_SOURCE_OTHER" value="0x824B" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
+    <enum name="DebugType">
+      <token name="DEBUG_TYPE_ERROR" value="0x824C" />
+      <token name="DEBUG_TYPE_DEPRECATED_BEHAVIOR" value="0x824D" />
+      <token name="DEBUG_TYPE_UNDEFINED_BEHAVIOR" value="0x824E" />
+      <token name="DEBUG_TYPE_PORTABILITY" value="0x824F" />
+      <token name="DEBUG_TYPE_PERFORMANCE" value="0x8250" />
+      <token name="DEBUG_TYPE_MARKER" value="0x8268" />
+      <token name="DEBUG_TYPE_PUSH_GROUP" value="0x8269" />
+      <token name="DEBUG_TYPE_POP_GROUP" value="0x826A" />
+      <token name="DEBUG_TYPE_OTHER" value="0x8251" />
+      <token name="DONT_CARE" value="0x1100" />
+    </enum>
     <enum name="DepthFunction">
       <token name="ALWAYS" value="0x0207" />
       <token name="EQUAL" value="0x0202" />
       <token name="BUFFER_STORAGE_FLAGS_EXT" value="0x8220" />
     </enum>
     <enum name="EXT_clear_texture" />
+    <enum name="EXT_clip_control">
+      <token name="LOWER_LEFT_EXT" value="0x8CA1" />
+      <token name="UPPER_LEFT_EXT" value="0x8CA2" />
+      <token name="NEGATIVE_ONE_TO_ONE_EXT" value="0x935E" />
+      <token name="ZERO_TO_ONE_EXT" value="0x935F" />
+      <token name="CLIP_ORIGIN_EXT" value="0x935C" />
+      <token name="CLIP_DEPTH_MODE_EXT" value="0x935D" />
+    </enum>
     <enum name="EXT_clip_cull_distance">
       <token name="MAX_CLIP_DISTANCES_EXT" value="0x0D32" />
       <token name="MAX_CULL_DISTANCES_EXT" value="0x82F9" />
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="EXT_semaphore_fd">
       <token name="HANDLE_TYPE_OPAQUE_FD_EXT" value="0x9586" />
       <token name="COMPRESSED_RGBA_S3TC_DXT3_EXT" value="0x83F2" />
       <token name="COMPRESSED_RGBA_S3TC_DXT5_EXT" value="0x83F3" />
     </enum>
+    <enum name="EXT_texture_compression_s3tc_srgb">
+      <token name="COMPRESSED_SRGB_S3TC_DXT1_EXT" value="0x8C4C" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" value="0x8C4D" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" value="0x8C4E" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" value="0x8C4F" />
+    </enum>
     <enum name="EXT_texture_cube_map_array">
       <token name="TEXTURE_CUBE_MAP_ARRAY_EXT" value="0x9009" />
       <token name="TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT" value="0x900A" />
     <enum name="EXT_texture_format_BGRA8888">
       <token name="BGRA_EXT" value="0x80E1" />
     </enum>
+    <enum name="EXT_texture_mirror_clamp_to_edge">
+      <token name="MIRROR_CLAMP_TO_EDGE_EXT" value="0x8743" />
+    </enum>
     <enum name="EXT_texture_norm16">
       <token name="R16_EXT" value="0x822A" />
       <token name="RG16_EXT" value="0x822C" />
       <token name="FOG_OFFSET_VALUE_SGIX" value="0x8199" />
       <token name="FOG_START" value="0x0B63" deprecated="3.2" />
     </enum>
+    <enum name="FogPName">
+      <token name="FOG_MODE" value="0x0B65" />
+      <token name="FOG_DENSITY" value="0x0B62" />
+      <token name="FOG_START" value="0x0B63" />
+      <token name="FOG_END" value="0x0B64" />
+      <token name="FOG_INDEX" value="0x0B61" />
+      <token name="FOG_COORD_SRC" value="0x8450" deprecated="3.2" />
+    </enum>
     <enum name="FogPointerTypeEXT">
       <token name="FLOAT" value="0x1406" />
       <token name="DOUBLE" value="0x140A" />
       <token name="FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX" value="0x840B" />
       <token name="FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX" value="0x8409" />
     </enum>
+    <enum name="FragmentOpATI">
+      <token name="MOV_ATI" value="0x8961" />
+      <token name="ADD_ATI" value="0x8963" />
+      <token name="MUL_ATI" value="0x8964" />
+      <token name="SUB_ATI" value="0x8965" />
+      <token name="DOT3_ATI" value="0x8966" />
+      <token name="DOT4_ATI" value="0x8967" />
+      <token name="MAD_ATI" value="0x8968" />
+      <token name="LERP_ATI" value="0x8969" />
+      <token name="CND_ATI" value="0x896A" />
+      <token name="CND0_ATI" value="0x896B" />
+      <token name="DOT2_ADD_ATI" value="0x896C" />
+    </enum>
+    <enum name="FramebufferAttachment">
+      <token name="MAX_COLOR_ATTACHMENTS" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_EXT" value="0x8CDF" />
+      <token name="MAX_COLOR_ATTACHMENTS_NV" value="0x8CDF" />
+      <token name="COLOR_ATTACHMENT0" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_EXT" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_NV" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT0_OES" value="0x8CE0" />
+      <token name="COLOR_ATTACHMENT1" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_EXT" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT1_NV" value="0x8CE1" />
+      <token name="COLOR_ATTACHMENT2" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_EXT" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT2_NV" value="0x8CE2" />
+      <token name="COLOR_ATTACHMENT3" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_EXT" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT3_NV" value="0x8CE3" />
+      <token name="COLOR_ATTACHMENT4" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_EXT" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT4_NV" value="0x8CE4" />
+      <token name="COLOR_ATTACHMENT5" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_EXT" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT5_NV" value="0x8CE5" />
+      <token name="COLOR_ATTACHMENT6" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_EXT" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT6_NV" value="0x8CE6" />
+      <token name="COLOR_ATTACHMENT7" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_EXT" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT7_NV" value="0x8CE7" />
+      <token name="COLOR_ATTACHMENT8" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_EXT" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT8_NV" value="0x8CE8" />
+      <token name="COLOR_ATTACHMENT9" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_EXT" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT9_NV" value="0x8CE9" />
+      <token name="COLOR_ATTACHMENT10" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_EXT" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT10_NV" value="0x8CEA" />
+      <token name="COLOR_ATTACHMENT11" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_EXT" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT11_NV" value="0x8CEB" />
+      <token name="COLOR_ATTACHMENT12" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_EXT" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT12_NV" value="0x8CEC" />
+      <token name="COLOR_ATTACHMENT13" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_EXT" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT13_NV" value="0x8CED" />
+      <token name="COLOR_ATTACHMENT14" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_EXT" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT14_NV" value="0x8CEE" />
+      <token name="COLOR_ATTACHMENT15" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_EXT" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT15_NV" value="0x8CEF" />
+      <token name="COLOR_ATTACHMENT16" value="0x8CF0" />
+      <token name="COLOR_ATTACHMENT17" value="0x8CF1" />
+      <token name="COLOR_ATTACHMENT18" value="0x8CF2" />
+      <token name="COLOR_ATTACHMENT19" value="0x8CF3" />
+      <token name="COLOR_ATTACHMENT20" value="0x8CF4" />
+      <token name="COLOR_ATTACHMENT21" value="0x8CF5" />
+      <token name="COLOR_ATTACHMENT22" value="0x8CF6" />
+      <token name="COLOR_ATTACHMENT23" value="0x8CF7" />
+      <token name="COLOR_ATTACHMENT24" value="0x8CF8" />
+      <token name="COLOR_ATTACHMENT25" value="0x8CF9" />
+      <token name="COLOR_ATTACHMENT26" value="0x8CFA" />
+      <token name="COLOR_ATTACHMENT27" value="0x8CFB" />
+      <token name="COLOR_ATTACHMENT28" value="0x8CFC" />
+      <token name="COLOR_ATTACHMENT29" value="0x8CFD" />
+      <token name="COLOR_ATTACHMENT30" value="0x8CFE" />
+      <token name="COLOR_ATTACHMENT31" value="0x8CFF" />
+      <token name="DEPTH_ATTACHMENT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_EXT" value="0x8D00" />
+      <token name="DEPTH_ATTACHMENT_OES" value="0x8D00" />
+    </enum>
+    <enum name="FramebufferAttachmentParameterName">
+      <token name="FRAMEBUFFER_ATTACHMENT_RED_SIZE" value="0x8212" />
+      <token name="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" value="0x8213" />
+      <token name="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" value="0x8214" />
+      <token name="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" value="0x8215" />
+      <token name="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" value="0x8216" />
+      <token name="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" value="0x8217" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" value="0x8211" />
+      <token name="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" value="0x8210" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" value="0x8CD1" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" value="0x8CD2" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" value="0x8CD3" />
+      <token name="FRAMEBUFFER_ATTACHMENT_LAYERED" value="0x8DA7" />
+      <token name="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" value="0x8CD4" />
+    </enum>
     <enum name="FramebufferFetchNoncoherent">
       <token name="FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" value="0x96A2" />
     </enum>
+    <enum name="FramebufferParameterName">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+    </enum>
+    <enum name="FramebufferStatus">
+      <token name="FRAMEBUFFER_COMPLETE" value="0x8CD5" />
+      <token name="FRAMEBUFFER_UNDEFINED" value="0x8219" />
+      <token name="FRAMEBUFFER_INCOMPLETE_ATTACHMENT" value="0x8CD6" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" value="0x8CD7" />
+      <token name="FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER" value="0x8CDB" />
+      <token name="FRAMEBUFFER_INCOMPLETE_READ_BUFFER" value="0x8CDC" />
+      <token name="FRAMEBUFFER_UNSUPPORTED" value="0x8CDD" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" value="0x8D56" />
+      <token name="FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" value="0x8DA8" />
+    </enum>
+    <enum name="FramebufferTarget">
+      <token name="FRAMEBUFFER" value="0x8D40" />
+      <token name="DRAW_FRAMEBUFFER" value="0x8CA9" />
+      <token name="READ_FRAMEBUFFER" value="0x8CA8" />
+    </enum>
     <enum name="FrontFaceDirection">
       <token name="CCW" value="0x0901" />
       <token name="CW" value="0x0900" />
       <token name="COLOR_TABLE_RED_SIZE_SGI" value="0x80DA" />
       <token name="COLOR_TABLE_SCALE_SGI" value="0x80D6" />
       <token name="COLOR_TABLE_WIDTH_SGI" value="0x80D9" />
+      <token name="COLOR_TABLE_BIAS" value="0x80D7" />
+      <token name="COLOR_TABLE_SCALE" value="0x80D6" />
+      <token name="COLOR_TABLE_FORMAT" value="0x80D8" />
+      <token name="COLOR_TABLE_WIDTH" value="0x80D9" />
+      <token name="COLOR_TABLE_RED_SIZE" value="0x80DA" />
+      <token name="COLOR_TABLE_GREEN_SIZE" value="0x80DB" />
+      <token name="COLOR_TABLE_BLUE_SIZE" value="0x80DC" />
+      <token name="COLOR_TABLE_ALPHA_SIZE" value="0x80DD" />
+      <token name="COLOR_TABLE_LUMINANCE_SIZE" value="0x80DE" />
+      <token name="COLOR_TABLE_INTENSITY_SIZE" value="0x80DF" />
     </enum>
     <enum name="GetConvolutionParameter">
       <token name="CONVOLUTION_BORDER_MODE_EXT" value="0x8013" />
       <token name="CONVOLUTION_WIDTH_EXT" value="0x8018" />
       <token name="MAX_CONVOLUTION_HEIGHT_EXT" value="0x801B" />
       <token name="MAX_CONVOLUTION_WIDTH_EXT" value="0x801A" />
+      <token name="CONVOLUTION_BORDER_MODE" value="0x8013" />
+      <token name="CONVOLUTION_BORDER_COLOR" value="0x8154" />
+      <token name="CONVOLUTION_FILTER_SCALE" value="0x8014" />
+      <token name="CONVOLUTION_FILTER_BIAS" value="0x8015" />
+      <token name="CONVOLUTION_FORMAT" value="0x8017" />
+      <token name="CONVOLUTION_WIDTH" value="0x8018" />
+      <token name="CONVOLUTION_HEIGHT" value="0x8019" />
+      <token name="MAX_CONVOLUTION_WIDTH" value="0x801A" />
+      <token name="MAX_CONVOLUTION_HEIGHT" value="0x801B" />
+    </enum>
+    <enum name="GetFramebufferParameter">
+      <token name="FRAMEBUFFER_DEFAULT_WIDTH" value="0x9310" />
+      <token name="FRAMEBUFFER_DEFAULT_HEIGHT" value="0x9311" />
+      <token name="FRAMEBUFFER_DEFAULT_LAYERS" value="0x9312" />
+      <token name="FRAMEBUFFER_DEFAULT_SAMPLES" value="0x9313" />
+      <token name="FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" value="0x9314" />
+      <token name="DOUBLEBUFFER" value="0x0C32" />
+      <token name="IMPLEMENTATION_COLOR_READ_FORMAT" value="0x8B9B" />
+      <token name="IMPLEMENTATION_COLOR_READ_TYPE" value="0x8B9A" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="SAMPLE_BUFFERS" value="0x80A8" />
+      <token name="STEREO" value="0x0C33" />
     </enum>
     <enum name="GetHistogramParameterPNameEXT">
       <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
       <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
       <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
       <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
+      <token name="HISTOGRAM_WIDTH" value="0x8026" />
+      <token name="HISTOGRAM_FORMAT" value="0x8027" />
+      <token name="HISTOGRAM_RED_SIZE" value="0x8028" />
+      <token name="HISTOGRAM_GREEN_SIZE" value="0x8029" />
+      <token name="HISTOGRAM_BLUE_SIZE" value="0x802A" />
+      <token name="HISTOGRAM_ALPHA_SIZE" value="0x802B" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE" value="0x802C" />
+      <token name="HISTOGRAM_SINK" value="0x802D" />
+      <token name="HISTOGRAM_ALPHA_SIZE_EXT" value="0x802B" />
+      <token name="HISTOGRAM_BLUE_SIZE_EXT" value="0x802A" />
+      <token name="HISTOGRAM_FORMAT_EXT" value="0x8027" />
+      <token name="HISTOGRAM_GREEN_SIZE_EXT" value="0x8029" />
+      <token name="HISTOGRAM_LUMINANCE_SIZE_EXT" value="0x802C" />
+      <token name="HISTOGRAM_RED_SIZE_EXT" value="0x8028" />
+      <token name="HISTOGRAM_SINK_EXT" value="0x802D" />
+      <token name="HISTOGRAM_WIDTH_EXT" value="0x8026" />
     </enum>
     <enum name="GetMapQuery">
       <token name="COEFF" value="0x0A00" deprecated="3.2" />
       <token name="MINMAX_FORMAT_EXT" value="0x802F" />
       <token name="MINMAX_SINK" value="0x8030" />
       <token name="MINMAX_SINK_EXT" value="0x8030" />
+      <token name="MINMAX_FORMAT" value="0x802F" />
+      <token name="MINMAX_SINK" value="0x8030" />
     </enum>
     <enum name="GetPixelMap">
       <token name="PIXEL_MAP_A_TO_A" value="0x0C79" deprecated="3.2" />
       <token name="TEXTURE_COORD_ARRAY_POINTER_EXT" value="0x8092" />
       <token name="VERTEX_ARRAY_POINTER" value="0x808E" deprecated="3.2" />
       <token name="VERTEX_ARRAY_POINTER_EXT" value="0x808E" />
+      <token name="DEBUG_CALLBACK_FUNCTION" value="0x8244" />
+      <token name="DEBUG_CALLBACK_USER_PARAM" value="0x8245" />
     </enum>
     <enum name="GetTextureParameter">
       <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
       <token name="TEXTURE_WRAP_S" value="0x2802" />
       <token name="TEXTURE_WRAP_T" value="0x2803" />
     </enum>
+    <enum name="GraphicsResetStatus">
+      <token name="NO_ERROR" value="0" />
+      <token name="GUILTY_CONTEXT_RESET" value="0x8253" />
+      <token name="INNOCENT_CONTEXT_RESET" value="0x8254" />
+      <token name="UNKNOWN_CONTEXT_RESET" value="0x8255" />
+    </enum>
     <enum name="HintMode">
       <token name="DONT_CARE" value="0x1100" />
       <token name="FASTEST" value="0x1101" />
       <token name="HISTOGRAM_EXT" value="0x8024" />
       <token name="PROXY_HISTOGRAM" value="0x8025" />
       <token name="PROXY_HISTOGRAM_EXT" value="0x8025" />
+      <token name="HISTOGRAM" value="0x8024" />
+      <token name="PROXY_HISTOGRAM" value="0x8025" />
     </enum>
     <enum name="IMG_bindless_texture" />
     <enum name="IMG_framebuffer_downsample">
       <token name="ALPHA16" value="0x803E" deprecated="3.2" />
       <token name="ALPHA4" value="0x803B" deprecated="3.2" />
       <token name="ALPHA8" value="0x803C" deprecated="3.2" />
-      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
-      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
-      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
       <token name="DUAL_ALPHA12_SGIS" value="0x8112" />
       <token name="DUAL_ALPHA16_SGIS" value="0x8113" />
       <token name="DUAL_ALPHA4_SGIS" value="0x8110" />
       <token name="QUAD_INTENSITY8_SGIS" value="0x8123" />
       <token name="QUAD_LUMINANCE4_SGIS" value="0x8120" />
       <token name="QUAD_LUMINANCE8_SGIS" value="0x8121" />
-      <token name="R3_G3_B2" value="0x2A10" />
-      <token name="RGB10" value="0x8052" />
-      <token name="RGB10_A2" value="0x8059" />
-      <token name="RGB12" value="0x8053" />
-      <token name="RGB16" value="0x8054" />
+      <token name="RED" value="0x1903" />
+      <token name="RED_EXT" value="0x1903" />
+      <token name="R8" value="0x8229" />
+      <token name="R8_EXT" value="0x8229" />
+      <token name="R8_SNORM" value="0x8F94" />
+      <token name="R16" value="0x822A" />
+      <token name="R16_EXT" value="0x822A" />
+      <token name="R16_SNORM" value="0x8F98" />
+      <token name="R16_SNORM_EXT" value="0x8F98" />
+      <token name="R16F" value="0x822D" />
+      <token name="R16F_EXT" value="0x822D" />
+      <token name="R32F" value="0x822E" />
+      <token name="R32F_EXT" value="0x822E" />
+      <token name="R8I" value="0x8231" />
+      <token name="R16I" value="0x8233" />
+      <token name="R32I" value="0x8235" />
+      <token name="R8UI" value="0x8232" />
+      <token name="R16UI" value="0x8234" />
+      <token name="R32UI" value="0x8236" />
+      <token name="RG" value="0x8227" />
+      <token name="RG8" value="0x822B" />
+      <token name="RG8_EXT" value="0x822B" />
+      <token name="RG8_SNORM" value="0x8F95" />
+      <token name="RG16" value="0x822C" />
+      <token name="RG16_EXT" value="0x822C" />
+      <token name="RG16_SNORM" value="0x8F99" />
+      <token name="RG16_SNORM_EXT" value="0x8F99" />
+      <token name="RG16F" value="0x822F" />
+      <token name="RG16F_EXT" value="0x822F" />
+      <token name="RG32F" value="0x8230" />
+      <token name="RG32F_EXT" value="0x8230" />
+      <token name="RG8I" value="0x8237" />
+      <token name="RG16I" value="0x8239" />
+      <token name="RG32I" value="0x823B" />
+      <token name="RG8UI" value="0x8238" />
+      <token name="RG16UI" value="0x823A" />
+      <token name="RG32UI" value="0x823C" />
+      <token name="RGB" value="0x1907" />
       <token name="RGB2_EXT" value="0x804E" />
       <token name="RGB4" value="0x804F" />
+      <token name="RGB4_EXT" value="0x804F" />
       <token name="RGB5" value="0x8050" />
-      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_EXT" value="0x8050" />
       <token name="RGB8" value="0x8051" />
-      <token name="RGBA12" value="0x805A" />
-      <token name="RGBA16" value="0x805B" />
-      <token name="RGBA2" value="0x8055" />
+      <token name="RGB8_EXT" value="0x8051" />
+      <token name="RGB8_OES" value="0x8051" />
+      <token name="RGB8_SNORM" value="0x8F96" />
+      <token name="RGB10" value="0x8052" />
+      <token name="RGB10_EXT" value="0x8052" />
+      <token name="RGB12" value="0x8053" />
+      <token name="RGB12_EXT" value="0x8053" />
+      <token name="RGB16" value="0x8054" />
+      <token name="RGB16_EXT" value="0x8054" />
+      <token name="RGB16F" value="0x881B" />
+      <token name="RGB16F_ARB" value="0x881B" />
+      <token name="RGB16F_EXT" value="0x881B" />
+      <token name="RGB16_SNORM" value="0x8F9A" />
+      <token name="RGB16_SNORM_EXT" value="0x8F9A" />
+      <token name="RGB8I" value="0x8D8F" />
+      <token name="RGB16I" value="0x8D89" />
+      <token name="RGB32I" value="0x8D83" />
+      <token name="RGB8UI" value="0x8D7D" />
+      <token name="RGB16UI" value="0x8D77" />
+      <token name="RGB32UI" value="0x8D71" />
+      <token name="SRGB" value="0x8C40" />
+      <token name="SRGB_EXT" value="0x8C40" />
+      <token name="SRGB_ALPHA" value="0x8C42" />
+      <token name="SRGB_ALPHA_EXT" value="0x8C42" />
+      <token name="SRGB8" value="0x8C41" />
+      <token name="SRGB8_EXT" value="0x8C41" />
+      <token name="SRGB8_NV" value="0x8C41" />
+      <token name="SRGB8_ALPHA8" value="0x8C43" />
+      <token name="SRGB8_ALPHA8_EXT" value="0x8C43" />
+      <token name="R3_G3_B2" value="0x2A10" />
+      <token name="R11F_G11F_B10F" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_APPLE" value="0x8C3A" />
+      <token name="R11F_G11F_B10F_EXT" value="0x8C3A" />
+      <token name="RGB9_E5" value="0x8C3D" />
+      <token name="RGB9_E5_APPLE" value="0x8C3D" />
+      <token name="RGB9_E5_EXT" value="0x8C3D" />
+      <token name="RGBA" value="0x1908" />
       <token name="RGBA4" value="0x8056" />
+      <token name="RGBA4_EXT" value="0x8056" />
+      <token name="RGBA4_OES" value="0x8056" />
+      <token name="RGB5_A1" value="0x8057" />
+      <token name="RGB5_A1_EXT" value="0x8057" />
+      <token name="RGB5_A1_OES" value="0x8057" />
       <token name="RGBA8" value="0x8058" />
+      <token name="RGBA8_EXT" value="0x8058" />
+      <token name="RGBA8_OES" value="0x8058" />
+      <token name="RGBA8_SNORM" value="0x8F97" />
+      <token name="RGB10_A2" value="0x8059" />
+      <token name="RGB10_A2_EXT" value="0x8059" />
+      <token name="RGBA12" value="0x805A" />
+      <token name="RGBA12_EXT" value="0x805A" />
+      <token name="RGBA16" value="0x805B" />
+      <token name="RGBA16_EXT" value="0x805B" />
+      <token name="RGBA16F" value="0x881A" />
+      <token name="RGBA16F_ARB" value="0x881A" />
+      <token name="RGBA16F_EXT" value="0x881A" />
+      <token name="RGBA32F" value="0x8814" />
+      <token name="RGBA32F_ARB" value="0x8814" />
+      <token name="RGBA32F_EXT" value="0x8814" />
+      <token name="RGBA8I" value="0x8D8E" />
+      <token name="RGBA16I" value="0x8D88" />
+      <token name="RGBA32I" value="0x8D82" />
+      <token name="RGBA8UI" value="0x8D7C" />
+      <token name="RGBA16UI" value="0x8D76" />
+      <token name="RGBA32UI" value="0x8D70" />
+      <token name="RGB10_A2UI" value="0x906F" />
+      <token name="DEPTH_COMPONENT" value="0x1902" />
+      <token name="DEPTH_COMPONENT16" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_ARB" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_OES" value="0x81A5" />
+      <token name="DEPTH_COMPONENT16_SGIX" value="0x81A5" />
+      <token name="DEPTH_COMPONENT24_ARB" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_OES" value="0x81A6" />
+      <token name="DEPTH_COMPONENT24_SGIX" value="0x81A6" />
+      <token name="DEPTH_COMPONENT32_ARB" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_OES" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32_SGIX" value="0x81A7" />
+      <token name="DEPTH_COMPONENT32F" value="0x8CAC" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_COMPONENT32F_NV" value="0x8DAB" />
+      <token name="DEPTH_STENCIL" value="0x84F9" />
+      <token name="DEPTH_STENCIL_EXT" value="0x84F9" />
+      <token name="DEPTH_STENCIL_MESA" value="0x8750" />
+      <token name="DEPTH_STENCIL_NV" value="0x84F9" />
+      <token name="DEPTH_STENCIL_OES" value="0x84F9" />
+      <token name="DEPTH24_STENCIL8" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_EXT" value="0x88F0" />
+      <token name="DEPTH24_STENCIL8_OES" value="0x88F0" />
+      <token name="DEPTH32F_STENCIL8" value="0x8CAD" />
+      <token name="DEPTH32F_STENCIL8_NV" value="0x8DAC" />
+      <token name="COMPRESSED_RED" value="0x8225" />
+      <token name="COMPRESSED_RG" value="0x8226" />
+      <token name="COMPRESSED_RGB" value="0x84ED" />
+      <token name="COMPRESSED_RGBA" value="0x84EE" />
+      <token name="COMPRESSED_SRGB" value="0x8C48" />
+      <token name="COMPRESSED_SRGB_ALPHA" value="0x8C49" />
+      <token name="COMPRESSED_RED_RGTC1" value="0x8DBB" />
+      <token name="COMPRESSED_RED_RGTC1_EXT" value="0x8DBB" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1" value="0x8DBC" />
+      <token name="COMPRESSED_SIGNED_RED_RGTC1_EXT" value="0x8DBC" />
+      <token name="COMPRESSED_R11_EAC" value="0x9270" />
+      <token name="COMPRESSED_SIGNED_R11_EAC" value="0x9271" />
+      <token name="COMPRESSED_RG_RGTC2" value="0x8DBD" />
+      <token name="COMPRESSED_SIGNED_RG_RGTC2" value="0x8DBE" />
+      <token name="COMPRESSED_RGBA_BPTC_UNORM" value="0x8E8C" />
+      <token name="COMPRESSED_SRGB_ALPHA_BPTC_UNORM" value="0x8E8D" />
+      <token name="COMPRESSED_RGB_BPTC_SIGNED_FLOAT" value="0x8E8E" />
+      <token name="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT" value="0x8E8F" />
+      <token name="COMPRESSED_RGB8_ETC2" value="0x9274" />
+      <token name="COMPRESSED_SRGB8_ETC2" value="0x9275" />
+      <token name="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9276" />
+      <token name="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" value="0x9277" />
+      <token name="COMPRESSED_RGBA8_ETC2_EAC" value="0x9278" />
+      <token name="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" value="0x9279" />
+      <token name="COMPRESSED_RG11_EAC" value="0x9272" />
+      <token name="COMPRESSED_SIGNED_RG11_EAC" value="0x9273" />
+      <token name="COMPRESSED_RGB_S3TC_DXT1_EXT" value="0x83F0" />
+      <token name="COMPRESSED_SRGB_S3TC_DXT1_EXT" value="0x8C4C" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT1_EXT" value="0x83F1" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" value="0x8C4D" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT3_EXT" value="0x83F2" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" value="0x8C4E" />
+      <token name="COMPRESSED_RGBA_S3TC_DXT5_EXT" value="0x83F3" />
+      <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" value="0x8C4F" />
+    </enum>
+    <enum name="InternalFormatPName">
+      <token name="NUM_SAMPLE_COUNTS" value="0x9380" />
+      <token name="SAMPLES" value="0x80A9" />
+      <token name="INTERNALFORMAT_SUPPORTED" value="0x826F" />
+      <token name="INTERNALFORMAT_PREFERRED" value="0x8270" />
+      <token name="INTERNALFORMAT_RED_SIZE" value="0x8271" />
+      <token name="INTERNALFORMAT_GREEN_SIZE" value="0x8272" />
+      <token name="INTERNALFORMAT_BLUE_SIZE" value="0x8273" />
+      <token name="INTERNALFORMAT_ALPHA_SIZE" value="0x8274" />
+      <token name="INTERNALFORMAT_DEPTH_SIZE" value="0x8275" />
+      <token name="INTERNALFORMAT_STENCIL_SIZE" value="0x8276" />
+      <token name="INTERNALFORMAT_SHARED_SIZE" value="0x8277" />
+      <token name="INTERNALFORMAT_RED_TYPE" value="0x8278" />
+      <token name="INTERNALFORMAT_GREEN_TYPE" value="0x8279" />
+      <token name="INTERNALFORMAT_BLUE_TYPE" value="0x827A" />
+      <token name="INTERNALFORMAT_ALPHA_TYPE" value="0x827B" />
+      <token name="INTERNALFORMAT_DEPTH_TYPE" value="0x827C" />
+      <token name="INTERNALFORMAT_STENCIL_TYPE" value="0x827D" />
+      <token name="MAX_WIDTH" value="0x827E" />
+      <token name="MAX_HEIGHT" value="0x827F" />
+      <token name="MAX_DEPTH" value="0x8280" />
+      <token name="MAX_LAYERS" value="0x8281" />
+      <token name="COLOR_COMPONENTS" value="0x8283" />
+      <token name="COLOR_RENDERABLE" value="0x8286" />
+      <token name="DEPTH_RENDERABLE" value="0x8287" />
+      <token name="STENCIL_RENDERABLE" value="0x8288" />
+      <token name="FRAMEBUFFER_RENDERABLE" value="0x8289" />
+      <token name="FRAMEBUFFER_RENDERABLE_LAYERED" value="0x828A" />
+      <token name="FRAMEBUFFER_BLEND" value="0x828B" />
+      <token name="READ_PIXELS" value="0x828C" />
+      <token name="READ_PIXELS_FORMAT" value="0x828D" />
+      <token name="READ_PIXELS_TYPE" value="0x828E" />
+      <token name="TEXTURE_IMAGE_FORMAT" value="0x828F" />
+      <token name="TEXTURE_IMAGE_TYPE" value="0x8290" />
+      <token name="GET_TEXTURE_IMAGE_FORMAT" value="0x8291" />
+      <token name="GET_TEXTURE_IMAGE_TYPE" value="0x8292" />
+      <token name="MIPMAP" value="0x8293" />
+      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="AUTO_GENERATE_MIPMAP" value="0x8295" />
+      <token name="COLOR_ENCODING" value="0x8296" />
+      <token name="SRGB_READ" value="0x8297" />
+      <token name="SRGB_WRITE" value="0x8298" />
+      <token name="FILTER" value="0x829A" />
+      <token name="VERTEX_TEXTURE" value="0x829B" />
+      <token name="TESS_CONTROL_TEXTURE" value="0x829C" />
+      <token name="TESS_EVALUATION_TEXTURE" value="0x829D" />
+      <token name="GEOMETRY_TEXTURE" value="0x829E" />
+      <token name="FRAGMENT_TEXTURE" value="0x829F" />
+      <token name="COMPUTE_TEXTURE" value="0x82A0" />
+      <token name="TEXTURE_SHADOW" value="0x82A1" />
+      <token name="TEXTURE_GATHER" value="0x82A2" />
+      <token name="TEXTURE_GATHER_SHADOW" value="0x82A3" />
+      <token name="SHADER_IMAGE_LOAD" value="0x82A4" />
+      <token name="SHADER_IMAGE_STORE" value="0x82A5" />
+      <token name="SHADER_IMAGE_ATOMIC" value="0x82A6" />
+      <token name="IMAGE_TEXEL_SIZE" value="0x82A7" />
+      <token name="IMAGE_COMPATIBILITY_CLASS" value="0x82A8" />
+      <token name="IMAGE_PIXEL_FORMAT" value="0x82A9" />
+      <token name="IMAGE_PIXEL_TYPE" value="0x82AA" />
+      <token name="IMAGE_FORMAT_COMPATIBILITY_TYPE" value="0x90C7" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST" value="0x82AC" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST" value="0x82AD" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE" value="0x82AE" />
+      <token name="SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE" value="0x82AF" />
+      <token name="TEXTURE_COMPRESSED" value="0x86A1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_WIDTH" value="0x82B1" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_HEIGHT" value="0x82B2" />
+      <token name="TEXTURE_COMPRESSED_BLOCK_SIZE" value="0x82B3" />
+      <token name="CLEAR_BUFFER" value="0x82B4" />
+      <token name="TEXTURE_VIEW" value="0x82B5" />
+      <token name="VIEW_COMPATIBILITY_CLASS" value="0x82B6" />
+      <token name="CLEAR_TEXTURE" value="0x9365" />
     </enum>
     <enum name="KHR_blend_equation_advanced">
       <token name="MULTIPLY_KHR" value="0x9294" />
     <enum name="KHR_no_error">
       <token name="CONTEXT_FLAG_NO_ERROR_BIT_KHR" value="0x00000008" />
     </enum>
+    <enum name="KHR_parallel_shader_compile">
+      <token name="MAX_SHADER_COMPILER_THREADS_KHR" value="0x91B0" />
+      <token name="COMPLETION_STATUS_KHR" value="0x91B1" />
+    </enum>
     <enum name="KHR_robust_buffer_access_behavior" />
     <enum name="KHR_robustness">
       <token name="NO_ERROR" value="0" />
     </enum>
     <enum name="MapBufferUsageMask">
       <token name="CLIENT_STORAGE_BIT" value="0x0200" />
+      <token name="CLIENT_STORAGE_BIT_EXT" value="0x0200" />
       <token name="DYNAMIC_STORAGE_BIT" value="0x0100" />
+      <token name="DYNAMIC_STORAGE_BIT_EXT" value="0x0100" />
       <token name="MAP_COHERENT_BIT" value="0x0080" />
+      <token name="MAP_COHERENT_BIT_EXT" value="0x0080" />
       <token name="MAP_FLUSH_EXPLICIT_BIT" value="0x0010" />
       <token name="MAP_FLUSH_EXPLICIT_BIT_EXT" value="0x0010" />
       <token name="MAP_INVALIDATE_BUFFER_BIT" value="0x0008" />
       <token name="MAP_INVALIDATE_RANGE_BIT" value="0x0004" />
       <token name="MAP_INVALIDATE_RANGE_BIT_EXT" value="0x0004" />
       <token name="MAP_PERSISTENT_BIT" value="0x0040" />
+      <token name="MAP_PERSISTENT_BIT_EXT" value="0x0040" />
       <token name="MAP_READ_BIT" value="0x0001" />
       <token name="MAP_READ_BIT_EXT" value="0x0001" />
       <token name="MAP_UNSYNCHRONIZED_BIT" value="0x0020" />
       <token name="MAP_UNSYNCHRONIZED_BIT_EXT" value="0x0020" />
       <token name="MAP_WRITE_BIT" value="0x0002" />
       <token name="MAP_WRITE_BIT_EXT" value="0x0002" />
+      <token name="SPARSE_STORAGE_BIT_ARB" value="0x0400" />
+      <token name="LGPU_SEPARATE_STORAGE_BIT_NVX" value="0x0800" />
+      <token name="PER_GPU_STORAGE_BIT_NV" value="0x0800" />
+    </enum>
+    <enum name="MapQuery">
+      <token name="COEFF" value="0x0A00" />
+      <token name="ORDER" value="0x0A01" />
+      <token name="DOMAIN" value="0x0A02" />
     </enum>
     <enum name="MapTarget">
       <token name="GEOMETRY_DEFORMATION_SGIX" value="0x8194" />
       <token name="BUFFER_UPDATE_BARRIER_BIT" value="0x00000200" />
       <token name="BUFFER_UPDATE_BARRIER_BIT_EXT" value="0x00000200" />
       <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT" value="0x00004000" />
+      <token name="CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT" value="0x00004000" />
       <token name="COMMAND_BARRIER_BIT" value="0x00000040" />
       <token name="COMMAND_BARRIER_BIT_EXT" value="0x00000040" />
       <token name="ELEMENT_ARRAY_BARRIER_BIT" value="0x00000002" />
       <token name="DEDICATED_MEMORY_OBJECT_EXT" value="0x9581" />
       <token name="PROTECTED_MEMORY_OBJECT_EXT" value="0x959B" />
     </enum>
+    <enum name="MESA_program_binary_formats">
+      <token name="PROGRAM_BINARY_FORMAT_MESA" value="0x875F" />
+    </enum>
     <enum name="MESA_shader_integer_functions" />
     <enum name="MeshMode1">
       <token name="LINE" value="0x1B01" />
       <token name="FACTOR_MIN_AMD" value="0x901C" />
       <token name="FACTOR_MAX_AMD" value="0x901D" />
     </enum>
+    <enum name="NV_clip_space_w_scaling">
+      <token name="VIEWPORT_POSITION_W_SCALE_NV" value="0x937C" />
+      <token name="VIEWPORT_POSITION_W_SCALE_X_COEFF_NV" value="0x937D" />
+      <token name="VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV" value="0x937E" />
+    </enum>
     <enum name="NV_conditional_render">
       <token name="QUERY_WAIT_NV" value="0x8E13" />
       <token name="QUERY_NO_WAIT_NV" value="0x8E14" />
       <token name="SUBPIXEL_PRECISION_BIAS_Y_BITS_NV" value="0x9348" />
       <token name="MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV" value="0x9349" />
     </enum>
+    <enum name="NV_conservative_raster_pre_snap">
+      <token name="CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV" value="0x9550" />
+    </enum>
     <enum name="NV_conservative_raster_pre_snap_triangles">
       <token name="CONSERVATIVE_RASTER_MODE_NV" value="0x954D" />
       <token name="CONSERVATIVE_RASTER_MODE_POST_SNAP_NV" value="0x954E" />
       <token name="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV" value="0x8C4F" />
       <token name="ETC1_SRGB8_NV" value="0x88EE" />
     </enum>
+    <enum name="NV_stereo_view_rendering" />
     <enum name="NV_texture_border_clamp">
       <token name="TEXTURE_BORDER_COLOR_NV" value="0x1004" />
       <token name="CLAMP_TO_BORDER_NV" value="0x812D" />
       <token name="VIEWPORT_SWIZZLE_W_NV" value="0x935B" />
     </enum>
     <enum name="NVX_blend_equation_advanced_multi_draw_buffers" />
+    <enum name="ObjectIdentifier">
+      <token name="BUFFER" value="0x82E0" />
+      <token name="SHADER" value="0x82E1" />
+      <token name="PROGRAM" value="0x82E2" />
+      <token name="VERTEX_ARRAY" value="0x8074" />
+      <token name="QUERY" value="0x82E3" />
+      <token name="PROGRAM_PIPELINE" value="0x82E4" />
+      <token name="TRANSFORM_FEEDBACK" value="0x8E22" />
+      <token name="SAMPLER" value="0x82E6" />
+      <token name="TEXTURE" value="0x1702" />
+      <token name="RENDERBUFFER" value="0x8D41" />
+      <token name="FRAMEBUFFER" value="0x8D40" />
+    </enum>
     <enum name="OcclusionQueryEventMaskAMD">
       <token name="QUERY_DEPTH_PASS_EVENT_BIT_AMD" value="0x00000001" />
       <token name="QUERY_DEPTH_FAIL_EVENT_BIT_AMD" value="0x00000002" />
     </enum>
     <enum name="OVR_multiview_multisampled_render_to_texture" />
     <enum name="OVR_multiview2" />
+    <enum name="PatchParameterName">
+      <token name="PATCH_VERTICES" value="0x8E72" />
+      <token name="PATCH_DEFAULT_OUTER_LEVEL" value="0x8E74" />
+      <token name="PATCH_DEFAULT_INNER_LEVEL" value="0x8E73" />
+    </enum>
+    <enum name="PathColor">
+      <token name="PRIMARY_COLOR" value="0x8577" />
+      <token name="PRIMARY_COLOR_NV" value="0x852C" />
+      <token name="SECONDARY_COLOR_NV" value="0x852D" />
+    </enum>
+    <enum name="PathCoverMode">
+      <token name="CONVEX_HULL_NV" value="0x908B" />
+      <token name="BOUNDING_BOX_NV" value="0x908D" />
+      <token name="BOUNDING_BOX_OF_BOUNDING_BOXES_NV" value="0x909C" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+    </enum>
+    <enum name="PathElementType">
+      <token name="UTF8_NV" value="0x909A" />
+      <token name="UTF16_NV" value="0x909B" />
+    </enum>
+    <enum name="PathFillMode">
+      <token name="INVERT" value="0x150A" />
+      <token name="COUNT_UP_NV" value="0x9088" />
+      <token name="COUNT_DOWN_NV" value="0x9089" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+    </enum>
+    <enum name="PathFontStyle">
+      <token name="NONE" value="0" />
+      <token name="BOLD_BIT_NV" value="0x01" />
+      <token name="ITALIC_BIT_NV" value="0x02" />
+    </enum>
+    <enum name="PathFontTarget">
+      <token name="STANDARD_FONT_NAME_NV" value="0x9072" />
+      <token name="SYSTEM_FONT_NAME_NV" value="0x9073" />
+      <token name="FILE_NAME_NV" value="0x9074" />
+    </enum>
+    <enum name="PathGenMode">
+      <token name="NONE" value="0" />
+      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="CONSTANT" value="0x8576" deprecated="3.2" />
+    </enum>
+    <enum name="PathHandleMissingGlyphs">
+      <token name="SKIP_MISSING_GLYPH_NV" value="0x90A9" />
+      <token name="USE_MISSING_GLYPH_NV" value="0x90AA" />
+    </enum>
+    <enum name="PathListMode">
+      <token name="ACCUM_ADJACENT_PAIRS_NV" value="0x90AD" />
+      <token name="ADJACENT_PAIRS_NV" value="0x90AE" />
+      <token name="FIRST_TO_REST_NV" value="0x90AF" />
+    </enum>
+    <enum name="PathMetricMask">
+      <token name="GLYPH_WIDTH_BIT_NV" value="0x01" />
+      <token name="GLYPH_HEIGHT_BIT_NV" value="0x02" />
+      <token name="GLYPH_HORIZONTAL_BEARING_X_BIT_NV" value="0x04" />
+      <token name="GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" value="0x08" />
+      <token name="GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" value="0x10" />
+      <token name="GLYPH_VERTICAL_BEARING_X_BIT_NV" value="0x20" />
+      <token name="GLYPH_VERTICAL_BEARING_Y_BIT_NV" value="0x40" />
+      <token name="GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" value="0x80" />
+      <token name="GLYPH_HAS_KERNING_BIT_NV" value="0x100" />
+      <token name="FONT_X_MIN_BOUNDS_BIT_NV" value="0x00010000" />
+      <token name="FONT_Y_MIN_BOUNDS_BIT_NV" value="0x00020000" />
+      <token name="FONT_X_MAX_BOUNDS_BIT_NV" value="0x00040000" />
+      <token name="FONT_Y_MAX_BOUNDS_BIT_NV" value="0x00080000" />
+      <token name="FONT_UNITS_PER_EM_BIT_NV" value="0x00100000" />
+      <token name="FONT_ASCENDER_BIT_NV" value="0x00200000" />
+      <token name="FONT_DESCENDER_BIT_NV" value="0x00400000" />
+      <token name="FONT_HEIGHT_BIT_NV" value="0x00800000" />
+      <token name="FONT_MAX_ADVANCE_WIDTH_BIT_NV" value="0x01000000" />
+      <token name="FONT_MAX_ADVANCE_HEIGHT_BIT_NV" value="0x02000000" />
+      <token name="FONT_UNDERLINE_POSITION_BIT_NV" value="0x04000000" />
+      <token name="FONT_UNDERLINE_THICKNESS_BIT_NV" value="0x08000000" />
+      <token name="FONT_HAS_KERNING_BIT_NV" value="0x10000000" />
+      <token name="FONT_NUM_GLYPH_INDICES_BIT_NV" value="0x20000000" />
+    </enum>
+    <enum name="PathParameter">
+      <token name="PATH_STROKE_WIDTH_NV" value="0x9075" />
+      <token name="PATH_INITIAL_END_CAP_NV" value="0x9077" />
+      <token name="PATH_TERMINAL_END_CAP_NV" value="0x9078" />
+      <token name="PATH_JOIN_STYLE_NV" value="0x9079" />
+      <token name="PATH_MITER_LIMIT_NV" value="0x907A" />
+      <token name="PATH_INITIAL_DASH_CAP_NV" value="0x907C" />
+      <token name="PATH_TERMINAL_DASH_CAP_NV" value="0x907D" />
+      <token name="PATH_DASH_OFFSET_NV" value="0x907E" />
+      <token name="PATH_CLIENT_LENGTH_NV" value="0x907F" />
+      <token name="PATH_DASH_OFFSET_RESET_NV" value="0x90B4" />
+      <token name="PATH_FILL_MODE_NV" value="0x9080" />
+      <token name="PATH_FILL_MASK_NV" value="0x9081" />
+      <token name="PATH_FILL_COVER_MODE_NV" value="0x9082" />
+      <token name="PATH_STROKE_COVER_MODE_NV" value="0x9083" />
+      <token name="PATH_STROKE_MASK_NV" value="0x9084" />
+      <token name="PATH_END_CAPS_NV" value="0x9076" />
+      <token name="PATH_DASH_CAPS_NV" value="0x907B" />
+      <token name="PATH_COMMAND_COUNT_NV" value="0x909D" />
+      <token name="PATH_COORD_COUNT_NV" value="0x909E" />
+      <token name="PATH_DASH_ARRAY_COUNT_NV" value="0x909F" />
+      <token name="PATH_COMPUTED_LENGTH_NV" value="0x90A0" />
+      <token name="PATH_OBJECT_BOUNDING_BOX_NV" value="0x908A" />
+      <token name="PATH_FILL_BOUNDING_BOX_NV" value="0x90A1" />
+      <token name="PATH_STROKE_BOUNDING_BOX_NV" value="0x90A2" />
+    </enum>
+    <enum name="PathStringFormat">
+      <token name="PATH_FORMAT_SVG_NV" value="0x9070" />
+      <token name="PATH_FORMAT_PS_NV" value="0x9071" />
+    </enum>
+    <enum name="PathTransformType">
+      <token name="NONE" value="0" />
+      <token name="TRANSLATE_X_NV" value="0x908E" />
+      <token name="TRANSLATE_Y_NV" value="0x908F" />
+      <token name="TRANSLATE_2D_NV" value="0x9090" />
+      <token name="TRANSLATE_3D_NV" value="0x9091" />
+      <token name="AFFINE_2D_NV" value="0x9092" />
+      <token name="AFFINE_3D_NV" value="0x9094" />
+      <token name="TRANSPOSE_AFFINE_2D_NV" value="0x9096" />
+      <token name="TRANSPOSE_AFFINE_3D_NV" value="0x9098" />
+    </enum>
+    <enum name="PipelineParameterName">
+      <token name="ACTIVE_PROGRAM" value="0x8259" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+    </enum>
     <enum name="PixelCopyType">
       <token name="COLOR" value="0x1800" />
       <token name="COLOR_EXT" value="0x1800" />
       <token name="LINE" value="0x1B01" />
       <token name="POINT" value="0x1B00" />
     </enum>
+    <enum name="PrecisionType">
+      <token name="LOW_FLOAT" value="0x8DF0" />
+      <token name="MEDIUM_FLOAT" value="0x8DF1" />
+      <token name="HIGH_FLOAT" value="0x8DF2" />
+      <token name="LOW_INT" value="0x8DF3" />
+      <token name="MEDIUM_INT" value="0x8DF4" />
+      <token name="HIGH_INT" value="0x8DF5" />
+    </enum>
     <enum name="PrimitiveType">
       <token name="LINES" value="0x0001" />
       <token name="LINES_ADJACENCY" value="0x000A" />
       <token name="TRIANGLE_STRIP_ADJACENCY_ARB" value="0x000D" />
       <token name="TRIANGLE_STRIP_ADJACENCY_EXT" value="0x000D" />
     </enum>
+    <enum name="ProgramInterface">
+      <token name="UNIFORM" value="0x92E1" />
+      <token name="UNIFORM_BLOCK" value="0x92E2" />
+      <token name="PROGRAM_INPUT" value="0x92E3" />
+      <token name="PROGRAM_OUTPUT" value="0x92E4" />
+      <token name="VERTEX_SUBROUTINE" value="0x92E8" />
+      <token name="TESS_CONTROL_SUBROUTINE" value="0x92E9" />
+      <token name="TESS_EVALUATION_SUBROUTINE" value="0x92EA" />
+      <token name="GEOMETRY_SUBROUTINE" value="0x92EB" />
+      <token name="FRAGMENT_SUBROUTINE" value="0x92EC" />
+      <token name="COMPUTE_SUBROUTINE" value="0x92ED" />
+      <token name="VERTEX_SUBROUTINE_UNIFORM" value="0x92EE" />
+      <token name="TESS_CONTROL_SUBROUTINE_UNIFORM" value="0x92EF" />
+      <token name="TESS_EVALUATION_SUBROUTINE_UNIFORM" value="0x92F0" />
+      <token name="GEOMETRY_SUBROUTINE_UNIFORM" value="0x92F1" />
+      <token name="FRAGMENT_SUBROUTINE_UNIFORM" value="0x92F2" />
+      <token name="COMPUTE_SUBROUTINE_UNIFORM" value="0x92F3" />
+      <token name="TRANSFORM_FEEDBACK_VARYING" value="0x92F4" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER" value="0x8C8E" />
+      <token name="BUFFER_VARIABLE" value="0x92E5" />
+      <token name="SHADER_STORAGE_BLOCK" value="0x92E6" />
+    </enum>
+    <enum name="ProgramInterfacePName">
+      <token name="ACTIVE_RESOURCES" value="0x92F5" />
+      <token name="MAX_NAME_LENGTH" value="0x92F6" />
+      <token name="MAX_NUM_ACTIVE_VARIABLES" value="0x92F7" />
+      <token name="MAX_NUM_COMPATIBLE_SUBROUTINES" value="0x92F8" />
+    </enum>
+    <enum name="ProgramParameterPName">
+      <token name="PROGRAM_BINARY_RETRIEVABLE_HINT" value="0x8257" />
+      <token name="PROGRAM_SEPARABLE" value="0x8258" />
+    </enum>
+    <enum name="ProgramPropertyARB">
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="LINK_STATUS" value="0x8B82" />
+      <token name="VALIDATE_STATUS" value="0x8B83" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="ATTACHED_SHADERS" value="0x8B85" />
+      <token name="ACTIVE_ATOMIC_COUNTER_BUFFERS" value="0x92D9" />
+      <token name="ACTIVE_ATTRIBUTES" value="0x8B89" />
+      <token name="ACTIVE_ATTRIBUTE_MAX_LENGTH" value="0x8B8A" />
+      <token name="ACTIVE_UNIFORMS" value="0x8B86" />
+      <token name="ACTIVE_UNIFORM_BLOCKS" value="0x8A36" />
+      <token name="ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" value="0x8A35" />
+      <token name="ACTIVE_UNIFORM_MAX_LENGTH" value="0x8B87" />
+      <token name="COMPUTE_WORK_GROUP_SIZE" value="0x8267" />
+      <token name="PROGRAM_BINARY_LENGTH" value="0x8741" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_MODE" value="0x8C7F" />
+      <token name="TRANSFORM_FEEDBACK_VARYINGS" value="0x8C83" />
+      <token name="TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" value="0x8C76" />
+      <token name="GEOMETRY_VERTICES_OUT" value="0x8916" />
+      <token name="GEOMETRY_INPUT_TYPE" value="0x8917" />
+      <token name="GEOMETRY_OUTPUT_TYPE" value="0x8918" />
+    </enum>
+    <enum name="ProgramStagePName">
+      <token name="ACTIVE_SUBROUTINE_UNIFORMS" value="0x8DE6" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" value="0x8E47" />
+      <token name="ACTIVE_SUBROUTINES" value="0x8DE5" />
+      <token name="ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" value="0x8E49" />
+      <token name="ACTIVE_SUBROUTINE_MAX_LENGTH" value="0x8E48" />
+    </enum>
     <enum name="QCOM_alpha_test">
       <token name="ALPHA_TEST_QCOM" value="0x0BC0" />
       <token name="ALPHA_TEST_FUNC_QCOM" value="0x0BC1" />
     <enum name="QCOM_shader_framebuffer_fetch_noncoherent">
       <token name="FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" value="0x96A2" />
     </enum>
+    <enum name="QCOM_texture_foveated">
+      <token name="FOVEATION_ENABLE_BIT_QCOM" value="0x00000001" />
+      <token name="FOVEATION_SCALED_BIN_METHOD_BIT_QCOM" value="0x00000002" />
+      <token name="TEXTURE_FOVEATED_FEATURE_BITS_QCOM" value="0x8BFB" />
+      <token name="TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM" value="0x8BFC" />
+      <token name="TEXTURE_FOVEATED_FEATURE_QUERY_QCOM" value="0x8BFD" />
+      <token name="TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM" value="0x8BFE" />
+      <token name="FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM" value="0x8BFF" />
+    </enum>
     <enum name="QCOM_tiled_rendering">
       <token name="COLOR_BUFFER_BIT0_QCOM" value="0x00000001" />
       <token name="COLOR_BUFFER_BIT1_QCOM" value="0x00000002" />
     <enum name="QCOM_writeonly_rendering">
       <token name="WRITEONLY_RENDERING_QCOM" value="0x8823" />
     </enum>
+    <enum name="QueryObjectParameterName">
+      <token name="QUERY_RESULT_AVAILABLE" value="0x8867" />
+      <token name="QUERY_RESULT" value="0x8866" />
+      <token name="QUERY_RESULT_NO_WAIT" value="0x9194" />
+      <token name="QUERY_TARGET" value="0x82EA" />
+    </enum>
+    <enum name="QueryParameterName">
+      <token name="CURRENT_QUERY" value="0x8865" />
+      <token name="QUERY_COUNTER_BITS" value="0x8864" />
+    </enum>
+    <enum name="QueryTarget">
+      <token name="SAMPLES_PASSED" value="0x8914" />
+      <token name="ANY_SAMPLES_PASSED" value="0x8C2F" />
+      <token name="ANY_SAMPLES_PASSED_CONSERVATIVE" value="0x8D6A" />
+      <token name="PRIMITIVES_GENERATED" value="0x8C87" />
+      <token name="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" value="0x8C88" />
+      <token name="TIME_ELAPSED" value="0x88BF" />
+    </enum>
     <enum name="ReadBufferMode">
       <token name="AUX0" value="0x0409" />
       <token name="AUX1" value="0x040A" />
       <token name="LEFT" value="0x0406" />
       <token name="RIGHT" value="0x0407" />
     </enum>
+    <enum name="RenderbufferParameterName">
+      <token name="RENDERBUFFER_WIDTH" value="0x8D42" />
+      <token name="RENDERBUFFER_HEIGHT" value="0x8D43" />
+      <token name="RENDERBUFFER_INTERNAL_FORMAT" value="0x8D44" />
+      <token name="RENDERBUFFER_SAMPLES" value="0x8CAB" />
+      <token name="RENDERBUFFER_RED_SIZE" value="0x8D50" />
+      <token name="RENDERBUFFER_GREEN_SIZE" value="0x8D51" />
+      <token name="RENDERBUFFER_BLUE_SIZE" value="0x8D52" />
+      <token name="RENDERBUFFER_ALPHA_SIZE" value="0x8D53" />
+      <token name="RENDERBUFFER_DEPTH_SIZE" value="0x8D54" />
+      <token name="RENDERBUFFER_STENCIL_SIZE" value="0x8D55" />
+    </enum>
+    <enum name="RenderbufferTarget">
+      <token name="RENDERBUFFER" value="0x8D41" />
+    </enum>
     <enum name="RenderingMode">
       <token name="FEEDBACK" value="0x1C01" deprecated="3.2" />
       <token name="RENDER" value="0x1C00" deprecated="3.2" />
       <token name="4PASS_3_EXT" value="0x80A7" />
       <token name="4PASS_3_SGIS" value="0x80A7" />
     </enum>
+    <enum name="SamplerParameterName">
+      <token name="TEXTURE_WRAP_S" value="0x2802" />
+      <token name="TEXTURE_WRAP_T" value="0x2803" />
+      <token name="TEXTURE_WRAP_R" value="0x8072" />
+      <token name="TEXTURE_MIN_FILTER" value="0x2801" />
+      <token name="TEXTURE_MAG_FILTER" value="0x2800" />
+      <token name="TEXTURE_BORDER_COLOR" value="0x1004" />
+      <token name="TEXTURE_MIN_LOD" value="0x813A" />
+      <token name="TEXTURE_MAX_LOD" value="0x813B" />
+      <token name="TEXTURE_COMPARE_MODE" value="0x884C" />
+      <token name="TEXTURE_COMPARE_FUNC" value="0x884D" />
+    </enum>
     <enum name="SemaphoreParameterName">
       <token name="D3D12_FENCE_VALUE_EXT" value="0x9595" />
     </enum>
       <token name="SEPARABLE_2D" value="0x8012" />
       <token name="SEPARABLE_2D_EXT" value="0x8012" />
     </enum>
+    <enum name="ShaderParameterName">
+      <token name="SHADER_TYPE" value="0x8B4F" />
+      <token name="DELETE_STATUS" value="0x8B80" />
+      <token name="COMPILE_STATUS" value="0x8B81" />
+      <token name="INFO_LOG_LENGTH" value="0x8B84" />
+      <token name="SHADER_SOURCE_LENGTH" value="0x8B88" />
+    </enum>
+    <enum name="ShaderType">
+      <token name="COMPUTE_SHADER" value="0x91B9" />
+      <token name="VERTEX_SHADER" value="0x8B31" />
+      <token name="TESS_CONTROL_SHADER" value="0x8E88" />
+      <token name="TESS_EVALUATION_SHADER" value="0x8E87" />
+      <token name="GEOMETRY_SHADER" value="0x8DD9" />
+      <token name="FRAGMENT_SHADER" value="0x8B30" />
+      <token name="FRAGMENT_SHADER_ARB" value="0x8B30" />
+      <token name="VERTEX_SHADER_ARB" value="0x8B31" />
+    </enum>
     <enum name="ShadingModel">
       <token name="FLAT" value="0x1D00" deprecated="3.2" />
       <token name="SMOOTH" value="0x1D01" deprecated="3.2" />
       <token name="VERSION" value="0x1F02" />
       <token name="SHADING_LANGUAGE_VERSION" value="0x8B8C" />
     </enum>
+    <enum name="SubroutineParameterName">
+      <token name="NUM_COMPATIBLE_SUBROUTINES" value="0x8E4A" />
+      <token name="COMPATIBLE_SUBROUTINES" value="0x8E4B" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+    </enum>
+    <enum name="SyncCondition">
+      <token name="SYNC_GPU_COMMANDS_COMPLETE" value="0x9117" />
+    </enum>
+    <enum name="SyncObjectMask">
+      <token name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001" />
+      <token name="SYNC_FLUSH_COMMANDS_BIT_APPLE" value="0x00000001" />
+    </enum>
+    <enum name="SyncParameterName">
+      <token name="OBJECT_TYPE" value="0x9112" />
+      <token name="SYNC_STATUS" value="0x9114" />
+      <token name="SYNC_CONDITION" value="0x9113" />
+      <token name="SYNC_FLAGS" value="0x9115" />
+    </enum>
+    <enum name="SyncStatus">
+      <token name="ALREADY_SIGNALED" value="0x911A" />
+      <token name="TIMEOUT_EXPIRED" value="0x911B" />
+      <token name="CONDITION_SATISFIED" value="0x911C" />
+      <token name="WAIT_FAILED" value="0x911D" />
+    </enum>
     <enum name="TexCoordPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
     <enum name="TextureGenMode">
       <token name="EYE_DISTANCE_TO_LINE_SGIS" value="0x81F2" />
       <token name="EYE_DISTANCE_TO_POINT_SGIS" value="0x81F0" />
-      <token name="EYE_LINEAR" value="0x2400" deprecated="3.2" />
+      <token name="EYE_LINEAR" value="0x2400" />
       <token name="OBJECT_DISTANCE_TO_LINE_SGIS" value="0x81F3" />
       <token name="OBJECT_DISTANCE_TO_POINT_SGIS" value="0x81F1" />
-      <token name="OBJECT_LINEAR" value="0x2401" deprecated="3.2" />
+      <token name="OBJECT_LINEAR" value="0x2401" />
       <token name="SPHERE_MAP" value="0x2402" deprecated="3.2" />
     </enum>
     <enum name="TextureGenParameter">
       <token name="LAYOUT_SHADER_READ_ONLY_EXT" value="0x9591" />
       <token name="LAYOUT_TRANSFER_SRC_EXT" value="0x9592" />
       <token name="LAYOUT_TRANSFER_DST_EXT" value="0x9593" />
+      <token name="LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" value="0x9530" />
+      <token name="LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" value="0x9531" />
     </enum>
     <enum name="TextureMagFilter">
       <token name="FILTER4_SGIS" value="0x8146" />
       <token name="DETAIL_TEXTURE_LEVEL_SGIS" value="0x809A" />
       <token name="DETAIL_TEXTURE_MODE_SGIS" value="0x809B" />
       <token name="DUAL_TEXTURE_SELECT_SGIS" value="0x8124" />
-      <token name="GENERATE_MIPMAP" value="0x8191" deprecated="3.2" />
+      <token name="GENERATE_MIPMAP" value="0x8191" />
       <token name="GENERATE_MIPMAP_SGIS" value="0x8191" />
       <token name="POST_TEXTURE_FILTER_BIAS_SGIX" value="0x8179" />
       <token name="POST_TEXTURE_FILTER_SCALE_SGIX" value="0x817A" />
       <token name="TEXTURE_SWIZZLE_RGBA" value="0x8E46" />
       <token name="TEXTURE_TILING_EXT" value="0x9580" />
       <token name="DEPTH_STENCIL_TEXTURE_MODE" value="0x90EA" />
+      <token name="DETAIL_TEXTURE_FUNC_POINTS_SGIS" value="0x809C" />
+      <token name="SHARPEN_TEXTURE_FUNC_POINTS_SGIS" value="0x80B0" />
+      <token name="TEXTURE_4DSIZE_SGIS" value="0x8136" />
+      <token name="TEXTURE_ALPHA_SIZE" value="0x805F" />
+      <token name="TEXTURE_BASE_LEVEL_SGIS" value="0x813C" />
+      <token name="TEXTURE_BLUE_SIZE" value="0x805E" />
+      <token name="TEXTURE_BORDER" value="0x1005" />
+      <token name="TEXTURE_BORDER_COLOR_NV" value="0x1004" />
+      <token name="TEXTURE_COMPARE_OPERATOR_SGIX" value="0x819B" />
+      <token name="TEXTURE_COMPONENTS" value="0x1003" />
+      <token name="TEXTURE_DEPTH_EXT" value="0x8071" />
+      <token name="TEXTURE_FILTER4_SIZE_SGIS" value="0x8147" />
+      <token name="TEXTURE_GEQUAL_R_SGIX" value="0x819D" />
+      <token name="TEXTURE_GREEN_SIZE" value="0x805D" />
+      <token name="TEXTURE_HEIGHT" value="0x1001" />
+      <token name="TEXTURE_INTENSITY_SIZE" value="0x8061" />
+      <token name="TEXTURE_INTERNAL_FORMAT" value="0x1003" />
+      <token name="TEXTURE_LEQUAL_R_SGIX" value="0x819C" />
+      <token name="TEXTURE_LUMINANCE_SIZE" value="0x8060" />
+      <token name="TEXTURE_MAX_LEVEL_SGIS" value="0x813D" />
+      <token name="TEXTURE_MAX_LOD_SGIS" value="0x813B" />
+      <token name="TEXTURE_MIN_LOD_SGIS" value="0x813A" />
+      <token name="TEXTURE_RED_SIZE" value="0x805C" />
+      <token name="TEXTURE_RESIDENT" value="0x8067" />
+      <token name="TEXTURE_WIDTH" value="0x1000" />
+    </enum>
+    <enum name="TextureStorageMaskAMD">
+      <token name="TEXTURE_STORAGE_SPARSE_BIT_AMD" value="0x00000001" />
     </enum>
     <enum name="TextureTarget">
       <token name="DETAIL_TEXTURE_2D_SGIS" value="0x8095" />
       <token name="TEXTURE_2D_MULTISAMPLE" value="0x9100" />
       <token name="TEXTURE_2D_MULTISAMPLE_ARRAY" value="0x9102" />
     </enum>
+    <enum name="TextureUnit">
+      <token name="TEXTURE0" value="0x84C0" />
+      <token name="TEXTURE1" value="0x84C1" />
+      <token name="TEXTURE2" value="0x84C2" />
+      <token name="TEXTURE3" value="0x84C3" />
+      <token name="TEXTURE4" value="0x84C4" />
+      <token name="TEXTURE5" value="0x84C5" />
+      <token name="TEXTURE6" value="0x84C6" />
+      <token name="TEXTURE7" value="0x84C7" />
+      <token name="TEXTURE8" value="0x84C8" />
+      <token name="TEXTURE9" value="0x84C9" />
+      <token name="TEXTURE10" value="0x84CA" />
+      <token name="TEXTURE11" value="0x84CB" />
+      <token name="TEXTURE12" value="0x84CC" />
+      <token name="TEXTURE13" value="0x84CD" />
+      <token name="TEXTURE14" value="0x84CE" />
+      <token name="TEXTURE15" value="0x84CF" />
+      <token name="TEXTURE16" value="0x84D0" />
+      <token name="TEXTURE17" value="0x84D1" />
+      <token name="TEXTURE18" value="0x84D2" />
+      <token name="TEXTURE19" value="0x84D3" />
+      <token name="TEXTURE20" value="0x84D4" />
+      <token name="TEXTURE21" value="0x84D5" />
+      <token name="TEXTURE22" value="0x84D6" />
+      <token name="TEXTURE23" value="0x84D7" />
+      <token name="TEXTURE24" value="0x84D8" />
+      <token name="TEXTURE25" value="0x84D9" />
+      <token name="TEXTURE26" value="0x84DA" />
+      <token name="TEXTURE27" value="0x84DB" />
+      <token name="TEXTURE28" value="0x84DC" />
+      <token name="TEXTURE29" value="0x84DD" />
+      <token name="TEXTURE30" value="0x84DE" />
+      <token name="TEXTURE31" value="0x84DF" />
+    </enum>
     <enum name="TextureWrapMode">
       <token name="CLAMP" value="0x2900" deprecated="3.2" />
       <token name="CLAMP_TO_BORDER" value="0x812D" />
       <token name="CLAMP_TO_EDGE_SGIS" value="0x812F" />
       <token name="REPEAT" value="0x2901" />
     </enum>
+    <enum name="TransformFeedbackPName">
+      <token name="TRANSFORM_FEEDBACK_BUFFER_BINDING" value="0x8C8F" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_START" value="0x8C84" />
+      <token name="TRANSFORM_FEEDBACK_BUFFER_SIZE" value="0x8C85" />
+      <token name="TRANSFORM_FEEDBACK_PAUSED" value="0x8E23" />
+      <token name="TRANSFORM_FEEDBACK_ACTIVE" value="0x8E24" />
+    </enum>
+    <enum name="TypeEnum">
+      <token name="QUERY_WAIT" value="0x8E13" />
+      <token name="QUERY_NO_WAIT" value="0x8E14" />
+      <token name="QUERY_BY_REGION_WAIT" value="0x8E15" />
+      <token name="QUERY_BY_REGION_NO_WAIT" value="0x8E16" />
+    </enum>
+    <enum name="UniformBlockPName">
+      <token name="UNIFORM_BLOCK_BINDING" value="0x8A3F" />
+      <token name="UNIFORM_BLOCK_DATA_SIZE" value="0x8A40" />
+      <token name="UNIFORM_BLOCK_NAME_LENGTH" value="0x8A41" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORMS" value="0x8A42" />
+      <token name="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" value="0x8A43" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" value="0x8A44" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER" value="0x84F0" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER" value="0x84F1" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" value="0x8A45" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" value="0x8A46" />
+      <token name="UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER" value="0x90EC" />
+    </enum>
+    <enum name="UniformPName">
+      <token name="UNIFORM_TYPE" value="0x8A37" />
+      <token name="UNIFORM_SIZE" value="0x8A38" />
+      <token name="UNIFORM_NAME_LENGTH" value="0x8A39" />
+      <token name="UNIFORM_BLOCK_INDEX" value="0x8A3A" />
+      <token name="UNIFORM_OFFSET" value="0x8A3B" />
+      <token name="UNIFORM_ARRAY_STRIDE" value="0x8A3C" />
+      <token name="UNIFORM_MATRIX_STRIDE" value="0x8A3D" />
+      <token name="UNIFORM_IS_ROW_MAJOR" value="0x8A3E" />
+      <token name="UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX" value="0x92DA" />
+    </enum>
     <enum name="UseProgramStageMask">
       <token name="VERTEX_SHADER_BIT" value="0x00000001" />
       <token name="VERTEX_SHADER_BIT_EXT" value="0x00000001" />
       <token name="FRAGMENT_SHADER_BIT_EXT" value="0x00000002" />
       <token name="GEOMETRY_SHADER_BIT" value="0x00000004" />
       <token name="GEOMETRY_SHADER_BIT_EXT" value="0x00000004" />
+      <token name="GEOMETRY_SHADER_BIT_OES" value="0x00000004" />
       <token name="TESS_CONTROL_SHADER_BIT" value="0x00000008" />
       <token name="TESS_CONTROL_SHADER_BIT_EXT" value="0x00000008" />
+      <token name="TESS_CONTROL_SHADER_BIT_OES" value="0x00000008" />
       <token name="TESS_EVALUATION_SHADER_BIT" value="0x00000010" />
       <token name="TESS_EVALUATION_SHADER_BIT_EXT" value="0x00000010" />
+      <token name="TESS_EVALUATION_SHADER_BIT_OES" value="0x00000010" />
       <token name="COMPUTE_SHADER_BIT" value="0x00000020" />
       <token name="ALL_SHADER_BITS" value="0xFFFFFFFF" />
       <token name="ALL_SHADER_BITS_EXT" value="0xFFFFFFFF" />
     </enum>
+    <enum name="VertexArrayPName">
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_LONG" value="0x874E" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="VERTEX_ATTRIB_RELATIVE_OFFSET" value="0x82D5" />
+    </enum>
+    <enum name="VertexAttribEnum">
+      <token name="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" value="0x889F" />
+      <token name="VERTEX_ATTRIB_ARRAY_ENABLED" value="0x8622" />
+      <token name="VERTEX_ATTRIB_ARRAY_SIZE" value="0x8623" />
+      <token name="VERTEX_ATTRIB_ARRAY_STRIDE" value="0x8624" />
+      <token name="VERTEX_ATTRIB_ARRAY_TYPE" value="0x8625" />
+      <token name="VERTEX_ATTRIB_ARRAY_NORMALIZED" value="0x886A" />
+      <token name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD" />
+      <token name="VERTEX_ATTRIB_ARRAY_DIVISOR" value="0x88FE" />
+      <token name="CURRENT_VERTEX_ATTRIB" value="0x8626" />
+    </enum>
+    <enum name="VertexAttribPointerType">
+      <token name="BYTE" value="0x1400" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="SHORT" value="0x1402" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="INT" value="0x1404" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="FIXED" value="0x140C" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexAttribType">
+      <token name="BYTE" value="0x1400" />
+      <token name="SHORT" value="0x1402" />
+      <token name="INT" value="0x1404" />
+      <token name="FIXED" value="0x140C" />
+      <token name="FLOAT" value="0x1406" />
+      <token name="HALF_FLOAT" value="0x140B" />
+      <token name="DOUBLE" value="0x140A" />
+      <token name="UNSIGNED_BYTE" value="0x1401" />
+      <token name="UNSIGNED_SHORT" value="0x1403" />
+      <token name="UNSIGNED_INT" value="0x1405" />
+      <token name="INT_2_10_10_10_REV" value="0x8D9F" />
+      <token name="UNSIGNED_INT_2_10_10_10_REV" value="0x8368" />
+      <token name="UNSIGNED_INT_10F_11F_11F_REV" value="0x8C3B" />
+    </enum>
+    <enum name="VertexBufferObjectParameter">
+      <token name="BUFFER_ACCESS" value="0x88BB" />
+      <token name="BUFFER_ACCESS_FLAGS" value="0x911F" />
+      <token name="BUFFER_IMMUTABLE_STORAGE" value="0x821F" />
+      <token name="BUFFER_MAPPED" value="0x88BC" />
+      <token name="BUFFER_MAP_LENGTH" value="0x9120" />
+      <token name="BUFFER_MAP_OFFSET" value="0x9121" />
+      <token name="BUFFER_SIZE" value="0x8764" />
+      <token name="BUFFER_STORAGE_FLAGS" value="0x8220" />
+      <token name="BUFFER_USAGE" value="0x8765" />
+    </enum>
+    <enum name="VertexBufferObjectUsage">
+      <token name="STREAM_DRAW" value="0x88E0" />
+      <token name="STREAM_READ" value="0x88E1" />
+      <token name="STREAM_COPY" value="0x88E2" />
+      <token name="STATIC_DRAW" value="0x88E4" />
+      <token name="STATIC_READ" value="0x88E5" />
+      <token name="STATIC_COPY" value="0x88E6" />
+      <token name="DYNAMIC_DRAW" value="0x88E8" />
+      <token name="DYNAMIC_READ" value="0x88E9" />
+      <token name="DYNAMIC_COPY" value="0x88EA" />
+    </enum>
     <enum name="VertexPointerType">
       <token name="DOUBLE" value="0x140A" />
       <token name="FLOAT" value="0x1406" />
       <token name="INT" value="0x1404" />
       <token name="SHORT" value="0x1402" />
     </enum>
+    <enum name="VertexProvokingMode">
+      <token name="FIRST_VERTEX_CONVENTION" value="0x8E4D" />
+      <token name="LAST_VERTEX_CONVENTION" value="0x8E4E" />
+    </enum>
     <enum name="VIV_shader_binary">
       <token name="SHADER_BINARY_VIV" value="0x8FC4" />
     </enum>
       <returns type="void" />
     </function>
     <function name="BeginQueryEXT" category="EXT_disjoint_timer_query|EXT_occlusion_query_boolean" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="BlendEquationiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationiOES" category="OES_draw_buffers_indexed" extension="OES">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparateiOES" category="OES_draw_buffers_indexed" extension="OES">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunciEXT" category="EXT_draw_buffers_indexed" extension="EXT">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunciOES" category="OES_draw_buffers_indexed" extension="OES">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparateiOES" category="OES_draw_buffers_indexed" extension="OES">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendParameteriNV" category="NV_blend_equation_advanced" extension="NV">
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlitFramebufferNV" category="NV_framebuffer_blit" extension="NV">
       <param name="dstY0" type="GLint" flow="in" />
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
-      <param name="mask" type="GLbitfield" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="mask" type="ClearBufferMask" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferStorageEXT" category="EXT_buffer_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferStorageTarget" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="data" type="void *" flow="in" count="size" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferStorageExternalEXT" category="EXT_external_buffer" extension="EXT">
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="clientBuffer" type="GLeglClientBufferEXT" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferStorageMemEXT" category="EXT_memory_object" extension="EXT">
     <function name="ClearPixelLocalStorageuiEXT" category="EXT_shader_pixel_local_storage2" extension="EXT">
       <param name="offset" type="GLsizei" flow="in" />
       <param name="n" type="GLsizei" flow="in" />
-      <param name="values" type="GLuint *" flow="in" />
+      <param name="values" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="ClearTexImageEXT" category="EXT_clear_texture" extension="EXT">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="data" type="void *" flow="in" count="COMPSIZE(format,type)" />
       <returns type="void" />
     </function>
     <function name="ClientWaitSyncAPPLE" category="APPLE_sync" extension="APPLE">
       <param name="sync" type="GLsync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
+    </function>
+    <function name="ClipControlEXT" category="EXT_clip_control" extension="EXT">
+      <param name="origin" type="GLenum" flow="in" />
+      <param name="depth" type="GLenum" flow="in" />
+      <returns type="void" />
     </function>
     <function name="ColorMaskiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="CompressedTexImage3DOES" category="OES_texture_3D" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="CompressedTexSubImage3DOES" category="OES_texture_3D" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <param name="imageSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="in" count="imageSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubDataNV" category="NV_copy_buffer" extension="NV">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
     </function>
     <function name="CopyImageSubDataEXT" category="EXT_copy_image" extension="EXT">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
     </function>
     <function name="CopyImageSubDataOES" category="OES_copy_image" extension="OES">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
     </function>
     <function name="CoverageModulationTableNV" category="NV_framebuffer_mixed_samples" extension="NV">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="v" type="GLfloat *" flow="in" />
+      <param name="v" type="GLfloat *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="CoverageOperationNV" category="NV_coverage_sample" extension="NV">
       <returns type="void" />
     </function>
     <function name="CreateShaderProgramEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="string" type="GLchar *" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShaderProgramvEXT" category="EXT_separate_shader_objects" extension="EXT">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControlKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" />
       <param name="enabled" type="GLboolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsertKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="DeleteSemaphoresEXT" category="EXT_semaphore" extension="EXT">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="semaphores" type="GLuint *" flow="in" count="count" />
+      <param name="semaphores" type="GLuint *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DeleteSyncAPPLE" category="APPLE_sync" extension="APPLE">
       <returns type="void" />
     </function>
     <function name="DisableiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="DisableiNV" category="NV_viewport_array" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="DisableiOES" category="OES_draw_buffers_indexed|OES_viewport_array" extension="OES" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="DrawBuffersEXT" category="EXT_draw_buffers" extension="EXT">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="bufs" type="GLenum *" flow="in" />
+      <param name="bufs" type="GLenum *" flow="in" count="n" />
       <returns type="void" />
     </function>
     <function name="DrawBuffersIndexedEXT" category="EXT_multiview_draw_buffers" extension="EXT">
     <function name="DrawElementsInstancedANGLE" category="ANGLE_instanced_arrays" extension="ANGLE">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
       <param name="primcount" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="DrawElementsInstancedBaseInstanceEXT" category="EXT_base_instance" extension="EXT">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="baseinstance" type="GLuint" flow="in" />
     <function name="DrawElementsInstancedBaseVertexBaseInstanceEXT" category="EXT_base_instance" extension="EXT">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="count" />
       <param name="instancecount" type="GLsizei" flow="in" />
       <param name="basevertex" type="GLint" flow="in" />
     <function name="DrawElementsInstancedNV" category="NV_draw_instanced" extension="NV">
       <param name="mode" type="PrimitiveType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="PrimitiveType" flow="in" />
       <param name="indices" type="void *" flow="in" count="COMPSIZE(count,type)" />
       <param name="primcount" type="GLsizei" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="EnableiEXT" category="EXT_draw_buffers_indexed" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="EnableiNV" category="NV_viewport_array" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="EnableiOES" category="OES_draw_buffers_indexed|OES_viewport_array" extension="OES" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="EndQueryEXT" category="EXT_disjoint_timer_query|EXT_occlusion_query_boolean" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="EndTilingQCOM" category="QCOM_tiled_rendering" extension="QCOM">
-      <param name="preserveMask" type="GLbitfield" flow="in" />
+      <param name="preserveMask" type="BufferBitQCOM" flow="in" />
       <returns type="void" />
     </function>
     <function name="ExtGetBufferPointervQCOM" category="QCOM_extended_get" extension="QCOM">
     </function>
     <function name="ExtGetProgramBinarySourceQCOM" category="QCOM_extended_get2" extension="QCOM">
       <param name="program" type="GLuint" flow="in" />
-      <param name="shadertype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
       <param name="source" type="GLchar *" flow="out" />
       <param name="length" type="GLint *" flow="out" />
       <returns type="void" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="texels" type="void *" flow="out" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="FenceSyncAPPLE" category="APPLE_sync" extension="APPLE">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="GLsync" />
     </function>
       <returns type="void" />
     </function>
     <function name="FlushMappedBufferRangeEXT" category="EXT_map_buffer_range" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="GLsizeiptr" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="FramebufferSampleLocationsfvNV" category="NV_sample_locations" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="start" type="GLuint" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="v" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DDownsampleIMG" category="IMG_framebuffer_downsample" extension="IMG">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xscale" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DMultisampleEXT" category="EXT_multisampled_render_to_texture" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture2DMultisampleIMG" category="IMG_multisampled_render_to_texture" extension="IMG">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture3DOES" category="OES_texture_3D" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="zoffset" type="GLint" flow="in" />
     </function>
     <function name="GenSemaphoresEXT" category="EXT_semaphore" extension="EXT">
       <param name="n" type="GLsizei" flow="in" />
-      <param name="semaphores" type="GLuint *" flow="out" count="count" />
+      <param name="semaphores" type="GLuint *" flow="out" count="n" />
       <returns type="void" />
     </function>
     <function name="GenVertexArraysOES" category="OES_vertex_array_object" extension="OES">
       <returns type="void" />
     </function>
     <function name="GetBufferPointervOES" category="OES_mapbuffer" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
+      <param name="pname" type="BufferPointerNameARB" flow="in" />
       <param name="params" type="void **" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetDebugMessageLog" category="KHR_debug" extension="Core">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     <function name="GetDebugMessageLogKHR" category="KHR_debug" extension="KHR">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
       <returns type="GLint" />
     </function>
     <function name="GetFramebufferPixelLocalStorageSizeEXT" category="EXT_shader_pixel_local_storage2" extension="EXT">
-      <param name="target" type="GLuint" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <returns type="GLsizei" />
     </function>
     <function name="GetGraphicsResetStatus" category="KHR_robustness" extension="Core">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusEXT" category="EXT_robustness" extension="EXT">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetGraphicsResetStatusKHR" category="KHR_robustness" extension="KHR">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetImageHandleNV" category="NV_bindless_texture" extension="NV">
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
       <returns type="GLuint64" />
     </function>
     <function name="GetInteger64vAPPLE" category="APPLE_sync" extension="APPLE">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_vEXT" category="EXT_multiview_draw_buffers" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetInternalformatSampleivNV" category="NV_internalformat_sample_query" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
       <param name="queryHandle" type="GLuint" flow="in" />
       <param name="flags" type="GLuint" flow="in" />
       <param name="dataSize" type="GLsizei" flow="in" />
-      <param name="data" type="GLvoid *" flow="out" />
+      <param name="data" type="void *" flow="out" />
       <param name="bytesWritten" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramPipelineivEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourcefvNV" category="NV_path_rendering" extension="NV">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" />
     </function>
     <function name="GetProgramResourceLocationIndexEXT" category="EXT_blend_func_extended" extension="EXT">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetQueryivEXT" category="EXT_disjoint_timer_query|EXT_occlusion_query_boolean" extension="EXT" version="">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjecti64vEXT" category="EXT_disjoint_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectivEXT" category="EXT_disjoint_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectui64vEXT" category="EXT_disjoint_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectuivEXT" category="EXT_disjoint_timer_query|EXT_occlusion_query_boolean" extension="EXT" version="">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIivEXT" category="EXT_texture_border_clamp" extension="EXT">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIivOES" category="OES_texture_border_clamp" extension="OES">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuivEXT" category="EXT_texture_border_clamp" extension="EXT">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuivOES" category="OES_texture_border_clamp" extension="OES">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetSyncivAPPLE" category="APPLE_sync" extension="APPLE">
       <param name="sync" type="GLsync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="IsEnablediEXT" category="EXT_draw_buffers_indexed" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
     <function name="IsEnablediNV" category="NV_viewport_array" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
     <function name="IsEnablediOES" category="OES_draw_buffers_indexed|OES_viewport_array" extension="OES" version="">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
       <returns type="void" />
     </function>
     <function name="MapBufferOES" category="OES_mapbuffer" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
       <returns type="void *" />
     </function>
     <function name="MapBufferRangeEXT" category="EXT_map_buffer_range" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="length" type="GLsizeiptr" flow="in" />
-      <param name="access" type="GLbitfield" flow="in" />
+      <param name="access" type="BufferAccessMask" flow="in" />
       <returns type="void *" />
     </function>
+    <function name="MatrixFrustumEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="left" type="GLdouble" flow="in" />
+      <param name="right" type="GLdouble" flow="in" />
+      <param name="bottom" type="GLdouble" flow="in" />
+      <param name="top" type="GLdouble" flow="in" />
+      <param name="zNear" type="GLdouble" flow="in" />
+      <param name="zFar" type="GLdouble" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="MatrixLoad3x2fNV" category="NV_path_rendering" extension="NV">
       <param name="matrixMode" type="GLenum" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MatrixLoaddEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLdouble *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixLoadfEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLfloat *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixLoadIdentityEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="MatrixLoadTranspose3x3fNV" category="NV_path_rendering" extension="NV">
       <param name="matrixMode" type="GLenum" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MatrixLoadTransposedEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLdouble *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixLoadTransposefEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLfloat *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
     <function name="MatrixMult3x2fNV" category="NV_path_rendering" extension="NV">
       <param name="matrixMode" type="GLenum" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MatrixMultdEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLdouble *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixMultfEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLfloat *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
     <function name="MatrixMultTranspose3x3fNV" category="NV_path_rendering" extension="NV">
       <param name="matrixMode" type="GLenum" flow="in" />
       <param name="m" type="GLfloat *" flow="in" />
       <returns type="void" />
     </function>
+    <function name="MatrixMultTransposedEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLdouble *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixMultTransposefEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="m" type="GLfloat *" flow="in" count="16" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixOrthoEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="left" type="GLdouble" flow="in" />
+      <param name="right" type="GLdouble" flow="in" />
+      <param name="bottom" type="GLdouble" flow="in" />
+      <param name="top" type="GLdouble" flow="in" />
+      <param name="zNear" type="GLdouble" flow="in" />
+      <param name="zFar" type="GLdouble" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixPopEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixPushEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixRotatedEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="angle" type="GLdouble" flow="in" />
+      <param name="x" type="GLdouble" flow="in" />
+      <param name="y" type="GLdouble" flow="in" />
+      <param name="z" type="GLdouble" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixRotatefEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="angle" type="GLfloat" flow="in" />
+      <param name="x" type="GLfloat" flow="in" />
+      <param name="y" type="GLfloat" flow="in" />
+      <param name="z" type="GLfloat" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixScaledEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="x" type="GLdouble" flow="in" />
+      <param name="y" type="GLdouble" flow="in" />
+      <param name="z" type="GLdouble" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixScalefEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="x" type="GLfloat" flow="in" />
+      <param name="y" type="GLfloat" flow="in" />
+      <param name="z" type="GLfloat" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixTranslatedEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="x" type="GLdouble" flow="in" />
+      <param name="y" type="GLdouble" flow="in" />
+      <param name="z" type="GLdouble" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MatrixTranslatefEXT" category="NV_path_rendering" extension="EXT">
+      <param name="mode" type="MatrixMode" flow="in" />
+      <param name="x" type="GLfloat" flow="in" />
+      <param name="y" type="GLfloat" flow="in" />
+      <param name="z" type="GLfloat" flow="in" />
+      <returns type="void" />
+    </function>
+    <function name="MaxShaderCompilerThreadsKHR" category="KHR_parallel_shader_compile" extension="KHR">
+      <param name="count" type="GLuint" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="MemoryObjectParameterivEXT" category="EXT_memory_object" extension="EXT">
       <param name="memoryObject" type="GLuint" flow="in" />
       <param name="pname" type="MemoryObjectParameterName" flow="in" />
     </function>
     <function name="MultiDrawElementsIndirectEXT" category="EXT_multi_draw_indirect" extension="EXT">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" count="COMPSIZE(drawcount,stride)" />
       <param name="drawcount" type="GLsizei" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="offset" type="GLintptr" flow="in" />
       <param name="size" type="GLsizeiptr" flow="in" />
       <param name="clientBuffer" type="GLeglClientBufferEXT" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="MapBufferUsageMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="NamedBufferStorageMemEXT" category="EXT_memory_object" extension="EXT">
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="KHR_debug" extension="Core">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="ObjectLabelKHR" category="KHR_debug" extension="KHR">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" />
       <returns type="void" />
     </function>
     <function name="PatchParameteriEXT" category="EXT_tessellation_shader" extension="EXT">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="PatchParameteriOES" category="OES_tessellation_shader" extension="OES">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <param name="firstPathName" type="GLuint" flow="in" />
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="firstGlyphIndex" type="GLuint" flow="in" />
       <param name="numGlyphs" type="GLsizei" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
     <function name="PathGlyphIndexRangeNV" category="NV_path_rendering" extension="NV">
       <param name="fontTarget" type="GLenum" flow="in" />
       <param name="fontName" type="void *" flow="in" />
-      <param name="fontStyle" type="GLbitfield" flow="in" />
+      <param name="fontStyle" type="PathFontStyle" flow="in" />
       <param name="pathParameterTemplate" type="GLuint" flow="in" />
       <param name="emScale" type="GLfloat" flow="in" />
       <param name="baseAndCount" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="KHR_debug" extension="Core">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <returns type="void" />
     </function>
     <function name="PushDebugGroupKHR" category="KHR_debug" extension="KHR">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" />
     </function>
     <function name="QueryCounterEXT" category="EXT_disjoint_timer_query" extension="EXT">
       <param name="id" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="RasterSamplesEXT" category="EXT_raster_multisample|EXT_texture_filter_minmax|NV_framebuffer_mixed_samples" extension="EXT" version="">
       <returns type="void" />
     </function>
     <function name="ReadBufferIndexedEXT" category="EXT_multiview_draw_buffers" extension="EXT">
-      <param name="src" type="GLenum" flow="in" />
+      <param name="src" type="ReadBufferMode" flow="in" />
       <param name="index" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="GLboolean" />
     </function>
     <function name="RenderbufferStorageMultisampleANGLE" category="ANGLE_framebuffer_multisample" extension="ANGLE">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleAPPLE" category="APPLE_framebuffer_multisample" extension="APPLE">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleEXT" category="EXT_multisampled_render_to_texture" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleIMG" category="IMG_multisampled_render_to_texture" extension="IMG">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisampleNV" category="NV_framebuffer_multisample" extension="NV">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIivEXT" category="EXT_texture_border_clamp" extension="EXT">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIivOES" category="OES_texture_border_clamp" extension="OES">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuivEXT" category="EXT_texture_border_clamp" extension="EXT">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuivOES" category="OES_texture_border_clamp" extension="OES">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="y" type="GLuint" flow="in" />
       <param name="width" type="GLuint" flow="in" />
       <param name="height" type="GLuint" flow="in" />
-      <param name="preserveMask" type="GLbitfield" flow="in" />
+      <param name="preserveMask" type="BufferBitQCOM" flow="in" />
       <returns type="void" />
     </function>
     <function name="StencilFillPathInstancedNV" category="NV_path_rendering" extension="NV">
     </function>
     <function name="TexBufferEXT" category="EXT_texture_buffer" extension="EXT">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferOES" category="OES_texture_buffer" extension="OES">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferRangeEXT" category="EXT_texture_buffer" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferRangeOES" category="OES_texture_buffer" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexImage3DOES" category="OES_texture_3D" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <param name="border" type="GLint" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" count="COMPSIZE(format,type,width,height,depth)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="TexStorage1DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DEXT" category="EXT_texture_storage" extension="EXT">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisampleOES" category="OES_texture_storage_multisample_2d_array" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexSubImage3DOES" category="OES_texture_3D" extension="OES">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <param name="xoffset" type="GLint" flow="in" />
       <param name="yoffset" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="pixels" type="void *" flow="in" count="COMPSIZE(format,type,width,height,depth)" />
       <returns type="void" />
     </function>
+    <function name="TextureFoveationParametersQCOM" category="QCOM_texture_foveated" extension="QCOM">
+      <param name="texture" type="Texture" flow="in" />
+      <param name="layer" type="GLuint" flow="in" />
+      <param name="focalPoint" type="GLuint" flow="in" />
+      <param name="focalX" type="CheckedFloat32" flow="in" />
+      <param name="focalY" type="CheckedFloat32" flow="in" />
+      <param name="gainX" type="CheckedFloat32" flow="in" />
+      <param name="gainY" type="CheckedFloat32" flow="in" />
+      <param name="foveaArea" type="CheckedFloat32" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="TextureStorage1DEXT" category="EXT_texture_storage" extension="EXT">
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="target" type="GLenum" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     </function>
     <function name="TextureViewEXT" category="EXT_texture_view" extension="EXT">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
     </function>
     <function name="TextureViewOES" category="OES_texture_view" extension="OES">
       <param name="texture" type="GLuint" flow="in" />
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="origtexture" type="GLuint" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="minlevel" type="GLuint" flow="in" />
       <param name="numlevels" type="GLuint" flow="in" />
       <param name="minlayer" type="GLuint" flow="in" />
     </function>
     <function name="UseProgramStagesEXT" category="EXT_separate_shader_objects" extension="EXT">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="v" type="GLfloat *" flow="in" count="4" />
       <returns type="void" />
     </function>
+    <function name="ViewportPositionWScaleNV" category="NV_clip_space_w_scaling" extension="NV">
+      <param name="index" type="GLuint" flow="in" />
+      <param name="xcoeff" type="GLfloat" flow="in" />
+      <param name="ycoeff" type="GLfloat" flow="in" />
+      <returns type="void" />
+    </function>
     <function name="ViewportSwizzleNV" category="NV_viewport_swizzle" extension="NV">
       <param name="index" type="GLuint" flow="in" />
       <param name="swizzlex" type="GLenum" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparate" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <returns type="void" />
     </function>
     <function name="BlendFunc" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="sfactor" type="BlendingFactorSrc" flow="in" />
-      <param name="dfactor" type="BlendingFactorDest" flow="in" />
+      <param name="sfactor" type="BlendingFactor" flow="in" />
+      <param name="dfactor" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparate" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferData" category="ES_VERSION_2_0" extension="Core" version="2.0">
     </function>
     <function name="CheckFramebufferStatus" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="Clear" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="mask" type="ClearBufferMask" flow="in" />
     <function name="CompressedTexImage2D" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
     <function name="CopyTexImage2D" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="x" type="WinCoord" flow="in" />
       <param name="y" type="WinCoord" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="CreateShader" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <returns type="GLuint" />
     </function>
     <function name="CullFace" category="ES_VERSION_2_0" extension="Core" version="2.0">
     <function name="FramebufferTexture2D" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenFramebuffers" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="size" type="GLint *" flow="out" count="1" />
-      <param name="type" type="GLenum *" flow="out" count="1" />
+      <param name="type" type="AttributeType *" flow="out" count="1" />
       <param name="name" type="GLchar *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferAttachmentParameteriv" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramiv" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetShaderiv" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="shader" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ShaderParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetShaderPrecisionFormat" category="ES_VERSION_2_0" extension="Core" version="2.0">
-      <param name="shadertype" type="GLenum" flow="in" />
-      <param name="precisiontype" type="GLenum" flow="in" />
+      <param name="shadertype" type="ShaderType" flow="in" />
+      <param name="precisiontype" type="PrecisionType" flow="in" />
       <param name="range" type="GLint *" flow="out" count="2" />
       <param name="precision" type="GLint *" flow="out" count="1" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorage" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     <function name="TexImage2D" category="ES_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="border" type="CheckedInt32" flow="in" />
       <token name="TEXTURE_IMMUTABLE_LEVELS" value="0x82DF" />
     </enum>
     <function name="BeginQuery" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BeginTransformFeedback" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="primitiveMode" type="GLenum" flow="in" />
+      <param name="primitiveMode" type="PrimitiveType" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferBase" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindBufferRange" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindTransformFeedback" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BindTransformFeedbackTarget" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <param name="dstX1" type="GLint" flow="in" />
       <param name="dstY1" type="GLint" flow="in" />
       <param name="mask" type="ClearBufferMask" flow="in" />
-      <param name="filter" type="GLenum" flow="in" />
+      <param name="filter" type="BlitFramebufferFilter" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfi" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="depth" type="GLfloat" flow="in" />
       <param name="stencil" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="ClearBufferfv" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLfloat *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferiv" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClearBufferuiv" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="buffer" type="GLenum" flow="in" />
+      <param name="buffer" type="Buffer" flow="in" />
       <param name="drawbuffer" type="DrawBufferName" flow="in" />
       <param name="value" type="GLuint *" flow="in" count="COMPSIZE(buffer)" />
       <returns type="void" />
     </function>
     <function name="ClientWaitSync" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sync" type="sync" flow="in" />
-      <param name="flags" type="GLbitfield" flow="in" />
+      <param name="flags" type="SyncObjectMask" flow="in" />
       <param name="timeout" type="GLuint64" flow="in" />
-      <returns type="GLenum" />
+      <returns type="SyncStatus" />
     </function>
     <function name="CompressedTexImage3D" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="PixelInternalFormat" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="CopyBufferSubData" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="readTarget" type="GLenum" flow="in" />
-      <param name="writeTarget" type="GLenum" flow="in" />
+      <param name="readTarget" type="CopyBufferSubDataTarget" flow="in" />
+      <param name="writeTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="readOffset" type="BufferOffset" flow="in" />
       <param name="writeOffset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="EndQuery" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="EndTransformFeedback" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <returns type="void" />
     </function>
     <function name="FenceSync" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="condition" type="GLenum" flow="in" />
+      <param name="condition" type="SyncCondition" flow="in" />
       <param name="flags" type="GLbitfield" flow="in" />
       <returns type="sync" />
     </function>
     <function name="GetActiveUniformBlockiv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformBlockIndex" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformBlockPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(program,uniformBlockIndex,pname)" />
       <returns type="void" />
     </function>
       <param name="program" type="GLuint" flow="in" />
       <param name="uniformCount" type="GLsizei" flow="in" />
       <param name="uniformIndices" type="GLuint *" flow="in" count="uniformCount" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="UniformPName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(uniformCount,pname)" />
       <returns type="void" />
     </function>
       <returns type="GLint" />
     </function>
     <function name="GetInteger64i_v" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetInteger64v" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetPName" flow="in" />
       <param name="data" type="GLint64 *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetIntegeri_v" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TypeEnum" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="GLint *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetInternalformativ" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
+      <param name="pname" type="InternalFormatPName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="params" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GetQueryiv" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="QueryTarget" flow="in" />
+      <param name="pname" type="QueryParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetQueryObjectuiv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="id" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="QueryObjectParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterfv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameteriv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetStringi" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="name" type="GLenum" flow="in" />
+      <param name="name" type="StringName" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="String" />
     </function>
     <function name="GetSynciv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sync" type="sync" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SyncParameterName" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <param name="values" type="GLint *" flow="out" count="bufSize" />
       <returns type="void" />
     </function>
     <function name="InvalidateFramebuffer" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
       <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
       <returns type="void" />
     <function name="InvalidateSubFramebuffer" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="GLenum" flow="in" />
       <param name="numAttachments" type="GLsizei" flow="in" />
-      <param name="attachments" type="GLenum *" flow="in" count="numAttachments" />
+      <param name="attachments" type="FramebufferAttachment *" flow="in" count="numAttachments" />
       <param name="x" type="GLint" flow="in" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorageMultisample" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="RenderbufferTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterf" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterfv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLfloat *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteri" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="SamplerParameteriv" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexImage3D" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="target" type="TextureTarget" flow="in" />
       <param name="level" type="CheckedInt32" flow="in" />
-      <param name="internalformat" type="TextureComponentCount" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3D" category="ES_VERSION_3_0" extension="Core" version="3.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
     <function name="VertexAttribIPointer" category="ES_VERSION_3_0" extension="Core" version="3.0">
       <param name="index" type="GLuint" flow="in" />
       <param name="size" type="GLint" flow="in" />
-      <param name="type" type="VertexAttribEnum" flow="in" />
+      <param name="type" type="VertexAttribPointerType" flow="in" />
       <param name="stride" type="GLsizei" flow="in" />
       <param name="pointer" type="void *" flow="in" count="COMPSIZE(size,type,stride)" />
       <returns type="void" />
       <param name="level" type="GLint" flow="in" />
       <param name="layered" type="Boolean" flow="in" />
       <param name="layer" type="GLint" flow="in" />
-      <param name="access" type="GLenum" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
+      <param name="access" type="BufferAccessARB" flow="in" />
+      <param name="format" type="InternalFormat" flow="in" />
       <returns type="void" />
     </function>
     <function name="BindProgramPipeline" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <returns type="void" />
     </function>
     <function name="CreateShaderProgramv" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="ShaderType" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="strings" type="GLchar **" flow="in" count="count" />
       <returns type="GLuint" />
     </function>
     <function name="DrawElementsIndirect" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="mode" type="PrimitiveType" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="type" type="DrawElementsType" flow="in" />
       <param name="indirect" type="void *" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferParameteri" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferParameterName" flow="in" />
       <param name="param" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="GetBooleani_v" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="BufferTargetARB" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="data" type="Boolean *" flow="out" count="COMPSIZE(target)" />
       <returns type="void" />
     </function>
     <function name="GetFramebufferParameteriv" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetMultisamplefv" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="GetMultisamplePNameNV" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="val" type="GLfloat *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramInterfaceiv" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
+      <param name="pname" type="ProgramInterfacePName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     </function>
     <function name="GetProgramPipelineiv" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PipelineParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetProgramResourceIndex" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLuint" />
     </function>
     <function name="GetProgramResourceiv" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="propCount" type="GLsizei" flow="in" />
       <param name="props" type="GLenum *" flow="in" count="propCount" />
     </function>
     <function name="GetProgramResourceLocation" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="name" type="GLchar *" flow="in" count="COMPSIZE(name)" />
       <returns type="GLint" />
     </function>
     <function name="GetProgramResourceName" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="program" type="GLuint" flow="in" />
-      <param name="programInterface" type="GLenum" flow="in" />
+      <param name="programInterface" type="ProgramInterface" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="length" type="GLsizei *" flow="out" count="1" />
       <returns type="Boolean" />
     </function>
     <function name="MemoryBarrier" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="MemoryBarrierByRegion" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="barriers" type="GLbitfield" flow="in" />
+      <param name="barriers" type="MemoryBarrierMask" flow="in" />
       <returns type="void" />
     </function>
     <function name="ProgramUniform1f" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <returns type="void" />
     </function>
     <function name="TexStorage2DMultisample" category="ES_VERSION_3_1" extension="Core" version="3.1">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="fixedsamplelocations" type="Boolean" flow="in" />
     </function>
     <function name="UseProgramStages" category="ES_VERSION_3_1" extension="Core" version="3.1">
       <param name="pipeline" type="GLuint" flow="in" />
-      <param name="stages" type="GLbitfield" flow="in" />
+      <param name="stages" type="UseProgramStageMask" flow="in" />
       <param name="program" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     </function>
     <function name="BlendEquationi" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="mode" type="GLenum" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparatei" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="modeRGB" type="GLenum" flow="in" />
-      <param name="modeAlpha" type="GLenum" flow="in" />
+      <param name="modeRGB" type="BlendEquationModeEXT" flow="in" />
+      <param name="modeAlpha" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFunci" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="src" type="GLenum" flow="in" />
-      <param name="dst" type="GLenum" flow="in" />
+      <param name="src" type="BlendingFactor" flow="in" />
+      <param name="dst" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparatei" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="buf" type="GLuint" flow="in" />
-      <param name="srcRGB" type="GLenum" flow="in" />
-      <param name="dstRGB" type="GLenum" flow="in" />
-      <param name="srcAlpha" type="GLenum" flow="in" />
-      <param name="dstAlpha" type="GLenum" flow="in" />
+      <param name="srcRGB" type="BlendingFactor" flow="in" />
+      <param name="dstRGB" type="BlendingFactor" flow="in" />
+      <param name="srcAlpha" type="BlendingFactor" flow="in" />
+      <param name="dstAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="ColorMaski" category="ES_VERSION_3_2" extension="Core" version="3.2">
     </function>
     <function name="CopyImageSubData" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="srcName" type="GLuint" flow="in" />
-      <param name="srcTarget" type="GLenum" flow="in" />
+      <param name="srcTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="srcLevel" type="GLint" flow="in" />
       <param name="srcX" type="GLint" flow="in" />
       <param name="srcY" type="GLint" flow="in" />
       <param name="srcZ" type="GLint" flow="in" />
       <param name="dstName" type="GLuint" flow="in" />
-      <param name="dstTarget" type="GLenum" flow="in" />
+      <param name="dstTarget" type="CopyBufferSubDataTarget" flow="in" />
       <param name="dstLevel" type="GLint" flow="in" />
       <param name="dstX" type="GLint" flow="in" />
       <param name="dstY" type="GLint" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageControl" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="count" type="GLsizei" flow="in" />
       <param name="ids" type="GLuint *" flow="in" count="count" />
       <param name="enabled" type="Boolean" flow="in" />
       <returns type="void" />
     </function>
     <function name="DebugMessageInsert" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="source" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
+      <param name="type" type="DebugType" flow="in" />
       <param name="id" type="GLuint" flow="in" />
-      <param name="severity" type="GLenum" flow="in" />
+      <param name="severity" type="DebugSeverity" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="buf" type="GLchar *" flow="in" count="COMPSIZE(buf,length)" />
       <returns type="void" />
     </function>
     <function name="Disablei" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="Enablei" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="FramebufferTexture" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="attachment" type="GLenum" flow="in" />
+      <param name="target" type="FramebufferTarget" flow="in" />
+      <param name="attachment" type="FramebufferAttachment" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
     <function name="GetDebugMessageLog" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="count" type="GLuint" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
-      <param name="sources" type="GLenum *" flow="out" count="count" />
-      <param name="types" type="GLenum *" flow="out" count="count" />
+      <param name="sources" type="DebugSource *" flow="out" count="count" />
+      <param name="types" type="DebugType *" flow="out" count="count" />
       <param name="ids" type="GLuint *" flow="out" count="count" />
-      <param name="severities" type="GLenum *" flow="out" count="count" />
+      <param name="severities" type="DebugSeverity *" flow="out" count="count" />
       <param name="lengths" type="GLsizei *" flow="out" count="count" />
       <param name="messageLog" type="GLchar *" flow="out" count="bufSize" />
       <returns type="GLuint" />
     </function>
     <function name="GetGraphicsResetStatus" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetnUniformfv" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="program" type="GLuint" flow="in" />
     </function>
     <function name="GetSamplerParameterIiv" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetSamplerParameterIuiv" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="params" type="GLuint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="IsEnabledi" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="EnableCap" flow="in" />
       <param name="index" type="GLuint" flow="in" />
       <returns type="Boolean" />
     </function>
       <returns type="void" />
     </function>
     <function name="ObjectLabel" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="identifier" type="GLenum" flow="in" />
+      <param name="identifier" type="ObjectIdentifier" flow="in" />
       <param name="name" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="label" type="GLchar *" flow="in" count="COMPSIZE(label,length)" />
       <returns type="void" />
     </function>
     <function name="PatchParameteri" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="PatchParameterName" flow="in" />
       <param name="value" type="GLint" flow="in" />
       <returns type="void" />
     </function>
       <returns type="void" />
     </function>
     <function name="PushDebugGroup" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="source" type="GLenum" flow="in" />
+      <param name="source" type="DebugSource" flow="in" />
       <param name="id" type="GLuint" flow="in" />
       <param name="length" type="GLsizei" flow="in" />
       <param name="message" type="GLchar *" flow="in" count="COMPSIZE(message,length)" />
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIiv" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="SamplerParameterIuiv" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="sampler" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="SamplerParameterName" flow="in" />
       <param name="param" type="GLuint *" flow="in" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="TexBuffer" category="ES_VERSION_3_2" extension="Core" version="3.2">
       <param name="target" type="TextureTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexBufferRange" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="buffer" type="GLuint" flow="in" />
       <param name="offset" type="BufferOffset" flow="in" />
       <param name="size" type="BufferSize" flow="in" />
       <returns type="void" />
     </function>
     <function name="TexStorage3DMultisample" category="ES_VERSION_3_2" extension="Core" version="3.2">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="samples" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <param name="depth" type="GLsizei" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquation" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <param name="mode" type="BlendEquationMode" flow="in" />
+      <param name="mode" type="BlendEquationModeEXT" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendEquationSeparate" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <returns type="void" />
     </function>
     <function name="BlendFunc" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <param name="sfactor" type="BlendingFactorSrc" flow="in" />
-      <param name="dfactor" type="BlendingFactorDest" flow="in" />
+      <param name="sfactor" type="BlendingFactor" flow="in" />
+      <param name="dfactor" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BlendFuncSeparate" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <param name="sfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorRGB" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="sfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
-      <param name="dfactorAlpha" type="BlendFuncSeparateParameterEXT" flow="in" />
+      <param name="sfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="dfactorRGB" type="BlendingFactor" flow="in" />
+      <param name="sfactorAlpha" type="BlendingFactor" flow="in" />
+      <param name="dfactorAlpha" type="BlendingFactor" flow="in" />
       <returns type="void" />
     </function>
     <function name="BufferData" category="SC_VERSION_2_0" extension="Core" version="2.0">
     </function>
     <function name="CheckFramebufferStatus" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
-      <returns type="GLenum" />
+      <returns type="FramebufferStatus" />
     </function>
     <function name="Clear" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="mask" type="ClearBufferMask" flow="in" />
     <function name="FramebufferTexture2D" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="textarget" type="GLenum" flow="in" />
+      <param name="textarget" type="TextureTarget" flow="in" />
       <param name="texture" type="GLuint" flow="in" />
       <param name="level" type="GLint" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="GenerateMipmap" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <returns type="void" />
     </function>
     <function name="GenFramebuffers" category="SC_VERSION_2_0" extension="Core" version="2.0">
     <function name="GetFramebufferAttachmentParameteriv" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="FramebufferTarget" flow="in" />
       <param name="attachment" type="FramebufferAttachment" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="FramebufferAttachmentParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetGraphicsResetStatus" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <returns type="GLenum" />
+      <returns type="GraphicsResetStatus" />
     </function>
     <function name="GetIntegerv" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="pname" type="GetPName" flow="in" />
     </function>
     <function name="GetProgramiv" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="program" type="GLuint" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="ProgramPropertyARB" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
     <function name="GetRenderbufferParameteriv" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="pname" type="GLenum" flow="in" />
+      <param name="pname" type="RenderbufferParameterName" flow="in" />
       <param name="params" type="GLint *" flow="out" count="COMPSIZE(pname)" />
       <returns type="void" />
     </function>
       <param name="y" type="GLint" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
-      <param name="format" type="GLenum" flow="in" />
-      <param name="type" type="GLenum" flow="in" />
+      <param name="format" type="PixelFormat" flow="in" />
+      <param name="type" type="PixelType" flow="in" />
       <param name="bufSize" type="GLsizei" flow="in" />
       <param name="data" type="void *" flow="out" />
       <returns type="void" />
     </function>
     <function name="RenderbufferStorage" category="SC_VERSION_2_0" extension="Core" version="2.0">
       <param name="target" type="RenderbufferTarget" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />
       <returns type="void" />
     </function>
     <function name="TexStorage2D" category="SC_VERSION_2_0" extension="Core" version="2.0">
-      <param name="target" type="GLenum" flow="in" />
+      <param name="target" type="TextureTarget" flow="in" />
       <param name="levels" type="GLsizei" flow="in" />
-      <param name="internalformat" type="GLenum" flow="in" />
+      <param name="internalformat" type="InternalFormat" flow="in" />
       <param name="width" type="GLsizei" flow="in" />
       <param name="height" type="GLsizei" flow="in" />
       <returns type="void" />