Commits

Joseph Marshall committed 9c442d7 Draft

Was skipping to aggressively.

  • Participants
  • Parent commits 8aafa2f

Comments (0)

Files changed (2)

 
 HEADER_FILES = ("/usr/include/GL/gl.h", "/usr/include/GL/glext.h")
 OUT = "gl.rs"
-SKIP = ('MESA', 'ATI', 'AMD', 'NV', 'APPLE', 'ARB', 'Feedback', 'SGI',
-    'SUN', 'IBM', 'GREMEDY', 'HP', 'INTEL', 'INGR', 'OES', 'PGI', '3DFX')
+SKIP = ('MESA', 'ATI', 'AMD', 'NV', 'APPLE', 'ARB', 'Feedback', 'SGI', 'SGIS',
+    'SGIX', 'SUN', 'SUNX', 'IBM', 'GREMEDY', 'HP', 'INTEL', 'INGR', 'OES',
+    'PGI', '3DFX')
 
 types = {
     "double": "f64",
         if name in typedefd:
             return
         for n in SKIP:
-            if n in name:
+            if name.endswith(n) or 'GL_'+n+'_' in name:
                 errors.unknown.add(l)
                 return
         if name.endswith("EXT"):
             return
 
         for n in SKIP:
-            if n in name:
+            if name.endswith(n) or 'GL_'+n+'_' in name:
                 errors.unknown.add(l)
                 return
         if name.endswith('_EXT') or '_EXT_' in name:
         if name in defined_funcs:
             return
         for n in SKIP:
-            if n in name:
+            if name.endswith(n) or 'GL_'+n+'_' in name:
                 errors.skipped_api.append(l)
                 return
         if name.endswith("EXT"):
 const GL_LIGHT7:uint = 0x4007u;
 const GL_SPOT_EXPONENT:uint = 0x1205u;
 const GL_SPOT_CUTOFF:uint = 0x1206u;
+const GL_CONSTANT_ATTENUATION:uint = 0x1207u;
+const GL_LINEAR_ATTENUATION:uint = 0x1208u;
+const GL_QUADRATIC_ATTENUATION:uint = 0x1209u;
 const GL_AMBIENT:uint = 0x1200u;
 const GL_DIFFUSE:uint = 0x1201u;
 const GL_SPECULAR:uint = 0x1202u;
 const GL_CLEAR:uint = 0x1500u;
 const GL_SET:uint = 0x150Fu;
 const GL_COPY:uint = 0x1503u;
+const GL_COPY_INVERTED:uint = 0x150Cu;
 const GL_NOOP:uint = 0x1505u;
+const GL_INVERT:uint = 0x150Au;
 const GL_AND:uint = 0x1501u;
 const GL_NAND:uint = 0x150Eu;
 const GL_OR:uint = 0x1507u;
 const GL_XOR:uint = 0x1506u;
 const GL_EQUIV:uint = 0x1509u;
 const GL_AND_REVERSE:uint = 0x1502u;
+const GL_AND_INVERTED:uint = 0x1504u;
 const GL_OR_REVERSE:uint = 0x150Bu;
+const GL_OR_INVERTED:uint = 0x150Du;
 const GL_STENCIL_BITS:uint = 0x0D57u;
 const GL_STENCIL_TEST:uint = 0x0B90u;
 const GL_STENCIL_CLEAR_VALUE:uint = 0x0B91u;
 const GL_UNPACK_SWAP_BYTES:uint = 0x0CF0u;
 const GL_ZOOM_X:uint = 0x0D16u;
 const GL_ZOOM_Y:uint = 0x0D17u;
+const GL_TEXTURE_ENV_MODE:uint = 0x2200u;
 const GL_TEXTURE_1D:uint = 0x0DE0u;
 const GL_TEXTURE_2D:uint = 0x0DE1u;
 const GL_TEXTURE_WRAP_S:uint = 0x2802u;
 const GL_TEXTURE_WRAP_T:uint = 0x2803u;
 const GL_TEXTURE_MAG_FILTER:uint = 0x2800u;
 const GL_TEXTURE_MIN_FILTER:uint = 0x2801u;
+const GL_TEXTURE_ENV_COLOR:uint = 0x2201u;
 const GL_TEXTURE_GEN_S:uint = 0x0C60u;
 const GL_TEXTURE_GEN_T:uint = 0x0C61u;
 const GL_TEXTURE_GEN_R:uint = 0x0C62u;
 const GL_VERSION:uint = 0x1F02u;
 const GL_EXTENSIONS:uint = 0x1F03u;
 const GL_NO_ERROR:uint = 0x0u;
+const GL_INVALID_ENUM:uint = 0x0500u;
+const GL_INVALID_VALUE:uint = 0x0501u;
+const GL_INVALID_OPERATION:uint = 0x0502u;
 const GL_STACK_OVERFLOW:uint = 0x0503u;
 const GL_STACK_UNDERFLOW:uint = 0x0504u;
 const GL_OUT_OF_MEMORY:uint = 0x0505u;
 const GL_CONSTANT_ALPHA:uint = 0x8003u;
 const GL_ONE_MINUS_CONSTANT_ALPHA:uint = 0x8004u;
 const GL_COLOR_TABLE:uint = 0x80D0u;
+const GL_POST_CONVOLUTION_COLOR_TABLE:uint = 0x80D1u;
 const GL_POST_COLOR_MATRIX_COLOR_TABLE:uint = 0x80D2u;
 const GL_PROXY_COLOR_TABLE:uint = 0x80D3u;
+const GL_PROXY_POST_CONVOLUTION_COLOR_TABLE:uint = 0x80D4u;
 const GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE:uint = 0x80D5u;
 const GL_COLOR_TABLE_SCALE:uint = 0x80D6u;
 const GL_COLOR_TABLE_BIAS:uint = 0x80D7u;
 const GL_COLOR_TABLE_ALPHA_SIZE:uint = 0x80DDu;
 const GL_COLOR_TABLE_LUMINANCE_SIZE:uint = 0x80DEu;
 const GL_COLOR_TABLE_INTENSITY_SIZE:uint = 0x80DFu;
+const GL_CONVOLUTION_1D:uint = 0x8010u;
+const GL_CONVOLUTION_2D:uint = 0x8011u;
 const GL_SEPARABLE_2D:uint = 0x8012u;
+const GL_CONVOLUTION_BORDER_MODE:uint = 0x8013u;
+const GL_CONVOLUTION_FILTER_SCALE:uint = 0x8014u;
+const GL_CONVOLUTION_FILTER_BIAS:uint = 0x8015u;
 const GL_REDUCE:uint = 0x8016u;
+const GL_CONVOLUTION_FORMAT:uint = 0x8017u;
+const GL_CONVOLUTION_WIDTH:uint = 0x8018u;
+const GL_CONVOLUTION_HEIGHT:uint = 0x8019u;
+const GL_MAX_CONVOLUTION_WIDTH:uint = 0x801Au;
+const GL_MAX_CONVOLUTION_HEIGHT:uint = 0x801Bu;
+const GL_POST_CONVOLUTION_RED_SCALE:uint = 0x801Cu;
+const GL_POST_CONVOLUTION_GREEN_SCALE:uint = 0x801Du;
+const GL_POST_CONVOLUTION_BLUE_SCALE:uint = 0x801Eu;
+const GL_POST_CONVOLUTION_ALPHA_SCALE:uint = 0x801Fu;
+const GL_POST_CONVOLUTION_RED_BIAS:uint = 0x8020u;
+const GL_POST_CONVOLUTION_GREEN_BIAS:uint = 0x8021u;
+const GL_POST_CONVOLUTION_BLUE_BIAS:uint = 0x8022u;
+const GL_POST_CONVOLUTION_ALPHA_BIAS:uint = 0x8023u;
 const GL_CONSTANT_BORDER:uint = 0x8151u;
 const GL_REPLICATE_BORDER:uint = 0x8153u;
+const GL_CONVOLUTION_BORDER_COLOR:uint = 0x8154u;
 const GL_COLOR_MATRIX:uint = 0x80B1u;
 const GL_COLOR_MATRIX_STACK_DEPTH:uint = 0x80B2u;
 const GL_MAX_COLOR_MATRIX_STACK_DEPTH:uint = 0x80B3u;
 const GL_MINMAX_FORMAT:uint = 0x802Fu;
 const GL_MINMAX_SINK:uint = 0x8030u;
 const GL_TABLE_TOO_LARGE:uint = 0x8031u;
+const GL_BLEND_EQUATION:uint = 0x8009u;
 const GL_MIN:uint = 0x8007u;
 const GL_MAX:uint = 0x8008u;
 const GL_FUNC_ADD:uint = 0x8006u;
 const GL_TEXTURE_CUBE_MAP:uint = 0x8513u;
 const GL_TEXTURE_BINDING_CUBE_MAP:uint = 0x8514u;
 const GL_TEXTURE_CUBE_MAP_POSITIVE_X:uint = 0x8515u;
+const GL_TEXTURE_CUBE_MAP_NEGATIVE_X:uint = 0x8516u;
 const GL_TEXTURE_CUBE_MAP_POSITIVE_Y:uint = 0x8517u;
+const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:uint = 0x8518u;
 const GL_TEXTURE_CUBE_MAP_POSITIVE_Z:uint = 0x8519u;
+const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:uint = 0x851Au;
 const GL_PROXY_TEXTURE_CUBE_MAP:uint = 0x851Bu;
 const GL_MAX_CUBE_MAP_TEXTURE_SIZE:uint = 0x851Cu;
 const GL_COMPRESSED_ALPHA:uint = 0x84E9u;
 const GL_SAMPLE_BUFFERS:uint = 0x80A8u;
 const GL_SAMPLES:uint = 0x80A9u;
 const GL_SAMPLE_COVERAGE_VALUE:uint = 0x80AAu;
+const GL_SAMPLE_COVERAGE_INVERT:uint = 0x80ABu;
 const GL_MULTISAMPLE_BIT:uint = 0x20000000u;
 const GL_TRANSPOSE_MODELVIEW_MATRIX:uint = 0x84E3u;
 const GL_TRANSPOSE_PROJECTION_MATRIX:uint = 0x84E4u;
 const GL_TEXTURE_COMPARE_FUNC:uint = 0x884Du;
 const GL_POINT_SIZE_MIN:uint = 0x8126u;
 const GL_POINT_SIZE_MAX:uint = 0x8127u;
+const GL_POINT_DISTANCE_ATTENUATION:uint = 0x8129u;
 const GL_GENERATE_MIPMAP:uint = 0x8191u;
 const GL_GENERATE_MIPMAP_HINT:uint = 0x8192u;
 const GL_FOG_COORDINATE_SOURCE:uint = 0x8450u;
 const GL_STREAM_DRAW:uint = 0x88E0u;
 const GL_STREAM_READ:uint = 0x88E1u;
 const GL_STREAM_COPY:uint = 0x88E2u;
+const GL_STATIC_DRAW:uint = 0x88E4u;
+const GL_STATIC_READ:uint = 0x88E5u;
+const GL_STATIC_COPY:uint = 0x88E6u;
 const GL_DYNAMIC_DRAW:uint = 0x88E8u;
 const GL_DYNAMIC_READ:uint = 0x88E9u;
 const GL_DYNAMIC_COPY:uint = 0x88EAu;
 const GL_SRC0_ALPHA:uint = 0x8588u;
 const GL_SRC1_ALPHA:uint = 0x8589u;
 const GL_SRC2_ALPHA:uint = 0x858Au;
+const GL_BLEND_EQUATION_RGB:uint = 0x8009u;
 const GL_VERTEX_ATTRIB_ARRAY_ENABLED:uint = 0x8622u;
 const GL_VERTEX_ATTRIB_ARRAY_SIZE:uint = 0x8623u;
 const GL_VERTEX_ATTRIB_ARRAY_STRIDE:uint = 0x8624u;
 const GL_DRAW_BUFFER13:uint = 0x8832u;
 const GL_DRAW_BUFFER14:uint = 0x8833u;
 const GL_DRAW_BUFFER15:uint = 0x8834u;
+const GL_BLEND_EQUATION_ALPHA:uint = 0x883Du;
 const GL_MAX_VERTEX_ATTRIBS:uint = 0x8869u;
 const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:uint = 0x886Au;
 const GL_MAX_TEXTURE_IMAGE_UNITS:uint = 0x8872u;
 const GL_SHADER_SOURCE_LENGTH:uint = 0x8B88u;
 const GL_ACTIVE_ATTRIBUTES:uint = 0x8B89u;
 const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:uint = 0x8B8Au;
+const GL_FRAGMENT_SHADER_DERIVATIVE_HINT:uint = 0x8B8Bu;
 const GL_SHADING_LANGUAGE_VERSION:uint = 0x8B8Cu;
 const GL_CURRENT_PROGRAM:uint = 0x8B8Du;
 const GL_POINT_SPRITE_COORD_ORIGIN:uint = 0x8CA0u;
 const GL_STENCIL_BUFFER:uint = 0x8224u;
 const GL_COMPRESSED_RED:uint = 0x8225u;
 const GL_COMPRESSED_RG:uint = 0x8226u;
+const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT:uint = 0x0001u;
 const GL_RGBA32F:uint = 0x8814u;
 const GL_RGB32F:uint = 0x8815u;
 const GL_RGBA16F:uint = 0x881Au;
 const GL_PRIMITIVE_RESTART:uint = 0x8F9Du;
 const GL_PRIMITIVE_RESTART_INDEX:uint = 0x8F9Eu;
 const GL_CONTEXT_CORE_PROFILE_BIT:uint = 0x00000001u;
+const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT:uint = 0x00000002u;
 const GL_LINES_ADJACENCY:uint = 0x000Au;
 const GL_LINE_STRIP_ADJACENCY:uint = 0x000Bu;
 const GL_TRIANGLES_ADJACENCY:uint = 0x000Cu;
 const GL_DEPTH_COMPONENT32F:uint = 0x8CACu;
 const GL_DEPTH32F_STENCIL8:uint = 0x8CADu;
 const GL_FLOAT_32_UNSIGNED_INT_24_8_REV:uint = 0x8DADu;
+const GL_INVALID_FRAMEBUFFER_OPERATION:uint = 0x0506u;
 const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:uint = 0x8210u;
 const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:uint = 0x8211u;
 const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:uint = 0x8212u;
 const GL_HALF_FLOAT:uint = 0x140Bu;
 const GL_MAP_READ_BIT:uint = 0x0001u;
 const GL_MAP_WRITE_BIT:uint = 0x0002u;
+const GL_MAP_INVALIDATE_RANGE_BIT:uint = 0x0004u;
+const GL_MAP_INVALIDATE_BUFFER_BIT:uint = 0x0008u;
 const GL_MAP_FLUSH_EXPLICIT_BIT:uint = 0x0010u;
 const GL_MAP_UNSYNCHRONIZED_BIT:uint = 0x0020u;
 const GL_COMPRESSED_RED_RGTC1:uint = 0x8DBBu;
 const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:uint = 0x8A44u;
 const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER:uint = 0x8A45u;
 const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:uint = 0x8A46u;
+const GL_INVALID_INDEX:uint = 0xFFFFFFFFu;
 const GL_COPY_READ_BUFFER:uint = 0x8F36u;
 const GL_COPY_WRITE_BUFFER:uint = 0x8F37u;
 const GL_DEPTH_CLAMP:uint = 0x864Fu;
+const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:uint = 0x8E4Cu;
+const GL_FIRST_VERTEX_CONVENTION:uint = 0x8E4Du;
+const GL_LAST_VERTEX_CONVENTION:uint = 0x8E4Eu;
 const GL_PROVOKING_VERTEX:uint = 0x8E4Fu;
 const GL_TEXTURE_CUBE_MAP_SEAMLESS:uint = 0x884Fu;
 const GL_MAX_SERVER_WAIT_TIMEOUT:uint = 0x9111u;
 const GL_SIGNALED:uint = 0x9119u;
 const GL_ALREADY_SIGNALED:uint = 0x911Au;
 const GL_TIMEOUT_EXPIRED:uint = 0x911Bu;
+const GL_CONDITION_SATISFIED:uint = 0x911Cu;
 const GL_WAIT_FAILED:uint = 0x911Du;
 const GL_SYNC_FLUSH_COMMANDS_BIT:uint = 0x00000001u;
 const GL_TIMEOUT_IGNORED:uint = 0xFFFFFFFFFFFFFFFFu;
 const GL_TEXTURE_BINDING_2D_MULTISAMPLE:uint = 0x9104u;
 const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY:uint = 0x9105u;
 const GL_TEXTURE_SAMPLES:uint = 0x9106u;
+const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS:uint = 0x9107u;
 const GL_SAMPLER_2D_MULTISAMPLE:uint = 0x9108u;
 const GL_INT_SAMPLER_2D_MULTISAMPLE:uint = 0x9109u;
 const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:uint = 0x910Au;
 const GL_INT_2_10_10_10_REV:uint = 0x8D9Fu;
 const GL_DRAW_INDIRECT_BUFFER:uint = 0x8F3Fu;
 const GL_DRAW_INDIRECT_BUFFER_BINDING:uint = 0x8F43u;
+const GL_GEOMETRY_SHADER_INVOCATIONS:uint = 0x887Fu;
+const GL_MAX_GEOMETRY_SHADER_INVOCATIONS:uint = 0x8E5Au;
+const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET:uint = 0x8E5Bu;
+const GL_MAX_FRAGMENT_INTERPOLATION_OFFSET:uint = 0x8E5Cu;
+const GL_FRAGMENT_INTERPOLATION_OFFSET_BITS:uint = 0x8E5Du;
 const GL_DOUBLE_VEC2:uint = 0x8FFCu;
 const GL_DOUBLE_VEC3:uint = 0x8FFDu;
 const GL_DOUBLE_VEC4:uint = 0x8FFEu;
 const GL_DOUBLE_MAT4x3:uint = 0x8F4Eu;
 const GL_ACTIVE_SUBROUTINES:uint = 0x8DE5u;
 const GL_ACTIVE_SUBROUTINE_UNIFORMS:uint = 0x8DE6u;
+const GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS:uint = 0x8E47u;
 const GL_ACTIVE_SUBROUTINE_MAX_LENGTH:uint = 0x8E48u;
 const GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH:uint = 0x8E49u;
 const GL_MAX_SUBROUTINES:uint = 0x8DE7u;
+const GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS:uint = 0x8DE8u;
+const GL_NUM_COMPATIBLE_SUBROUTINES:uint = 0x8E4Au;
+const GL_COMPATIBLE_SUBROUTINES:uint = 0x8E4Bu;
 const GL_PATCHES:uint = 0x000Eu;
 const GL_PATCH_VERTICES:uint = 0x8E72u;
 const GL_PATCH_DEFAULT_INNER_LEVEL:uint = 0x8E73u;
 const GL_MAX_PATCH_VERTICES:uint = 0x8E7Du;
 const GL_MAX_TESS_GEN_LEVEL:uint = 0x8E7Eu;
 const GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS:uint = 0x8E7Fu;
+const GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS:uint = 0x8E80u;
 const GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS:uint = 0x8E81u;
+const GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS:uint = 0x8E82u;
 const GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS:uint = 0x8E83u;
 const GL_MAX_TESS_PATCH_COMPONENTS:uint = 0x8E84u;
 const GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS:uint = 0x8E85u;
+const GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS:uint = 0x8E86u;
 const GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS:uint = 0x8E89u;
+const GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS:uint = 0x8E8Au;
 const GL_MAX_TESS_CONTROL_INPUT_COMPONENTS:uint = 0x886Cu;
+const GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS:uint = 0x886Du;
 const GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS:uint = 0x8E1Eu;
+const GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS:uint = 0x8E1Fu;
 const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER:uint = 0x84F0u;
+const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER:uint = 0x84F1u;
+const GL_TESS_EVALUATION_SHADER:uint = 0x8E87u;
 const GL_TESS_CONTROL_SHADER:uint = 0x8E88u;
 const GL_TRANSFORM_FEEDBACK:uint = 0x8E22u;
 const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED:uint = 0x8E23u;
 const GL_MAX_TRANSFORM_FEEDBACK_BUFFERS:uint = 0x8E70u;
 const GL_MAX_VERTEX_STREAMS:uint = 0x8E71u;
 const GL_FIXED:uint = 0x140Cu;
+const GL_IMPLEMENTATION_COLOR_READ_TYPE:uint = 0x8B9Au;
+const GL_IMPLEMENTATION_COLOR_READ_FORMAT:uint = 0x8B9Bu;
 const GL_LOW_FLOAT:uint = 0x8DF0u;
 const GL_MEDIUM_FLOAT:uint = 0x8DF1u;
 const GL_HIGH_FLOAT:uint = 0x8DF2u;
 const GL_FRAGMENT_SHADER_BIT:uint = 0x00000002u;
 const GL_GEOMETRY_SHADER_BIT:uint = 0x00000004u;
 const GL_TESS_CONTROL_SHADER_BIT:uint = 0x00000008u;
+const GL_TESS_EVALUATION_SHADER_BIT:uint = 0x00000010u;
 const GL_ALL_SHADER_BITS:uint = 0xFFFFFFFFu;
 const GL_PROGRAM_SEPARABLE:uint = 0x8258u;
 const GL_ACTIVE_PROGRAM:uint = 0x8259u;
 const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES:uint = 0x92C6u;
 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER:uint = 0x92C7u;
 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER:uint = 0x92C8u;
+const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER:uint = 0x92C9u;
 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER:uint = 0x92CAu;
 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER:uint = 0x92CBu;
 const GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS:uint = 0x92CCu;
 const GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS:uint = 0x92CDu;
+const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS:uint = 0x92CEu;
 const GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS:uint = 0x92CFu;
 const GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS:uint = 0x92D0u;
 const GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS:uint = 0x92D1u;
 const GL_MAX_VERTEX_ATOMIC_COUNTERS:uint = 0x92D2u;
 const GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS:uint = 0x92D3u;
+const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS:uint = 0x92D4u;
 const GL_MAX_GEOMETRY_ATOMIC_COUNTERS:uint = 0x92D5u;
 const GL_MAX_FRAGMENT_ATOMIC_COUNTERS:uint = 0x92D6u;
 const GL_MAX_COMBINED_ATOMIC_COUNTERS:uint = 0x92D7u;
 const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY:uint = 0x906Cu;
 const GL_MAX_IMAGE_SAMPLES:uint = 0x906Du;
 const GL_IMAGE_BINDING_FORMAT:uint = 0x906Eu;
+const GL_IMAGE_FORMAT_COMPATIBILITY_TYPE:uint = 0x90C7u;
+const GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE:uint = 0x90C8u;
+const GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS:uint = 0x90C9u;
 const GL_MAX_VERTEX_IMAGE_UNIFORMS:uint = 0x90CAu;
 const GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS:uint = 0x90CBu;
+const GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS:uint = 0x90CCu;
 const GL_MAX_GEOMETRY_IMAGE_UNIFORMS:uint = 0x90CDu;
 const GL_MAX_FRAGMENT_IMAGE_UNIFORMS:uint = 0x90CEu;
 const GL_MAX_COMBINED_IMAGE_UNIFORMS:uint = 0x90CFu;
 const GL_PHONG_HINT_WIN:uint = 0x80EBu;
 const GL_FOG_SPECULAR_TEXTURE_WIN:uint = 0x80ECu;
 const GL_SCREEN_COORDINATES_REND:uint = 0x8490u;
+const GL_INVERTED_SCREEN_W_REND:uint = 0x8491u;
 const GL_INTERLACE_OML:uint = 0x8980u;
 const GL_INTERLACE_READ_OML:uint = 0x8981u;
 const GL_FORMAT_SUBSAMPLE_24_24_OML:uint = 0x8982u;
 const GL_RGB4_S3TC:uint = 0x83A1u;
 const GL_RGBA_S3TC:uint = 0x83A2u;
 const GL_RGBA4_S3TC:uint = 0x83A3u;
+const GL_TEXTURE_1D_STACK_MESAX:uint = 0x8759u;
+const GL_TEXTURE_2D_STACK_MESAX:uint = 0x875Au;
+const GL_PROXY_TEXTURE_1D_STACK_MESAX:uint = 0x875Bu;
+const GL_PROXY_TEXTURE_2D_STACK_MESAX:uint = 0x875Cu;
+const GL_TEXTURE_1D_STACK_BINDING_MESAX:uint = 0x875Du;
+const GL_TEXTURE_2D_STACK_BINDING_MESAX:uint = 0x875Eu;
 const GL_ALPHA_SNORM:uint = 0x9010u;
 const GL_LUMINANCE_SNORM:uint = 0x9011u;
 const GL_LUMINANCE_ALPHA_SNORM:uint = 0x9012u;
 const GL_OML_subsample:uint = 1u;
 const GL_OML_resample:uint = 1u;
 const GL_S3_s3tc:uint = 1u;
+const GL_MESAX_texture_stack:uint = 1u;
 native mod GL {
     fn SDL_GL_SwapBuffers();
     fn glClearColor(red: f32, green: f32, blue: f32, alpha: f32) -> ();
     fn glFogi(pname: u32, param: i32) -> ();
     fn glFogfv(pname: u32, params: *f32) -> ();
     fn glFogiv(pname: u32, params: *i32) -> ();
+    fn glFeedbackBuffer(size: i32, type_: u32, buffer: *f32) -> ();
     fn glPassThrough(token: f32) -> ();
     fn glSelectBuffer(size: i32, buffer: *u32) -> ();
     fn glInitNames() -> ();
     fn glIsEnabledi(target: u32, index: u32) -> u8;
     fn glBindBufferRange(target: u32, index: u32, buffer: u32, offset: libc::intptr_t, size: libc::ptrdiff_t) -> ();
     fn glBindBufferBase(target: u32, index: u32, buffer: u32) -> ();
+    fn glTransformFeedbackVaryings(program: u32, count: i32, varyings: **u8, bufferMode: u32) -> ();
+    fn glGetTransformFeedbackVarying(program: u32, index: u32, bufSize: i32, length: *i32, size: *i32, type_: *u32, name: *u8) -> ();
     fn glClampColor(target: u32, clamp: u32) -> ();
     fn glBeginConditionalRender(id: u32, mode: u32) -> ();
     fn glEndConditionalRender() -> ();
     fn glGetProgramStageiv(program: u32, shadertype: u32, pname: u32, values: *i32) -> ();
     fn glPatchParameteri(pname: u32, value: i32) -> ();
     fn glPatchParameterfv(pname: u32, values: *f32) -> ();
+    fn glDeleteTransformFeedbacks(n: i32, ids: *u32) -> ();
+    fn glGenTransformFeedbacks(n: i32, ids: *u32) -> ();
+    fn glDrawTransformFeedbackStream(mode: u32, id: u32, stream: u32) -> ();
     fn glBeginQueryIndexed(target: u32, index: u32, id: u32) -> ();
     fn glEndQueryIndexed(target: u32, index: u32) -> ();
     fn glGetQueryIndexediv(target: u32, index: u32, pname: u32, params: *i32) -> ();
     fn glDrawArraysInstancedBaseInstance(mode: u32, first: i32, count: i32, primcount: i32, baseinstance: u32) -> ();
     fn glDrawElementsInstancedBaseInstance(mode: u32, count: i32, type_: u32, indices: *(), primcount: i32, baseinstance: u32) -> ();
     fn glDrawElementsInstancedBaseVertexBaseInstance(mode: u32, count: i32, type_: u32, indices: *(), primcount: i32, basevertex: i32, baseinstance: u32) -> ();
+    fn glDrawTransformFeedbackInstanced(mode: u32, id: u32, primcount: i32) -> ();
+    fn glDrawTransformFeedbackStreamInstanced(mode: u32, id: u32, stream: u32, primcount: i32) -> ();
     fn glGetInternalformativ(target: u32, internalformat: u32, pname: u32, bufSize: i32, params: *i32) -> ();
     fn glGetActiveAtomicCounterBufferiv(program: u32, bufferIndex: u32, pname: u32, params: *i32) -> ();
     fn glBindImageTexture(unit: u32, texture: u32, level: i32, layered: u8, layer: i32, access: u32, format: u32) -> ();
 fn glFogiv(pname: uint, params: *i32) -> () unsafe {
     ret GL::glFogiv(pname as u32, params);
 }
+fn glFeedbackBuffer(size: int, type_: uint, buffer: *f32) -> () unsafe {
+    ret GL::glFeedbackBuffer(size as i32, type_ as u32, buffer);
+}
 fn glPassThrough(token: float) -> () unsafe {
     ret GL::glPassThrough(token as f32);
 }
 fn glBindBufferBase(target: uint, index: uint, buffer: uint) -> () unsafe {
     ret GL::glBindBufferBase(target as u32, index as u32, buffer as u32);
 }
+fn glTransformFeedbackVaryings(program: uint, count: int, varyings: **u8, bufferMode: uint) -> () unsafe {
+    ret GL::glTransformFeedbackVaryings(program as u32, count as i32, varyings, bufferMode as u32);
+}
+fn glGetTransformFeedbackVarying(program: uint, index: uint, bufSize: int, length: *i32, size: *i32, type_: *u32, name: str) -> () unsafe {
+    let name_c_str = str::as_c_str(name) { |name_| name_ };
+    ret GL::glGetTransformFeedbackVarying(program as u32, index as u32, bufSize as i32, length, size, type_, name_c_str as *u8);
+}
 fn glClampColor(target: uint, clamp: uint) -> () unsafe {
     ret GL::glClampColor(target as u32, clamp as u32);
 }
 fn glPatchParameterfv(pname: uint, values: *f32) -> () unsafe {
     ret GL::glPatchParameterfv(pname as u32, values);
 }
+fn glDeleteTransformFeedbacks(n: int, ids: *u32) -> () unsafe {
+    ret GL::glDeleteTransformFeedbacks(n as i32, ids);
+}
+fn glGenTransformFeedbacks(n: int, ids: *u32) -> () unsafe {
+    ret GL::glGenTransformFeedbacks(n as i32, ids);
+}
+fn glDrawTransformFeedbackStream(mode: uint, id: uint, stream: uint) -> () unsafe {
+    ret GL::glDrawTransformFeedbackStream(mode as u32, id as u32, stream as u32);
+}
 fn glBeginQueryIndexed(target: uint, index: uint, id: uint) -> () unsafe {
     ret GL::glBeginQueryIndexed(target as u32, index as u32, id as u32);
 }
 fn glGetFloati_v(target: uint, index: uint, data: *f32) -> () unsafe {
     ret GL::glGetFloati_v(target as u32, index as u32, data);
 }
+fn glGetDoublei_v(target: uint, index: uint, data: *f64) -> () unsafe {
+    ret GL::glGetDoublei_v(target as u32, index as u32, data);
+}
 fn glDrawArraysInstancedBaseInstance(mode: uint, first: int, count: int, primcount: int, baseinstance: uint) -> () unsafe {
     ret GL::glDrawArraysInstancedBaseInstance(mode as u32, first as i32, count as i32, primcount as i32, baseinstance as u32);
 }
 fn glDrawElementsInstancedBaseVertexBaseInstance(mode: uint, count: int, type_: uint, indices: *(), primcount: int, basevertex: int, baseinstance: uint) -> () unsafe {
     ret GL::glDrawElementsInstancedBaseVertexBaseInstance(mode as u32, count as i32, type_ as u32, indices, primcount as i32, basevertex as i32, baseinstance as u32);
 }
+fn glDrawTransformFeedbackInstanced(mode: uint, id: uint, primcount: int) -> () unsafe {
+    ret GL::glDrawTransformFeedbackInstanced(mode as u32, id as u32, primcount as i32);
+}
+fn glDrawTransformFeedbackStreamInstanced(mode: uint, id: uint, stream: uint, primcount: int) -> () unsafe {
+    ret GL::glDrawTransformFeedbackStreamInstanced(mode as u32, id as u32, stream as u32, primcount as i32);
+}
 fn glGetInternalformativ(target: uint, internalformat: uint, pname: uint, bufSize: int, params: *i32) -> () unsafe {
     ret GL::glGetInternalformativ(target as u32, internalformat as u32, pname as u32, bufSize as i32, params);
 }
 }
 fn glTexStorage3D(target: uint, levels: int, internalformat: uint, width: int, height: int, depth: int) -> () unsafe {
     ret GL::glTexStorage3D(target as u32, levels as i32, internalformat as u32, width as i32, height as i32, depth as i32);
-}fn glGetDoublei_v(target: uint, index: uint, data: *f64) -> () unsafe {
-    ret GL::glGetDoublei_v(target as u32, index as u32, data);
 }