Commits

Joseph Marshall committed d4ed8ba Draft

Generate from es2 instead of opengl 3.

Comments (0)

Files changed (3)

 
 
 
-HEADER_FILES = ("/usr/include/GL/gl.h", "gl3.h")
+HEADER_FILES = ("/usr/include/GL/gl.h", "gl2.h")
 OUT = "gl.rs"
 SKIP = ('MESA', 'ATI', 'AMD', 'NV', 'APPLE', 'ARB', 'Feedback', 'SGI', 'SGIS',
     'SGIX', 'SUN', 'SUNX', 'IBM', 'GREMEDY', 'HP', 'INTEL', 'INGR', 'OES',
     "GLvoid*": "*libc::c_void",
     "GLvoid *": "*libc::c_void",
     "const GLubyte *": "*libc::c_uchar",
+    "const GLubyte*": "*libc::c_uchar",
     "GLenum": "libc::c_uint",
     "GLboolean": "libc::c_uchar",
     "GLsizeiptr": "libc::ptrdiff_t",
     "GLint64 *": "*libc::c_longlong",
     "GLint64": "libc::c_longlong",
     "GLuint64": "libc::c_ulonglong",
+    "khronos_float_t" :"libc::c_float",
+    "khronos_int32_t" :"libc::c_int",
+    "khronos_int8_t" :"libc::c_char",
 }
 class errors:
     unknown = set()
 funcs = []
 defined_funcs = set()
 def GLAPI(l):
-    m = re.match(r'GLAPI\s+([\w\s\*]+)\s+G?L?APIENTRY\s+(\w+)\s*\(([\w\s\,\*\[\]]+)\).*', l)
+    m = re.match(r'.*?(?:CALL|API)\s+([\w\s\*]+)\s+G?L?_?APIENTRY\s+(\w+)\s*\(([\w\s\,\*\[\]]+)\).*', l)
     if m:
         name = m.group(2)
         if name in defined_funcs:
 
 for l in r.split(";"):
     l = l.strip()
-    if l.startswith("GLAPI"):
+    if l.startswith("GLAPI") or l.startswith("GL_API"):
         GLAPI(l)
 
 def parse_params(ps):
 const GL_DOT3_RGB:uint = 0x86AEu;
 const GL_DOT3_RGBA:uint = 0x86AFu;
 const GL_CLAMP_TO_BORDER:uint = 0x812Du;
-type GLhalf = libc::c_ushort; 
+type GLchar = libc::c_uchar; 
+type GLfixed = libc::c_int; 
+const GL_ES_VERSION_2_0:uint = 1u;
+const GL_BLEND_EQUATION_RGB:uint = 0x8009u;
+const GL_BLEND_EQUATION_ALPHA:uint = 0x883Du;
 const GL_BLEND_DST_RGB:uint = 0x80C8u;
 const GL_BLEND_SRC_RGB:uint = 0x80C9u;
 const GL_BLEND_DST_ALPHA:uint = 0x80CAu;
 const GL_BLEND_SRC_ALPHA:uint = 0x80CBu;
-const GL_POINT_FADE_THRESHOLD_SIZE:uint = 0x8128u;
-const GL_DEPTH_COMPONENT16:uint = 0x81A5u;
-const GL_DEPTH_COMPONENT24:uint = 0x81A6u;
-const GL_DEPTH_COMPONENT32:uint = 0x81A7u;
-const GL_MIRRORED_REPEAT:uint = 0x8370u;
-const GL_MAX_TEXTURE_LOD_BIAS:uint = 0x84FDu;
-const GL_TEXTURE_LOD_BIAS:uint = 0x8501u;
-const GL_INCR_WRAP:uint = 0x8507u;
-const GL_DECR_WRAP:uint = 0x8508u;
-const GL_TEXTURE_DEPTH_SIZE:uint = 0x884Au;
-const GL_TEXTURE_COMPARE_MODE:uint = 0x884Cu;
-const GL_TEXTURE_COMPARE_FUNC:uint = 0x884Du;
-const GL_BUFFER_SIZE:uint = 0x8764u;
-const GL_BUFFER_USAGE:uint = 0x8765u;
-const GL_QUERY_COUNTER_BITS:uint = 0x8864u;
-const GL_CURRENT_QUERY:uint = 0x8865u;
-const GL_QUERY_RESULT:uint = 0x8866u;
-const GL_QUERY_RESULT_AVAILABLE:uint = 0x8867u;
 const GL_ARRAY_BUFFER:uint = 0x8892u;
 const GL_ELEMENT_ARRAY_BUFFER:uint = 0x8893u;
 const GL_ARRAY_BUFFER_BINDING:uint = 0x8894u;
 const GL_ELEMENT_ARRAY_BUFFER_BINDING:uint = 0x8895u;
-const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:uint = 0x889Fu;
-const GL_READ_ONLY:uint = 0x88B8u;
-const GL_WRITE_ONLY:uint = 0x88B9u;
-const GL_READ_WRITE:uint = 0x88BAu;
-const GL_BUFFER_ACCESS:uint = 0x88BBu;
-const GL_BUFFER_MAPPED:uint = 0x88BCu;
-const GL_BUFFER_MAP_POINTER:uint = 0x88BDu;
 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_SAMPLES_PASSED:uint = 0x8914u;
-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_VERTEX_ATTRIB_ARRAY_TYPE:uint = 0x8625u;
+const GL_BUFFER_SIZE:uint = 0x8764u;
+const GL_BUFFER_USAGE:uint = 0x8765u;
 const GL_CURRENT_VERTEX_ATTRIB:uint = 0x8626u;
-const GL_VERTEX_PROGRAM_POINT_SIZE:uint = 0x8642u;
-const GL_VERTEX_ATTRIB_ARRAY_POINTER:uint = 0x8645u;
 const GL_STENCIL_BACK_FUNC:uint = 0x8800u;
 const GL_STENCIL_BACK_FAIL:uint = 0x8801u;
 const GL_STENCIL_BACK_PASS_DEPTH_FAIL:uint = 0x8802u;
 const GL_STENCIL_BACK_PASS_DEPTH_PASS:uint = 0x8803u;
-const GL_MAX_DRAW_BUFFERS:uint = 0x8824u;
-const GL_DRAW_BUFFER0:uint = 0x8825u;
-const GL_DRAW_BUFFER1:uint = 0x8826u;
-const GL_DRAW_BUFFER2:uint = 0x8827u;
-const GL_DRAW_BUFFER3:uint = 0x8828u;
-const GL_DRAW_BUFFER4:uint = 0x8829u;
-const GL_DRAW_BUFFER5:uint = 0x882Au;
-const GL_DRAW_BUFFER6:uint = 0x882Bu;
-const GL_DRAW_BUFFER7:uint = 0x882Cu;
-const GL_DRAW_BUFFER8:uint = 0x882Du;
-const GL_DRAW_BUFFER9:uint = 0x882Eu;
-const GL_DRAW_BUFFER10:uint = 0x882Fu;
-const GL_DRAW_BUFFER11:uint = 0x8830u;
-const GL_DRAW_BUFFER12:uint = 0x8831u;
-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_STENCIL_BACK_REF:uint = 0x8CA3u;
+const GL_STENCIL_BACK_VALUE_MASK:uint = 0x8CA4u;
+const GL_STENCIL_BACK_WRITEMASK:uint = 0x8CA5u;
+const GL_GENERATE_MIPMAP_HINT:uint = 0x8192u;
+const GL_FIXED:uint = 0x140Cu;
 const GL_FRAGMENT_SHADER:uint = 0x8B30u;
 const GL_VERTEX_SHADER:uint = 0x8B31u;
-const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:uint = 0x8B49u;
-const GL_MAX_VERTEX_UNIFORM_COMPONENTS:uint = 0x8B4Au;
-const GL_MAX_VARYING_FLOATS:uint = 0x8B4Bu;
+const GL_MAX_VERTEX_ATTRIBS:uint = 0x8869u;
+const GL_MAX_VERTEX_UNIFORM_VECTORS:uint = 0x8DFBu;
+const GL_MAX_VARYING_VECTORS:uint = 0x8DFCu;
+const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:uint = 0x8B4Du;
 const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:uint = 0x8B4Cu;
-const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:uint = 0x8B4Du;
+const GL_MAX_TEXTURE_IMAGE_UNITS:uint = 0x8872u;
+const GL_MAX_FRAGMENT_UNIFORM_VECTORS:uint = 0x8DFDu;
 const GL_SHADER_TYPE:uint = 0x8B4Fu;
+const GL_DELETE_STATUS:uint = 0x8B80u;
+const GL_LINK_STATUS:uint = 0x8B82u;
+const GL_VALIDATE_STATUS:uint = 0x8B83u;
+const GL_ATTACHED_SHADERS:uint = 0x8B85u;
+const GL_ACTIVE_UNIFORMS:uint = 0x8B86u;
+const GL_ACTIVE_UNIFORM_MAX_LENGTH:uint = 0x8B87u;
+const GL_ACTIVE_ATTRIBUTES:uint = 0x8B89u;
+const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:uint = 0x8B8Au;
+const GL_SHADING_LANGUAGE_VERSION:uint = 0x8B8Cu;
+const GL_CURRENT_PROGRAM:uint = 0x8B8Du;
+const GL_INCR_WRAP:uint = 0x8507u;
+const GL_DECR_WRAP:uint = 0x8508u;
+const GL_MIRRORED_REPEAT:uint = 0x8370u;
 const GL_FLOAT_VEC2:uint = 0x8B50u;
 const GL_FLOAT_VEC3:uint = 0x8B51u;
 const GL_FLOAT_VEC4:uint = 0x8B52u;
 const GL_FLOAT_MAT2:uint = 0x8B5Au;
 const GL_FLOAT_MAT3:uint = 0x8B5Bu;
 const GL_FLOAT_MAT4:uint = 0x8B5Cu;
-const GL_SAMPLER_1D:uint = 0x8B5Du;
 const GL_SAMPLER_2D:uint = 0x8B5Eu;
-const GL_SAMPLER_3D:uint = 0x8B5Fu;
 const GL_SAMPLER_CUBE:uint = 0x8B60u;
-const GL_SAMPLER_1D_SHADOW:uint = 0x8B61u;
-const GL_SAMPLER_2D_SHADOW:uint = 0x8B62u;
-const GL_DELETE_STATUS:uint = 0x8B80u;
+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_VERTEX_ATTRIB_ARRAY_TYPE:uint = 0x8625u;
+const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:uint = 0x886Au;
+const GL_VERTEX_ATTRIB_ARRAY_POINTER:uint = 0x8645u;
+const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:uint = 0x889Fu;
+const GL_IMPLEMENTATION_COLOR_READ_TYPE:uint = 0x8B9Au;
+const GL_IMPLEMENTATION_COLOR_READ_FORMAT:uint = 0x8B9Bu;
 const GL_COMPILE_STATUS:uint = 0x8B81u;
-const GL_LINK_STATUS:uint = 0x8B82u;
-const GL_VALIDATE_STATUS:uint = 0x8B83u;
 const GL_INFO_LOG_LENGTH:uint = 0x8B84u;
-const GL_ATTACHED_SHADERS:uint = 0x8B85u;
-const GL_ACTIVE_UNIFORMS:uint = 0x8B86u;
-const GL_ACTIVE_UNIFORM_MAX_LENGTH:uint = 0x8B87u;
 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_LOWER_LEFT:uint = 0x8CA1u;
-const GL_UPPER_LEFT:uint = 0x8CA2u;
-const GL_STENCIL_BACK_REF:uint = 0x8CA3u;
-const GL_STENCIL_BACK_VALUE_MASK:uint = 0x8CA4u;
-const GL_STENCIL_BACK_WRITEMASK:uint = 0x8CA5u;
-const GL_PIXEL_PACK_BUFFER:uint = 0x88EBu;
-const GL_PIXEL_UNPACK_BUFFER:uint = 0x88ECu;
-const GL_PIXEL_PACK_BUFFER_BINDING:uint = 0x88EDu;
-const GL_PIXEL_UNPACK_BUFFER_BINDING:uint = 0x88EFu;
-const GL_FLOAT_MAT2x3:uint = 0x8B65u;
-const GL_FLOAT_MAT2x4:uint = 0x8B66u;
-const GL_FLOAT_MAT3x2:uint = 0x8B67u;
-const GL_FLOAT_MAT3x4:uint = 0x8B68u;
-const GL_FLOAT_MAT4x2:uint = 0x8B69u;
-const GL_FLOAT_MAT4x3:uint = 0x8B6Au;
-const GL_SRGB:uint = 0x8C40u;
-const GL_SRGB8:uint = 0x8C41u;
-const GL_SRGB_ALPHA:uint = 0x8C42u;
-const GL_SRGB8_ALPHA8:uint = 0x8C43u;
-const GL_COMPRESSED_SRGB:uint = 0x8C48u;
-const GL_COMPRESSED_SRGB_ALPHA:uint = 0x8C49u;
-const GL_COMPARE_REF_TO_TEXTURE:uint = 0x884Eu;
-const GL_CLIP_DISTANCE0:uint = 0x3000u;
-const GL_CLIP_DISTANCE1:uint = 0x3001u;
-const GL_CLIP_DISTANCE2:uint = 0x3002u;
-const GL_CLIP_DISTANCE3:uint = 0x3003u;
-const GL_CLIP_DISTANCE4:uint = 0x3004u;
-const GL_CLIP_DISTANCE5:uint = 0x3005u;
-const GL_CLIP_DISTANCE6:uint = 0x3006u;
-const GL_CLIP_DISTANCE7:uint = 0x3007u;
-const GL_MAX_CLIP_DISTANCES:uint = 0x0D32u;
-const GL_MAJOR_VERSION:uint = 0x821Bu;
-const GL_MINOR_VERSION:uint = 0x821Cu;
-const GL_NUM_EXTENSIONS:uint = 0x821Du;
-const GL_CONTEXT_FLAGS:uint = 0x821Eu;
-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_RGB16F:uint = 0x881Bu;
-const GL_VERTEX_ATTRIB_ARRAY_INTEGER:uint = 0x88FDu;
-const GL_MAX_ARRAY_TEXTURE_LAYERS:uint = 0x88FFu;
-const GL_MIN_PROGRAM_TEXEL_OFFSET:uint = 0x8904u;
-const GL_MAX_PROGRAM_TEXEL_OFFSET:uint = 0x8905u;
-const GL_CLAMP_READ_COLOR:uint = 0x891Cu;
-const GL_FIXED_ONLY:uint = 0x891Du;
-const GL_MAX_VARYING_COMPONENTS:uint = 0x8B4Bu;
-const GL_TEXTURE_1D_ARRAY:uint = 0x8C18u;
-const GL_PROXY_TEXTURE_1D_ARRAY:uint = 0x8C19u;
-const GL_TEXTURE_2D_ARRAY:uint = 0x8C1Au;
-const GL_PROXY_TEXTURE_2D_ARRAY:uint = 0x8C1Bu;
-const GL_TEXTURE_BINDING_1D_ARRAY:uint = 0x8C1Cu;
-const GL_TEXTURE_BINDING_2D_ARRAY:uint = 0x8C1Du;
-const GL_R11F_G11F_B10F:uint = 0x8C3Au;
-const GL_UNSIGNED_INT_10F_11F_11F_REV:uint = 0x8C3Bu;
-const GL_RGB9_E5:uint = 0x8C3Du;
-const GL_UNSIGNED_INT_5_9_9_9_REV:uint = 0x8C3Eu;
-const GL_TEXTURE_SHARED_SIZE:uint = 0x8C3Fu;
-const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH:uint = 0x8C76u;
-const GL_TRANSFORM_FEEDBACK_BUFFER_MODE:uint = 0x8C7Fu;
-const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:uint = 0x8C80u;
-const GL_TRANSFORM_FEEDBACK_VARYINGS:uint = 0x8C83u;
-const GL_TRANSFORM_FEEDBACK_BUFFER_START:uint = 0x8C84u;
-const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE:uint = 0x8C85u;
-const GL_PRIMITIVES_GENERATED:uint = 0x8C87u;
-const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:uint = 0x8C88u;
-const GL_RASTERIZER_DISCARD:uint = 0x8C89u;
-const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:uint = 0x8C8Au;
-const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:uint = 0x8C8Bu;
-const GL_INTERLEAVED_ATTRIBS:uint = 0x8C8Cu;
-const GL_SEPARATE_ATTRIBS:uint = 0x8C8Du;
-const GL_TRANSFORM_FEEDBACK_BUFFER:uint = 0x8C8Eu;
-const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:uint = 0x8C8Fu;
-const GL_RGBA32UI:uint = 0x8D70u;
-const GL_RGB32UI:uint = 0x8D71u;
-const GL_RGBA16UI:uint = 0x8D76u;
-const GL_RGB16UI:uint = 0x8D77u;
-const GL_RGBA8UI:uint = 0x8D7Cu;
-const GL_RGB8UI:uint = 0x8D7Du;
-const GL_RGBA32I:uint = 0x8D82u;
-const GL_RGB32I:uint = 0x8D83u;
-const GL_RGBA16I:uint = 0x8D88u;
-const GL_RGB16I:uint = 0x8D89u;
-const GL_RGBA8I:uint = 0x8D8Eu;
-const GL_RGB8I:uint = 0x8D8Fu;
-const GL_RED_INTEGER:uint = 0x8D94u;
-const GL_GREEN_INTEGER:uint = 0x8D95u;
-const GL_BLUE_INTEGER:uint = 0x8D96u;
-const GL_RGB_INTEGER:uint = 0x8D98u;
-const GL_RGBA_INTEGER:uint = 0x8D99u;
-const GL_BGR_INTEGER:uint = 0x8D9Au;
-const GL_BGRA_INTEGER:uint = 0x8D9Bu;
-const GL_SAMPLER_1D_ARRAY:uint = 0x8DC0u;
-const GL_SAMPLER_2D_ARRAY:uint = 0x8DC1u;
-const GL_SAMPLER_1D_ARRAY_SHADOW:uint = 0x8DC3u;
-const GL_SAMPLER_2D_ARRAY_SHADOW:uint = 0x8DC4u;
-const GL_SAMPLER_CUBE_SHADOW:uint = 0x8DC5u;
-const GL_UNSIGNED_INT_VEC2:uint = 0x8DC6u;
-const GL_UNSIGNED_INT_VEC3:uint = 0x8DC7u;
-const GL_UNSIGNED_INT_VEC4:uint = 0x8DC8u;
-const GL_INT_SAMPLER_1D:uint = 0x8DC9u;
-const GL_INT_SAMPLER_2D:uint = 0x8DCAu;
-const GL_INT_SAMPLER_3D:uint = 0x8DCBu;
-const GL_INT_SAMPLER_CUBE:uint = 0x8DCCu;
-const GL_INT_SAMPLER_1D_ARRAY:uint = 0x8DCEu;
-const GL_INT_SAMPLER_2D_ARRAY:uint = 0x8DCFu;
-const GL_UNSIGNED_INT_SAMPLER_1D:uint = 0x8DD1u;
-const GL_UNSIGNED_INT_SAMPLER_2D:uint = 0x8DD2u;
-const GL_UNSIGNED_INT_SAMPLER_3D:uint = 0x8DD3u;
-const GL_UNSIGNED_INT_SAMPLER_CUBE:uint = 0x8DD4u;
-const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY:uint = 0x8DD6u;
-const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:uint = 0x8DD7u;
-const GL_QUERY_WAIT:uint = 0x8E13u;
-const GL_QUERY_NO_WAIT:uint = 0x8E14u;
-const GL_QUERY_BY_REGION_WAIT:uint = 0x8E15u;
-const GL_QUERY_BY_REGION_NO_WAIT:uint = 0x8E16u;
-const GL_BUFFER_ACCESS_FLAGS:uint = 0x911Fu;
-const GL_BUFFER_MAP_LENGTH:uint = 0x9120u;
-const GL_BUFFER_MAP_OFFSET:uint = 0x9121u;
-const GL_SAMPLER_2D_RECT:uint = 0x8B63u;
-const GL_SAMPLER_2D_RECT_SHADOW:uint = 0x8B64u;
-const GL_SAMPLER_BUFFER:uint = 0x8DC2u;
-const GL_INT_SAMPLER_2D_RECT:uint = 0x8DCDu;
-const GL_INT_SAMPLER_BUFFER:uint = 0x8DD0u;
-const GL_UNSIGNED_INT_SAMPLER_2D_RECT:uint = 0x8DD5u;
-const GL_UNSIGNED_INT_SAMPLER_BUFFER:uint = 0x8DD8u;
-const GL_TEXTURE_BUFFER:uint = 0x8C2Au;
-const GL_MAX_TEXTURE_BUFFER_SIZE:uint = 0x8C2Bu;
-const GL_TEXTURE_BINDING_BUFFER:uint = 0x8C2Cu;
-const GL_TEXTURE_BUFFER_DATA_STORE_BINDING:uint = 0x8C2Du;
-const GL_TEXTURE_BUFFER_FORMAT:uint = 0x8C2Eu;
-const GL_TEXTURE_RECTANGLE:uint = 0x84F5u;
-const GL_TEXTURE_BINDING_RECTANGLE:uint = 0x84F6u;
-const GL_PROXY_TEXTURE_RECTANGLE:uint = 0x84F7u;
-const GL_MAX_RECTANGLE_TEXTURE_SIZE:uint = 0x84F8u;
-const GL_RED_SNORM:uint = 0x8F90u;
-const GL_RG_SNORM:uint = 0x8F91u;
-const GL_RGB_SNORM:uint = 0x8F92u;
-const GL_RGBA_SNORM:uint = 0x8F93u;
-const GL_R8_SNORM:uint = 0x8F94u;
-const GL_RG8_SNORM:uint = 0x8F95u;
-const GL_RGB8_SNORM:uint = 0x8F96u;
-const GL_RGBA8_SNORM:uint = 0x8F97u;
-const GL_R16_SNORM:uint = 0x8F98u;
-const GL_RG16_SNORM:uint = 0x8F99u;
-const GL_RGB16_SNORM:uint = 0x8F9Au;
-const GL_RGBA16_SNORM:uint = 0x8F9Bu;
-const GL_SIGNED_NORMALIZED:uint = 0x8F9Cu;
-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_TRIANGLE_STRIP_ADJACENCY:uint = 0x000Du;
-const GL_PROGRAM_POINT_SIZE:uint = 0x8642u;
-const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS:uint = 0x8C29u;
-const GL_FRAMEBUFFER_ATTACHMENT_LAYERED:uint = 0x8DA7u;
-const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS:uint = 0x8DA8u;
-const GL_GEOMETRY_SHADER:uint = 0x8DD9u;
-const GL_GEOMETRY_VERTICES_OUT:uint = 0x8916u;
-const GL_GEOMETRY_INPUT_TYPE:uint = 0x8917u;
-const GL_GEOMETRY_OUTPUT_TYPE:uint = 0x8918u;
-const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS:uint = 0x8DDFu;
-const GL_MAX_GEOMETRY_OUTPUT_VERTICES:uint = 0x8DE0u;
-const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:uint = 0x8DE1u;
-const GL_MAX_VERTEX_OUTPUT_COMPONENTS:uint = 0x9122u;
-const GL_MAX_GEOMETRY_INPUT_COMPONENTS:uint = 0x9123u;
-const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS:uint = 0x9124u;
-const GL_MAX_FRAGMENT_INPUT_COMPONENTS:uint = 0x9125u;
-const GL_CONTEXT_PROFILE_MASK:uint = 0x9126u;
-const GL_VERTEX_ATTRIB_ARRAY_DIVISOR:uint = 0x88FEu;
-const GL_SAMPLE_SHADING:uint = 0x8C36u;
-const GL_MIN_SAMPLE_SHADING_VALUE:uint = 0x8C37u;
-const GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET:uint = 0x8E5Eu;
-const GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET:uint = 0x8E5Fu;
-const GL_TEXTURE_CUBE_MAP_ARRAY:uint = 0x9009u;
-const GL_TEXTURE_BINDING_CUBE_MAP_ARRAY:uint = 0x900Au;
-const GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:uint = 0x900Bu;
-const GL_SAMPLER_CUBE_MAP_ARRAY:uint = 0x900Cu;
-const GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW:uint = 0x900Du;
-const GL_INT_SAMPLER_CUBE_MAP_ARRAY:uint = 0x900Eu;
-const GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY:uint = 0x900Fu;
-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_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:uint = 0x8213u;
-const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:uint = 0x8214u;
-const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:uint = 0x8215u;
-const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:uint = 0x8216u;
-const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:uint = 0x8217u;
-const GL_FRAMEBUFFER_DEFAULT:uint = 0x8218u;
-const GL_FRAMEBUFFER_UNDEFINED:uint = 0x8219u;
-const GL_DEPTH_STENCIL_ATTACHMENT:uint = 0x821Au;
-const GL_MAX_RENDERBUFFER_SIZE:uint = 0x84E8u;
-const GL_DEPTH_STENCIL:uint = 0x84F9u;
-const GL_UNSIGNED_INT_24_8:uint = 0x84FAu;
-const GL_DEPTH24_STENCIL8:uint = 0x88F0u;
-const GL_TEXTURE_STENCIL_SIZE:uint = 0x88F1u;
-const GL_TEXTURE_RED_TYPE:uint = 0x8C10u;
-const GL_TEXTURE_GREEN_TYPE:uint = 0x8C11u;
-const GL_TEXTURE_BLUE_TYPE:uint = 0x8C12u;
-const GL_TEXTURE_ALPHA_TYPE:uint = 0x8C13u;
-const GL_TEXTURE_DEPTH_TYPE:uint = 0x8C16u;
-const GL_UNSIGNED_NORMALIZED:uint = 0x8C17u;
-const GL_FRAMEBUFFER_BINDING:uint = 0x8CA6u;
-const GL_DRAW_FRAMEBUFFER_BINDING:uint = 0x8CA6u;
-const GL_RENDERBUFFER_BINDING:uint = 0x8CA7u;
-const GL_READ_FRAMEBUFFER:uint = 0x8CA8u;
-const GL_DRAW_FRAMEBUFFER:uint = 0x8CA9u;
-const GL_READ_FRAMEBUFFER_BINDING:uint = 0x8CAAu;
-const GL_RENDERBUFFER_SAMPLES:uint = 0x8CABu;
-const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:uint = 0x8CD0u;
-const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:uint = 0x8CD1u;
-const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:uint = 0x8CD2u;
-const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:uint = 0x8CD3u;
-const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:uint = 0x8CD4u;
-const GL_FRAMEBUFFER_COMPLETE:uint = 0x8CD5u;
-const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:uint = 0x8CD6u;
-const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:uint = 0x8CD7u;
-const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:uint = 0x8CDBu;
-const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:uint = 0x8CDCu;
-const GL_FRAMEBUFFER_UNSUPPORTED:uint = 0x8CDDu;
-const GL_MAX_COLOR_ATTACHMENTS:uint = 0x8CDFu;
-const GL_COLOR_ATTACHMENT0:uint = 0x8CE0u;
-const GL_COLOR_ATTACHMENT1:uint = 0x8CE1u;
-const GL_COLOR_ATTACHMENT2:uint = 0x8CE2u;
-const GL_COLOR_ATTACHMENT3:uint = 0x8CE3u;
-const GL_COLOR_ATTACHMENT4:uint = 0x8CE4u;
-const GL_COLOR_ATTACHMENT5:uint = 0x8CE5u;
-const GL_COLOR_ATTACHMENT6:uint = 0x8CE6u;
-const GL_COLOR_ATTACHMENT7:uint = 0x8CE7u;
-const GL_COLOR_ATTACHMENT8:uint = 0x8CE8u;
-const GL_COLOR_ATTACHMENT9:uint = 0x8CE9u;
-const GL_COLOR_ATTACHMENT10:uint = 0x8CEAu;
-const GL_COLOR_ATTACHMENT11:uint = 0x8CEBu;
-const GL_COLOR_ATTACHMENT12:uint = 0x8CECu;
-const GL_COLOR_ATTACHMENT13:uint = 0x8CEDu;
-const GL_COLOR_ATTACHMENT14:uint = 0x8CEEu;
-const GL_COLOR_ATTACHMENT15:uint = 0x8CEFu;
-const GL_DEPTH_ATTACHMENT:uint = 0x8D00u;
-const GL_STENCIL_ATTACHMENT:uint = 0x8D20u;
+const GL_SHADER_COMPILER:uint = 0x8DFAu;
+const GL_SHADER_BINARY_FORMATS:uint = 0x8DF8u;
+const GL_NUM_SHADER_BINARY_FORMATS:uint = 0x8DF9u;
+const GL_LOW_FLOAT:uint = 0x8DF0u;
+const GL_MEDIUM_FLOAT:uint = 0x8DF1u;
+const GL_HIGH_FLOAT:uint = 0x8DF2u;
+const GL_LOW_INT:uint = 0x8DF3u;
+const GL_MEDIUM_INT:uint = 0x8DF4u;
+const GL_HIGH_INT:uint = 0x8DF5u;
 const GL_FRAMEBUFFER:uint = 0x8D40u;
 const GL_RENDERBUFFER:uint = 0x8D41u;
+const GL_RGB565:uint = 0x8D62u;
+const GL_DEPTH_COMPONENT16:uint = 0x81A5u;
+const GL_STENCIL_INDEX8:uint = 0x8D48u;
 const GL_RENDERBUFFER_WIDTH:uint = 0x8D42u;
 const GL_RENDERBUFFER_HEIGHT:uint = 0x8D43u;
 const GL_RENDERBUFFER_INTERNAL_FORMAT:uint = 0x8D44u;
-const GL_STENCIL_INDEX1:uint = 0x8D46u;
-const GL_STENCIL_INDEX4:uint = 0x8D47u;
-const GL_STENCIL_INDEX8:uint = 0x8D48u;
-const GL_STENCIL_INDEX16:uint = 0x8D49u;
 const GL_RENDERBUFFER_RED_SIZE:uint = 0x8D50u;
 const GL_RENDERBUFFER_GREEN_SIZE:uint = 0x8D51u;
 const GL_RENDERBUFFER_BLUE_SIZE:uint = 0x8D52u;
 const GL_RENDERBUFFER_ALPHA_SIZE:uint = 0x8D53u;
 const GL_RENDERBUFFER_DEPTH_SIZE:uint = 0x8D54u;
 const GL_RENDERBUFFER_STENCIL_SIZE:uint = 0x8D55u;
-const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:uint = 0x8D56u;
-const GL_MAX_SAMPLES:uint = 0x8D57u;
-const GL_FRAMEBUFFER_SRGB:uint = 0x8DB9u;
-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_COMPRESSED_SIGNED_RED_RGTC1:uint = 0x8DBCu;
-const GL_COMPRESSED_RG_RGTC2:uint = 0x8DBDu;
-const GL_COMPRESSED_SIGNED_RG_RGTC2:uint = 0x8DBEu;
-const GL_RG:uint = 0x8227u;
-const GL_RG_INTEGER:uint = 0x8228u;
-const GL_R8:uint = 0x8229u;
-const GL_R16:uint = 0x822Au;
-const GL_RG8:uint = 0x822Bu;
-const GL_RG16:uint = 0x822Cu;
-const GL_R16F:uint = 0x822Du;
-const GL_R32F:uint = 0x822Eu;
-const GL_RG16F:uint = 0x822Fu;
-const GL_RG32F:uint = 0x8230u;
-const GL_R8I:uint = 0x8231u;
-const GL_R8UI:uint = 0x8232u;
-const GL_R16I:uint = 0x8233u;
-const GL_R16UI:uint = 0x8234u;
-const GL_R32I:uint = 0x8235u;
-const GL_R32UI:uint = 0x8236u;
-const GL_RG8I:uint = 0x8237u;
-const GL_RG8UI:uint = 0x8238u;
-const GL_RG16I:uint = 0x8239u;
-const GL_RG16UI:uint = 0x823Au;
-const GL_RG32I:uint = 0x823Bu;
-const GL_RG32UI:uint = 0x823Cu;
-const GL_VERTEX_ARRAY_BINDING:uint = 0x85B5u;
-const GL_UNIFORM_BUFFER:uint = 0x8A11u;
-const GL_UNIFORM_BUFFER_BINDING:uint = 0x8A28u;
-const GL_UNIFORM_BUFFER_START:uint = 0x8A29u;
-const GL_UNIFORM_BUFFER_SIZE:uint = 0x8A2Au;
-const GL_MAX_VERTEX_UNIFORM_BLOCKS:uint = 0x8A2Bu;
-const GL_MAX_GEOMETRY_UNIFORM_BLOCKS:uint = 0x8A2Cu;
-const GL_MAX_FRAGMENT_UNIFORM_BLOCKS:uint = 0x8A2Du;
-const GL_MAX_COMBINED_UNIFORM_BLOCKS:uint = 0x8A2Eu;
-const GL_MAX_UNIFORM_BUFFER_BINDINGS:uint = 0x8A2Fu;
-const GL_MAX_UNIFORM_BLOCK_SIZE:uint = 0x8A30u;
-const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:uint = 0x8A31u;
-const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS:uint = 0x8A32u;
-const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:uint = 0x8A33u;
-const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:uint = 0x8A34u;
-const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH:uint = 0x8A35u;
-const GL_ACTIVE_UNIFORM_BLOCKS:uint = 0x8A36u;
-const GL_UNIFORM_TYPE:uint = 0x8A37u;
-const GL_UNIFORM_SIZE:uint = 0x8A38u;
-const GL_UNIFORM_NAME_LENGTH:uint = 0x8A39u;
-const GL_UNIFORM_BLOCK_INDEX:uint = 0x8A3Au;
-const GL_UNIFORM_OFFSET:uint = 0x8A3Bu;
-const GL_UNIFORM_ARRAY_STRIDE:uint = 0x8A3Cu;
-const GL_UNIFORM_MATRIX_STRIDE:uint = 0x8A3Du;
-const GL_UNIFORM_IS_ROW_MAJOR:uint = 0x8A3Eu;
-const GL_UNIFORM_BLOCK_BINDING:uint = 0x8A3Fu;
-const GL_UNIFORM_BLOCK_DATA_SIZE:uint = 0x8A40u;
-const GL_UNIFORM_BLOCK_NAME_LENGTH:uint = 0x8A41u;
-const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS:uint = 0x8A42u;
-const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:uint = 0x8A43u;
-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_BINDING:uint = 0x8F36u;
-const GL_COPY_READ_BUFFER:uint = 0x8F36u;
-const GL_COPY_WRITE_BUFFER_BINDING:uint = 0x8F37u;
-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_OBJECT_TYPE:uint = 0x9112u;
-const GL_SYNC_CONDITION:uint = 0x9113u;
-const GL_SYNC_STATUS:uint = 0x9114u;
-const GL_SYNC_FLAGS:uint = 0x9115u;
-const GL_SYNC_FENCE:uint = 0x9116u;
-const GL_SYNC_GPU_COMMANDS_COMPLETE:uint = 0x9117u;
-const GL_UNSIGNALED:uint = 0x9118u;
-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_SAMPLE_POSITION:uint = 0x8E50u;
-const GL_SAMPLE_MASK:uint = 0x8E51u;
-const GL_SAMPLE_MASK_VALUE:uint = 0x8E52u;
-const GL_MAX_SAMPLE_MASK_WORDS:uint = 0x8E59u;
-const GL_TEXTURE_2D_MULTISAMPLE:uint = 0x9100u;
-const GL_PROXY_TEXTURE_2D_MULTISAMPLE:uint = 0x9101u;
-const GL_TEXTURE_2D_MULTISAMPLE_ARRAY:uint = 0x9102u;
-const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY:uint = 0x9103u;
-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_SAMPLER_2D_MULTISAMPLE_ARRAY:uint = 0x910Bu;
-const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY:uint = 0x910Cu;
-const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY:uint = 0x910Du;
-const GL_MAX_COLOR_TEXTURE_SAMPLES:uint = 0x910Eu;
-const GL_MAX_DEPTH_TEXTURE_SAMPLES:uint = 0x910Fu;
-const GL_MAX_INTEGER_SAMPLES:uint = 0x9110u;
-const GL_SRC1_COLOR:uint = 0x88F9u;
-const GL_ONE_MINUS_SRC1_COLOR:uint = 0x88FAu;
-const GL_ONE_MINUS_SRC1_ALPHA:uint = 0x88FBu;
-const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS:uint = 0x88FCu;
-const GL_ANY_SAMPLES_PASSED:uint = 0x8C2Fu;
-const GL_SAMPLER_BINDING:uint = 0x8919u;
-const GL_RGB10_A2UI:uint = 0x906Fu;
-const GL_TEXTURE_SWIZZLE_R:uint = 0x8E42u;
-const GL_TEXTURE_SWIZZLE_G:uint = 0x8E43u;
-const GL_TEXTURE_SWIZZLE_B:uint = 0x8E44u;
-const GL_TEXTURE_SWIZZLE_A:uint = 0x8E45u;
-const GL_TEXTURE_SWIZZLE_RGBA:uint = 0x8E46u;
-const GL_TIME_ELAPSED:uint = 0x88BFu;
-const GL_TIMESTAMP:uint = 0x8E28u;
-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_MAT2:uint = 0x8F46u;
-const GL_DOUBLE_MAT3:uint = 0x8F47u;
-const GL_DOUBLE_MAT4:uint = 0x8F48u;
-const GL_DOUBLE_MAT2x3:uint = 0x8F49u;
-const GL_DOUBLE_MAT2x4:uint = 0x8F4Au;
-const GL_DOUBLE_MAT3x2:uint = 0x8F4Bu;
-const GL_DOUBLE_MAT3x4:uint = 0x8F4Cu;
-const GL_DOUBLE_MAT4x2:uint = 0x8F4Du;
-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_PATCH_DEFAULT_OUTER_LEVEL:uint = 0x8E74u;
-const GL_TESS_CONTROL_OUTPUT_VERTICES:uint = 0x8E75u;
-const GL_TESS_GEN_MODE:uint = 0x8E76u;
-const GL_TESS_GEN_SPACING:uint = 0x8E77u;
-const GL_TESS_GEN_VERTEX_ORDER:uint = 0x8E78u;
-const GL_TESS_GEN_POINT_MODE:uint = 0x8E79u;
-const GL_ISOLINES:uint = 0x8E7Au;
-const GL_FRACTIONAL_ODD:uint = 0x8E7Bu;
-const GL_FRACTIONAL_EVEN:uint = 0x8E7Cu;
-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_PAUSED:uint = 0x8E23u;
-const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED:uint = 0x8E23u;
-const GL_TRANSFORM_FEEDBACK_ACTIVE:uint = 0x8E24u;
-const GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE:uint = 0x8E24u;
-const GL_TRANSFORM_FEEDBACK_BINDING:uint = 0x8E25u;
-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_LOW_INT:uint = 0x8DF3u;
-const GL_MEDIUM_INT:uint = 0x8DF4u;
-const GL_HIGH_INT:uint = 0x8DF5u;
-const GL_SHADER_COMPILER:uint = 0x8DFAu;
-const GL_NUM_SHADER_BINARY_FORMATS:uint = 0x8DF9u;
-const GL_MAX_VERTEX_UNIFORM_VECTORS:uint = 0x8DFBu;
-const GL_MAX_VARYING_VECTORS:uint = 0x8DFCu;
-const GL_MAX_FRAGMENT_UNIFORM_VECTORS:uint = 0x8DFDu;
-const GL_RGB565:uint = 0x8D62u;
-const GL_PROGRAM_BINARY_RETRIEVABLE_HINT:uint = 0x8257u;
-const GL_PROGRAM_BINARY_LENGTH:uint = 0x8741u;
-const GL_NUM_PROGRAM_BINARY_FORMATS:uint = 0x87FEu;
-const GL_PROGRAM_BINARY_FORMATS:uint = 0x87FFu;
-const GL_VERTEX_SHADER_BIT:uint = 0x00000001u;
-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_PROGRAM_PIPELINE_BINDING:uint = 0x825Au;
-const GL_MAX_VIEWPORTS:uint = 0x825Bu;
-const GL_VIEWPORT_SUBPIXEL_BITS:uint = 0x825Cu;
-const GL_VIEWPORT_BOUNDS_RANGE:uint = 0x825Du;
-const GL_LAYER_PROVOKING_VERTEX:uint = 0x825Eu;
-const GL_VIEWPORT_INDEX_PROVOKING_VERTEX:uint = 0x825Fu;
-const GL_UNDEFINED_VERTEX:uint = 0x8260u;
-const GL_UNPACK_COMPRESSED_BLOCK_WIDTH:uint = 0x9127u;
-const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT:uint = 0x9128u;
-const GL_UNPACK_COMPRESSED_BLOCK_DEPTH:uint = 0x9129u;
-const GL_UNPACK_COMPRESSED_BLOCK_SIZE:uint = 0x912Au;
-const GL_PACK_COMPRESSED_BLOCK_WIDTH:uint = 0x912Bu;
-const GL_PACK_COMPRESSED_BLOCK_HEIGHT:uint = 0x912Cu;
-const GL_PACK_COMPRESSED_BLOCK_DEPTH:uint = 0x912Du;
-const GL_PACK_COMPRESSED_BLOCK_SIZE:uint = 0x912Eu;
-const GL_NUM_SAMPLE_COUNTS:uint = 0x9380u;
-const GL_MIN_MAP_BUFFER_ALIGNMENT:uint = 0x90BCu;
-const GL_ATOMIC_COUNTER_BUFFER:uint = 0x92C0u;
-const GL_ATOMIC_COUNTER_BUFFER_BINDING:uint = 0x92C1u;
-const GL_ATOMIC_COUNTER_BUFFER_START:uint = 0x92C2u;
-const GL_ATOMIC_COUNTER_BUFFER_SIZE:uint = 0x92C3u;
-const GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE:uint = 0x92C4u;
-const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS:uint = 0x92C5u;
-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_MAX_ATOMIC_COUNTER_BUFFER_SIZE:uint = 0x92D8u;
-const GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS:uint = 0x92DCu;
-const GL_ACTIVE_ATOMIC_COUNTER_BUFFERS:uint = 0x92D9u;
-const GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX:uint = 0x92DAu;
-const GL_UNSIGNED_INT_ATOMIC_COUNTER:uint = 0x92DBu;
-const GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT:uint = 0x00000001u;
-const GL_ELEMENT_ARRAY_BARRIER_BIT:uint = 0x00000002u;
-const GL_UNIFORM_BARRIER_BIT:uint = 0x00000004u;
-const GL_TEXTURE_FETCH_BARRIER_BIT:uint = 0x00000008u;
-const GL_SHADER_IMAGE_ACCESS_BARRIER_BIT:uint = 0x00000020u;
-const GL_COMMAND_BARRIER_BIT:uint = 0x00000040u;
-const GL_PIXEL_BUFFER_BARRIER_BIT:uint = 0x00000080u;
-const GL_TEXTURE_UPDATE_BARRIER_BIT:uint = 0x00000100u;
-const GL_BUFFER_UPDATE_BARRIER_BIT:uint = 0x00000200u;
-const GL_FRAMEBUFFER_BARRIER_BIT:uint = 0x00000400u;
-const GL_TRANSFORM_FEEDBACK_BARRIER_BIT:uint = 0x00000800u;
-const GL_ATOMIC_COUNTER_BARRIER_BIT:uint = 0x00001000u;
-const GL_ALL_BARRIER_BITS:uint = 0xFFFFFFFFu;
-const GL_MAX_IMAGE_UNITS:uint = 0x8F38u;
-const GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS:uint = 0x8F39u;
-const GL_IMAGE_BINDING_NAME:uint = 0x8F3Au;
-const GL_IMAGE_BINDING_LEVEL:uint = 0x8F3Bu;
-const GL_IMAGE_BINDING_LAYERED:uint = 0x8F3Cu;
-const GL_IMAGE_BINDING_LAYER:uint = 0x8F3Du;
-const GL_IMAGE_BINDING_ACCESS:uint = 0x8F3Eu;
-const GL_IMAGE_1D:uint = 0x904Cu;
-const GL_IMAGE_2D:uint = 0x904Du;
-const GL_IMAGE_3D:uint = 0x904Eu;
-const GL_IMAGE_2D_RECT:uint = 0x904Fu;
-const GL_IMAGE_CUBE:uint = 0x9050u;
-const GL_IMAGE_BUFFER:uint = 0x9051u;
-const GL_IMAGE_1D_ARRAY:uint = 0x9052u;
-const GL_IMAGE_2D_ARRAY:uint = 0x9053u;
-const GL_IMAGE_CUBE_MAP_ARRAY:uint = 0x9054u;
-const GL_IMAGE_2D_MULTISAMPLE:uint = 0x9055u;
-const GL_IMAGE_2D_MULTISAMPLE_ARRAY:uint = 0x9056u;
-const GL_INT_IMAGE_1D:uint = 0x9057u;
-const GL_INT_IMAGE_2D:uint = 0x9058u;
-const GL_INT_IMAGE_3D:uint = 0x9059u;
-const GL_INT_IMAGE_2D_RECT:uint = 0x905Au;
-const GL_INT_IMAGE_CUBE:uint = 0x905Bu;
-const GL_INT_IMAGE_BUFFER:uint = 0x905Cu;
-const GL_INT_IMAGE_1D_ARRAY:uint = 0x905Du;
-const GL_INT_IMAGE_2D_ARRAY:uint = 0x905Eu;
-const GL_INT_IMAGE_CUBE_MAP_ARRAY:uint = 0x905Fu;
-const GL_INT_IMAGE_2D_MULTISAMPLE:uint = 0x9060u;
-const GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY:uint = 0x9061u;
-const GL_UNSIGNED_INT_IMAGE_1D:uint = 0x9062u;
-const GL_UNSIGNED_INT_IMAGE_2D:uint = 0x9063u;
-const GL_UNSIGNED_INT_IMAGE_3D:uint = 0x9064u;
-const GL_UNSIGNED_INT_IMAGE_2D_RECT:uint = 0x9065u;
-const GL_UNSIGNED_INT_IMAGE_CUBE:uint = 0x9066u;
-const GL_UNSIGNED_INT_IMAGE_BUFFER:uint = 0x9067u;
-const GL_UNSIGNED_INT_IMAGE_1D_ARRAY:uint = 0x9068u;
-const GL_UNSIGNED_INT_IMAGE_2D_ARRAY:uint = 0x9069u;
-const GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY:uint = 0x906Au;
-const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE:uint = 0x906Bu;
-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_TEXTURE_IMMUTABLE_FORMAT:uint = 0x912Fu;
-type GLchar = libc::c_uchar; 
-const GL_VERSION_1_0:uint = 1u;
-const GL_VERSION_1_4:uint = 1u;
-const GL_VERSION_1_5:uint = 1u;
-const GL_VERSION_2_0:uint = 1u;
-const GL_VERSION_2_1:uint = 1u;
-const GL_VERSION_3_0:uint = 1u;
-const GL_VERSION_3_1:uint = 1u;
-const GL_VERSION_3_2:uint = 1u;
-const GL_VERSION_3_3:uint = 1u;
-const GL_VERSION_4_0:uint = 1u;
-const GL_VERSION_4_1:uint = 1u;
-const GL_VERSION_4_2:uint = 1u;
+const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:uint = 0x8CD0u;
+const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:uint = 0x8CD1u;
+const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:uint = 0x8CD2u;
+const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:uint = 0x8CD3u;
+const GL_COLOR_ATTACHMENT0:uint = 0x8CE0u;
+const GL_DEPTH_ATTACHMENT:uint = 0x8D00u;
+const GL_STENCIL_ATTACHMENT:uint = 0x8D20u;
+const GL_FRAMEBUFFER_COMPLETE:uint = 0x8CD5u;
+const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:uint = 0x8CD6u;
+const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:uint = 0x8CD7u;
+const GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:uint = 0x8CD9u;
+const GL_FRAMEBUFFER_UNSUPPORTED:uint = 0x8CDDu;
+const GL_FRAMEBUFFER_BINDING:uint = 0x8CA6u;
+const GL_RENDERBUFFER_BINDING:uint = 0x8CA7u;
+const GL_MAX_RENDERBUFFER_SIZE:uint = 0x84E8u;
+const GL_INVALID_FRAMEBUFFER_OPERATION:uint = 0x0506u;
 native mod GL {
     fn glClearColor(red: libc::c_float, green: libc::c_float, blue: libc::c_float, alpha: libc::c_float) -> libc::c_void;
     fn glClear(mask: libc::c_uint) -> libc::c_void;
     fn glMultTransposeMatrixd(m: libc::c_double) -> libc::c_void;
     fn glMultTransposeMatrixf(m: libc::c_float) -> libc::c_void;
     fn glSampleCoverage(value: libc::c_float, invert: libc::c_uchar) -> libc::c_void;
-    fn glGetBooleanv(pname: libc::c_uint, params: *libc::c_uchar) -> libc::c_void;
-    fn glBlendFuncSeparate(sfactorRGB: libc::c_uint, dfactorRGB: libc::c_uint, sfactorAlpha: libc::c_uint, dfactorAlpha: libc::c_uint) -> libc::c_void;
-    fn glMultiDrawArrays(mode: libc::c_uint, first: *libc::c_int, count: *libc::c_int, primcount: libc::c_int) -> libc::c_void;
-    fn glMultiDrawElements(mode: libc::c_uint, count: *libc::c_int, type_: libc::c_uint, indices: **libc::c_void, primcount: libc::c_int) -> libc::c_void;
-    fn glPointParameterf(pname: libc::c_uint, param: libc::c_float) -> libc::c_void;
-    fn glPointParameterfv(pname: libc::c_uint, params: *libc::c_float) -> libc::c_void;
-    fn glPointParameteri(pname: libc::c_uint, param: libc::c_int) -> libc::c_void;
-    fn glPointParameteriv(pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGenQueries(n: libc::c_int, ids: *libc::c_uint) -> libc::c_void;
-    fn glDeleteQueries(n: libc::c_int, ids: *libc::c_uint) -> libc::c_void;
-    fn glIsQuery(id: libc::c_uint) -> libc::c_uchar;
-    fn glBeginQuery(target: libc::c_uint, id: libc::c_uint) -> libc::c_void;
-    fn glEndQuery(target: libc::c_uint) -> libc::c_void;
-    fn glGetQueryiv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetQueryObjectiv(id: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetQueryObjectuiv(id: libc::c_uint, pname: libc::c_uint, params: *libc::c_uint) -> libc::c_void;
+    fn glAttachShader(program: libc::c_uint, shader: libc::c_uint) -> libc::c_void;
+    fn glBindAttribLocation(program: libc::c_uint, index: libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
     fn glBindBuffer(target: libc::c_uint, buffer: libc::c_uint) -> libc::c_void;
-    fn glDeleteBuffers(n: libc::c_int, buffers: *libc::c_uint) -> libc::c_void;
-    fn glGenBuffers(n: libc::c_int, buffers: *libc::c_uint) -> libc::c_void;
-    fn glIsBuffer(buffer: libc::c_uint) -> libc::c_uchar;
+    fn glBindFramebuffer(target: libc::c_uint, framebuffer: libc::c_uint) -> libc::c_void;
+    fn glBindRenderbuffer(target: libc::c_uint, renderbuffer: libc::c_uint) -> libc::c_void;
+    fn glBlendEquationSeparate(modeRGB: libc::c_uint, modeAlpha: libc::c_uint) -> libc::c_void;
+    fn glBlendFuncSeparate(srcRGB: libc::c_uint, dstRGB: libc::c_uint, srcAlpha: libc::c_uint, dstAlpha: libc::c_uint) -> libc::c_void;
     fn glBufferData(target: libc::c_uint, size: libc::ptrdiff_t, data: * libc::c_uchar, usage: libc::c_uint) -> libc::c_void;
     fn glBufferSubData(target: libc::c_uint, offset: libc::intptr_t, size: libc::ptrdiff_t, data: * libc::c_uchar) -> libc::c_void;
-    fn glGetBufferSubData(target: libc::c_uint, offset: libc::intptr_t, size: libc::ptrdiff_t, data: * libc::c_uchar) -> libc::c_void;
-    fn glMapBuffer(target: libc::c_uint, access: libc::c_uint) -> *libc::c_void;
-    fn glUnmapBuffer(target: libc::c_uint) -> libc::c_uchar;
-    fn glGetBufferParameteriv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetBufferPointerv(target: libc::c_uint, pname: libc::c_uint, params: **libc::c_void) -> libc::c_void;
-    fn glBlendEquationSeparate(modeRGB: libc::c_uint, modeAlpha: libc::c_uint) -> libc::c_void;
-    fn glDrawBuffers(n: libc::c_int, bufs: *libc::c_uint) -> libc::c_void;
-    fn glStencilOpSeparate(face: libc::c_uint, sfail: libc::c_uint, dpfail: libc::c_uint, dppass: libc::c_uint) -> libc::c_void;
-    fn glStencilFuncSeparate(face: libc::c_uint, func: libc::c_uint, ref: libc::c_int, mask: libc::c_uint) -> libc::c_void;
-    fn glStencilMaskSeparate(face: libc::c_uint, mask: libc::c_uint) -> libc::c_void;
-    fn glAttachShader(program: libc::c_uint, shader: libc::c_uint) -> libc::c_void;
-    fn glBindAttribLocation(program: libc::c_uint, index: libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
+    fn glCheckFramebufferStatus(target: libc::c_uint) -> libc::c_uint;
+    fn glClearDepthf(depth: libc::c_float) -> libc::c_void;
     fn glCompileShader(shader: libc::c_uint) -> libc::c_void;
     fn glCreateProgram() -> libc::c_uint;
     fn glCreateShader(type_: libc::c_uint) -> libc::c_uint;
+    fn glDeleteBuffers(n: libc::c_int, buffers: *libc::c_uint) -> libc::c_void;
+    fn glDeleteFramebuffers(n: libc::c_int, framebuffers: *libc::c_uint) -> libc::c_void;
     fn glDeleteProgram(program: libc::c_uint) -> libc::c_void;
+    fn glDeleteRenderbuffers(n: libc::c_int, renderbuffers: *libc::c_uint) -> libc::c_void;
     fn glDeleteShader(shader: libc::c_uint) -> libc::c_void;
+    fn glDepthRangef(zNear: libc::c_float, zFar: libc::c_float) -> libc::c_void;
     fn glDetachShader(program: libc::c_uint, shader: libc::c_uint) -> libc::c_void;
     fn glDisableVertexAttribArray(index: libc::c_uint) -> libc::c_void;
     fn glEnableVertexAttribArray(index: libc::c_uint) -> libc::c_void;
-    fn glGetActiveAttrib(program: libc::c_uint, index: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
-    fn glGetActiveUniform(program: libc::c_uint, index: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
-    fn glGetAttachedShaders(program: libc::c_uint, maxCount: libc::c_int, count: *libc::c_int, obj: *libc::c_uint) -> libc::c_void;
+    fn glFramebufferRenderbuffer(target: libc::c_uint, attachment: libc::c_uint, renderbuffertarget: libc::c_uint, renderbuffer: libc::c_uint) -> libc::c_void;
+    fn glFramebufferTexture2D(target: libc::c_uint, attachment: libc::c_uint, textarget: libc::c_uint, texture: libc::c_uint, level: libc::c_int) -> libc::c_void;
+    fn glGenBuffers(n: libc::c_int, buffers: *libc::c_uint) -> libc::c_void;
+    fn glGenerateMipmap(target: libc::c_uint) -> libc::c_void;
+    fn glGenFramebuffers(n: libc::c_int, framebuffers: *libc::c_uint) -> libc::c_void;
+    fn glGenRenderbuffers(n: libc::c_int, renderbuffers: *libc::c_uint) -> libc::c_void;
+    fn glGetActiveAttrib(program: libc::c_uint, index: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
+    fn glGetActiveUniform(program: libc::c_uint, index: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
+    fn glGetAttachedShaders(program: libc::c_uint, maxcount: libc::c_int, count: *libc::c_int, shaders: *libc::c_uint) -> libc::c_void;
     fn glGetAttribLocation(program: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
+    fn glGetBooleanv(pname: libc::c_uint, params: *libc::c_uchar) -> libc::c_void;
+    fn glGetBufferParameteriv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
+    fn glGetFramebufferAttachmentParameteriv(target: libc::c_uint, attachment: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
     fn glGetProgramiv(program: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetProgramInfoLog(program: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, infoLog: *libc::c_uchar) -> libc::c_void;
+    fn glGetProgramInfoLog(program: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, infolog: *libc::c_uchar) -> libc::c_void;
+    fn glGetRenderbufferParameteriv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
     fn glGetShaderiv(shader: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetShaderInfoLog(shader: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, infoLog: *libc::c_uchar) -> libc::c_void;
-    fn glGetShaderSource(shader: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, source: *libc::c_uchar) -> libc::c_void;
-    fn glGetUniformLocation(program: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
+    fn glGetShaderInfoLog(shader: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, infolog: *libc::c_uchar) -> libc::c_void;
+    fn glGetShaderPrecisionFormat(shadertype: libc::c_uint, precisiontype: libc::c_uint, range: *libc::c_int, precision: *libc::c_int) -> libc::c_void;
+    fn glGetShaderSource(shader: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, source: *libc::c_uchar) -> libc::c_void;
     fn glGetUniformfv(program: libc::c_uint, location: libc::c_int, params: *libc::c_float) -> libc::c_void;
     fn glGetUniformiv(program: libc::c_uint, location: libc::c_int, params: *libc::c_int) -> libc::c_void;
-    fn glGetVertexAttribdv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_double) -> libc::c_void;
+    fn glGetUniformLocation(program: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
     fn glGetVertexAttribfv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_float) -> libc::c_void;
     fn glGetVertexAttribiv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
     fn glGetVertexAttribPointerv(index: libc::c_uint, pname: libc::c_uint, pointer: **libc::c_void) -> libc::c_void;
+    fn glIsBuffer(buffer: libc::c_uint) -> libc::c_uchar;
+    fn glIsFramebuffer(framebuffer: libc::c_uint) -> libc::c_uchar;
     fn glIsProgram(program: libc::c_uint) -> libc::c_uchar;
+    fn glIsRenderbuffer(renderbuffer: libc::c_uint) -> libc::c_uchar;
     fn glIsShader(shader: libc::c_uint) -> libc::c_uchar;
     fn glLinkProgram(program: libc::c_uint) -> libc::c_void;
+    fn glReleaseShaderCompiler() -> libc::c_void;
+    fn glRenderbufferStorage(target: libc::c_uint, internalformat: libc::c_uint, width: libc::c_int, height: libc::c_int) -> libc::c_void;
+    fn glShaderBinary(n: libc::c_int, shaders: *libc::c_uint, binaryformat: libc::c_uint, binary: * libc::c_uchar, length: libc::c_int) -> libc::c_void;
     fn glShaderSource(shader: libc::c_uint, count: libc::c_int, string: **libc::c_uchar, length: *libc::c_int) -> libc::c_void;
-    fn glUseProgram(program: libc::c_uint) -> libc::c_void;
-    fn glUniform1f(location: libc::c_int, v0: libc::c_float) -> libc::c_void;
-    fn glUniform2f(location: libc::c_int, v0: libc::c_float, v1: libc::c_float) -> libc::c_void;
-    fn glUniform3f(location: libc::c_int, v0: libc::c_float, v1: libc::c_float, v2: libc::c_float) -> libc::c_void;
-    fn glUniform4f(location: libc::c_int, v0: libc::c_float, v1: libc::c_float, v2: libc::c_float, v3: libc::c_float) -> libc::c_void;
-    fn glUniform1i(location: libc::c_int, v0: libc::c_int) -> libc::c_void;
-    fn glUniform2i(location: libc::c_int, v0: libc::c_int, v1: libc::c_int) -> libc::c_void;
-    fn glUniform3i(location: libc::c_int, v0: libc::c_int, v1: libc::c_int, v2: libc::c_int) -> libc::c_void;
-    fn glUniform4i(location: libc::c_int, v0: libc::c_int, v1: libc::c_int, v2: libc::c_int, v3: libc::c_int) -> libc::c_void;
-    fn glUniform1fv(location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glUniform2fv(location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glUniform3fv(location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glUniform4fv(location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glUniform1iv(location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glUniform2iv(location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glUniform3iv(location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glUniform4iv(location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
+    fn glStencilFuncSeparate(face: libc::c_uint, func: libc::c_uint, ref: libc::c_int, mask: libc::c_uint) -> libc::c_void;
+    fn glStencilMaskSeparate(face: libc::c_uint, mask: libc::c_uint) -> libc::c_void;
+    fn glStencilOpSeparate(face: libc::c_uint, fail_: libc::c_uint, zfail: libc::c_uint, zpass: libc::c_uint) -> libc::c_void;
+    fn glUniform1f(location: libc::c_int, x: libc::c_float) -> libc::c_void;
+    fn glUniform1fv(location: libc::c_int, count: libc::c_int, v: *libc::c_float) -> libc::c_void;
+    fn glUniform1i(location: libc::c_int, x: libc::c_int) -> libc::c_void;
+    fn glUniform1iv(location: libc::c_int, count: libc::c_int, v: *libc::c_int) -> libc::c_void;
+    fn glUniform2f(location: libc::c_int, x: libc::c_float, y: libc::c_float) -> libc::c_void;
+    fn glUniform2fv(location: libc::c_int, count: libc::c_int, v: *libc::c_float) -> libc::c_void;
+    fn glUniform2i(location: libc::c_int, x: libc::c_int, y: libc::c_int) -> libc::c_void;
+    fn glUniform2iv(location: libc::c_int, count: libc::c_int, v: *libc::c_int) -> libc::c_void;
+    fn glUniform3f(location: libc::c_int, x: libc::c_float, y: libc::c_float, z: libc::c_float) -> libc::c_void;
+    fn glUniform3fv(location: libc::c_int, count: libc::c_int, v: *libc::c_float) -> libc::c_void;
+    fn glUniform3i(location: libc::c_int, x: libc::c_int, y: libc::c_int, z: libc::c_int) -> libc::c_void;
+    fn glUniform3iv(location: libc::c_int, count: libc::c_int, v: *libc::c_int) -> libc::c_void;
+    fn glUniform4f(location: libc::c_int, x: libc::c_float, y: libc::c_float, z: libc::c_float, w: libc::c_float) -> libc::c_void;
+    fn glUniform4fv(location: libc::c_int, count: libc::c_int, v: *libc::c_float) -> libc::c_void;
+    fn glUniform4i(location: libc::c_int, x: libc::c_int, y: libc::c_int, z: libc::c_int, w: libc::c_int) -> libc::c_void;
+    fn glUniform4iv(location: libc::c_int, count: libc::c_int, v: *libc::c_int) -> libc::c_void;
     fn glUniformMatrix2fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
     fn glUniformMatrix3fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
     fn glUniformMatrix4fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
+    fn glUseProgram(program: libc::c_uint) -> libc::c_void;
     fn glValidateProgram(program: libc::c_uint) -> libc::c_void;
-    fn glVertexAttrib1d(index: libc::c_uint, x: libc::c_double) -> libc::c_void;
-    fn glVertexAttrib1dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttrib1f(index: libc::c_uint, x: libc::c_float) -> libc::c_void;
-    fn glVertexAttrib1fv(index: libc::c_uint, v: *libc::c_float) -> libc::c_void;
-    fn glVertexAttrib1s(index: libc::c_uint, x: libc::c_short) -> libc::c_void;
-    fn glVertexAttrib1sv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttrib2d(index: libc::c_uint, x: libc::c_double, y: libc::c_double) -> libc::c_void;
-    fn glVertexAttrib2dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttrib2f(index: libc::c_uint, x: libc::c_float, y: libc::c_float) -> libc::c_void;
-    fn glVertexAttrib2fv(index: libc::c_uint, v: *libc::c_float) -> libc::c_void;
-    fn glVertexAttrib2s(index: libc::c_uint, x: libc::c_short, y: libc::c_short) -> libc::c_void;
-    fn glVertexAttrib2sv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttrib3d(index: libc::c_uint, x: libc::c_double, y: libc::c_double, z: libc::c_double) -> libc::c_void;
-    fn glVertexAttrib3dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttrib3f(index: libc::c_uint, x: libc::c_float, y: libc::c_float, z: libc::c_float) -> libc::c_void;
-    fn glVertexAttrib3fv(index: libc::c_uint, v: *libc::c_float) -> libc::c_void;
-    fn glVertexAttrib3s(index: libc::c_uint, x: libc::c_short, y: libc::c_short, z: libc::c_short) -> libc::c_void;
-    fn glVertexAttrib3sv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttrib4Nbv(index: libc::c_uint, v: *libc::c_char) -> libc::c_void;
-    fn glVertexAttrib4Niv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttrib4Nsv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttrib4Nub(index: libc::c_uint, x: libc::c_uchar, y: libc::c_uchar, z: libc::c_uchar, w: libc::c_uchar) -> libc::c_void;
-    fn glVertexAttrib4Nubv(index: libc::c_uint, v: *libc::c_uchar) -> libc::c_void;
-    fn glVertexAttrib4Nuiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttrib4Nusv(index: libc::c_uint, v: *libc::c_ushort) -> libc::c_void;
-    fn glVertexAttrib4bv(index: libc::c_uint, v: *libc::c_char) -> libc::c_void;
-    fn glVertexAttrib4d(index: libc::c_uint, x: libc::c_double, y: libc::c_double, z: libc::c_double, w: libc::c_double) -> libc::c_void;
-    fn glVertexAttrib4dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttrib4f(index: libc::c_uint, x: libc::c_float, y: libc::c_float, z: libc::c_float, w: libc::c_float) -> libc::c_void;
-    fn glVertexAttrib4fv(index: libc::c_uint, v: *libc::c_float) -> libc::c_void;
-    fn glVertexAttrib4iv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttrib4s(index: libc::c_uint, x: libc::c_short, y: libc::c_short, z: libc::c_short, w: libc::c_short) -> libc::c_void;
-    fn glVertexAttrib4sv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttrib4ubv(index: libc::c_uint, v: *libc::c_uchar) -> libc::c_void;
-    fn glVertexAttrib4uiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttrib4usv(index: libc::c_uint, v: *libc::c_ushort) -> libc::c_void;
-    fn glVertexAttribPointer(index: libc::c_uint, size: libc::c_int, type_: libc::c_uint, normalized: libc::c_uchar, stride: libc::c_int, pointer: * libc::c_uchar) -> libc::c_void;
-    fn glUniformMatrix2x3fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glUniformMatrix3x2fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glUniformMatrix2x4fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glUniformMatrix4x2fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glUniformMatrix3x4fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glUniformMatrix4x3fv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glColorMaski(index: libc::c_uint, r: libc::c_uchar, g: libc::c_uchar, b: libc::c_uchar, a: libc::c_uchar) -> libc::c_void;
-    fn glGetBooleani_v(target: libc::c_uint, index: libc::c_uint, data: *libc::c_uchar) -> libc::c_void;
-    fn glGetIntegeri_v(target: libc::c_uint, index: libc::c_uint, data: *libc::c_int) -> libc::c_void;
-    fn glEnablei(target: libc::c_uint, index: libc::c_uint) -> libc::c_void;
-    fn glDisablei(target: libc::c_uint, index: libc::c_uint) -> libc::c_void;
-    fn glIsEnabledi(target: libc::c_uint, index: libc::c_uint) -> libc::c_uchar;
-    fn glBindBufferRange(target: libc::c_uint, index: libc::c_uint, buffer: libc::c_uint, offset: libc::intptr_t, size: libc::ptrdiff_t) -> libc::c_void;
-    fn glBindBufferBase(target: libc::c_uint, index: libc::c_uint, buffer: libc::c_uint) -> libc::c_void;
-    fn glTransformFeedbackVaryings(program: libc::c_uint, count: libc::c_int, varyings: **libc::c_uchar, bufferMode: libc::c_uint) -> libc::c_void;
-    fn glGetTransformFeedbackVarying(program: libc::c_uint, index: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
-    fn glClampColor(target: libc::c_uint, clamp: libc::c_uint) -> libc::c_void;
-    fn glBeginConditionalRender(id: libc::c_uint, mode: libc::c_uint) -> libc::c_void;
-    fn glEndConditionalRender() -> libc::c_void;
-    fn glVertexAttribIPointer(index: libc::c_uint, size: libc::c_int, type_: libc::c_uint, stride: libc::c_int, pointer: * libc::c_uchar) -> libc::c_void;
-    fn glGetVertexAttribIiv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetVertexAttribIuiv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI1i(index: libc::c_uint, x: libc::c_int) -> libc::c_void;
-    fn glVertexAttribI2i(index: libc::c_uint, x: libc::c_int, y: libc::c_int) -> libc::c_void;
-    fn glVertexAttribI3i(index: libc::c_uint, x: libc::c_int, y: libc::c_int, z: libc::c_int) -> libc::c_void;
-    fn glVertexAttribI4i(index: libc::c_uint, x: libc::c_int, y: libc::c_int, z: libc::c_int, w: libc::c_int) -> libc::c_void;
-    fn glVertexAttribI1ui(index: libc::c_uint, x: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI2ui(index: libc::c_uint, x: libc::c_uint, y: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI3ui(index: libc::c_uint, x: libc::c_uint, y: libc::c_uint, z: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI4ui(index: libc::c_uint, x: libc::c_uint, y: libc::c_uint, z: libc::c_uint, w: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI1iv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttribI2iv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttribI3iv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttribI4iv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glVertexAttribI1uiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI2uiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI3uiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI4uiv(index: libc::c_uint, v: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribI4bv(index: libc::c_uint, v: *libc::c_char) -> libc::c_void;
-    fn glVertexAttribI4sv(index: libc::c_uint, v: *libc::c_short) -> libc::c_void;
-    fn glVertexAttribI4ubv(index: libc::c_uint, v: *libc::c_uchar) -> libc::c_void;
-    fn glVertexAttribI4usv(index: libc::c_uint, v: *libc::c_ushort) -> libc::c_void;
-    fn glGetUniformuiv(program: libc::c_uint, location: libc::c_int, params: *libc::c_uint) -> libc::c_void;
-    fn glBindFragDataLocation(program: libc::c_uint, color: libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
-    fn glGetFragDataLocation(program: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
-    fn glUniform1ui(location: libc::c_int, v0: libc::c_uint) -> libc::c_void;
-    fn glUniform2ui(location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint) -> libc::c_void;
-    fn glUniform3ui(location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint, v2: libc::c_uint) -> libc::c_void;
-    fn glUniform4ui(location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint, v2: libc::c_uint, v3: libc::c_uint) -> libc::c_void;
-    fn glUniform1uiv(location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glUniform2uiv(location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glUniform3uiv(location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glUniform4uiv(location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glTexParameterIiv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glTexParameterIuiv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_uint) -> libc::c_void;
-    fn glGetTexParameterIiv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetTexParameterIuiv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_uint) -> libc::c_void;
-    fn glClearBufferiv(buffer: libc::c_uint, drawbuffer: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glClearBufferuiv(buffer: libc::c_uint, drawbuffer: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glClearBufferfv(buffer: libc::c_uint, drawbuffer: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glClearBufferfi(buffer: libc::c_uint, drawbuffer: libc::c_int, depth: libc::c_float, stencil: libc::c_int) -> libc::c_void;
-    fn glGetStringi(name: libc::c_uint, index: libc::c_uint) -> *libc::c_uchar;
-    fn glDrawArraysInstanced(mode: libc::c_uint, first: libc::c_int, count: libc::c_int, primcount: libc::c_int) -> libc::c_void;
-    fn glDrawElementsInstanced(mode: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, primcount: libc::c_int) -> libc::c_void;
-    fn glTexBuffer(target: libc::c_uint, internalformat: libc::c_uint, buffer: libc::c_uint) -> libc::c_void;
-    fn glPrimitiveRestartIndex(index: libc::c_uint) -> libc::c_void;
-    fn glGetInteger64i_v(target: libc::c_uint, index: libc::c_uint, data: *libc::c_longlong) -> libc::c_void;
-    fn glGetBufferParameteri64v(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_longlong) -> libc::c_void;
-    fn glFramebufferTexture(target: libc::c_uint, attachment: libc::c_uint, texture: libc::c_uint, level: libc::c_int) -> libc::c_void;
-    fn glVertexAttribDivisor(index: libc::c_uint, divisor: libc::c_uint) -> libc::c_void;
-    fn glMinSampleShading(value: libc::c_float) -> libc::c_void;
-    fn glBlendEquationi(buf: libc::c_uint, mode: libc::c_uint) -> libc::c_void;
-    fn glBlendEquationSeparatei(buf: libc::c_uint, modeRGB: libc::c_uint, modeAlpha: libc::c_uint) -> libc::c_void;
-    fn glBlendFunci(buf: libc::c_uint, src: libc::c_uint, dst: libc::c_uint) -> libc::c_void;
-    fn glBlendFuncSeparatei(buf: libc::c_uint, srcRGB: libc::c_uint, dstRGB: libc::c_uint, srcAlpha: libc::c_uint, dstAlpha: libc::c_uint) -> libc::c_void;
-    fn glIsRenderbuffer(renderbuffer: libc::c_uint) -> libc::c_uchar;
-    fn glBindRenderbuffer(target: libc::c_uint, renderbuffer: libc::c_uint) -> libc::c_void;
-    fn glDeleteRenderbuffers(n: libc::c_int, renderbuffers: *libc::c_uint) -> libc::c_void;
-    fn glGenRenderbuffers(n: libc::c_int, renderbuffers: *libc::c_uint) -> libc::c_void;
-    fn glRenderbufferStorage(target: libc::c_uint, internalformat: libc::c_uint, width: libc::c_int, height: libc::c_int) -> libc::c_void;
-    fn glGetRenderbufferParameteriv(target: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glIsFramebuffer(framebuffer: libc::c_uint) -> libc::c_uchar;
-    fn glBindFramebuffer(target: libc::c_uint, framebuffer: libc::c_uint) -> libc::c_void;
-    fn glDeleteFramebuffers(n: libc::c_int, framebuffers: *libc::c_uint) -> libc::c_void;
-    fn glGenFramebuffers(n: libc::c_int, framebuffers: *libc::c_uint) -> libc::c_void;
-    fn glCheckFramebufferStatus(target: libc::c_uint) -> libc::c_uint;
-    fn glFramebufferTexture1D(target: libc::c_uint, attachment: libc::c_uint, textarget: libc::c_uint, texture: libc::c_uint, level: libc::c_int) -> libc::c_void;
-    fn glFramebufferTexture2D(target: libc::c_uint, attachment: libc::c_uint, textarget: libc::c_uint, texture: libc::c_uint, level: libc::c_int) -> libc::c_void;
-    fn glFramebufferTexture3D(target: libc::c_uint, attachment: libc::c_uint, textarget: libc::c_uint, texture: libc::c_uint, level: libc::c_int, zoffset: libc::c_int) -> libc::c_void;
-    fn glFramebufferRenderbuffer(target: libc::c_uint, attachment: libc::c_uint, renderbuffertarget: libc::c_uint, renderbuffer: libc::c_uint) -> libc::c_void;
-    fn glGetFramebufferAttachmentParameteriv(target: libc::c_uint, attachment: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGenerateMipmap(target: libc::c_uint) -> libc::c_void;
-    fn glBlitFramebuffer(srcX0: libc::c_int, srcY0: libc::c_int, srcX1: libc::c_int, srcY1: libc::c_int, dstX0: libc::c_int, dstY0: libc::c_int, dstX1: libc::c_int, dstY1: libc::c_int, mask: libc::c_uint, filter: libc::c_uint) -> libc::c_void;
-    fn glRenderbufferStorageMultisample(target: libc::c_uint, samples: libc::c_int, internalformat: libc::c_uint, width: libc::c_int, height: libc::c_int) -> libc::c_void;
-    fn glFramebufferTextureLayer(target: libc::c_uint, attachment: libc::c_uint, texture: libc::c_uint, level: libc::c_int, layer: libc::c_int) -> libc::c_void;
-    fn glMapBufferRange(target: libc::c_uint, offset: libc::intptr_t, length: libc::ptrdiff_t, access: libc::c_uint) -> *libc::c_void;
-    fn glFlushMappedBufferRange(target: libc::c_uint, offset: libc::intptr_t, length: libc::ptrdiff_t) -> libc::c_void;
-    fn glBindVertexArray(array: libc::c_uint) -> libc::c_void;
-    fn glDeleteVertexArrays(n: libc::c_int, arrays: *libc::c_uint) -> libc::c_void;
-    fn glGenVertexArrays(n: libc::c_int, arrays: *libc::c_uint) -> libc::c_void;
-    fn glIsVertexArray(array: libc::c_uint) -> libc::c_uchar;
-    fn glGetUniformIndices(program: libc::c_uint, uniformCount: libc::c_int, uniformNames: **libc::c_uchar, uniformIndices: *libc::c_uint) -> libc::c_void;
-    fn glGetActiveUniformsiv(program: libc::c_uint, uniformCount: libc::c_int, uniformIndices: *libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetActiveUniformName(program: libc::c_uint, uniformIndex: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, uniformName: *libc::c_uchar) -> libc::c_void;
-    fn glGetUniformBlockIndex(program: libc::c_uint, uniformBlockName: *libc::c_uchar) -> libc::c_uint;
-    fn glGetActiveUniformBlockiv(program: libc::c_uint, uniformBlockIndex: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetActiveUniformBlockName(program: libc::c_uint, uniformBlockIndex: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, uniformBlockName: *libc::c_uchar) -> libc::c_void;
-    fn glUniformBlockBinding(program: libc::c_uint, uniformBlockIndex: libc::c_uint, uniformBlockBinding: libc::c_uint) -> libc::c_void;
-    fn glCopyBufferSubData(readTarget: libc::c_uint, writeTarget: libc::c_uint, readOffset: libc::intptr_t, writeOffset: libc::intptr_t, size: libc::ptrdiff_t) -> libc::c_void;
-    fn glDrawElementsBaseVertex(mode: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, basevertex: libc::c_int) -> libc::c_void;
-    fn glDrawRangeElementsBaseVertex(mode: libc::c_uint, start: libc::c_uint, end: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, basevertex: libc::c_int) -> libc::c_void;
-    fn glDrawElementsInstancedBaseVertex(mode: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, primcount: libc::c_int, basevertex: libc::c_int) -> libc::c_void;
-    fn glMultiDrawElementsBaseVertex(mode: libc::c_uint, count: *libc::c_int, type_: libc::c_uint, indices: **libc::c_void, primcount: libc::c_int, basevertex: *libc::c_int) -> libc::c_void;
-    fn glProvokingVertex(mode: libc::c_uint) -> libc::c_void;
-    fn glIsSync() -> libc::c_uchar;
-    fn glDeleteSync() -> libc::c_void;
-    fn glClientWaitSync(flags: libc::c_uint, timeout: libc::c_ulonglong) -> libc::c_uint;
-    fn glWaitSync(flags: libc::c_uint, timeout: libc::c_ulonglong) -> libc::c_void;
-    fn glGetInteger64v(pname: libc::c_uint, params: *libc::c_longlong) -> libc::c_void;
-    fn glGetSynciv(pname: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, values: *libc::c_int) -> libc::c_void;
-    fn glTexImage2DMultisample(target: libc::c_uint, samples: libc::c_int, internalformat: libc::c_int, width: libc::c_int, height: libc::c_int, fixedsamplelocations: libc::c_uchar) -> libc::c_void;
-    fn glTexImage3DMultisample(target: libc::c_uint, samples: libc::c_int, internalformat: libc::c_int, width: libc::c_int, height: libc::c_int, depth: libc::c_int, fixedsamplelocations: libc::c_uchar) -> libc::c_void;
-    fn glGetMultisamplefv(pname: libc::c_uint, index: libc::c_uint, val: *libc::c_float) -> libc::c_void;
-    fn glSampleMaski(index: libc::c_uint, mask: libc::c_uint) -> libc::c_void;
-    fn glBindFragDataLocationIndexed(program: libc::c_uint, colorNumber: libc::c_uint, index: libc::c_uint, name: *libc::c_uchar) -> libc::c_void;
-    fn glGetFragDataIndex(program: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
-    fn glGenSamplers(count: libc::c_int, samplers: *libc::c_uint) -> libc::c_void;
-    fn glDeleteSamplers(count: libc::c_int, samplers: *libc::c_uint) -> libc::c_void;
-    fn glIsSampler(sampler: libc::c_uint) -> libc::c_uchar;
-    fn glBindSampler(unit: libc::c_uint, sampler: libc::c_uint) -> libc::c_void;
-    fn glSamplerParameteri(sampler: libc::c_uint, pname: libc::c_uint, param: libc::c_int) -> libc::c_void;
-    fn glSamplerParameteriv(sampler: libc::c_uint, pname: libc::c_uint, param: *libc::c_int) -> libc::c_void;
-    fn glSamplerParameterf(sampler: libc::c_uint, pname: libc::c_uint, param: libc::c_float) -> libc::c_void;
-    fn glSamplerParameterfv(sampler: libc::c_uint, pname: libc::c_uint, param: *libc::c_float) -> libc::c_void;
-    fn glSamplerParameterIiv(sampler: libc::c_uint, pname: libc::c_uint, param: *libc::c_int) -> libc::c_void;
-    fn glSamplerParameterIuiv(sampler: libc::c_uint, pname: libc::c_uint, param: *libc::c_uint) -> libc::c_void;
-    fn glGetSamplerParameteriv(sampler: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetSamplerParameterIiv(sampler: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glGetSamplerParameterfv(sampler: libc::c_uint, pname: libc::c_uint, params: *libc::c_float) -> libc::c_void;
-    fn glGetSamplerParameterIuiv(sampler: libc::c_uint, pname: libc::c_uint, params: *libc::c_uint) -> libc::c_void;
-    fn glQueryCounter(id: libc::c_uint, target: libc::c_uint) -> libc::c_void;
-    fn glGetQueryObjecti64v(id: libc::c_uint, pname: libc::c_uint, params: *libc::c_longlong) -> libc::c_void;
-    fn glGetQueryObjectui64v(id: libc::c_uint, pname: libc::c_uint, params: *libc::c_ulonglong) -> libc::c_void;
-    fn glVertexP2ui(type_: libc::c_uint, value: libc::c_uint) -> libc::c_void;
-    fn glVertexP2uiv(type_: libc::c_uint, value: *libc::c_uint) -> libc::c_void;
-    fn glVertexP3ui(type_: libc::c_uint, value: libc::c_uint) -> libc::c_void;
-    fn glVertexP3uiv(type_: libc::c_uint, value: *libc::c_uint) -> libc::c_void;
-    fn glVertexP4ui(type_: libc::c_uint, value: libc::c_uint) -> libc::c_void;
-    fn glVertexP4uiv(type_: libc::c_uint, value: *libc::c_uint) -> libc::c_void;
-    fn glTexCoordP1ui(type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glTexCoordP1uiv(type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glTexCoordP2ui(type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glTexCoordP2uiv(type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glTexCoordP3ui(type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glTexCoordP3uiv(type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glTexCoordP4ui(type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glTexCoordP4uiv(type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP1ui(texture: libc::c_uint, type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP1uiv(texture: libc::c_uint, type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP2ui(texture: libc::c_uint, type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP2uiv(texture: libc::c_uint, type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP3ui(texture: libc::c_uint, type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP3uiv(texture: libc::c_uint, type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP4ui(texture: libc::c_uint, type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glMultiTexCoordP4uiv(texture: libc::c_uint, type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glNormalP3ui(type_: libc::c_uint, coords: libc::c_uint) -> libc::c_void;
-    fn glNormalP3uiv(type_: libc::c_uint, coords: *libc::c_uint) -> libc::c_void;
-    fn glColorP3ui(type_: libc::c_uint, color: libc::c_uint) -> libc::c_void;
-    fn glColorP3uiv(type_: libc::c_uint, color: *libc::c_uint) -> libc::c_void;
-    fn glColorP4ui(type_: libc::c_uint, color: libc::c_uint) -> libc::c_void;
-    fn glColorP4uiv(type_: libc::c_uint, color: *libc::c_uint) -> libc::c_void;
-    fn glSecondaryColorP3ui(type_: libc::c_uint, color: libc::c_uint) -> libc::c_void;
-    fn glSecondaryColorP3uiv(type_: libc::c_uint, color: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP1ui(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP1uiv(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP2ui(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP2uiv(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP3ui(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP3uiv(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: *libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP4ui(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: libc::c_uint) -> libc::c_void;
-    fn glVertexAttribP4uiv(index: libc::c_uint, type_: libc::c_uint, normalized: libc::c_uchar, value: *libc::c_uint) -> libc::c_void;
-    fn glDrawArraysIndirect(mode: libc::c_uint, indirect: * libc::c_uchar) -> libc::c_void;
-    fn glDrawElementsIndirect(mode: libc::c_uint, type_: libc::c_uint, indirect: * libc::c_uchar) -> libc::c_void;
-    fn glUniform1d(location: libc::c_int, x: libc::c_double) -> libc::c_void;
-    fn glUniform2d(location: libc::c_int, x: libc::c_double, y: libc::c_double) -> libc::c_void;
-    fn glUniform3d(location: libc::c_int, x: libc::c_double, y: libc::c_double, z: libc::c_double) -> libc::c_void;
-    fn glUniform4d(location: libc::c_int, x: libc::c_double, y: libc::c_double, z: libc::c_double, w: libc::c_double) -> libc::c_void;
-    fn glUniform1dv(location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glUniform2dv(location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glUniform3dv(location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glUniform4dv(location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix2dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix3dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix4dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix2x3dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix2x4dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix3x2dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix3x4dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix4x2dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glUniformMatrix4x3dv(location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glGetUniformdv(program: libc::c_uint, location: libc::c_int, params: *libc::c_double) -> libc::c_void;
-    fn glGetSubroutineUniformLocation(program: libc::c_uint, shadertype: libc::c_uint, name: *libc::c_uchar) -> libc::c_int;
-    fn glGetSubroutineIndex(program: libc::c_uint, shadertype: libc::c_uint, name: *libc::c_uchar) -> libc::c_uint;
-    fn glGetActiveSubroutineUniformiv(program: libc::c_uint, shadertype: libc::c_uint, index: libc::c_uint, pname: libc::c_uint, values: *libc::c_int) -> libc::c_void;
-    fn glGetActiveSubroutineUniformName(program: libc::c_uint, shadertype: libc::c_uint, index: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, name: *libc::c_uchar) -> libc::c_void;
-    fn glGetActiveSubroutineName(program: libc::c_uint, shadertype: libc::c_uint, index: libc::c_uint, bufsize: libc::c_int, length: *libc::c_int, name: *libc::c_uchar) -> libc::c_void;
-    fn glUniformSubroutinesuiv(shadertype: libc::c_uint, count: libc::c_int, indices: *libc::c_uint) -> libc::c_void;
-    fn glGetUniformSubroutineuiv(shadertype: libc::c_uint, location: libc::c_int, params: *libc::c_uint) -> libc::c_void;
-    fn glGetProgramStageiv(program: libc::c_uint, shadertype: libc::c_uint, pname: libc::c_uint, values: *libc::c_int) -> libc::c_void;
-    fn glPatchParameteri(pname: libc::c_uint, value: libc::c_int) -> libc::c_void;
-    fn glPatchParameterfv(pname: libc::c_uint, values: *libc::c_float) -> libc::c_void;
-    fn glDeleteTransformFeedbacks(n: libc::c_int, ids: *libc::c_uint) -> libc::c_void;
-    fn glGenTransformFeedbacks(n: libc::c_int, ids: *libc::c_uint) -> libc::c_void;
-    fn glDrawTransformFeedbackStream(mode: libc::c_uint, id: libc::c_uint, stream: libc::c_uint) -> libc::c_void;
-    fn glBeginQueryIndexed(target: libc::c_uint, index: libc::c_uint, id: libc::c_uint) -> libc::c_void;
-    fn glEndQueryIndexed(target: libc::c_uint, index: libc::c_uint) -> libc::c_void;
-    fn glGetQueryIndexediv(target: libc::c_uint, index: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glReleaseShaderCompiler() -> libc::c_void;
-    fn glShaderBinary(count: libc::c_int, shaders: *libc::c_uint, binaryformat: libc::c_uint, binary: * libc::c_uchar, length: libc::c_int) -> libc::c_void;
-    fn glGetShaderPrecisionFormat(shadertype: libc::c_uint, precisiontype: libc::c_uint, range: *libc::c_int, precision: *libc::c_int) -> libc::c_void;
-    fn glDepthRangef(n: libc::c_float, f: libc::c_float) -> libc::c_void;
-    fn glClearDepthf(d: libc::c_float) -> libc::c_void;
-    fn glGetProgramBinary(program: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, binaryFormat: *libc::c_uint, binary: * libc::c_uchar) -> libc::c_void;
-    fn glProgramBinary(program: libc::c_uint, binaryFormat: libc::c_uint, binary: * libc::c_uchar, length: libc::c_int) -> libc::c_void;
-    fn glProgramParameteri(program: libc::c_uint, pname: libc::c_uint, value: libc::c_int) -> libc::c_void;
-    fn glUseProgramStages(pipeline: libc::c_uint, stages: libc::c_uint, program: libc::c_uint) -> libc::c_void;
-    fn glActiveShaderProgram(pipeline: libc::c_uint, program: libc::c_uint) -> libc::c_void;
-    fn glCreateShaderProgramv(type_: libc::c_uint, count: libc::c_int, strings: **libc::c_uchar) -> libc::c_uint;
-    fn glBindProgramPipeline(pipeline: libc::c_uint) -> libc::c_void;
-    fn glDeleteProgramPipelines(n: libc::c_int, pipelines: *libc::c_uint) -> libc::c_void;
-    fn glGenProgramPipelines(n: libc::c_int, pipelines: *libc::c_uint) -> libc::c_void;
-    fn glIsProgramPipeline(pipeline: libc::c_uint) -> libc::c_uchar;
-    fn glGetProgramPipelineiv(pipeline: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glProgramUniform1i(program: libc::c_uint, location: libc::c_int, v0: libc::c_int) -> libc::c_void;
-    fn glProgramUniform1iv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glProgramUniform1f(program: libc::c_uint, location: libc::c_int, v0: libc::c_float) -> libc::c_void;
-    fn glProgramUniform1fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniform1d(program: libc::c_uint, location: libc::c_int, v0: libc::c_double) -> libc::c_void;
-    fn glProgramUniform1dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniform1ui(program: libc::c_uint, location: libc::c_int, v0: libc::c_uint) -> libc::c_void;
-    fn glProgramUniform1uiv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glProgramUniform2i(program: libc::c_uint, location: libc::c_int, v0: libc::c_int, v1: libc::c_int) -> libc::c_void;
-    fn glProgramUniform2iv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glProgramUniform2f(program: libc::c_uint, location: libc::c_int, v0: libc::c_float, v1: libc::c_float) -> libc::c_void;
-    fn glProgramUniform2fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniform2d(program: libc::c_uint, location: libc::c_int, v0: libc::c_double, v1: libc::c_double) -> libc::c_void;
-    fn glProgramUniform2dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniform2ui(program: libc::c_uint, location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint) -> libc::c_void;
-    fn glProgramUniform2uiv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glProgramUniform3i(program: libc::c_uint, location: libc::c_int, v0: libc::c_int, v1: libc::c_int, v2: libc::c_int) -> libc::c_void;
-    fn glProgramUniform3iv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glProgramUniform3f(program: libc::c_uint, location: libc::c_int, v0: libc::c_float, v1: libc::c_float, v2: libc::c_float) -> libc::c_void;
-    fn glProgramUniform3fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniform3d(program: libc::c_uint, location: libc::c_int, v0: libc::c_double, v1: libc::c_double, v2: libc::c_double) -> libc::c_void;
-    fn glProgramUniform3dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniform3ui(program: libc::c_uint, location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint, v2: libc::c_uint) -> libc::c_void;
-    fn glProgramUniform3uiv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glProgramUniform4i(program: libc::c_uint, location: libc::c_int, v0: libc::c_int, v1: libc::c_int, v2: libc::c_int, v3: libc::c_int) -> libc::c_void;
-    fn glProgramUniform4iv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_int) -> libc::c_void;
-    fn glProgramUniform4f(program: libc::c_uint, location: libc::c_int, v0: libc::c_float, v1: libc::c_float, v2: libc::c_float, v3: libc::c_float) -> libc::c_void;
-    fn glProgramUniform4fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniform4d(program: libc::c_uint, location: libc::c_int, v0: libc::c_double, v1: libc::c_double, v2: libc::c_double, v3: libc::c_double) -> libc::c_void;
-    fn glProgramUniform4dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniform4ui(program: libc::c_uint, location: libc::c_int, v0: libc::c_uint, v1: libc::c_uint, v2: libc::c_uint, v3: libc::c_uint) -> libc::c_void;
-    fn glProgramUniform4uiv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, value: *libc::c_uint) -> libc::c_void;
-    fn glProgramUniformMatrix2fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix3fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix4fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix2dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix3dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix4dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix2x3fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix3x2fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix2x4fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix4x2fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix3x4fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix4x3fv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_float) -> libc::c_void;
-    fn glProgramUniformMatrix2x3dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix3x2dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix2x4dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix4x2dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix3x4dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glProgramUniformMatrix4x3dv(program: libc::c_uint, location: libc::c_int, count: libc::c_int, transpose: libc::c_uchar, value: *libc::c_double) -> libc::c_void;
-    fn glValidateProgramPipeline(pipeline: libc::c_uint) -> libc::c_void;
-    fn glGetProgramPipelineInfoLog(pipeline: libc::c_uint, bufSize: libc::c_int, length: *libc::c_int, infoLog: *libc::c_uchar) -> libc::c_void;
-    fn glVertexAttribL1d(index: libc::c_uint, x: libc::c_double) -> libc::c_void;
-    fn glVertexAttribL2d(index: libc::c_uint, x: libc::c_double, y: libc::c_double) -> libc::c_void;
-    fn glVertexAttribL3d(index: libc::c_uint, x: libc::c_double, y: libc::c_double, z: libc::c_double) -> libc::c_void;
-    fn glVertexAttribL4d(index: libc::c_uint, x: libc::c_double, y: libc::c_double, z: libc::c_double, w: libc::c_double) -> libc::c_void;
-    fn glVertexAttribL1dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttribL2dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttribL3dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttribL4dv(index: libc::c_uint, v: *libc::c_double) -> libc::c_void;
-    fn glVertexAttribLPointer(index: libc::c_uint, size: libc::c_int, type_: libc::c_uint, stride: libc::c_int, pointer: * libc::c_uchar) -> libc::c_void;
-    fn glGetVertexAttribLdv(index: libc::c_uint, pname: libc::c_uint, params: *libc::c_double) -> libc::c_void;
-    fn glViewportArrayv(first: libc::c_uint, count: libc::c_int, v: *libc::c_float) -> libc::c_void;
-    fn glViewportIndexedf(index: libc::c_uint, x: libc::c_float, y: libc::c_float, w: libc::c_float, h: libc::c_float) -> libc::c_void;
-    fn glViewportIndexedfv(index: libc::c_uint, v: *libc::c_float) -> libc::c_void;
-    fn glScissorArrayv(first: libc::c_uint, count: libc::c_int, v: *libc::c_int) -> libc::c_void;
-    fn glScissorIndexed(index: libc::c_uint, left: libc::c_int, bottom: libc::c_int, width: libc::c_int, height: libc::c_int) -> libc::c_void;
-    fn glScissorIndexedv(index: libc::c_uint, v: *libc::c_int) -> libc::c_void;
-    fn glDepthRangeArrayv(first: libc::c_uint, count: libc::c_int, v: *libc::c_double) -> libc::c_void;
-    fn glDepthRangeIndexed(index: libc::c_uint, n: libc::c_double, f: libc::c_double) -> libc::c_void;
-    fn glGetFloati_v(target: libc::c_uint, index: libc::c_uint, data: *libc::c_float) -> libc::c_void;
-    fn glGetDoublei_v(target: libc::c_uint, index: libc::c_uint, data: *libc::c_double) -> libc::c_void;
-    fn glDrawArraysInstancedBaseInstance(mode: libc::c_uint, first: libc::c_int, count: libc::c_int, primcount: libc::c_int, baseinstance: libc::c_uint) -> libc::c_void;
-    fn glDrawElementsInstancedBaseInstance(mode: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, primcount: libc::c_int, baseinstance: libc::c_uint) -> libc::c_void;
-    fn glDrawElementsInstancedBaseVertexBaseInstance(mode: libc::c_uint, count: libc::c_int, type_: libc::c_uint, indices: * libc::c_uchar, primcount: libc::c_int, basevertex: libc::c_int, baseinstance: libc::c_uint) -> libc::c_void;
-    fn glDrawTransformFeedbackInstanced(mode: libc::c_uint, id: libc::c_uint, primcount: libc::c_int) -> libc::c_void;
-    fn glDrawTransformFeedbackStreamInstanced(mode: libc::c_uint, id: libc::c_uint, stream: libc::c_uint, primcount: libc::c_int) -> libc::c_void;
-    fn glGetInternalformativ(target: libc::c_uint, internalformat: libc::c_uint, pname: libc::c_uint, bufSize: libc::c_int, params: *libc::c_int) -> libc::c_void;
-    fn glGetActiveAtomicCounterBufferiv(program: libc::c_uint, bufferIndex: libc::c_uint, pname: libc::c_uint, params: *libc::c_int) -> libc::c_void;
-    fn glBindImageTexture(unit: libc::c_uint, texture: libc::c_uint, level: libc::c_int, layered: libc::c_uchar, layer: libc::c_int, access: libc::c_uint, format: libc::c_uint) -> libc::c_void;
-    fn glMemoryBarrier(barriers: libc::c_uint) -> libc::c_void;
-    fn glTexStorage1D(target: libc::c_uint, levels: libc::c_int, internalformat: libc::c_uint, width: libc::c_int) -> libc::c_void;
-    fn glTexStorage2D(target: libc::c_uint, levels: libc::c_int, internalformat: libc::c_uint, width: libc::c_int, height: libc::c_int) -> libc::c_void;
-    fn glTexStorage3D(target: libc::c_uint, levels: libc::c_int, internalformat: libc::c_uint, width: libc::c_int, height: libc::c_int, depth: libc::c_int) -> libc::c_void;
+    fn glVertexAttrib1f(indx: libc::c_uint, x: libc::c_float) -> libc::c_void;
+    fn glVertexAttrib1fv(indx: libc::c_uint, values: *libc::c_float) -> libc::c_void;
+    fn glVertexAttrib2f(indx: libc::c_uint, x: libc::c_float, y: libc::c_float) -> libc::c_void;
+    fn glVertexAttrib2fv(indx: libc::c_uint, values: *libc::c_float) -> libc::c_void;
+    fn glVertexAttrib3f(indx: libc::c_uint, x: libc::c_float, y: libc::c_float, z: libc::c_float) -> libc::c_void;
+    fn glVertexAttrib3fv(indx: libc::c_uint, values: *libc::c_float) -> libc::c_void;
+    fn glVertexAttrib4f(indx: libc::c_uint, x: libc::c_float, y: libc::c_float, z: libc::c_float, w: libc::c_float) -> libc::c_void;
+    fn glVertexAttrib4fv(indx: libc::c_uint, values: *libc::c_float) -> libc::c_void;
+    fn glVertexAttribPointer(indx: libc::c_uint, size: libc::c_int, type_: libc::c_uint, normalized: libc::c_uchar, stride: libc::c_int, ptr: * libc::c_uchar) -> libc::c_void;
 }
 fn glClearColor(red: float, green: float, blue: float, alpha: float) -> libc::c_void unsafe {
     ret GL::glClearColor(red as libc::c_float, green as libc::c_float, blue as libc::c_float, alpha as libc::c_float);
 fn glSampleCoverage(value: float, invert: uint) -> libc::c_void unsafe {
     ret GL::glSampleCoverage(value as libc::c_float, invert as libc::c_uchar);
 }
+fn glAttachShader(program: uint, shader: uint) -> libc::c_void unsafe {
+    ret GL::glAttachShader(program as libc::c_uint, shader as libc::c_uint);
+}
+fn glBindAttribLocation(program: uint, index: uint, name: str) -> libc::c_void unsafe {
+    let name_c_str = str::as_c_str(name) { |name_| name_ };
+    ret GL::glBindAttribLocation(program as libc::c_uint, index as libc::c_uint, name_c_str as *libc::c_uchar);
+}
+fn glBindBuffer(target: uint, buffer: uint) -> libc::c_void unsafe {
+    ret GL::glBindBuffer(target as libc::c_uint, buffer as libc::c_uint);
+}
+fn glBindFramebuffer(target: uint, framebuffer: uint) -> libc::c_void unsafe {
+    ret GL::glBindFramebuffer(target as libc::c_uint, framebuffer as libc::c_uint);
+}
+fn glBindRenderbuffer(target: uint, renderbuffer: uint) -> libc::c_void unsafe {
+    ret GL::glBindRenderbuffer(target as libc::c_uint, renderbuffer as libc::c_uint);
+}
+fn glBlendEquationSeparate(modeRGB: uint, modeAlpha: uint) -> libc::c_void unsafe {
+    ret GL::glBlendEquationSeparate(modeRGB as libc::c_uint, modeAlpha as libc::c_uint);
+}
+fn glBlendFuncSeparate(srcRGB: uint, dstRGB: uint, srcAlpha: uint, dstAlpha: uint) -> libc::c_void unsafe {
+    ret GL::glBlendFuncSeparate(srcRGB as libc::c_uint, dstRGB as libc::c_uint, srcAlpha as libc::c_uint, dstAlpha as libc::c_uint);
+}
+fn glBufferData(target: uint, size: libc::ptrdiff_t, data: * libc::c_uchar, usage: uint) -> libc::c_void unsafe {
+    ret GL::glBufferData(target as libc::c_uint, size, data, usage as libc::c_uint);
+}
+fn glBufferSubData(target: uint, offset: libc::intptr_t, size: libc::ptrdiff_t, data: * libc::c_uchar) -> libc::c_void unsafe {
+    ret GL::glBufferSubData(target as libc::c_uint, offset, size, data);
+}
+fn glCheckFramebufferStatus(target: uint) -> uint unsafe {
+    ret GL::glCheckFramebufferStatus(target as libc::c_uint) as uint;
+}
+fn glClearDepthf(depth: float) -> libc::c_void unsafe {
+    ret GL::glClearDepthf(depth as libc::c_float);
+}
+fn glCompileShader(shader: uint) -> libc::c_void unsafe {
+    ret GL::glCompileShader(shader as libc::c_uint);
+}
+fn glCreateProgram() -> uint unsafe {
+    ret GL::glCreateProgram() as uint;
+}
+fn glCreateShader(type_: uint) -> uint unsafe {
+    ret GL::glCreateShader(type_ as libc::c_uint) as uint;
+}
+fn glDeleteBuffers(n: int, buffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glDeleteBuffers(n as libc::c_int, buffers);
+}
+fn glDeleteFramebuffers(n: int, framebuffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glDeleteFramebuffers(n as libc::c_int, framebuffers);
+}
+fn glDeleteProgram(program: uint) -> libc::c_void unsafe {
+    ret GL::glDeleteProgram(program as libc::c_uint);
+}
+fn glDeleteRenderbuffers(n: int, renderbuffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glDeleteRenderbuffers(n as libc::c_int, renderbuffers);
+}
+fn glDeleteShader(shader: uint) -> libc::c_void unsafe {
+    ret GL::glDeleteShader(shader as libc::c_uint);
+}
+fn glDepthRangef(zNear: float, zFar: float) -> libc::c_void unsafe {
+    ret GL::glDepthRangef(zNear as libc::c_float, zFar as libc::c_float);
+}
+fn glDetachShader(program: uint, shader: uint) -> libc::c_void unsafe {
+    ret GL::glDetachShader(program as libc::c_uint, shader as libc::c_uint);
+}
+fn glDisableVertexAttribArray(index: uint) -> libc::c_void unsafe {
+    ret GL::glDisableVertexAttribArray(index as libc::c_uint);
+}
+fn glEnableVertexAttribArray(index: uint) -> libc::c_void unsafe {
+    ret GL::glEnableVertexAttribArray(index as libc::c_uint);
+}
+fn glFramebufferRenderbuffer(target: uint, attachment: uint, renderbuffertarget: uint, renderbuffer: uint) -> libc::c_void unsafe {
+    ret GL::glFramebufferRenderbuffer(target as libc::c_uint, attachment as libc::c_uint, renderbuffertarget as libc::c_uint, renderbuffer as libc::c_uint);
+}
+fn glFramebufferTexture2D(target: uint, attachment: uint, textarget: uint, texture: uint, level: int) -> libc::c_void unsafe {
+    ret GL::glFramebufferTexture2D(target as libc::c_uint, attachment as libc::c_uint, textarget as libc::c_uint, texture as libc::c_uint, level as libc::c_int);
+}
+fn glGenBuffers(n: int, buffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glGenBuffers(n as libc::c_int, buffers);
+}
+fn glGenerateMipmap(target: uint) -> libc::c_void unsafe {
+    ret GL::glGenerateMipmap(target as libc::c_uint);
+}
+fn glGenFramebuffers(n: int, framebuffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glGenFramebuffers(n as libc::c_int, framebuffers);
+}
+fn glGenRenderbuffers(n: int, renderbuffers: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glGenRenderbuffers(n as libc::c_int, renderbuffers);
+}
+fn glGetActiveAttrib(program: uint, index: uint, bufsize: int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: str) -> libc::c_void unsafe {
+    let name_c_str = str::as_c_str(name) { |name_| name_ };
+    ret GL::glGetActiveAttrib(program as libc::c_uint, index as libc::c_uint, bufsize as libc::c_int, length, size, type_, name_c_str as *libc::c_uchar);
+}
+fn glGetActiveUniform(program: uint, index: uint, bufsize: int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: str) -> libc::c_void unsafe {
+    let name_c_str = str::as_c_str(name) { |name_| name_ };
+    ret GL::glGetActiveUniform(program as libc::c_uint, index as libc::c_uint, bufsize as libc::c_int, length, size, type_, name_c_str as *libc::c_uchar);
+}
+fn glGetAttachedShaders(program: uint, maxcount: int, count: *libc::c_int, shaders: *libc::c_uint) -> libc::c_void unsafe {
+    ret GL::glGetAttachedShaders(program as libc::c_uint, maxcount as libc::c_int, count, shaders);
+}
+fn glGetAttribLocation(program: uint, name: str) -> int unsafe {
+    let name_c_str = str::as_c_str(name) { |name_| name_ };
+    ret GL::glGetAttribLocation(program as libc::c_uint, name_c_str as *libc::c_uchar) as int;
+}
 fn glGetBooleanv(pname: uint, params: str) -> libc::c_void unsafe {
     let params_c_str = str::as_c_str(params) { |params_| params_ };
     ret GL::glGetBooleanv(pname as libc::c_uint, params_c_str as *libc::c_uchar);
 }
-fn glBlendFuncSeparate(sfactorRGB: uint, dfactorRGB: uint, sfactorAlpha: uint, dfactorAlpha: uint) -> libc::c_void unsafe {
-    ret GL::glBlendFuncSeparate(sfactorRGB as libc::c_uint, dfactorRGB as libc::c_uint, sfactorAlpha as libc::c_uint, dfactorAlpha as libc::c_uint);
-}
-fn glMultiDrawArrays(mode: uint, first: *libc::c_int, count: *libc::c_int, primcount: int) -> libc::c_void unsafe {
-    ret GL::glMultiDrawArrays(mode as libc::c_uint, first, count, primcount as libc::c_int);
-}
-fn glMultiDrawElements(mode: uint, count: *libc::c_int, type_: uint, indices: **libc::c_void, primcount: int) -> libc::c_void unsafe {
-    ret GL::glMultiDrawElements(mode as libc::c_uint, count, type_ as libc::c_uint, indices, primcount as libc::c_int);
-}
-fn glPointParameterf(pname: uint, param: float) -> libc::c_void unsafe {
-    ret GL::glPointParameterf(pname as libc::c_uint, param as libc::c_float);
-}
-fn glPointParameterfv(pname: uint, params: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glPointParameterfv(pname as libc::c_uint, params);
-}
-fn glPointParameteri(pname: uint, param: int) -> libc::c_void unsafe {
-    ret GL::glPointParameteri(pname as libc::c_uint, param as libc::c_int);
-}
-fn glPointParameteriv(pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glPointParameteriv(pname as libc::c_uint, params);
-}
-fn glGenQueries(n: int, ids: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGenQueries(n as libc::c_int, ids);
-}
-fn glDeleteQueries(n: int, ids: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glDeleteQueries(n as libc::c_int, ids);
-}
-fn glIsQuery(id: uint) -> uint unsafe {
-    ret GL::glIsQuery(id as libc::c_uint) as uint;
-}
-fn glBeginQuery(target: uint, id: uint) -> libc::c_void unsafe {
-    ret GL::glBeginQuery(target as libc::c_uint, id as libc::c_uint);
-}
-fn glEndQuery(target: uint) -> libc::c_void unsafe {
-    ret GL::glEndQuery(target as libc::c_uint);
-}
-fn glGetQueryiv(target: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetQueryiv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glGetQueryObjectiv(id: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetQueryObjectiv(id as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glGetQueryObjectuiv(id: uint, pname: uint, params: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGetQueryObjectuiv(id as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glBindBuffer(target: uint, buffer: uint) -> libc::c_void unsafe {
-    ret GL::glBindBuffer(target as libc::c_uint, buffer as libc::c_uint);
-}
-fn glDeleteBuffers(n: int, buffers: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glDeleteBuffers(n as libc::c_int, buffers);
-}
-fn glGenBuffers(n: int, buffers: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGenBuffers(n as libc::c_int, buffers);
-}
-fn glIsBuffer(buffer: uint) -> uint unsafe {
-    ret GL::glIsBuffer(buffer as libc::c_uint) as uint;
-}
-fn glBufferData(target: uint, size: libc::ptrdiff_t, data: * libc::c_uchar, usage: uint) -> libc::c_void unsafe {
-    ret GL::glBufferData(target as libc::c_uint, size, data, usage as libc::c_uint);
-}
-fn glBufferSubData(target: uint, offset: libc::intptr_t, size: libc::ptrdiff_t, data: * libc::c_uchar) -> libc::c_void unsafe {
-    ret GL::glBufferSubData(target as libc::c_uint, offset, size, data);
-}
-fn glGetBufferSubData(target: uint, offset: libc::intptr_t, size: libc::ptrdiff_t, data: * libc::c_uchar) -> libc::c_void unsafe {
-    ret GL::glGetBufferSubData(target as libc::c_uint, offset, size, data);
-}
-fn glMapBuffer(target: uint, access: uint) -> *libc::c_void unsafe {
-    ret GL::glMapBuffer(target as libc::c_uint, access as libc::c_uint);
-}
-fn glUnmapBuffer(target: uint) -> uint unsafe {
-    ret GL::glUnmapBuffer(target as libc::c_uint) as uint;
-}
 fn glGetBufferParameteriv(target: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
     ret GL::glGetBufferParameteriv(target as libc::c_uint, pname as libc::c_uint, params);
 }
-fn glGetBufferPointerv(target: uint, pname: uint, params: **libc::c_void) -> libc::c_void unsafe {
-    ret GL::glGetBufferPointerv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glBlendEquationSeparate(modeRGB: uint, modeAlpha: uint) -> libc::c_void unsafe {
-    ret GL::glBlendEquationSeparate(modeRGB as libc::c_uint, modeAlpha as libc::c_uint);
-}
-fn glDrawBuffers(n: int, bufs: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glDrawBuffers(n as libc::c_int, bufs);
-}
-fn glStencilOpSeparate(face: uint, sfail: uint, dpfail: uint, dppass: uint) -> libc::c_void unsafe {
-    ret GL::glStencilOpSeparate(face as libc::c_uint, sfail as libc::c_uint, dpfail as libc::c_uint, dppass as libc::c_uint);
-}
-fn glStencilFuncSeparate(face: uint, func: uint, ref: int, mask: uint) -> libc::c_void unsafe {
-    ret GL::glStencilFuncSeparate(face as libc::c_uint, func as libc::c_uint, ref as libc::c_int, mask as libc::c_uint);
-}
-fn glStencilMaskSeparate(face: uint, mask: uint) -> libc::c_void unsafe {
-    ret GL::glStencilMaskSeparate(face as libc::c_uint, mask as libc::c_uint);
-}
-fn glAttachShader(program: uint, shader: uint) -> libc::c_void unsafe {
-    ret GL::glAttachShader(program as libc::c_uint, shader as libc::c_uint);
-}
-fn glBindAttribLocation(program: uint, index: uint, name: str) -> libc::c_void unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glBindAttribLocation(program as libc::c_uint, index as libc::c_uint, name_c_str as *libc::c_uchar);
-}
-fn glCompileShader(shader: uint) -> libc::c_void unsafe {
-    ret GL::glCompileShader(shader as libc::c_uint);
-}
-fn glCreateProgram() -> uint unsafe {
-    ret GL::glCreateProgram() as uint;
-}
-fn glCreateShader(type_: uint) -> uint unsafe {
-    ret GL::glCreateShader(type_ as libc::c_uint) as uint;
-}
-fn glDeleteProgram(program: uint) -> libc::c_void unsafe {
-    ret GL::glDeleteProgram(program as libc::c_uint);
-}
-fn glDeleteShader(shader: uint) -> libc::c_void unsafe {
-    ret GL::glDeleteShader(shader as libc::c_uint);
-}
-fn glDetachShader(program: uint, shader: uint) -> libc::c_void unsafe {
-    ret GL::glDetachShader(program as libc::c_uint, shader as libc::c_uint);
-}
-fn glDisableVertexAttribArray(index: uint) -> libc::c_void unsafe {
-    ret GL::glDisableVertexAttribArray(index as libc::c_uint);
-}
-fn glEnableVertexAttribArray(index: uint) -> libc::c_void unsafe {
-    ret GL::glEnableVertexAttribArray(index as libc::c_uint);
-}
-fn glGetActiveAttrib(program: uint, index: uint, bufSize: int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: str) -> libc::c_void unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glGetActiveAttrib(program as libc::c_uint, index as libc::c_uint, bufSize as libc::c_int, length, size, type_, name_c_str as *libc::c_uchar);
-}
-fn glGetActiveUniform(program: uint, index: uint, bufSize: int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: str) -> libc::c_void unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glGetActiveUniform(program as libc::c_uint, index as libc::c_uint, bufSize as libc::c_int, length, size, type_, name_c_str as *libc::c_uchar);
-}
-fn glGetAttachedShaders(program: uint, maxCount: int, count: *libc::c_int, obj: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGetAttachedShaders(program as libc::c_uint, maxCount as libc::c_int, count, obj);
-}
-fn glGetAttribLocation(program: uint, name: str) -> int unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glGetAttribLocation(program as libc::c_uint, name_c_str as *libc::c_uchar) as int;
+fn glGetFramebufferAttachmentParameteriv(target: uint, attachment: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glGetFramebufferAttachmentParameteriv(target as libc::c_uint, attachment as libc::c_uint, pname as libc::c_uint, params);
 }
 fn glGetProgramiv(program: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
     ret GL::glGetProgramiv(program as libc::c_uint, pname as libc::c_uint, params);
     GL::glGetProgramInfoLog(shader as libc::c_uint, 255 as libc::c_int, ptr::addr_of(length), infoLog_c_str);
     ret str::from_bytes(infoLog);
 }
+fn glGetRenderbufferParameteriv(target: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glGetRenderbufferParameteriv(target as libc::c_uint, pname as libc::c_uint, params);
+}
 fn glGetShaderiv(shader: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
     ret GL::glGetShaderiv(shader as libc::c_uint, pname as libc::c_uint, params);
 }
     GL::glGetShaderInfoLog(shader as libc::c_uint, 255 as libc::c_int, ptr::addr_of(length), infoLog_c_str);
     ret str::from_bytes(infoLog);
 }
-fn glGetShaderSource(shader: uint, bufSize: int, length: *libc::c_int, source: str) -> libc::c_void unsafe {
+fn glGetShaderPrecisionFormat(shadertype: uint, precisiontype: uint, range: *libc::c_int, precision: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glGetShaderPrecisionFormat(shadertype as libc::c_uint, precisiontype as libc::c_uint, range, precision);
+}
+fn glGetShaderSource(shader: uint, bufsize: int, length: *libc::c_int, source: str) -> libc::c_void unsafe {
     let source_c_str = str::as_c_str(source) { |source_| source_ };
-    ret GL::glGetShaderSource(shader as libc::c_uint, bufSize as libc::c_int, length, source_c_str as *libc::c_uchar);
+    ret GL::glGetShaderSource(shader as libc::c_uint, bufsize as libc::c_int, length, source_c_str as *libc::c_uchar);
+}
+fn glGetUniformfv(program: uint, location: int, params: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glGetUniformfv(program as libc::c_uint, location as libc::c_int, params);
+}
+fn glGetUniformiv(program: uint, location: int, params: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glGetUniformiv(program as libc::c_uint, location as libc::c_int, params);
 }
 fn glGetUniformLocation(program: uint, name: str) -> int unsafe {
     let name_c_str = str::as_c_str(name) { |name_| name_ };
     ret GL::glGetUniformLocation(program as libc::c_uint, name_c_str as *libc::c_uchar) as int;
 }
-fn glGetUniformfv(program: uint, location: int, params: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glGetUniformfv(program as libc::c_uint, location as libc::c_int, params);
-}
-fn glGetUniformiv(program: uint, location: int, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetUniformiv(program as libc::c_uint, location as libc::c_int, params);
-}
-fn glGetVertexAttribdv(index: uint, pname: uint, params: *libc::c_double) -> libc::c_void unsafe {
-    ret GL::glGetVertexAttribdv(index as libc::c_uint, pname as libc::c_uint, params);
-}
 fn glGetVertexAttribfv(index: uint, pname: uint, params: *libc::c_float) -> libc::c_void unsafe {
     ret GL::glGetVertexAttribfv(index as libc::c_uint, pname as libc::c_uint, params);
 }
 fn glGetVertexAttribPointerv(index: uint, pname: uint, pointer: **libc::c_void) -> libc::c_void unsafe {
     ret GL::glGetVertexAttribPointerv(index as libc::c_uint, pname as libc::c_uint, pointer);
 }
+fn glIsBuffer(buffer: uint) -> uint unsafe {
+    ret GL::glIsBuffer(buffer as libc::c_uint) as uint;
+}
+fn glIsFramebuffer(framebuffer: uint) -> uint unsafe {
+    ret GL::glIsFramebuffer(framebuffer as libc::c_uint) as uint;
+}
 fn glIsProgram(program: uint) -> uint unsafe {
     ret GL::glIsProgram(program as libc::c_uint) as uint;
 }
+fn glIsRenderbuffer(renderbuffer: uint) -> uint unsafe {
+    ret GL::glIsRenderbuffer(renderbuffer as libc::c_uint) as uint;
+}
 fn glIsShader(shader: uint) -> uint unsafe {
     ret GL::glIsShader(shader as libc::c_uint) as uint;
 }
 fn glLinkProgram(program: uint) -> libc::c_void unsafe {
     ret GL::glLinkProgram(program as libc::c_uint);
 }
+fn glReleaseShaderCompiler() -> libc::c_void unsafe {
+    ret GL::glReleaseShaderCompiler();
+}
+fn glRenderbufferStorage(target: uint, internalformat: uint, width: int, height: int) -> libc::c_void unsafe {
+    ret GL::glRenderbufferStorage(target as libc::c_uint, internalformat as libc::c_uint, width as libc::c_int, height as libc::c_int);
+}
+fn glShaderBinary(n: int, shaders: *libc::c_uint, binaryformat: uint, binary: * libc::c_uchar, length: int) -> libc::c_void unsafe {
+    ret GL::glShaderBinary(n as libc::c_int, shaders, binaryformat as libc::c_uint, binary, length as libc::c_int);
+}
 
 fn glShaderSource(shader: uint, string: str) unsafe {
     let string_c_str = str::as_c_str(string) { |string_| string_ };
     GL::glShaderSource(shader as libc::c_uint, 1 as libc::c_int, ptr::addr_of(string_c_str as *libc::c_uchar), ptr::addr_of(string.len() as libc::c_int));
 }
 
+fn glStencilFuncSeparate(face: uint, func: uint, ref: int, mask: uint) -> libc::c_void unsafe {
+    ret GL::glStencilFuncSeparate(face as libc::c_uint, func as libc::c_uint, ref as libc::c_int, mask as libc::c_uint);
+}
+fn glStencilMaskSeparate(face: uint, mask: uint) -> libc::c_void unsafe {
+    ret GL::glStencilMaskSeparate(face as libc::c_uint, mask as libc::c_uint);
+}
+fn glStencilOpSeparate(face: uint, fail_: uint, zfail: uint, zpass: uint) -> libc::c_void unsafe {
+    ret GL::glStencilOpSeparate(face as libc::c_uint, fail_ as libc::c_uint, zfail as libc::c_uint, zpass as libc::c_uint);
+}
+fn glUniform1f(location: int, x: float) -> libc::c_void unsafe {
+    ret GL::glUniform1f(location as libc::c_int, x as libc::c_float);
+}
+fn glUniform1fv(location: int, count: int, v: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniform1fv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform1i(location: int, x: int) -> libc::c_void unsafe {
+    ret GL::glUniform1i(location as libc::c_int, x as libc::c_int);
+}
+fn glUniform1iv(location: int, count: int, v: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glUniform1iv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform2f(location: int, x: float, y: float) -> libc::c_void unsafe {
+    ret GL::glUniform2f(location as libc::c_int, x as libc::c_float, y as libc::c_float);
+}
+fn glUniform2fv(location: int, count: int, v: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniform2fv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform2i(location: int, x: int, y: int) -> libc::c_void unsafe {
+    ret GL::glUniform2i(location as libc::c_int, x as libc::c_int, y as libc::c_int);
+}
+fn glUniform2iv(location: int, count: int, v: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glUniform2iv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform3f(location: int, x: float, y: float, z: float) -> libc::c_void unsafe {
+    ret GL::glUniform3f(location as libc::c_int, x as libc::c_float, y as libc::c_float, z as libc::c_float);
+}
+fn glUniform3fv(location: int, count: int, v: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniform3fv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform3i(location: int, x: int, y: int, z: int) -> libc::c_void unsafe {
+    ret GL::glUniform3i(location as libc::c_int, x as libc::c_int, y as libc::c_int, z as libc::c_int);
+}
+fn glUniform3iv(location: int, count: int, v: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glUniform3iv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform4f(location: int, x: float, y: float, z: float, w: float) -> libc::c_void unsafe {
+    ret GL::glUniform4f(location as libc::c_int, x as libc::c_float, y as libc::c_float, z as libc::c_float, w as libc::c_float);
+}
+fn glUniform4fv(location: int, count: int, v: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniform4fv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniform4i(location: int, x: int, y: int, z: int, w: int) -> libc::c_void unsafe {
+    ret GL::glUniform4i(location as libc::c_int, x as libc::c_int, y as libc::c_int, z as libc::c_int, w as libc::c_int);
+}
+fn glUniform4iv(location: int, count: int, v: *libc::c_int) -> libc::c_void unsafe {
+    ret GL::glUniform4iv(location as libc::c_int, count as libc::c_int, v);
+}
+fn glUniformMatrix2fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniformMatrix2fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
+}
+fn glUniformMatrix3fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniformMatrix3fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
+}
+fn glUniformMatrix4fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
+    ret GL::glUniformMatrix4fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
+}
 fn glUseProgram(program: uint) -> libc::c_void unsafe {
     ret GL::glUseProgram(program as libc::c_uint);
 }
-fn glUniform1f(location: int, v0: float) -> libc::c_void unsafe {
-    ret GL::glUniform1f(location as libc::c_int, v0 as libc::c_float);
-}
-fn glUniform2f(location: int, v0: float, v1: float) -> libc::c_void unsafe {
-    ret GL::glUniform2f(location as libc::c_int, v0 as libc::c_float, v1 as libc::c_float);
-}
-fn glUniform3f(location: int, v0: float, v1: float, v2: float) -> libc::c_void unsafe {
-    ret GL::glUniform3f(location as libc::c_int, v0 as libc::c_float, v1 as libc::c_float, v2 as libc::c_float);
-}
-fn glUniform4f(location: int, v0: float, v1: float, v2: float, v3: float) -> libc::c_void unsafe {
-    ret GL::glUniform4f(location as libc::c_int, v0 as libc::c_float, v1 as libc::c_float, v2 as libc::c_float, v3 as libc::c_float);
-}
-fn glUniform1i(location: int, v0: int) -> libc::c_void unsafe {
-    ret GL::glUniform1i(location as libc::c_int, v0 as libc::c_int);
-}
-fn glUniform2i(location: int, v0: int, v1: int) -> libc::c_void unsafe {
-    ret GL::glUniform2i(location as libc::c_int, v0 as libc::c_int, v1 as libc::c_int);
-}
-fn glUniform3i(location: int, v0: int, v1: int, v2: int) -> libc::c_void unsafe {
-    ret GL::glUniform3i(location as libc::c_int, v0 as libc::c_int, v1 as libc::c_int, v2 as libc::c_int);
-}
-fn glUniform4i(location: int, v0: int, v1: int, v2: int, v3: int) -> libc::c_void unsafe {
-    ret GL::glUniform4i(location as libc::c_int, v0 as libc::c_int, v1 as libc::c_int, v2 as libc::c_int, v3 as libc::c_int);
-}
-fn glUniform1fv(location: int, count: int, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniform1fv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform2fv(location: int, count: int, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniform2fv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform3fv(location: int, count: int, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniform3fv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform4fv(location: int, count: int, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniform4fv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform1iv(location: int, count: int, value: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glUniform1iv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform2iv(location: int, count: int, value: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glUniform2iv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform3iv(location: int, count: int, value: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glUniform3iv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform4iv(location: int, count: int, value: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glUniform4iv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniformMatrix2fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix2fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix3fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix3fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix4fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix4fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
 fn glValidateProgram(program: uint) -> libc::c_void unsafe {
     ret GL::glValidateProgram(program as libc::c_uint);
 }
-fn glVertexAttrib1d(index: uint, x: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1d(index as libc::c_uint, x as libc::c_double);
-}
-fn glVertexAttrib1dv(index: uint, v: *libc::c_double) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1dv(index as libc::c_uint, v);
-}
-fn glVertexAttrib1f(index: uint, x: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1f(index as libc::c_uint, x as libc::c_float);
-}
-fn glVertexAttrib1fv(index: uint, v: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1fv(index as libc::c_uint, v);
-}
-fn glVertexAttrib1s(index: uint, x: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1s(index as libc::c_uint, x as libc::c_short);
-}
-fn glVertexAttrib1sv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib1sv(index as libc::c_uint, v);
-}
-fn glVertexAttrib2d(index: uint, x: float, y: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2d(index as libc::c_uint, x as libc::c_double, y as libc::c_double);
-}
-fn glVertexAttrib2dv(index: uint, v: *libc::c_double) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2dv(index as libc::c_uint, v);
-}
-fn glVertexAttrib2f(index: uint, x: float, y: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2f(index as libc::c_uint, x as libc::c_float, y as libc::c_float);
-}
-fn glVertexAttrib2fv(index: uint, v: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2fv(index as libc::c_uint, v);
-}
-fn glVertexAttrib2s(index: uint, x: int, y: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2s(index as libc::c_uint, x as libc::c_short, y as libc::c_short);
-}
-fn glVertexAttrib2sv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib2sv(index as libc::c_uint, v);
-}
-fn glVertexAttrib3d(index: uint, x: float, y: float, z: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3d(index as libc::c_uint, x as libc::c_double, y as libc::c_double, z as libc::c_double);
-}
-fn glVertexAttrib3dv(index: uint, v: *libc::c_double) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3dv(index as libc::c_uint, v);
-}
-fn glVertexAttrib3f(index: uint, x: float, y: float, z: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3f(index as libc::c_uint, x as libc::c_float, y as libc::c_float, z as libc::c_float);
-}
-fn glVertexAttrib3fv(index: uint, v: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3fv(index as libc::c_uint, v);
-}
-fn glVertexAttrib3s(index: uint, x: int, y: int, z: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3s(index as libc::c_uint, x as libc::c_short, y as libc::c_short, z as libc::c_short);
-}
-fn glVertexAttrib3sv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib3sv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4Nbv(index: uint, v: *libc::c_char) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Nbv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4Niv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Niv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4Nsv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Nsv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4Nub(index: uint, x: uint, y: uint, z: uint, w: uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Nub(index as libc::c_uint, x as libc::c_uchar, y as libc::c_uchar, z as libc::c_uchar, w as libc::c_uchar);
-}
-fn glVertexAttrib4Nubv(index: uint, v: str) -> libc::c_void unsafe {
-    let v_c_str = str::as_c_str(v) { |v_| v_ };
-    ret GL::glVertexAttrib4Nubv(index as libc::c_uint, v_c_str as *libc::c_uchar);
-}
-fn glVertexAttrib4Nuiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Nuiv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4Nusv(index: uint, v: *libc::c_ushort) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4Nusv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4bv(index: uint, v: *libc::c_char) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4bv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4d(index: uint, x: float, y: float, z: float, w: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4d(index as libc::c_uint, x as libc::c_double, y as libc::c_double, z as libc::c_double, w as libc::c_double);
-}
-fn glVertexAttrib4dv(index: uint, v: *libc::c_double) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4dv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4f(index: uint, x: float, y: float, z: float, w: float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4f(index as libc::c_uint, x as libc::c_float, y as libc::c_float, z as libc::c_float, w as libc::c_float);
-}
-fn glVertexAttrib4fv(index: uint, v: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4fv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4iv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4iv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4s(index: uint, x: int, y: int, z: int, w: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4s(index as libc::c_uint, x as libc::c_short, y as libc::c_short, z as libc::c_short, w as libc::c_short);
-}
-fn glVertexAttrib4sv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4sv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4ubv(index: uint, v: str) -> libc::c_void unsafe {
-    let v_c_str = str::as_c_str(v) { |v_| v_ };
-    ret GL::glVertexAttrib4ubv(index as libc::c_uint, v_c_str as *libc::c_uchar);
-}
-fn glVertexAttrib4uiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4uiv(index as libc::c_uint, v);
-}
-fn glVertexAttrib4usv(index: uint, v: *libc::c_ushort) -> libc::c_void unsafe {
-    ret GL::glVertexAttrib4usv(index as libc::c_uint, v);
-}
-fn glVertexAttribPointer(index: uint, size: int, type_: uint, normalized: uint, stride: int, pointer: * libc::c_uchar) -> libc::c_void unsafe {
-    ret GL::glVertexAttribPointer(index as libc::c_uint, size as libc::c_int, type_ as libc::c_uint, normalized as libc::c_uchar, stride as libc::c_int, pointer);
-}
-fn glUniformMatrix2x3fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix2x3fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix3x2fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix3x2fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix2x4fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix2x4fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix4x2fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix4x2fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix3x4fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix3x4fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glUniformMatrix4x3fv(location: int, count: int, transpose: uint, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glUniformMatrix4x3fv(location as libc::c_int, count as libc::c_int, transpose as libc::c_uchar, value);
-}
-fn glColorMaski(index: uint, r: uint, g: uint, b: uint, a: uint) -> libc::c_void unsafe {
-    ret GL::glColorMaski(index as libc::c_uint, r as libc::c_uchar, g as libc::c_uchar, b as libc::c_uchar, a as libc::c_uchar);
-}
-fn glGetBooleani_v(target: uint, index: uint, data: str) -> libc::c_void unsafe {
-    let data_c_str = str::as_c_str(data) { |data_| data_ };
-    ret GL::glGetBooleani_v(target as libc::c_uint, index as libc::c_uint, data_c_str as *libc::c_uchar);
-}
-fn glGetIntegeri_v(target: uint, index: uint, data: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetIntegeri_v(target as libc::c_uint, index as libc::c_uint, data);
-}
-fn glEnablei(target: uint, index: uint) -> libc::c_void unsafe {
-    ret GL::glEnablei(target as libc::c_uint, index as libc::c_uint);
-}
-fn glDisablei(target: uint, index: uint) -> libc::c_void unsafe {
-    ret GL::glDisablei(target as libc::c_uint, index as libc::c_uint);
-}
-fn glIsEnabledi(target: uint, index: uint) -> uint unsafe {
-    ret GL::glIsEnabledi(target as libc::c_uint, index as libc::c_uint) as uint;
-}
-fn glBindBufferRange(target: uint, index: uint, buffer: uint, offset: libc::intptr_t, size: libc::ptrdiff_t) -> libc::c_void unsafe {
-    ret GL::glBindBufferRange(target as libc::c_uint, index as libc::c_uint, buffer as libc::c_uint, offset, size);
-}
-fn glBindBufferBase(target: uint, index: uint, buffer: uint) -> libc::c_void unsafe {
-    ret GL::glBindBufferBase(target as libc::c_uint, index as libc::c_uint, buffer as libc::c_uint);
-}
-fn glTransformFeedbackVaryings(program: uint, count: int, varyings: **libc::c_uchar, bufferMode: uint) -> libc::c_void unsafe {
-    ret GL::glTransformFeedbackVaryings(program as libc::c_uint, count as libc::c_int, varyings, bufferMode as libc::c_uint);
-}
-fn glGetTransformFeedbackVarying(program: uint, index: uint, bufSize: int, length: *libc::c_int, size: *libc::c_int, type_: *libc::c_uint, name: str) -> libc::c_void unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glGetTransformFeedbackVarying(program as libc::c_uint, index as libc::c_uint, bufSize as libc::c_int, length, size, type_, name_c_str as *libc::c_uchar);
-}
-fn glClampColor(target: uint, clamp: uint) -> libc::c_void unsafe {
-    ret GL::glClampColor(target as libc::c_uint, clamp as libc::c_uint);
-}
-fn glBeginConditionalRender(id: uint, mode: uint) -> libc::c_void unsafe {
-    ret GL::glBeginConditionalRender(id as libc::c_uint, mode as libc::c_uint);
-}
-fn glEndConditionalRender() -> libc::c_void unsafe {
-    ret GL::glEndConditionalRender();
-}
-fn glVertexAttribIPointer(index: uint, size: int, type_: uint, stride: int, pointer: * libc::c_uchar) -> libc::c_void unsafe {
-    ret GL::glVertexAttribIPointer(index as libc::c_uint, size as libc::c_int, type_ as libc::c_uint, stride as libc::c_int, pointer);
-}
-fn glGetVertexAttribIiv(index: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetVertexAttribIiv(index as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glGetVertexAttribIuiv(index: uint, pname: uint, params: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGetVertexAttribIuiv(index as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glVertexAttribI1i(index: uint, x: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI1i(index as libc::c_uint, x as libc::c_int);
-}
-fn glVertexAttribI2i(index: uint, x: int, y: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI2i(index as libc::c_uint, x as libc::c_int, y as libc::c_int);
-}
-fn glVertexAttribI3i(index: uint, x: int, y: int, z: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI3i(index as libc::c_uint, x as libc::c_int, y as libc::c_int, z as libc::c_int);
-}
-fn glVertexAttribI4i(index: uint, x: int, y: int, z: int, w: int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4i(index as libc::c_uint, x as libc::c_int, y as libc::c_int, z as libc::c_int, w as libc::c_int);
-}
-fn glVertexAttribI1ui(index: uint, x: uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI1ui(index as libc::c_uint, x as libc::c_uint);
-}
-fn glVertexAttribI2ui(index: uint, x: uint, y: uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI2ui(index as libc::c_uint, x as libc::c_uint, y as libc::c_uint);
-}
-fn glVertexAttribI3ui(index: uint, x: uint, y: uint, z: uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI3ui(index as libc::c_uint, x as libc::c_uint, y as libc::c_uint, z as libc::c_uint);
-}
-fn glVertexAttribI4ui(index: uint, x: uint, y: uint, z: uint, w: uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4ui(index as libc::c_uint, x as libc::c_uint, y as libc::c_uint, z as libc::c_uint, w as libc::c_uint);
-}
-fn glVertexAttribI1iv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI1iv(index as libc::c_uint, v);
-}
-fn glVertexAttribI2iv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI2iv(index as libc::c_uint, v);
-}
-fn glVertexAttribI3iv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI3iv(index as libc::c_uint, v);
-}
-fn glVertexAttribI4iv(index: uint, v: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4iv(index as libc::c_uint, v);
-}
-fn glVertexAttribI1uiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI1uiv(index as libc::c_uint, v);
-}
-fn glVertexAttribI2uiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI2uiv(index as libc::c_uint, v);
-}
-fn glVertexAttribI3uiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI3uiv(index as libc::c_uint, v);
-}
-fn glVertexAttribI4uiv(index: uint, v: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4uiv(index as libc::c_uint, v);
-}
-fn glVertexAttribI4bv(index: uint, v: *libc::c_char) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4bv(index as libc::c_uint, v);
-}
-fn glVertexAttribI4sv(index: uint, v: *libc::c_short) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4sv(index as libc::c_uint, v);
-}
-fn glVertexAttribI4ubv(index: uint, v: str) -> libc::c_void unsafe {
-    let v_c_str = str::as_c_str(v) { |v_| v_ };
-    ret GL::glVertexAttribI4ubv(index as libc::c_uint, v_c_str as *libc::c_uchar);
-}
-fn glVertexAttribI4usv(index: uint, v: *libc::c_ushort) -> libc::c_void unsafe {
-    ret GL::glVertexAttribI4usv(index as libc::c_uint, v);
-}
-fn glGetUniformuiv(program: uint, location: int, params: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGetUniformuiv(program as libc::c_uint, location as libc::c_int, params);
-}
-fn glBindFragDataLocation(program: uint, color: uint, name: str) -> libc::c_void unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glBindFragDataLocation(program as libc::c_uint, color as libc::c_uint, name_c_str as *libc::c_uchar);
-}
-fn glGetFragDataLocation(program: uint, name: str) -> int unsafe {
-    let name_c_str = str::as_c_str(name) { |name_| name_ };
-    ret GL::glGetFragDataLocation(program as libc::c_uint, name_c_str as *libc::c_uchar) as int;
-}
-fn glUniform1ui(location: int, v0: uint) -> libc::c_void unsafe {
-    ret GL::glUniform1ui(location as libc::c_int, v0 as libc::c_uint);
-}
-fn glUniform2ui(location: int, v0: uint, v1: uint) -> libc::c_void unsafe {
-    ret GL::glUniform2ui(location as libc::c_int, v0 as libc::c_uint, v1 as libc::c_uint);
-}
-fn glUniform3ui(location: int, v0: uint, v1: uint, v2: uint) -> libc::c_void unsafe {
-    ret GL::glUniform3ui(location as libc::c_int, v0 as libc::c_uint, v1 as libc::c_uint, v2 as libc::c_uint);
-}
-fn glUniform4ui(location: int, v0: uint, v1: uint, v2: uint, v3: uint) -> libc::c_void unsafe {
-    ret GL::glUniform4ui(location as libc::c_int, v0 as libc::c_uint, v1 as libc::c_uint, v2 as libc::c_uint, v3 as libc::c_uint);
-}
-fn glUniform1uiv(location: int, count: int, value: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glUniform1uiv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform2uiv(location: int, count: int, value: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glUniform2uiv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform3uiv(location: int, count: int, value: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glUniform3uiv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glUniform4uiv(location: int, count: int, value: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glUniform4uiv(location as libc::c_int, count as libc::c_int, value);
-}
-fn glTexParameterIiv(target: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glTexParameterIiv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glTexParameterIuiv(target: uint, pname: uint, params: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glTexParameterIuiv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glGetTexParameterIiv(target: uint, pname: uint, params: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glGetTexParameterIiv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glGetTexParameterIuiv(target: uint, pname: uint, params: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glGetTexParameterIuiv(target as libc::c_uint, pname as libc::c_uint, params);
-}
-fn glClearBufferiv(buffer: uint, drawbuffer: int, value: *libc::c_int) -> libc::c_void unsafe {
-    ret GL::glClearBufferiv(buffer as libc::c_uint, drawbuffer as libc::c_int, value);
-}
-fn glClearBufferuiv(buffer: uint, drawbuffer: int, value: *libc::c_uint) -> libc::c_void unsafe {
-    ret GL::glClearBufferuiv(buffer as libc::c_uint, drawbuffer as libc::c_int, value);
-}
-fn glClearBufferfv(buffer: uint, drawbuffer: int, value: *libc::c_float) -> libc::c_void unsafe {
-    ret GL::glClearBufferfv(buffer as libc::c_uint, drawbuffer as libc::c_int, value);
-}
-fn glClearBufferfi(buffer: uint, drawbuffer: int, depth: float, stencil: int) -> libc::c_void unsafe {
-    ret GL::glClearBufferfi(buffer as libc::c_uint, drawbuffer as libc::c_int, depth as libc::c_float, stencil as libc::c_int);
-}
-fn glGetStringi(name: uint, index: uint) -> str unsafe {
-    ret str::unsafe::from_buf(GL::glGetStringi(name as libc::c_uint, index as libc::c_uint));
-}
-fn glDrawArraysInstanced(mode: uint, first: int, count: int, primcount: int) -> libc::c_void unsafe {
-    ret GL::glDrawArraysInstanced(mode as libc::c_uint, first as libc::c_int, count as libc::c_int, primcount as libc::c_int);
-}
-fn glDrawElementsInstanced(mode: uint, count: int, type_: uint, indices: * libc::c_uchar, primcount: int) -> libc::c_void unsafe {
-    ret GL::glDrawElementsInstanced(mode as libc::c_uint, count as libc::c_int, type_ as libc::c_uint, indices, primcount as libc::c_int);
-}
-fn glTexBuffer(target: uint, internalformat: uint, buffer: uint) -> libc::c_void unsafe {
-    ret GL::glTexBuffer(target as libc::c_uint, internalformat as libc::c_uint, buffer as libc::c_uint);
-}
-fn glPrimitiveRestartIndex(index: uint) -> libc::c_void unsafe {
-    ret GL::glPrimitiveRestartIndex(index as libc::c_uint);
-}
-fn glGetInteger64i_v(target: uint, index: uint, data: *libc::c_longlong) -> libc::c_void unsafe {
-    ret GL::glGetInteger64i_v(target as libc::c_uint, index as libc::c_uint, data);
-}
-fn glGetBufferParameteri64v(target: uint, pname: uint, params: *libc::c_longlong) -> libc::c_void unsafe {
-    ret GL::glGetBufferParameteri64v(target as libc::c_uint, pname as libc::c_uint, params);