package OpenGL::Modern::Registry;

=head1 NAME

OpenGL::Modern::Registry - info about OpenGL

=head1 SYNOPSIS

 # example use of information to see how many GL 1.1
 # functions were removed in "core"
 perl -MOpenGL::Modern::Registry -E '%r = %OpenGL::Modern::Registry::registry;
  say "$_,$r{$_}{feature},$r{$_}{core_removed}"
    for sort grep /^gl[A-Z]/, keys %r'|grep GL_VERSION_1_1,1|wc -l
 # answer: of 336, 275 were removed

=cut

# ATTENTION: This file is automatically generated by utils/generate-registry.pl
#            Manual changes will be lost.
use strict;
use warnings;

our %registry = (
  'GLEW_3DFX_multisample' => {
    'glewImpl' => 'GLEW_3DFX_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_3DFX_tbuffer' => {
    'glewImpl' => 'GLEW_3DFX_tbuffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_3DFX_texture_compression_FXT1' => {
    'glewImpl' => 'GLEW_3DFX_texture_compression_FXT1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_blend_minmax_factor' => {
    'glewImpl' => 'GLEW_AMD_blend_minmax_factor',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_compressed_3DC_texture' => {
    'glewImpl' => 'GLEW_AMD_compressed_3DC_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_compressed_ATC_texture' => {
    'glewImpl' => 'GLEW_AMD_compressed_ATC_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_conservative_depth' => {
    'glewImpl' => 'GLEW_AMD_conservative_depth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_debug_output' => {
    'glewImpl' => 'GLEW_AMD_debug_output',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_depth_clamp_separate' => {
    'glewImpl' => 'GLEW_AMD_depth_clamp_separate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_draw_buffers_blend' => {
    'glewImpl' => 'GLEW_AMD_draw_buffers_blend',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_framebuffer_multisample_advanced' => {
    'glewImpl' => 'GLEW_AMD_framebuffer_multisample_advanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_framebuffer_sample_positions' => {
    'glewImpl' => 'GLEW_AMD_framebuffer_sample_positions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_gcn_shader' => {
    'glewImpl' => 'GLEW_AMD_gcn_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_gpu_shader_half_float' => {
    'glewImpl' => 'GLEW_AMD_gpu_shader_half_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_gpu_shader_half_float_fetch' => {
    'glewImpl' => 'GLEW_AMD_gpu_shader_half_float_fetch',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_gpu_shader_int16' => {
    'glewImpl' => 'GLEW_AMD_gpu_shader_int16',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_gpu_shader_int64' => {
    'glewImpl' => 'GLEW_AMD_gpu_shader_int64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_interleaved_elements' => {
    'glewImpl' => 'GLEW_AMD_interleaved_elements',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_multi_draw_indirect' => {
    'glewImpl' => 'GLEW_AMD_multi_draw_indirect',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_name_gen_delete' => {
    'glewImpl' => 'GLEW_AMD_name_gen_delete',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_occlusion_query_event' => {
    'glewImpl' => 'GLEW_AMD_occlusion_query_event',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_performance_monitor' => {
    'glewImpl' => 'GLEW_AMD_performance_monitor',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_pinned_memory' => {
    'glewImpl' => 'GLEW_AMD_pinned_memory',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_program_binary_Z400' => {
    'glewImpl' => 'GLEW_AMD_program_binary_Z400',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_query_buffer_object' => {
    'glewImpl' => 'GLEW_AMD_query_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_sample_positions' => {
    'glewImpl' => 'GLEW_AMD_sample_positions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_seamless_cubemap_per_texture' => {
    'glewImpl' => 'GLEW_AMD_seamless_cubemap_per_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_atomic_counter_ops' => {
    'glewImpl' => 'GLEW_AMD_shader_atomic_counter_ops',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_ballot' => {
    'glewImpl' => 'GLEW_AMD_shader_ballot',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_explicit_vertex_parameter' => {
    'glewImpl' => 'GLEW_AMD_shader_explicit_vertex_parameter',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_image_load_store_lod' => {
    'glewImpl' => 'GLEW_AMD_shader_image_load_store_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_stencil_export' => {
    'glewImpl' => 'GLEW_AMD_shader_stencil_export',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_stencil_value_export' => {
    'glewImpl' => 'GLEW_AMD_shader_stencil_value_export',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_shader_trinary_minmax' => {
    'glewImpl' => 'GLEW_AMD_shader_trinary_minmax',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_sparse_texture' => {
    'glewImpl' => 'GLEW_AMD_sparse_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_stencil_operation_extended' => {
    'glewImpl' => 'GLEW_AMD_stencil_operation_extended',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_texture_gather_bias_lod' => {
    'glewImpl' => 'GLEW_AMD_texture_gather_bias_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_texture_texture4' => {
    'glewImpl' => 'GLEW_AMD_texture_texture4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_transform_feedback3_lines_triangles' => {
    'glewImpl' => 'GLEW_AMD_transform_feedback3_lines_triangles',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_transform_feedback4' => {
    'glewImpl' => 'GLEW_AMD_transform_feedback4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_vertex_shader_layer' => {
    'glewImpl' => 'GLEW_AMD_vertex_shader_layer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_vertex_shader_tessellator' => {
    'glewImpl' => 'GLEW_AMD_vertex_shader_tessellator',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_AMD_vertex_shader_viewport_index' => {
    'glewImpl' => 'GLEW_AMD_vertex_shader_viewport_index',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANDROID_extension_pack_es31a' => {
    'glewImpl' => 'GLEW_ANDROID_extension_pack_es31a',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_depth_texture' => {
    'glewImpl' => 'GLEW_ANGLE_depth_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_framebuffer_blit' => {
    'glewImpl' => 'GLEW_ANGLE_framebuffer_blit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_framebuffer_multisample' => {
    'glewImpl' => 'GLEW_ANGLE_framebuffer_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_instanced_arrays' => {
    'glewImpl' => 'GLEW_ANGLE_instanced_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_pack_reverse_row_order' => {
    'glewImpl' => 'GLEW_ANGLE_pack_reverse_row_order',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_program_binary' => {
    'glewImpl' => 'GLEW_ANGLE_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_texture_compression_dxt1' => {
    'glewImpl' => 'GLEW_ANGLE_texture_compression_dxt1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_texture_compression_dxt3' => {
    'glewImpl' => 'GLEW_ANGLE_texture_compression_dxt3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_texture_compression_dxt5' => {
    'glewImpl' => 'GLEW_ANGLE_texture_compression_dxt5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_texture_usage' => {
    'glewImpl' => 'GLEW_ANGLE_texture_usage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_timer_query' => {
    'glewImpl' => 'GLEW_ANGLE_timer_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ANGLE_translated_shader_source' => {
    'glewImpl' => 'GLEW_ANGLE_translated_shader_source',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_aux_depth_stencil' => {
    'glewImpl' => 'GLEW_APPLE_aux_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_client_storage' => {
    'glewImpl' => 'GLEW_APPLE_client_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_clip_distance' => {
    'glewImpl' => 'GLEW_APPLE_clip_distance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_color_buffer_packed_float' => {
    'glewImpl' => 'GLEW_APPLE_color_buffer_packed_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_copy_texture_levels' => {
    'glewImpl' => 'GLEW_APPLE_copy_texture_levels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_element_array' => {
    'glewImpl' => 'GLEW_APPLE_element_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_fence' => {
    'glewImpl' => 'GLEW_APPLE_fence',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_float_pixels' => {
    'glewImpl' => 'GLEW_APPLE_float_pixels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_flush_buffer_range' => {
    'glewImpl' => 'GLEW_APPLE_flush_buffer_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_framebuffer_multisample' => {
    'glewImpl' => 'GLEW_APPLE_framebuffer_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_object_purgeable' => {
    'glewImpl' => 'GLEW_APPLE_object_purgeable',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_pixel_buffer' => {
    'glewImpl' => 'GLEW_APPLE_pixel_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_rgb_422' => {
    'glewImpl' => 'GLEW_APPLE_rgb_422',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_row_bytes' => {
    'glewImpl' => 'GLEW_APPLE_row_bytes',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_specular_vector' => {
    'glewImpl' => 'GLEW_APPLE_specular_vector',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_sync' => {
    'glewImpl' => 'GLEW_APPLE_sync',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_texture_2D_limited_npot' => {
    'glewImpl' => 'GLEW_APPLE_texture_2D_limited_npot',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_texture_format_BGRA8888' => {
    'glewImpl' => 'GLEW_APPLE_texture_format_BGRA8888',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_texture_max_level' => {
    'glewImpl' => 'GLEW_APPLE_texture_max_level',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_texture_packed_float' => {
    'glewImpl' => 'GLEW_APPLE_texture_packed_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_texture_range' => {
    'glewImpl' => 'GLEW_APPLE_texture_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_transform_hint' => {
    'glewImpl' => 'GLEW_APPLE_transform_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_vertex_array_object' => {
    'glewImpl' => 'GLEW_APPLE_vertex_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_vertex_array_range' => {
    'glewImpl' => 'GLEW_APPLE_vertex_array_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_vertex_program_evaluators' => {
    'glewImpl' => 'GLEW_APPLE_vertex_program_evaluators',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_APPLE_ycbcr_422' => {
    'glewImpl' => 'GLEW_APPLE_ycbcr_422',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_ES2_compatibility' => {
    'glewImpl' => 'GLEW_ARB_ES2_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_ES3_1_compatibility' => {
    'glewImpl' => 'GLEW_ARB_ES3_1_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_ES3_2_compatibility' => {
    'glewImpl' => 'GLEW_ARB_ES3_2_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_ES3_compatibility' => {
    'glewImpl' => 'GLEW_ARB_ES3_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_arrays_of_arrays' => {
    'glewImpl' => 'GLEW_ARB_arrays_of_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_base_instance' => {
    'glewImpl' => 'GLEW_ARB_base_instance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_bindless_texture' => {
    'glewImpl' => 'GLEW_ARB_bindless_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_blend_func_extended' => {
    'glewImpl' => 'GLEW_ARB_blend_func_extended',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_buffer_storage' => {
    'glewImpl' => 'GLEW_ARB_buffer_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_cl_event' => {
    'glewImpl' => 'GLEW_ARB_cl_event',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_clear_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_clear_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_clear_texture' => {
    'glewImpl' => 'GLEW_ARB_clear_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_clip_control' => {
    'glewImpl' => 'GLEW_ARB_clip_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_color_buffer_float' => {
    'glewImpl' => 'GLEW_ARB_color_buffer_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_compatibility' => {
    'glewImpl' => 'GLEW_ARB_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_compressed_texture_pixel_storage' => {
    'glewImpl' => 'GLEW_ARB_compressed_texture_pixel_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_compute_shader' => {
    'glewImpl' => 'GLEW_ARB_compute_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_compute_variable_group_size' => {
    'glewImpl' => 'GLEW_ARB_compute_variable_group_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_conditional_render_inverted' => {
    'glewImpl' => 'GLEW_ARB_conditional_render_inverted',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_conservative_depth' => {
    'glewImpl' => 'GLEW_ARB_conservative_depth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_copy_buffer' => {
    'glewImpl' => 'GLEW_ARB_copy_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_copy_image' => {
    'glewImpl' => 'GLEW_ARB_copy_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_cull_distance' => {
    'glewImpl' => 'GLEW_ARB_cull_distance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_debug_output' => {
    'glewImpl' => 'GLEW_ARB_debug_output',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_depth_buffer_float' => {
    'glewImpl' => 'GLEW_ARB_depth_buffer_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_depth_clamp' => {
    'glewImpl' => 'GLEW_ARB_depth_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_depth_texture' => {
    'glewImpl' => 'GLEW_ARB_depth_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_derivative_control' => {
    'glewImpl' => 'GLEW_ARB_derivative_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_direct_state_access' => {
    'glewImpl' => 'GLEW_ARB_direct_state_access',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_draw_buffers' => {
    'glewImpl' => 'GLEW_ARB_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_draw_buffers_blend' => {
    'glewImpl' => 'GLEW_ARB_draw_buffers_blend',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_draw_elements_base_vertex' => {
    'glewImpl' => 'GLEW_ARB_draw_elements_base_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_draw_indirect' => {
    'glewImpl' => 'GLEW_ARB_draw_indirect',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_draw_instanced' => {
    'glewImpl' => 'GLEW_ARB_draw_instanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_enhanced_layouts' => {
    'glewImpl' => 'GLEW_ARB_enhanced_layouts',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_explicit_attrib_location' => {
    'glewImpl' => 'GLEW_ARB_explicit_attrib_location',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_explicit_uniform_location' => {
    'glewImpl' => 'GLEW_ARB_explicit_uniform_location',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_coord_conventions' => {
    'glewImpl' => 'GLEW_ARB_fragment_coord_conventions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_layer_viewport' => {
    'glewImpl' => 'GLEW_ARB_fragment_layer_viewport',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_program' => {
    'glewImpl' => 'GLEW_ARB_fragment_program',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_program_shadow' => {
    'glewImpl' => 'GLEW_ARB_fragment_program_shadow',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_shader' => {
    'glewImpl' => 'GLEW_ARB_fragment_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_fragment_shader_interlock' => {
    'glewImpl' => 'GLEW_ARB_fragment_shader_interlock',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_framebuffer_no_attachments' => {
    'glewImpl' => 'GLEW_ARB_framebuffer_no_attachments',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_framebuffer_object' => {
    'glewImpl' => 'GLEW_ARB_framebuffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_framebuffer_sRGB' => {
    'glewImpl' => 'GLEW_ARB_framebuffer_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_geometry_shader4' => {
    'glewImpl' => 'GLEW_ARB_geometry_shader4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_get_program_binary' => {
    'glewImpl' => 'GLEW_ARB_get_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_get_texture_sub_image' => {
    'glewImpl' => 'GLEW_ARB_get_texture_sub_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_gl_spirv' => {
    'glewImpl' => 'GLEW_ARB_gl_spirv',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_gpu_shader5' => {
    'glewImpl' => 'GLEW_ARB_gpu_shader5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_gpu_shader_fp64' => {
    'glewImpl' => 'GLEW_ARB_gpu_shader_fp64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_gpu_shader_int64' => {
    'glewImpl' => 'GLEW_ARB_gpu_shader_int64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_half_float_pixel' => {
    'glewImpl' => 'GLEW_ARB_half_float_pixel',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_half_float_vertex' => {
    'glewImpl' => 'GLEW_ARB_half_float_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_imaging' => {
    'glewImpl' => 'GLEW_ARB_imaging',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_indirect_parameters' => {
    'glewImpl' => 'GLEW_ARB_indirect_parameters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_instanced_arrays' => {
    'glewImpl' => 'GLEW_ARB_instanced_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_internalformat_query' => {
    'glewImpl' => 'GLEW_ARB_internalformat_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_internalformat_query2' => {
    'glewImpl' => 'GLEW_ARB_internalformat_query2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_invalidate_subdata' => {
    'glewImpl' => 'GLEW_ARB_invalidate_subdata',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_map_buffer_alignment' => {
    'glewImpl' => 'GLEW_ARB_map_buffer_alignment',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_map_buffer_range' => {
    'glewImpl' => 'GLEW_ARB_map_buffer_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_matrix_palette' => {
    'glewImpl' => 'GLEW_ARB_matrix_palette',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_multi_bind' => {
    'glewImpl' => 'GLEW_ARB_multi_bind',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_multi_draw_indirect' => {
    'glewImpl' => 'GLEW_ARB_multi_draw_indirect',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_multisample' => {
    'glewImpl' => 'GLEW_ARB_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_multitexture' => {
    'glewImpl' => 'GLEW_ARB_multitexture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_occlusion_query' => {
    'glewImpl' => 'GLEW_ARB_occlusion_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_occlusion_query2' => {
    'glewImpl' => 'GLEW_ARB_occlusion_query2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_parallel_shader_compile' => {
    'glewImpl' => 'GLEW_ARB_parallel_shader_compile',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_pipeline_statistics_query' => {
    'glewImpl' => 'GLEW_ARB_pipeline_statistics_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_pixel_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_pixel_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_point_parameters' => {
    'glewImpl' => 'GLEW_ARB_point_parameters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_point_sprite' => {
    'glewImpl' => 'GLEW_ARB_point_sprite',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_polygon_offset_clamp' => {
    'glewImpl' => 'GLEW_ARB_polygon_offset_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_post_depth_coverage' => {
    'glewImpl' => 'GLEW_ARB_post_depth_coverage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_program_interface_query' => {
    'glewImpl' => 'GLEW_ARB_program_interface_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_provoking_vertex' => {
    'glewImpl' => 'GLEW_ARB_provoking_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_query_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_query_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_robust_buffer_access_behavior' => {
    'glewImpl' => 'GLEW_ARB_robust_buffer_access_behavior',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_robustness' => {
    'glewImpl' => 'GLEW_ARB_robustness',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_robustness_application_isolation' => {
    'glewImpl' => 'GLEW_ARB_robustness_application_isolation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_robustness_share_group_isolation' => {
    'glewImpl' => 'GLEW_ARB_robustness_share_group_isolation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sample_locations' => {
    'glewImpl' => 'GLEW_ARB_sample_locations',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sample_shading' => {
    'glewImpl' => 'GLEW_ARB_sample_shading',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sampler_objects' => {
    'glewImpl' => 'GLEW_ARB_sampler_objects',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_seamless_cube_map' => {
    'glewImpl' => 'GLEW_ARB_seamless_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_seamless_cubemap_per_texture' => {
    'glewImpl' => 'GLEW_ARB_seamless_cubemap_per_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_separate_shader_objects' => {
    'glewImpl' => 'GLEW_ARB_separate_shader_objects',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_atomic_counter_ops' => {
    'glewImpl' => 'GLEW_ARB_shader_atomic_counter_ops',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_atomic_counters' => {
    'glewImpl' => 'GLEW_ARB_shader_atomic_counters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_ballot' => {
    'glewImpl' => 'GLEW_ARB_shader_ballot',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_bit_encoding' => {
    'glewImpl' => 'GLEW_ARB_shader_bit_encoding',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_clock' => {
    'glewImpl' => 'GLEW_ARB_shader_clock',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_draw_parameters' => {
    'glewImpl' => 'GLEW_ARB_shader_draw_parameters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_group_vote' => {
    'glewImpl' => 'GLEW_ARB_shader_group_vote',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_image_load_store' => {
    'glewImpl' => 'GLEW_ARB_shader_image_load_store',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_image_size' => {
    'glewImpl' => 'GLEW_ARB_shader_image_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_objects' => {
    'glewImpl' => 'GLEW_ARB_shader_objects',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_precision' => {
    'glewImpl' => 'GLEW_ARB_shader_precision',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_stencil_export' => {
    'glewImpl' => 'GLEW_ARB_shader_stencil_export',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_storage_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_shader_storage_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_subroutine' => {
    'glewImpl' => 'GLEW_ARB_shader_subroutine',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_texture_image_samples' => {
    'glewImpl' => 'GLEW_ARB_shader_texture_image_samples',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_texture_lod' => {
    'glewImpl' => 'GLEW_ARB_shader_texture_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shader_viewport_layer_array' => {
    'glewImpl' => 'GLEW_ARB_shader_viewport_layer_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shading_language_100' => {
    'glewImpl' => 'GLEW_ARB_shading_language_100',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shading_language_420pack' => {
    'glewImpl' => 'GLEW_ARB_shading_language_420pack',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shading_language_include' => {
    'glewImpl' => 'GLEW_ARB_shading_language_include',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shading_language_packing' => {
    'glewImpl' => 'GLEW_ARB_shading_language_packing',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shadow' => {
    'glewImpl' => 'GLEW_ARB_shadow',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_shadow_ambient' => {
    'glewImpl' => 'GLEW_ARB_shadow_ambient',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sparse_buffer' => {
    'glewImpl' => 'GLEW_ARB_sparse_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sparse_texture' => {
    'glewImpl' => 'GLEW_ARB_sparse_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sparse_texture2' => {
    'glewImpl' => 'GLEW_ARB_sparse_texture2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sparse_texture_clamp' => {
    'glewImpl' => 'GLEW_ARB_sparse_texture_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_spirv_extensions' => {
    'glewImpl' => 'GLEW_ARB_spirv_extensions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_stencil_texturing' => {
    'glewImpl' => 'GLEW_ARB_stencil_texturing',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_sync' => {
    'glewImpl' => 'GLEW_ARB_sync',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_tessellation_shader' => {
    'glewImpl' => 'GLEW_ARB_tessellation_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_barrier' => {
    'glewImpl' => 'GLEW_ARB_texture_barrier',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_border_clamp' => {
    'glewImpl' => 'GLEW_ARB_texture_border_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_texture_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_buffer_object_rgb32' => {
    'glewImpl' => 'GLEW_ARB_texture_buffer_object_rgb32',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_buffer_range' => {
    'glewImpl' => 'GLEW_ARB_texture_buffer_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_compression' => {
    'glewImpl' => 'GLEW_ARB_texture_compression',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_compression_bptc' => {
    'glewImpl' => 'GLEW_ARB_texture_compression_bptc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_compression_rgtc' => {
    'glewImpl' => 'GLEW_ARB_texture_compression_rgtc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_cube_map' => {
    'glewImpl' => 'GLEW_ARB_texture_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_cube_map_array' => {
    'glewImpl' => 'GLEW_ARB_texture_cube_map_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_env_add' => {
    'glewImpl' => 'GLEW_ARB_texture_env_add',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_env_combine' => {
    'glewImpl' => 'GLEW_ARB_texture_env_combine',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_env_crossbar' => {
    'glewImpl' => 'GLEW_ARB_texture_env_crossbar',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_env_dot3' => {
    'glewImpl' => 'GLEW_ARB_texture_env_dot3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_filter_anisotropic' => {
    'glewImpl' => 'GLEW_ARB_texture_filter_anisotropic',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_filter_minmax' => {
    'glewImpl' => 'GLEW_ARB_texture_filter_minmax',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_float' => {
    'glewImpl' => 'GLEW_ARB_texture_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_gather' => {
    'glewImpl' => 'GLEW_ARB_texture_gather',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_mirror_clamp_to_edge' => {
    'glewImpl' => 'GLEW_ARB_texture_mirror_clamp_to_edge',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_mirrored_repeat' => {
    'glewImpl' => 'GLEW_ARB_texture_mirrored_repeat',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_multisample' => {
    'glewImpl' => 'GLEW_ARB_texture_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_non_power_of_two' => {
    'glewImpl' => 'GLEW_ARB_texture_non_power_of_two',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_query_levels' => {
    'glewImpl' => 'GLEW_ARB_texture_query_levels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_query_lod' => {
    'glewImpl' => 'GLEW_ARB_texture_query_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_rectangle' => {
    'glewImpl' => 'GLEW_ARB_texture_rectangle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_rg' => {
    'glewImpl' => 'GLEW_ARB_texture_rg',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_rgb10_a2ui' => {
    'glewImpl' => 'GLEW_ARB_texture_rgb10_a2ui',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_stencil8' => {
    'glewImpl' => 'GLEW_ARB_texture_stencil8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_storage' => {
    'glewImpl' => 'GLEW_ARB_texture_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_storage_multisample' => {
    'glewImpl' => 'GLEW_ARB_texture_storage_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_swizzle' => {
    'glewImpl' => 'GLEW_ARB_texture_swizzle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_texture_view' => {
    'glewImpl' => 'GLEW_ARB_texture_view',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_timer_query' => {
    'glewImpl' => 'GLEW_ARB_timer_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_transform_feedback2' => {
    'glewImpl' => 'GLEW_ARB_transform_feedback2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_transform_feedback3' => {
    'glewImpl' => 'GLEW_ARB_transform_feedback3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_transform_feedback_instanced' => {
    'glewImpl' => 'GLEW_ARB_transform_feedback_instanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_transform_feedback_overflow_query' => {
    'glewImpl' => 'GLEW_ARB_transform_feedback_overflow_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_transpose_matrix' => {
    'glewImpl' => 'GLEW_ARB_transpose_matrix',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_uniform_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_uniform_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_array_bgra' => {
    'glewImpl' => 'GLEW_ARB_vertex_array_bgra',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_array_object' => {
    'glewImpl' => 'GLEW_ARB_vertex_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_attrib_64bit' => {
    'glewImpl' => 'GLEW_ARB_vertex_attrib_64bit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_attrib_binding' => {
    'glewImpl' => 'GLEW_ARB_vertex_attrib_binding',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_blend' => {
    'glewImpl' => 'GLEW_ARB_vertex_blend',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_buffer_object' => {
    'glewImpl' => 'GLEW_ARB_vertex_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_program' => {
    'glewImpl' => 'GLEW_ARB_vertex_program',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_shader' => {
    'glewImpl' => 'GLEW_ARB_vertex_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_type_10f_11f_11f_rev' => {
    'glewImpl' => 'GLEW_ARB_vertex_type_10f_11f_11f_rev',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_vertex_type_2_10_10_10_rev' => {
    'glewImpl' => 'GLEW_ARB_vertex_type_2_10_10_10_rev',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_viewport_array' => {
    'glewImpl' => 'GLEW_ARB_viewport_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARB_window_pos' => {
    'glewImpl' => 'GLEW_ARB_window_pos',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_mali_program_binary' => {
    'glewImpl' => 'GLEW_ARM_mali_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_mali_shader_binary' => {
    'glewImpl' => 'GLEW_ARM_mali_shader_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_rgba8' => {
    'glewImpl' => 'GLEW_ARM_rgba8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_shader_core_properties' => {
    'glewImpl' => 'GLEW_ARM_shader_core_properties',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_shader_framebuffer_fetch' => {
    'glewImpl' => 'GLEW_ARM_shader_framebuffer_fetch',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_shader_framebuffer_fetch_depth_stencil' => {
    'glewImpl' => 'GLEW_ARM_shader_framebuffer_fetch_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ARM_texture_unnormalized_coordinates' => {
    'glewImpl' => 'GLEW_ARM_texture_unnormalized_coordinates',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATIX_point_sprites' => {
    'glewImpl' => 'GLEW_ATIX_point_sprites',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATIX_texture_env_combine3' => {
    'glewImpl' => 'GLEW_ATIX_texture_env_combine3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATIX_texture_env_route' => {
    'glewImpl' => 'GLEW_ATIX_texture_env_route',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATIX_vertex_shader_output_point_size' => {
    'glewImpl' => 'GLEW_ATIX_vertex_shader_output_point_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_draw_buffers' => {
    'glewImpl' => 'GLEW_ATI_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_element_array' => {
    'glewImpl' => 'GLEW_ATI_element_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_envmap_bumpmap' => {
    'glewImpl' => 'GLEW_ATI_envmap_bumpmap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_fragment_shader' => {
    'glewImpl' => 'GLEW_ATI_fragment_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_map_object_buffer' => {
    'glewImpl' => 'GLEW_ATI_map_object_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_meminfo' => {
    'glewImpl' => 'GLEW_ATI_meminfo',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_pn_triangles' => {
    'glewImpl' => 'GLEW_ATI_pn_triangles',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_separate_stencil' => {
    'glewImpl' => 'GLEW_ATI_separate_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_shader_texture_lod' => {
    'glewImpl' => 'GLEW_ATI_shader_texture_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_text_fragment_shader' => {
    'glewImpl' => 'GLEW_ATI_text_fragment_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_texture_compression_3dc' => {
    'glewImpl' => 'GLEW_ATI_texture_compression_3dc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_texture_env_combine3' => {
    'glewImpl' => 'GLEW_ATI_texture_env_combine3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_texture_float' => {
    'glewImpl' => 'GLEW_ATI_texture_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_texture_mirror_once' => {
    'glewImpl' => 'GLEW_ATI_texture_mirror_once',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_vertex_array_object' => {
    'glewImpl' => 'GLEW_ATI_vertex_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_vertex_attrib_array_object' => {
    'glewImpl' => 'GLEW_ATI_vertex_attrib_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_ATI_vertex_streams' => {
    'glewImpl' => 'GLEW_ATI_vertex_streams',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_DMP_program_binary' => {
    'glewImpl' => 'GLEW_DMP_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_DMP_shader_binary' => {
    'glewImpl' => 'GLEW_DMP_shader_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_422_pixels' => {
    'glewImpl' => 'GLEW_EXT_422_pixels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_Cg_shader' => {
    'glewImpl' => 'GLEW_EXT_Cg_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_EGL_image_array' => {
    'glewImpl' => 'GLEW_EXT_EGL_image_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_EGL_image_external_wrap_modes' => {
    'glewImpl' => 'GLEW_EXT_EGL_image_external_wrap_modes',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_EGL_image_storage' => {
    'glewImpl' => 'GLEW_EXT_EGL_image_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_EGL_image_storage_compression' => {
    'glewImpl' => 'GLEW_EXT_EGL_image_storage_compression',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_EGL_sync' => {
    'glewImpl' => 'GLEW_EXT_EGL_sync',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_YUV_target' => {
    'glewImpl' => 'GLEW_EXT_YUV_target',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_abgr' => {
    'glewImpl' => 'GLEW_EXT_abgr',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_base_instance' => {
    'glewImpl' => 'GLEW_EXT_base_instance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_bgra' => {
    'glewImpl' => 'GLEW_EXT_bgra',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_bindable_uniform' => {
    'glewImpl' => 'GLEW_EXT_bindable_uniform',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_color' => {
    'glewImpl' => 'GLEW_EXT_blend_color',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_equation_separate' => {
    'glewImpl' => 'GLEW_EXT_blend_equation_separate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_func_extended' => {
    'glewImpl' => 'GLEW_EXT_blend_func_extended',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_func_separate' => {
    'glewImpl' => 'GLEW_EXT_blend_func_separate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_logic_op' => {
    'glewImpl' => 'GLEW_EXT_blend_logic_op',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_minmax' => {
    'glewImpl' => 'GLEW_EXT_blend_minmax',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_blend_subtract' => {
    'glewImpl' => 'GLEW_EXT_blend_subtract',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_buffer_storage' => {
    'glewImpl' => 'GLEW_EXT_buffer_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_clear_texture' => {
    'glewImpl' => 'GLEW_EXT_clear_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_clip_control' => {
    'glewImpl' => 'GLEW_EXT_clip_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_clip_cull_distance' => {
    'glewImpl' => 'GLEW_EXT_clip_cull_distance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_clip_volume_hint' => {
    'glewImpl' => 'GLEW_EXT_clip_volume_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_cmyka' => {
    'glewImpl' => 'GLEW_EXT_cmyka',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_color_buffer_float' => {
    'glewImpl' => 'GLEW_EXT_color_buffer_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_color_buffer_half_float' => {
    'glewImpl' => 'GLEW_EXT_color_buffer_half_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_color_subtable' => {
    'glewImpl' => 'GLEW_EXT_color_subtable',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_compiled_vertex_array' => {
    'glewImpl' => 'GLEW_EXT_compiled_vertex_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_compressed_ETC1_RGB8_sub_texture' => {
    'glewImpl' => 'GLEW_EXT_compressed_ETC1_RGB8_sub_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_conservative_depth' => {
    'glewImpl' => 'GLEW_EXT_conservative_depth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_convolution' => {
    'glewImpl' => 'GLEW_EXT_convolution',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_coordinate_frame' => {
    'glewImpl' => 'GLEW_EXT_coordinate_frame',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_copy_image' => {
    'glewImpl' => 'GLEW_EXT_copy_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_copy_texture' => {
    'glewImpl' => 'GLEW_EXT_copy_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_cull_vertex' => {
    'glewImpl' => 'GLEW_EXT_cull_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_debug_label' => {
    'glewImpl' => 'GLEW_EXT_debug_label',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_debug_marker' => {
    'glewImpl' => 'GLEW_EXT_debug_marker',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_depth_bounds_test' => {
    'glewImpl' => 'GLEW_EXT_depth_bounds_test',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_depth_clamp' => {
    'glewImpl' => 'GLEW_EXT_depth_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_direct_state_access' => {
    'glewImpl' => 'GLEW_EXT_direct_state_access',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_discard_framebuffer' => {
    'glewImpl' => 'GLEW_EXT_discard_framebuffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_disjoint_timer_query' => {
    'glewImpl' => 'GLEW_EXT_disjoint_timer_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_buffers' => {
    'glewImpl' => 'GLEW_EXT_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_buffers2' => {
    'glewImpl' => 'GLEW_EXT_draw_buffers2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_buffers_indexed' => {
    'glewImpl' => 'GLEW_EXT_draw_buffers_indexed',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_elements_base_vertex' => {
    'glewImpl' => 'GLEW_EXT_draw_elements_base_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_instanced' => {
    'glewImpl' => 'GLEW_EXT_draw_instanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_range_elements' => {
    'glewImpl' => 'GLEW_EXT_draw_range_elements',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_draw_transform_feedback' => {
    'glewImpl' => 'GLEW_EXT_draw_transform_feedback',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_external_buffer' => {
    'glewImpl' => 'GLEW_EXT_external_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_float_blend' => {
    'glewImpl' => 'GLEW_EXT_float_blend',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_fog_coord' => {
    'glewImpl' => 'GLEW_EXT_fog_coord',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_frag_depth' => {
    'glewImpl' => 'GLEW_EXT_frag_depth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_fragment_lighting' => {
    'glewImpl' => 'GLEW_EXT_fragment_lighting',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_fragment_shading_rate' => {
    'glewImpl' => 'GLEW_EXT_fragment_shading_rate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_fragment_shading_rate_attachment' => {
    'glewImpl' => 'GLEW_EXT_fragment_shading_rate_attachment',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_fragment_shading_rate_primitive' => {
    'glewImpl' => 'GLEW_EXT_fragment_shading_rate_primitive',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_blit' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_blit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_blit_layers' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_blit_layers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_multisample' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_multisample_blit_scaled' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_multisample_blit_scaled',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_object' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_framebuffer_sRGB' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_geometry_point_size' => {
    'glewImpl' => 'GLEW_EXT_geometry_point_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_geometry_shader' => {
    'glewImpl' => 'GLEW_EXT_geometry_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_geometry_shader4' => {
    'glewImpl' => 'GLEW_EXT_geometry_shader4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_gpu_program_parameters' => {
    'glewImpl' => 'GLEW_EXT_gpu_program_parameters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_gpu_shader4' => {
    'glewImpl' => 'GLEW_EXT_gpu_shader4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_gpu_shader5' => {
    'glewImpl' => 'GLEW_EXT_gpu_shader5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_histogram' => {
    'glewImpl' => 'GLEW_EXT_histogram',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_index_array_formats' => {
    'glewImpl' => 'GLEW_EXT_index_array_formats',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_index_func' => {
    'glewImpl' => 'GLEW_EXT_index_func',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_index_material' => {
    'glewImpl' => 'GLEW_EXT_index_material',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_index_texture' => {
    'glewImpl' => 'GLEW_EXT_index_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_instanced_arrays' => {
    'glewImpl' => 'GLEW_EXT_instanced_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_light_texture' => {
    'glewImpl' => 'GLEW_EXT_light_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_map_buffer_range' => {
    'glewImpl' => 'GLEW_EXT_map_buffer_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_memory_object' => {
    'glewImpl' => 'GLEW_EXT_memory_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_memory_object_fd' => {
    'glewImpl' => 'GLEW_EXT_memory_object_fd',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_memory_object_win32' => {
    'glewImpl' => 'GLEW_EXT_memory_object_win32',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_mesh_shader' => {
    'glewImpl' => 'GLEW_EXT_mesh_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_misc_attribute' => {
    'glewImpl' => 'GLEW_EXT_misc_attribute',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multi_draw_arrays' => {
    'glewImpl' => 'GLEW_EXT_multi_draw_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multi_draw_indirect' => {
    'glewImpl' => 'GLEW_EXT_multi_draw_indirect',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multiple_textures' => {
    'glewImpl' => 'GLEW_EXT_multiple_textures',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multisample' => {
    'glewImpl' => 'GLEW_EXT_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multisample_compatibility' => {
    'glewImpl' => 'GLEW_EXT_multisample_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multisampled_render_to_texture' => {
    'glewImpl' => 'GLEW_EXT_multisampled_render_to_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multisampled_render_to_texture2' => {
    'glewImpl' => 'GLEW_EXT_multisampled_render_to_texture2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multiview_draw_buffers' => {
    'glewImpl' => 'GLEW_EXT_multiview_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multiview_tessellation_geometry_shader' => {
    'glewImpl' => 'GLEW_EXT_multiview_tessellation_geometry_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multiview_texture_multisample' => {
    'glewImpl' => 'GLEW_EXT_multiview_texture_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_multiview_timer_query' => {
    'glewImpl' => 'GLEW_EXT_multiview_timer_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_occlusion_query_boolean' => {
    'glewImpl' => 'GLEW_EXT_occlusion_query_boolean',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_packed_depth_stencil' => {
    'glewImpl' => 'GLEW_EXT_packed_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_packed_float' => {
    'glewImpl' => 'GLEW_EXT_packed_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_packed_pixels' => {
    'glewImpl' => 'GLEW_EXT_packed_pixels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_paletted_texture' => {
    'glewImpl' => 'GLEW_EXT_paletted_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_pixel_buffer_object' => {
    'glewImpl' => 'GLEW_EXT_pixel_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_pixel_transform' => {
    'glewImpl' => 'GLEW_EXT_pixel_transform',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_pixel_transform_color_table' => {
    'glewImpl' => 'GLEW_EXT_pixel_transform_color_table',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_point_parameters' => {
    'glewImpl' => 'GLEW_EXT_point_parameters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_polygon_offset' => {
    'glewImpl' => 'GLEW_EXT_polygon_offset',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_polygon_offset_clamp' => {
    'glewImpl' => 'GLEW_EXT_polygon_offset_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_post_depth_coverage' => {
    'glewImpl' => 'GLEW_EXT_post_depth_coverage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_primitive_bounding_box' => {
    'glewImpl' => 'GLEW_EXT_primitive_bounding_box',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_protected_textures' => {
    'glewImpl' => 'GLEW_EXT_protected_textures',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_provoking_vertex' => {
    'glewImpl' => 'GLEW_EXT_provoking_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_pvrtc_sRGB' => {
    'glewImpl' => 'GLEW_EXT_pvrtc_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_raster_multisample' => {
    'glewImpl' => 'GLEW_EXT_raster_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_read_format_bgra' => {
    'glewImpl' => 'GLEW_EXT_read_format_bgra',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_render_snorm' => {
    'glewImpl' => 'GLEW_EXT_render_snorm',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_rescale_normal' => {
    'glewImpl' => 'GLEW_EXT_rescale_normal',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_robustness' => {
    'glewImpl' => 'GLEW_EXT_robustness',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_sRGB' => {
    'glewImpl' => 'GLEW_EXT_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_sRGB_write_control' => {
    'glewImpl' => 'GLEW_EXT_sRGB_write_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_scene_marker' => {
    'glewImpl' => 'GLEW_EXT_scene_marker',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_secondary_color' => {
    'glewImpl' => 'GLEW_EXT_secondary_color',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_semaphore' => {
    'glewImpl' => 'GLEW_EXT_semaphore',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_semaphore_fd' => {
    'glewImpl' => 'GLEW_EXT_semaphore_fd',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_semaphore_win32' => {
    'glewImpl' => 'GLEW_EXT_semaphore_win32',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_separate_depth_stencil' => {
    'glewImpl' => 'GLEW_EXT_separate_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_separate_shader_objects' => {
    'glewImpl' => 'GLEW_EXT_separate_shader_objects',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_separate_specular_color' => {
    'glewImpl' => 'GLEW_EXT_separate_specular_color',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_clock' => {
    'glewImpl' => 'GLEW_EXT_shader_clock',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_framebuffer_fetch' => {
    'glewImpl' => 'GLEW_EXT_shader_framebuffer_fetch',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_framebuffer_fetch_non_coherent' => {
    'glewImpl' => 'GLEW_EXT_shader_framebuffer_fetch_non_coherent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_group_vote' => {
    'glewImpl' => 'GLEW_EXT_shader_group_vote',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_image_load_formatted' => {
    'glewImpl' => 'GLEW_EXT_shader_image_load_formatted',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_image_load_store' => {
    'glewImpl' => 'GLEW_EXT_shader_image_load_store',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_implicit_conversions' => {
    'glewImpl' => 'GLEW_EXT_shader_implicit_conversions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_integer_mix' => {
    'glewImpl' => 'GLEW_EXT_shader_integer_mix',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_io_blocks' => {
    'glewImpl' => 'GLEW_EXT_shader_io_blocks',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_non_constant_global_initializers' => {
    'glewImpl' => 'GLEW_EXT_shader_non_constant_global_initializers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_pixel_local_storage' => {
    'glewImpl' => 'GLEW_EXT_shader_pixel_local_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_pixel_local_storage2' => {
    'glewImpl' => 'GLEW_EXT_shader_pixel_local_storage2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_realtime_clock' => {
    'glewImpl' => 'GLEW_EXT_shader_realtime_clock',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_samples_identical' => {
    'glewImpl' => 'GLEW_EXT_shader_samples_identical',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_texture_lod' => {
    'glewImpl' => 'GLEW_EXT_shader_texture_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shader_texture_samples' => {
    'glewImpl' => 'GLEW_EXT_shader_texture_samples',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shadow_funcs' => {
    'glewImpl' => 'GLEW_EXT_shadow_funcs',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shadow_samplers' => {
    'glewImpl' => 'GLEW_EXT_shadow_samplers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_shared_texture_palette' => {
    'glewImpl' => 'GLEW_EXT_shared_texture_palette',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_sparse_texture' => {
    'glewImpl' => 'GLEW_EXT_sparse_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_sparse_texture2' => {
    'glewImpl' => 'GLEW_EXT_sparse_texture2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_static_vertex_array' => {
    'glewImpl' => 'GLEW_EXT_static_vertex_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_stencil_clear_tag' => {
    'glewImpl' => 'GLEW_EXT_stencil_clear_tag',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_stencil_two_side' => {
    'glewImpl' => 'GLEW_EXT_stencil_two_side',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_stencil_wrap' => {
    'glewImpl' => 'GLEW_EXT_stencil_wrap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_subtexture' => {
    'glewImpl' => 'GLEW_EXT_subtexture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_tessellation_point_size' => {
    'glewImpl' => 'GLEW_EXT_tessellation_point_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_tessellation_shader' => {
    'glewImpl' => 'GLEW_EXT_tessellation_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture' => {
    'glewImpl' => 'GLEW_EXT_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture3D' => {
    'glewImpl' => 'GLEW_EXT_texture3D',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_array' => {
    'glewImpl' => 'GLEW_EXT_texture_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_border_clamp' => {
    'glewImpl' => 'GLEW_EXT_texture_border_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_buffer' => {
    'glewImpl' => 'GLEW_EXT_texture_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_buffer_object' => {
    'glewImpl' => 'GLEW_EXT_texture_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_astc_decode_mode' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_astc_decode_mode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_bptc' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_bptc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_dxt1' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_dxt1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_latc' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_latc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_rgtc' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_rgtc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_s3tc' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_s3tc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_compression_s3tc_srgb' => {
    'glewImpl' => 'GLEW_EXT_texture_compression_s3tc_srgb',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_cube_map' => {
    'glewImpl' => 'GLEW_EXT_texture_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_cube_map_array' => {
    'glewImpl' => 'GLEW_EXT_texture_cube_map_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_edge_clamp' => {
    'glewImpl' => 'GLEW_EXT_texture_edge_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_env' => {
    'glewImpl' => 'GLEW_EXT_texture_env',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_env_add' => {
    'glewImpl' => 'GLEW_EXT_texture_env_add',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_env_combine' => {
    'glewImpl' => 'GLEW_EXT_texture_env_combine',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_env_dot3' => {
    'glewImpl' => 'GLEW_EXT_texture_env_dot3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_filter_anisotropic' => {
    'glewImpl' => 'GLEW_EXT_texture_filter_anisotropic',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_filter_minmax' => {
    'glewImpl' => 'GLEW_EXT_texture_filter_minmax',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_format_BGRA8888' => {
    'glewImpl' => 'GLEW_EXT_texture_format_BGRA8888',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_format_sRGB_override' => {
    'glewImpl' => 'GLEW_EXT_texture_format_sRGB_override',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_integer' => {
    'glewImpl' => 'GLEW_EXT_texture_integer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_lod_bias' => {
    'glewImpl' => 'GLEW_EXT_texture_lod_bias',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_mirror_clamp' => {
    'glewImpl' => 'GLEW_EXT_texture_mirror_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_mirror_clamp_to_edge' => {
    'glewImpl' => 'GLEW_EXT_texture_mirror_clamp_to_edge',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_norm16' => {
    'glewImpl' => 'GLEW_EXT_texture_norm16',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_object' => {
    'glewImpl' => 'GLEW_EXT_texture_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_perturb_normal' => {
    'glewImpl' => 'GLEW_EXT_texture_perturb_normal',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_query_lod' => {
    'glewImpl' => 'GLEW_EXT_texture_query_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_rectangle' => {
    'glewImpl' => 'GLEW_EXT_texture_rectangle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_rg' => {
    'glewImpl' => 'GLEW_EXT_texture_rg',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_sRGB' => {
    'glewImpl' => 'GLEW_EXT_texture_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_sRGB_R8' => {
    'glewImpl' => 'GLEW_EXT_texture_sRGB_R8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_sRGB_RG8' => {
    'glewImpl' => 'GLEW_EXT_texture_sRGB_RG8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_sRGB_decode' => {
    'glewImpl' => 'GLEW_EXT_texture_sRGB_decode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_shadow_lod' => {
    'glewImpl' => 'GLEW_EXT_texture_shadow_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_shared_exponent' => {
    'glewImpl' => 'GLEW_EXT_texture_shared_exponent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_snorm' => {
    'glewImpl' => 'GLEW_EXT_texture_snorm',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_storage' => {
    'glewImpl' => 'GLEW_EXT_texture_storage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_storage_compression' => {
    'glewImpl' => 'GLEW_EXT_texture_storage_compression',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_swizzle' => {
    'glewImpl' => 'GLEW_EXT_texture_swizzle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_type_2_10_10_10_REV' => {
    'glewImpl' => 'GLEW_EXT_texture_type_2_10_10_10_REV',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_texture_view' => {
    'glewImpl' => 'GLEW_EXT_texture_view',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_timer_query' => {
    'glewImpl' => 'GLEW_EXT_timer_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_transform_feedback' => {
    'glewImpl' => 'GLEW_EXT_transform_feedback',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_unpack_subimage' => {
    'glewImpl' => 'GLEW_EXT_unpack_subimage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_array' => {
    'glewImpl' => 'GLEW_EXT_vertex_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_array_bgra' => {
    'glewImpl' => 'GLEW_EXT_vertex_array_bgra',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_array_setXXX' => {
    'glewImpl' => 'GLEW_EXT_vertex_array_setXXX',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_attrib_64bit' => {
    'glewImpl' => 'GLEW_EXT_vertex_attrib_64bit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_shader' => {
    'glewImpl' => 'GLEW_EXT_vertex_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_vertex_weighting' => {
    'glewImpl' => 'GLEW_EXT_vertex_weighting',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_win32_keyed_mutex' => {
    'glewImpl' => 'GLEW_EXT_win32_keyed_mutex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_window_rectangles' => {
    'glewImpl' => 'GLEW_EXT_window_rectangles',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EXT_x11_sync_object' => {
    'glewImpl' => 'GLEW_EXT_x11_sync_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_FJ_shader_binary_GCCSO' => {
    'glewImpl' => 'GLEW_FJ_shader_binary_GCCSO',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_GREMEDY_frame_terminator' => {
    'glewImpl' => 'GLEW_GREMEDY_frame_terminator',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_GREMEDY_string_marker' => {
    'glewImpl' => 'GLEW_GREMEDY_string_marker',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HP_convolution_border_modes' => {
    'glewImpl' => 'GLEW_HP_convolution_border_modes',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HP_image_transform' => {
    'glewImpl' => 'GLEW_HP_image_transform',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HP_occlusion_test' => {
    'glewImpl' => 'GLEW_HP_occlusion_test',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HP_texture_lighting' => {
    'glewImpl' => 'GLEW_HP_texture_lighting',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HUAWEI_program_binary' => {
    'glewImpl' => 'GLEW_HUAWEI_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_HUAWEI_shader_binary' => {
    'glewImpl' => 'GLEW_HUAWEI_shader_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_cull_vertex' => {
    'glewImpl' => 'GLEW_IBM_cull_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_multimode_draw_arrays' => {
    'glewImpl' => 'GLEW_IBM_multimode_draw_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_rasterpos_clip' => {
    'glewImpl' => 'GLEW_IBM_rasterpos_clip',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_static_data' => {
    'glewImpl' => 'GLEW_IBM_static_data',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_texture_mirrored_repeat' => {
    'glewImpl' => 'GLEW_IBM_texture_mirrored_repeat',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IBM_vertex_array_lists' => {
    'glewImpl' => 'GLEW_IBM_vertex_array_lists',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_bindless_texture' => {
    'glewImpl' => 'GLEW_IMG_bindless_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_framebuffer_downsample' => {
    'glewImpl' => 'GLEW_IMG_framebuffer_downsample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_multisampled_render_to_texture' => {
    'glewImpl' => 'GLEW_IMG_multisampled_render_to_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_program_binary' => {
    'glewImpl' => 'GLEW_IMG_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_pvric_end_to_end_signature' => {
    'glewImpl' => 'GLEW_IMG_pvric_end_to_end_signature',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_read_format' => {
    'glewImpl' => 'GLEW_IMG_read_format',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_shader_binary' => {
    'glewImpl' => 'GLEW_IMG_shader_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_texture_compression_pvrtc' => {
    'glewImpl' => 'GLEW_IMG_texture_compression_pvrtc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_texture_compression_pvrtc2' => {
    'glewImpl' => 'GLEW_IMG_texture_compression_pvrtc2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_texture_env_enhanced_fixed_function' => {
    'glewImpl' => 'GLEW_IMG_texture_env_enhanced_fixed_function',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_texture_filter_cubic' => {
    'glewImpl' => 'GLEW_IMG_texture_filter_cubic',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_IMG_tile_region_protection' => {
    'glewImpl' => 'GLEW_IMG_tile_region_protection',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INGR_color_clamp' => {
    'glewImpl' => 'GLEW_INGR_color_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INGR_interlace_read' => {
    'glewImpl' => 'GLEW_INGR_interlace_read',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_blackhole_render' => {
    'glewImpl' => 'GLEW_INTEL_blackhole_render',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_conservative_rasterization' => {
    'glewImpl' => 'GLEW_INTEL_conservative_rasterization',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_fragment_shader_ordering' => {
    'glewImpl' => 'GLEW_INTEL_fragment_shader_ordering',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_framebuffer_CMAA' => {
    'glewImpl' => 'GLEW_INTEL_framebuffer_CMAA',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_map_texture' => {
    'glewImpl' => 'GLEW_INTEL_map_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_parallel_arrays' => {
    'glewImpl' => 'GLEW_INTEL_parallel_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_performance_query' => {
    'glewImpl' => 'GLEW_INTEL_performance_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_shader_integer_functions2' => {
    'glewImpl' => 'GLEW_INTEL_shader_integer_functions2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_INTEL_texture_scissor' => {
    'glewImpl' => 'GLEW_INTEL_texture_scissor',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_blend_equation_advanced' => {
    'glewImpl' => 'GLEW_KHR_blend_equation_advanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_blend_equation_advanced_coherent' => {
    'glewImpl' => 'GLEW_KHR_blend_equation_advanced_coherent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_context_flush_control' => {
    'glewImpl' => 'GLEW_KHR_context_flush_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_debug' => {
    'glewImpl' => 'GLEW_KHR_debug',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_no_error' => {
    'glewImpl' => 'GLEW_KHR_no_error',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_parallel_shader_compile' => {
    'glewImpl' => 'GLEW_KHR_parallel_shader_compile',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_robust_buffer_access_behavior' => {
    'glewImpl' => 'GLEW_KHR_robust_buffer_access_behavior',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_robustness' => {
    'glewImpl' => 'GLEW_KHR_robustness',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_shader_subgroup' => {
    'glewImpl' => 'GLEW_KHR_shader_subgroup',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_texture_compression_astc_hdr' => {
    'glewImpl' => 'GLEW_KHR_texture_compression_astc_hdr',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_texture_compression_astc_ldr' => {
    'glewImpl' => 'GLEW_KHR_texture_compression_astc_ldr',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KHR_texture_compression_astc_sliced_3d' => {
    'glewImpl' => 'GLEW_KHR_texture_compression_astc_sliced_3d',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_KTX_buffer_region' => {
    'glewImpl' => 'GLEW_KTX_buffer_region',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESAX_texture_stack' => {
    'glewImpl' => 'GLEW_MESAX_texture_stack',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_bgra' => {
    'glewImpl' => 'GLEW_MESA_bgra',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_framebuffer_flip_x' => {
    'glewImpl' => 'GLEW_MESA_framebuffer_flip_x',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_framebuffer_flip_y' => {
    'glewImpl' => 'GLEW_MESA_framebuffer_flip_y',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_framebuffer_swap_xy' => {
    'glewImpl' => 'GLEW_MESA_framebuffer_swap_xy',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_pack_invert' => {
    'glewImpl' => 'GLEW_MESA_pack_invert',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_program_binary_formats' => {
    'glewImpl' => 'GLEW_MESA_program_binary_formats',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_resize_buffers' => {
    'glewImpl' => 'GLEW_MESA_resize_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_shader_integer_functions' => {
    'glewImpl' => 'GLEW_MESA_shader_integer_functions',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_texture_const_bandwidth' => {
    'glewImpl' => 'GLEW_MESA_texture_const_bandwidth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_tile_raster_order' => {
    'glewImpl' => 'GLEW_MESA_tile_raster_order',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_window_pos' => {
    'glewImpl' => 'GLEW_MESA_window_pos',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_MESA_ycbcr_texture' => {
    'glewImpl' => 'GLEW_MESA_ycbcr_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_blend_equation_advanced_multi_draw_buffers' => {
    'glewImpl' => 'GLEW_NVX_blend_equation_advanced_multi_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_conditional_render' => {
    'glewImpl' => 'GLEW_NVX_conditional_render',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_gpu_memory_info' => {
    'glewImpl' => 'GLEW_NVX_gpu_memory_info',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_gpu_multicast2' => {
    'glewImpl' => 'GLEW_NVX_gpu_multicast2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_linked_gpu_multicast' => {
    'glewImpl' => 'GLEW_NVX_linked_gpu_multicast',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NVX_progress_fence' => {
    'glewImpl' => 'GLEW_NVX_progress_fence',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_3dvision_settings' => {
    'glewImpl' => 'GLEW_NV_3dvision_settings',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_EGL_stream_consumer_external' => {
    'glewImpl' => 'GLEW_NV_EGL_stream_consumer_external',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_alpha_to_coverage_dither_control' => {
    'glewImpl' => 'GLEW_NV_alpha_to_coverage_dither_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_bgr' => {
    'glewImpl' => 'GLEW_NV_bgr',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_bindless_multi_draw_indirect' => {
    'glewImpl' => 'GLEW_NV_bindless_multi_draw_indirect',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_bindless_multi_draw_indirect_count' => {
    'glewImpl' => 'GLEW_NV_bindless_multi_draw_indirect_count',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_bindless_texture' => {
    'glewImpl' => 'GLEW_NV_bindless_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_blend_equation_advanced' => {
    'glewImpl' => 'GLEW_NV_blend_equation_advanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_blend_equation_advanced_coherent' => {
    'glewImpl' => 'GLEW_NV_blend_equation_advanced_coherent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_blend_minmax_factor' => {
    'glewImpl' => 'GLEW_NV_blend_minmax_factor',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_blend_square' => {
    'glewImpl' => 'GLEW_NV_blend_square',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_clip_space_w_scaling' => {
    'glewImpl' => 'GLEW_NV_clip_space_w_scaling',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_command_list' => {
    'glewImpl' => 'GLEW_NV_command_list',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_compute_program5' => {
    'glewImpl' => 'GLEW_NV_compute_program5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_compute_shader_derivatives' => {
    'glewImpl' => 'GLEW_NV_compute_shader_derivatives',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conditional_render' => {
    'glewImpl' => 'GLEW_NV_conditional_render',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conservative_raster' => {
    'glewImpl' => 'GLEW_NV_conservative_raster',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conservative_raster_dilate' => {
    'glewImpl' => 'GLEW_NV_conservative_raster_dilate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conservative_raster_pre_snap' => {
    'glewImpl' => 'GLEW_NV_conservative_raster_pre_snap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conservative_raster_pre_snap_triangles' => {
    'glewImpl' => 'GLEW_NV_conservative_raster_pre_snap_triangles',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_conservative_raster_underestimation' => {
    'glewImpl' => 'GLEW_NV_conservative_raster_underestimation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_copy_buffer' => {
    'glewImpl' => 'GLEW_NV_copy_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_copy_depth_to_color' => {
    'glewImpl' => 'GLEW_NV_copy_depth_to_color',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_copy_image' => {
    'glewImpl' => 'GLEW_NV_copy_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_deep_texture3D' => {
    'glewImpl' => 'GLEW_NV_deep_texture3D',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_depth_buffer_float' => {
    'glewImpl' => 'GLEW_NV_depth_buffer_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_depth_clamp' => {
    'glewImpl' => 'GLEW_NV_depth_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_depth_nonlinear' => {
    'glewImpl' => 'GLEW_NV_depth_nonlinear',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_depth_range_unclamped' => {
    'glewImpl' => 'GLEW_NV_depth_range_unclamped',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_draw_buffers' => {
    'glewImpl' => 'GLEW_NV_draw_buffers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_draw_instanced' => {
    'glewImpl' => 'GLEW_NV_draw_instanced',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_draw_texture' => {
    'glewImpl' => 'GLEW_NV_draw_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_draw_vulkan_image' => {
    'glewImpl' => 'GLEW_NV_draw_vulkan_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_evaluators' => {
    'glewImpl' => 'GLEW_NV_evaluators',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_explicit_attrib_location' => {
    'glewImpl' => 'GLEW_NV_explicit_attrib_location',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_explicit_multisample' => {
    'glewImpl' => 'GLEW_NV_explicit_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fbo_color_attachments' => {
    'glewImpl' => 'GLEW_NV_fbo_color_attachments',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fence' => {
    'glewImpl' => 'GLEW_NV_fence',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fill_rectangle' => {
    'glewImpl' => 'GLEW_NV_fill_rectangle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_float_buffer' => {
    'glewImpl' => 'GLEW_NV_float_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fog_distance' => {
    'glewImpl' => 'GLEW_NV_fog_distance',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_coverage_to_color' => {
    'glewImpl' => 'GLEW_NV_fragment_coverage_to_color',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_program' => {
    'glewImpl' => 'GLEW_NV_fragment_program',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_program2' => {
    'glewImpl' => 'GLEW_NV_fragment_program2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_program4' => {
    'glewImpl' => 'GLEW_NV_fragment_program4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_program_option' => {
    'glewImpl' => 'GLEW_NV_fragment_program_option',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_shader_barycentric' => {
    'glewImpl' => 'GLEW_NV_fragment_shader_barycentric',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_fragment_shader_interlock' => {
    'glewImpl' => 'GLEW_NV_fragment_shader_interlock',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_framebuffer_blit' => {
    'glewImpl' => 'GLEW_NV_framebuffer_blit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_framebuffer_mixed_samples' => {
    'glewImpl' => 'GLEW_NV_framebuffer_mixed_samples',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_framebuffer_multisample' => {
    'glewImpl' => 'GLEW_NV_framebuffer_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_framebuffer_multisample_coverage' => {
    'glewImpl' => 'GLEW_NV_framebuffer_multisample_coverage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_generate_mipmap_sRGB' => {
    'glewImpl' => 'GLEW_NV_generate_mipmap_sRGB',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_geometry_program4' => {
    'glewImpl' => 'GLEW_NV_geometry_program4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_geometry_shader4' => {
    'glewImpl' => 'GLEW_NV_geometry_shader4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_geometry_shader_passthrough' => {
    'glewImpl' => 'GLEW_NV_geometry_shader_passthrough',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_multicast' => {
    'glewImpl' => 'GLEW_NV_gpu_multicast',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_program4' => {
    'glewImpl' => 'GLEW_NV_gpu_program4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_program5' => {
    'glewImpl' => 'GLEW_NV_gpu_program5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_program5_mem_extended' => {
    'glewImpl' => 'GLEW_NV_gpu_program5_mem_extended',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_program_fp64' => {
    'glewImpl' => 'GLEW_NV_gpu_program_fp64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_gpu_shader5' => {
    'glewImpl' => 'GLEW_NV_gpu_shader5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_half_float' => {
    'glewImpl' => 'GLEW_NV_half_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_image_formats' => {
    'glewImpl' => 'GLEW_NV_image_formats',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_instanced_arrays' => {
    'glewImpl' => 'GLEW_NV_instanced_arrays',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_internalformat_sample_query' => {
    'glewImpl' => 'GLEW_NV_internalformat_sample_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_light_max_exponent' => {
    'glewImpl' => 'GLEW_NV_light_max_exponent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_memory_attachment' => {
    'glewImpl' => 'GLEW_NV_memory_attachment',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_memory_object_sparse' => {
    'glewImpl' => 'GLEW_NV_memory_object_sparse',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_mesh_shader' => {
    'glewImpl' => 'GLEW_NV_mesh_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_multisample_coverage' => {
    'glewImpl' => 'GLEW_NV_multisample_coverage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_multisample_filter_hint' => {
    'glewImpl' => 'GLEW_NV_multisample_filter_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_non_square_matrices' => {
    'glewImpl' => 'GLEW_NV_non_square_matrices',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_occlusion_query' => {
    'glewImpl' => 'GLEW_NV_occlusion_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_pack_subimage' => {
    'glewImpl' => 'GLEW_NV_pack_subimage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_packed_depth_stencil' => {
    'glewImpl' => 'GLEW_NV_packed_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_packed_float' => {
    'glewImpl' => 'GLEW_NV_packed_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_packed_float_linear' => {
    'glewImpl' => 'GLEW_NV_packed_float_linear',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_parameter_buffer_object' => {
    'glewImpl' => 'GLEW_NV_parameter_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_parameter_buffer_object2' => {
    'glewImpl' => 'GLEW_NV_parameter_buffer_object2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_path_rendering' => {
    'glewImpl' => 'GLEW_NV_path_rendering',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_path_rendering_shared_edge' => {
    'glewImpl' => 'GLEW_NV_path_rendering_shared_edge',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_pixel_buffer_object' => {
    'glewImpl' => 'GLEW_NV_pixel_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_pixel_data_range' => {
    'glewImpl' => 'GLEW_NV_pixel_data_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_platform_binary' => {
    'glewImpl' => 'GLEW_NV_platform_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_point_sprite' => {
    'glewImpl' => 'GLEW_NV_point_sprite',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_polygon_mode' => {
    'glewImpl' => 'GLEW_NV_polygon_mode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_present_video' => {
    'glewImpl' => 'GLEW_NV_present_video',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_primitive_restart' => {
    'glewImpl' => 'GLEW_NV_primitive_restart',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_primitive_shading_rate' => {
    'glewImpl' => 'GLEW_NV_primitive_shading_rate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_query_resource_tag' => {
    'glewImpl' => 'GLEW_NV_query_resource_tag',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_read_buffer' => {
    'glewImpl' => 'GLEW_NV_read_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_read_buffer_front' => {
    'glewImpl' => 'GLEW_NV_read_buffer_front',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_read_depth' => {
    'glewImpl' => 'GLEW_NV_read_depth',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_read_depth_stencil' => {
    'glewImpl' => 'GLEW_NV_read_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_read_stencil' => {
    'glewImpl' => 'GLEW_NV_read_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_register_combiners' => {
    'glewImpl' => 'GLEW_NV_register_combiners',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_register_combiners2' => {
    'glewImpl' => 'GLEW_NV_register_combiners2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_representative_fragment_test' => {
    'glewImpl' => 'GLEW_NV_representative_fragment_test',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_robustness_video_memory_purge' => {
    'glewImpl' => 'GLEW_NV_robustness_video_memory_purge',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_sRGB_formats' => {
    'glewImpl' => 'GLEW_NV_sRGB_formats',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_sample_locations' => {
    'glewImpl' => 'GLEW_NV_sample_locations',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_sample_mask_override_coverage' => {
    'glewImpl' => 'GLEW_NV_sample_mask_override_coverage',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_scissor_exclusive' => {
    'glewImpl' => 'GLEW_NV_scissor_exclusive',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_atomic_counters' => {
    'glewImpl' => 'GLEW_NV_shader_atomic_counters',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_atomic_float' => {
    'glewImpl' => 'GLEW_NV_shader_atomic_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_atomic_float64' => {
    'glewImpl' => 'GLEW_NV_shader_atomic_float64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_atomic_fp16_vector' => {
    'glewImpl' => 'GLEW_NV_shader_atomic_fp16_vector',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_atomic_int64' => {
    'glewImpl' => 'GLEW_NV_shader_atomic_int64',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_buffer_load' => {
    'glewImpl' => 'GLEW_NV_shader_buffer_load',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_noperspective_interpolation' => {
    'glewImpl' => 'GLEW_NV_shader_noperspective_interpolation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_storage_buffer_object' => {
    'glewImpl' => 'GLEW_NV_shader_storage_buffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_subgroup_partitioned' => {
    'glewImpl' => 'GLEW_NV_shader_subgroup_partitioned',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_texture_footprint' => {
    'glewImpl' => 'GLEW_NV_shader_texture_footprint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_thread_group' => {
    'glewImpl' => 'GLEW_NV_shader_thread_group',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shader_thread_shuffle' => {
    'glewImpl' => 'GLEW_NV_shader_thread_shuffle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shading_rate_image' => {
    'glewImpl' => 'GLEW_NV_shading_rate_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shadow_samplers_array' => {
    'glewImpl' => 'GLEW_NV_shadow_samplers_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_shadow_samplers_cube' => {
    'glewImpl' => 'GLEW_NV_shadow_samplers_cube',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_stereo_view_rendering' => {
    'glewImpl' => 'GLEW_NV_stereo_view_rendering',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_tessellation_program5' => {
    'glewImpl' => 'GLEW_NV_tessellation_program5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texgen_emboss' => {
    'glewImpl' => 'GLEW_NV_texgen_emboss',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texgen_reflection' => {
    'glewImpl' => 'GLEW_NV_texgen_reflection',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_array' => {
    'glewImpl' => 'GLEW_NV_texture_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_barrier' => {
    'glewImpl' => 'GLEW_NV_texture_barrier',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_border_clamp' => {
    'glewImpl' => 'GLEW_NV_texture_border_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_compression_latc' => {
    'glewImpl' => 'GLEW_NV_texture_compression_latc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_compression_s3tc' => {
    'glewImpl' => 'GLEW_NV_texture_compression_s3tc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_compression_s3tc_update' => {
    'glewImpl' => 'GLEW_NV_texture_compression_s3tc_update',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_compression_vtc' => {
    'glewImpl' => 'GLEW_NV_texture_compression_vtc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_env_combine4' => {
    'glewImpl' => 'GLEW_NV_texture_env_combine4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_expand_normal' => {
    'glewImpl' => 'GLEW_NV_texture_expand_normal',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_multisample' => {
    'glewImpl' => 'GLEW_NV_texture_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_npot_2D_mipmap' => {
    'glewImpl' => 'GLEW_NV_texture_npot_2D_mipmap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_rectangle' => {
    'glewImpl' => 'GLEW_NV_texture_rectangle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_rectangle_compressed' => {
    'glewImpl' => 'GLEW_NV_texture_rectangle_compressed',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_shader' => {
    'glewImpl' => 'GLEW_NV_texture_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_shader2' => {
    'glewImpl' => 'GLEW_NV_texture_shader2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_texture_shader3' => {
    'glewImpl' => 'GLEW_NV_texture_shader3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_timeline_semaphore' => {
    'glewImpl' => 'GLEW_NV_timeline_semaphore',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_transform_feedback' => {
    'glewImpl' => 'GLEW_NV_transform_feedback',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_transform_feedback2' => {
    'glewImpl' => 'GLEW_NV_transform_feedback2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_uniform_buffer_std430_layout' => {
    'glewImpl' => 'GLEW_NV_uniform_buffer_std430_layout',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_uniform_buffer_unified_memory' => {
    'glewImpl' => 'GLEW_NV_uniform_buffer_unified_memory',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vdpau_interop' => {
    'glewImpl' => 'GLEW_NV_vdpau_interop',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vdpau_interop2' => {
    'glewImpl' => 'GLEW_NV_vdpau_interop2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_array_range' => {
    'glewImpl' => 'GLEW_NV_vertex_array_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_array_range2' => {
    'glewImpl' => 'GLEW_NV_vertex_array_range2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_attrib_integer_64bit' => {
    'glewImpl' => 'GLEW_NV_vertex_attrib_integer_64bit',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_buffer_unified_memory' => {
    'glewImpl' => 'GLEW_NV_vertex_buffer_unified_memory',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program' => {
    'glewImpl' => 'GLEW_NV_vertex_program',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program1_1' => {
    'glewImpl' => 'GLEW_NV_vertex_program1_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program2' => {
    'glewImpl' => 'GLEW_NV_vertex_program2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program2_option' => {
    'glewImpl' => 'GLEW_NV_vertex_program2_option',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program3' => {
    'glewImpl' => 'GLEW_NV_vertex_program3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_vertex_program4' => {
    'glewImpl' => 'GLEW_NV_vertex_program4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_video_capture' => {
    'glewImpl' => 'GLEW_NV_video_capture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_viewport_array' => {
    'glewImpl' => 'GLEW_NV_viewport_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_viewport_array2' => {
    'glewImpl' => 'GLEW_NV_viewport_array2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_NV_viewport_swizzle' => {
    'glewImpl' => 'GLEW_NV_viewport_swizzle',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_EGL_image' => {
    'glewImpl' => 'GLEW_OES_EGL_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_EGL_image_external' => {
    'glewImpl' => 'GLEW_OES_EGL_image_external',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_EGL_image_external_essl3' => {
    'glewImpl' => 'GLEW_OES_EGL_image_external_essl3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_blend_equation_separate' => {
    'glewImpl' => 'GLEW_OES_blend_equation_separate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_blend_func_separate' => {
    'glewImpl' => 'GLEW_OES_blend_func_separate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_blend_subtract' => {
    'glewImpl' => 'GLEW_OES_blend_subtract',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_byte_coordinates' => {
    'glewImpl' => 'GLEW_OES_byte_coordinates',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_compressed_ETC1_RGB8_texture' => {
    'glewImpl' => 'GLEW_OES_compressed_ETC1_RGB8_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_compressed_paletted_texture' => {
    'glewImpl' => 'GLEW_OES_compressed_paletted_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_copy_image' => {
    'glewImpl' => 'GLEW_OES_copy_image',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_depth24' => {
    'glewImpl' => 'GLEW_OES_depth24',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_depth32' => {
    'glewImpl' => 'GLEW_OES_depth32',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_depth_texture' => {
    'glewImpl' => 'GLEW_OES_depth_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_depth_texture_cube_map' => {
    'glewImpl' => 'GLEW_OES_depth_texture_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_draw_buffers_indexed' => {
    'glewImpl' => 'GLEW_OES_draw_buffers_indexed',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_draw_texture' => {
    'glewImpl' => 'GLEW_OES_draw_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_element_index_uint' => {
    'glewImpl' => 'GLEW_OES_element_index_uint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_extended_matrix_palette' => {
    'glewImpl' => 'GLEW_OES_extended_matrix_palette',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_fbo_render_mipmap' => {
    'glewImpl' => 'GLEW_OES_fbo_render_mipmap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_fragment_precision_high' => {
    'glewImpl' => 'GLEW_OES_fragment_precision_high',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_framebuffer_object' => {
    'glewImpl' => 'GLEW_OES_framebuffer_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_geometry_point_size' => {
    'glewImpl' => 'GLEW_OES_geometry_point_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_geometry_shader' => {
    'glewImpl' => 'GLEW_OES_geometry_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_get_program_binary' => {
    'glewImpl' => 'GLEW_OES_get_program_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_gpu_shader5' => {
    'glewImpl' => 'GLEW_OES_gpu_shader5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_mapbuffer' => {
    'glewImpl' => 'GLEW_OES_mapbuffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_matrix_get' => {
    'glewImpl' => 'GLEW_OES_matrix_get',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_matrix_palette' => {
    'glewImpl' => 'GLEW_OES_matrix_palette',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_packed_depth_stencil' => {
    'glewImpl' => 'GLEW_OES_packed_depth_stencil',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_point_size_array' => {
    'glewImpl' => 'GLEW_OES_point_size_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_point_sprite' => {
    'glewImpl' => 'GLEW_OES_point_sprite',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_read_format' => {
    'glewImpl' => 'GLEW_OES_read_format',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_required_internalformat' => {
    'glewImpl' => 'GLEW_OES_required_internalformat',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_rgb8_rgba8' => {
    'glewImpl' => 'GLEW_OES_rgb8_rgba8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_sample_shading' => {
    'glewImpl' => 'GLEW_OES_sample_shading',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_sample_variables' => {
    'glewImpl' => 'GLEW_OES_sample_variables',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_shader_image_atomic' => {
    'glewImpl' => 'GLEW_OES_shader_image_atomic',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_shader_io_blocks' => {
    'glewImpl' => 'GLEW_OES_shader_io_blocks',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_shader_multisample_interpolation' => {
    'glewImpl' => 'GLEW_OES_shader_multisample_interpolation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_single_precision' => {
    'glewImpl' => 'GLEW_OES_single_precision',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_standard_derivatives' => {
    'glewImpl' => 'GLEW_OES_standard_derivatives',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_stencil1' => {
    'glewImpl' => 'GLEW_OES_stencil1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_stencil4' => {
    'glewImpl' => 'GLEW_OES_stencil4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_stencil8' => {
    'glewImpl' => 'GLEW_OES_stencil8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_surfaceless_context' => {
    'glewImpl' => 'GLEW_OES_surfaceless_context',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_tessellation_point_size' => {
    'glewImpl' => 'GLEW_OES_tessellation_point_size',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_tessellation_shader' => {
    'glewImpl' => 'GLEW_OES_tessellation_shader',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_3D' => {
    'glewImpl' => 'GLEW_OES_texture_3D',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_border_clamp' => {
    'glewImpl' => 'GLEW_OES_texture_border_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_buffer' => {
    'glewImpl' => 'GLEW_OES_texture_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_compression_astc' => {
    'glewImpl' => 'GLEW_OES_texture_compression_astc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_cube_map' => {
    'glewImpl' => 'GLEW_OES_texture_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_cube_map_array' => {
    'glewImpl' => 'GLEW_OES_texture_cube_map_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_env_crossbar' => {
    'glewImpl' => 'GLEW_OES_texture_env_crossbar',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_mirrored_repeat' => {
    'glewImpl' => 'GLEW_OES_texture_mirrored_repeat',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_npot' => {
    'glewImpl' => 'GLEW_OES_texture_npot',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_stencil8' => {
    'glewImpl' => 'GLEW_OES_texture_stencil8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_storage_multisample_2d_array' => {
    'glewImpl' => 'GLEW_OES_texture_storage_multisample_2d_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_texture_view' => {
    'glewImpl' => 'GLEW_OES_texture_view',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_vertex_array_object' => {
    'glewImpl' => 'GLEW_OES_vertex_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_vertex_half_float' => {
    'glewImpl' => 'GLEW_OES_vertex_half_float',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OES_vertex_type_10_10_10_2' => {
    'glewImpl' => 'GLEW_OES_vertex_type_10_10_10_2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OML_interlace' => {
    'glewImpl' => 'GLEW_OML_interlace',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OML_resample' => {
    'glewImpl' => 'GLEW_OML_resample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OML_subsample' => {
    'glewImpl' => 'GLEW_OML_subsample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OVR_multiview' => {
    'glewImpl' => 'GLEW_OVR_multiview',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OVR_multiview2' => {
    'glewImpl' => 'GLEW_OVR_multiview2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_OVR_multiview_multisampled_render_to_texture' => {
    'glewImpl' => 'GLEW_OVR_multiview_multisampled_render_to_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_PGI_misc_hints' => {
    'glewImpl' => 'GLEW_PGI_misc_hints',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_PGI_vertex_hints' => {
    'glewImpl' => 'GLEW_PGI_vertex_hints',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_YUV_texture_gather' => {
    'glewImpl' => 'GLEW_QCOM_YUV_texture_gather',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_alpha_test' => {
    'glewImpl' => 'GLEW_QCOM_alpha_test',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_binning_control' => {
    'glewImpl' => 'GLEW_QCOM_binning_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_driver_control' => {
    'glewImpl' => 'GLEW_QCOM_driver_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_extended_get' => {
    'glewImpl' => 'GLEW_QCOM_extended_get',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_extended_get2' => {
    'glewImpl' => 'GLEW_QCOM_extended_get2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_frame_extrapolation' => {
    'glewImpl' => 'GLEW_QCOM_frame_extrapolation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_framebuffer_foveated' => {
    'glewImpl' => 'GLEW_QCOM_framebuffer_foveated',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_motion_estimation' => {
    'glewImpl' => 'GLEW_QCOM_motion_estimation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_perfmon_global_mode' => {
    'glewImpl' => 'GLEW_QCOM_perfmon_global_mode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_render_sRGB_R8_RG8' => {
    'glewImpl' => 'GLEW_QCOM_render_sRGB_R8_RG8',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_render_shared_exponent' => {
    'glewImpl' => 'GLEW_QCOM_render_shared_exponent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_shader_framebuffer_fetch_noncoherent' => {
    'glewImpl' => 'GLEW_QCOM_shader_framebuffer_fetch_noncoherent',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_shader_framebuffer_fetch_rate' => {
    'glewImpl' => 'GLEW_QCOM_shader_framebuffer_fetch_rate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_shading_rate' => {
    'glewImpl' => 'GLEW_QCOM_shading_rate',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_texture_foveated' => {
    'glewImpl' => 'GLEW_QCOM_texture_foveated',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_texture_foveated2' => {
    'glewImpl' => 'GLEW_QCOM_texture_foveated2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_texture_foveated_subsampled_layout' => {
    'glewImpl' => 'GLEW_QCOM_texture_foveated_subsampled_layout',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_texture_lod_bias' => {
    'glewImpl' => 'GLEW_QCOM_texture_lod_bias',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_tiled_rendering' => {
    'glewImpl' => 'GLEW_QCOM_tiled_rendering',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_writeonly_rendering' => {
    'glewImpl' => 'GLEW_QCOM_writeonly_rendering',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_ycbcr_degamma' => {
    'glewImpl' => 'GLEW_QCOM_ycbcr_degamma',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_ES1_0_compatibility' => {
    'glewImpl' => 'GLEW_REGAL_ES1_0_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_ES1_1_compatibility' => {
    'glewImpl' => 'GLEW_REGAL_ES1_1_compatibility',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_enable' => {
    'glewImpl' => 'GLEW_REGAL_enable',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_error_string' => {
    'glewImpl' => 'GLEW_REGAL_error_string',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_extension_query' => {
    'glewImpl' => 'GLEW_REGAL_extension_query',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_log' => {
    'glewImpl' => 'GLEW_REGAL_log',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REGAL_proc_address' => {
    'glewImpl' => 'GLEW_REGAL_proc_address',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_REND_screen_coordinates' => {
    'glewImpl' => 'GLEW_REND_screen_coordinates',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_S3_s3tc' => {
    'glewImpl' => 'GLEW_S3_s3tc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_clip_band_hint' => {
    'glewImpl' => 'GLEW_SGIS_clip_band_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_color_range' => {
    'glewImpl' => 'GLEW_SGIS_color_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_detail_texture' => {
    'glewImpl' => 'GLEW_SGIS_detail_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_fog_function' => {
    'glewImpl' => 'GLEW_SGIS_fog_function',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_generate_mipmap' => {
    'glewImpl' => 'GLEW_SGIS_generate_mipmap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_line_texgen' => {
    'glewImpl' => 'GLEW_SGIS_line_texgen',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_multisample' => {
    'glewImpl' => 'GLEW_SGIS_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_multitexture' => {
    'glewImpl' => 'GLEW_SGIS_multitexture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_pixel_texture' => {
    'glewImpl' => 'GLEW_SGIS_pixel_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_point_line_texgen' => {
    'glewImpl' => 'GLEW_SGIS_point_line_texgen',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_shared_multisample' => {
    'glewImpl' => 'GLEW_SGIS_shared_multisample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_sharpen_texture' => {
    'glewImpl' => 'GLEW_SGIS_sharpen_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture4D' => {
    'glewImpl' => 'GLEW_SGIS_texture4D',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture_border_clamp' => {
    'glewImpl' => 'GLEW_SGIS_texture_border_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture_edge_clamp' => {
    'glewImpl' => 'GLEW_SGIS_texture_edge_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture_filter4' => {
    'glewImpl' => 'GLEW_SGIS_texture_filter4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture_lod' => {
    'glewImpl' => 'GLEW_SGIS_texture_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIS_texture_select' => {
    'glewImpl' => 'GLEW_SGIS_texture_select',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_async' => {
    'glewImpl' => 'GLEW_SGIX_async',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_async_histogram' => {
    'glewImpl' => 'GLEW_SGIX_async_histogram',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_async_pixel' => {
    'glewImpl' => 'GLEW_SGIX_async_pixel',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_bali_g_instruments' => {
    'glewImpl' => 'GLEW_SGIX_bali_g_instruments',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_bali_r_instruments' => {
    'glewImpl' => 'GLEW_SGIX_bali_r_instruments',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_bali_timer_instruments' => {
    'glewImpl' => 'GLEW_SGIX_bali_timer_instruments',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_blend_alpha_minmax' => {
    'glewImpl' => 'GLEW_SGIX_blend_alpha_minmax',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_blend_cadd' => {
    'glewImpl' => 'GLEW_SGIX_blend_cadd',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_blend_cmultiply' => {
    'glewImpl' => 'GLEW_SGIX_blend_cmultiply',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_calligraphic_fragment' => {
    'glewImpl' => 'GLEW_SGIX_calligraphic_fragment',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_clipmap' => {
    'glewImpl' => 'GLEW_SGIX_clipmap',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_color_matrix_accuracy' => {
    'glewImpl' => 'GLEW_SGIX_color_matrix_accuracy',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_color_table_index_mode' => {
    'glewImpl' => 'GLEW_SGIX_color_table_index_mode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_complex_polar' => {
    'glewImpl' => 'GLEW_SGIX_complex_polar',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_convolution_accuracy' => {
    'glewImpl' => 'GLEW_SGIX_convolution_accuracy',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_cube_map' => {
    'glewImpl' => 'GLEW_SGIX_cube_map',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_cylinder_texgen' => {
    'glewImpl' => 'GLEW_SGIX_cylinder_texgen',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_datapipe' => {
    'glewImpl' => 'GLEW_SGIX_datapipe',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_decimation' => {
    'glewImpl' => 'GLEW_SGIX_decimation',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_depth_pass_instrument' => {
    'glewImpl' => 'GLEW_SGIX_depth_pass_instrument',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_depth_texture' => {
    'glewImpl' => 'GLEW_SGIX_depth_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_dvc' => {
    'glewImpl' => 'GLEW_SGIX_dvc',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_flush_raster' => {
    'glewImpl' => 'GLEW_SGIX_flush_raster',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_blend' => {
    'glewImpl' => 'GLEW_SGIX_fog_blend',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_factor_to_alpha' => {
    'glewImpl' => 'GLEW_SGIX_fog_factor_to_alpha',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_layers' => {
    'glewImpl' => 'GLEW_SGIX_fog_layers',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_offset' => {
    'glewImpl' => 'GLEW_SGIX_fog_offset',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_patchy' => {
    'glewImpl' => 'GLEW_SGIX_fog_patchy',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_scale' => {
    'glewImpl' => 'GLEW_SGIX_fog_scale',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fog_texture' => {
    'glewImpl' => 'GLEW_SGIX_fog_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fragment_lighting_space' => {
    'glewImpl' => 'GLEW_SGIX_fragment_lighting_space',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fragment_specular_lighting' => {
    'glewImpl' => 'GLEW_SGIX_fragment_specular_lighting',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_fragments_instrument' => {
    'glewImpl' => 'GLEW_SGIX_fragments_instrument',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_framezoom' => {
    'glewImpl' => 'GLEW_SGIX_framezoom',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_icc_texture' => {
    'glewImpl' => 'GLEW_SGIX_icc_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_igloo_interface' => {
    'glewImpl' => 'GLEW_SGIX_igloo_interface',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_image_compression' => {
    'glewImpl' => 'GLEW_SGIX_image_compression',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_impact_pixel_texture' => {
    'glewImpl' => 'GLEW_SGIX_impact_pixel_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_instrument_error' => {
    'glewImpl' => 'GLEW_SGIX_instrument_error',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_interlace' => {
    'glewImpl' => 'GLEW_SGIX_interlace',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_ir_instrument1' => {
    'glewImpl' => 'GLEW_SGIX_ir_instrument1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_line_quality_hint' => {
    'glewImpl' => 'GLEW_SGIX_line_quality_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_list_priority' => {
    'glewImpl' => 'GLEW_SGIX_list_priority',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_mpeg1' => {
    'glewImpl' => 'GLEW_SGIX_mpeg1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_mpeg2' => {
    'glewImpl' => 'GLEW_SGIX_mpeg2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_nonlinear_lighting_pervertex' => {
    'glewImpl' => 'GLEW_SGIX_nonlinear_lighting_pervertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_nurbs_eval' => {
    'glewImpl' => 'GLEW_SGIX_nurbs_eval',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_occlusion_instrument' => {
    'glewImpl' => 'GLEW_SGIX_occlusion_instrument',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_packed_6bytes' => {
    'glewImpl' => 'GLEW_SGIX_packed_6bytes',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_pixel_texture' => {
    'glewImpl' => 'GLEW_SGIX_pixel_texture',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_pixel_texture_bits' => {
    'glewImpl' => 'GLEW_SGIX_pixel_texture_bits',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_pixel_texture_lod' => {
    'glewImpl' => 'GLEW_SGIX_pixel_texture_lod',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_pixel_tiles' => {
    'glewImpl' => 'GLEW_SGIX_pixel_tiles',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_polynomial_ffd' => {
    'glewImpl' => 'GLEW_SGIX_polynomial_ffd',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_quad_mesh' => {
    'glewImpl' => 'GLEW_SGIX_quad_mesh',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_reference_plane' => {
    'glewImpl' => 'GLEW_SGIX_reference_plane',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_resample' => {
    'glewImpl' => 'GLEW_SGIX_resample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_scalebias_hint' => {
    'glewImpl' => 'GLEW_SGIX_scalebias_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_shadow' => {
    'glewImpl' => 'GLEW_SGIX_shadow',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_shadow_ambient' => {
    'glewImpl' => 'GLEW_SGIX_shadow_ambient',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_slim' => {
    'glewImpl' => 'GLEW_SGIX_slim',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_spotlight_cutoff' => {
    'glewImpl' => 'GLEW_SGIX_spotlight_cutoff',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_sprite' => {
    'glewImpl' => 'GLEW_SGIX_sprite',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_subdiv_patch' => {
    'glewImpl' => 'GLEW_SGIX_subdiv_patch',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_subsample' => {
    'glewImpl' => 'GLEW_SGIX_subsample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_tag_sample_buffer' => {
    'glewImpl' => 'GLEW_SGIX_tag_sample_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_add_env' => {
    'glewImpl' => 'GLEW_SGIX_texture_add_env',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_coordinate_clamp' => {
    'glewImpl' => 'GLEW_SGIX_texture_coordinate_clamp',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_lod_bias' => {
    'glewImpl' => 'GLEW_SGIX_texture_lod_bias',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_mipmap_anisotropic' => {
    'glewImpl' => 'GLEW_SGIX_texture_mipmap_anisotropic',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_multi_buffer' => {
    'glewImpl' => 'GLEW_SGIX_texture_multi_buffer',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_phase' => {
    'glewImpl' => 'GLEW_SGIX_texture_phase',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_range' => {
    'glewImpl' => 'GLEW_SGIX_texture_range',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_scale_bias' => {
    'glewImpl' => 'GLEW_SGIX_texture_scale_bias',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_texture_supersample' => {
    'glewImpl' => 'GLEW_SGIX_texture_supersample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_vector_ops' => {
    'glewImpl' => 'GLEW_SGIX_vector_ops',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_vertex_array_object' => {
    'glewImpl' => 'GLEW_SGIX_vertex_array_object',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_vertex_preclip' => {
    'glewImpl' => 'GLEW_SGIX_vertex_preclip',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_vertex_preclip_hint' => {
    'glewImpl' => 'GLEW_SGIX_vertex_preclip_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_ycrcb' => {
    'glewImpl' => 'GLEW_SGIX_ycrcb',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_ycrcb_subsample' => {
    'glewImpl' => 'GLEW_SGIX_ycrcb_subsample',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGIX_ycrcba' => {
    'glewImpl' => 'GLEW_SGIX_ycrcba',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_color_matrix' => {
    'glewImpl' => 'GLEW_SGI_color_matrix',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_color_table' => {
    'glewImpl' => 'GLEW_SGI_color_table',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_complex' => {
    'glewImpl' => 'GLEW_SGI_complex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_complex_type' => {
    'glewImpl' => 'GLEW_SGI_complex_type',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_fft' => {
    'glewImpl' => 'GLEW_SGI_fft',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SGI_texture_color_table' => {
    'glewImpl' => 'GLEW_SGI_texture_color_table',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUNX_constant_data' => {
    'glewImpl' => 'GLEW_SUNX_constant_data',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_convolution_border_modes' => {
    'glewImpl' => 'GLEW_SUN_convolution_border_modes',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_global_alpha' => {
    'glewImpl' => 'GLEW_SUN_global_alpha',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_mesh_array' => {
    'glewImpl' => 'GLEW_SUN_mesh_array',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_read_video_pixels' => {
    'glewImpl' => 'GLEW_SUN_read_video_pixels',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_slice_accum' => {
    'glewImpl' => 'GLEW_SUN_slice_accum',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_triangle_list' => {
    'glewImpl' => 'GLEW_SUN_triangle_list',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_SUN_vertex' => {
    'glewImpl' => 'GLEW_SUN_vertex',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_1' => {
    'glewImpl' => 'GLEW_VERSION_1_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_2' => {
    'glewImpl' => 'GLEW_VERSION_1_2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_2_1' => {
    'glewImpl' => 'GLEW_VERSION_1_2_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_3' => {
    'glewImpl' => 'GLEW_VERSION_1_3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_4' => {
    'glewImpl' => 'GLEW_VERSION_1_4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_1_5' => {
    'glewImpl' => 'GLEW_VERSION_1_5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_2_0' => {
    'glewImpl' => 'GLEW_VERSION_2_0',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_2_1' => {
    'glewImpl' => 'GLEW_VERSION_2_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_3_0' => {
    'glewImpl' => 'GLEW_VERSION_3_0',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_3_1' => {
    'glewImpl' => 'GLEW_VERSION_3_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_3_2' => {
    'glewImpl' => 'GLEW_VERSION_3_2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_3_3' => {
    'glewImpl' => 'GLEW_VERSION_3_3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_0' => {
    'glewImpl' => 'GLEW_VERSION_4_0',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_1' => {
    'glewImpl' => 'GLEW_VERSION_4_1',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_2' => {
    'glewImpl' => 'GLEW_VERSION_4_2',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_3' => {
    'glewImpl' => 'GLEW_VERSION_4_3',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_4' => {
    'glewImpl' => 'GLEW_VERSION_4_4',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_5' => {
    'glewImpl' => 'GLEW_VERSION_4_5',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VERSION_4_6' => {
    'glewImpl' => 'GLEW_VERSION_4_6',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_VIV_shader_binary' => {
    'glewImpl' => 'GLEW_VIV_shader_binary',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_WIN_phong_shading' => {
    'glewImpl' => 'GLEW_WIN_phong_shading',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_WIN_scene_markerXXX' => {
    'glewImpl' => 'GLEW_WIN_scene_markerXXX',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_WIN_specular_fog' => {
    'glewImpl' => 'GLEW_WIN_specular_fog',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_WIN_swap_hint' => {
    'glewImpl' => 'GLEW_WIN_swap_hint',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'glAccum' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'AccumOp'
      ],
      [
        'value',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAcquireKeyedMutexWin32EXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'key',
        'GLuint64 '
      ],
      [
        'timeout',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_win32_keyed_mutex',
    'glewImpl' => '__glewAcquireKeyedMutexWin32EXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glActiveProgramEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_separate_shader_objects',
    'glewImpl' => '__glewActiveProgramEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glActiveShaderProgram' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewActiveShaderProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glActiveStencilFaceEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ]
    ],
    'feature' => 'GL_EXT_stencil_two_side',
    'glewImpl' => '__glewActiveStencilFaceEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glActiveTexture' => {
    'aliases' => {
      'glActiveTextureARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewActiveTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glActiveVaryingNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar *',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewActiveVaryingNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAddSwapHintRectWIN' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_WIN_swap_hint',
    'glewImpl' => '__glewAddSwapHintRectWIN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAddressSpace' => {
    'argdata' => [
      [
        'space',
        'GLenum '
      ],
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_SGIX_datapipe',
    'glewImpl' => '__glewAddressSpace',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAllocMPEGPredictorsSGIX' => {
    'argdata' => [
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'predictors',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewAllocMPEGPredictorsSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glAlphaFragmentOp1ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp1ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp1ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFragmentOp2ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp2ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg2',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg2Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg2Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp2ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFragmentOp3ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp3ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg2',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg2Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg2Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg3',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg3Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg3Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp3ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFunc' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'AlphaFunction'
      ],
      [
        'ref',
        'GLclampf '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFuncQCOM' => {
    'argdata' => [
      [
        'func',
        'GLenum '
      ],
      [
        'ref',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_QCOM_alpha_test',
    'glewImpl' => '__glewAlphaFuncQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFuncx' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'AlphaFunction'
      ],
      [
        'ref',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewAlphaFuncx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaToCoverageDitherControlNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_alpha_to_coverage_dither_control',
    'glewImpl' => '__glewAlphaToCoverageDitherControlNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glApplyFramebufferAttachmentCMAAINTEL' => {
    'feature' => 'GL_INTEL_framebuffer_CMAA',
    'glewImpl' => '__glewApplyFramebufferAttachmentCMAAINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glApplyTextureEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'LightTextureModeEXT'
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewApplyTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAreProgramsResidentNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'const GLuint* ',
        'n'
      ],
      [
        'residences',
        'GLboolean *',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'programs' => 'VARARGS:0:n',
      'residences' => 'OUTARRAY:n'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewAreProgramsResidentNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'GLboolean'
  },
  'glAreTexturesResident' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint *',
        'n'
      ],
      [
        'residences',
        'GLboolean *',
        'n'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'n' => 'items',
      'residences' => 'OUTARRAY:n',
      'textures' => 'VARARGS:0:n'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'GLboolean'
  },
  'glAreTexturesResidentEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'n'
      ],
      [
        'residences',
        'GLboolean* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'residences' => 'OUTARRAY:n',
      'textures' => 'VARARGS:0:n'
    },
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewAreTexturesResidentEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'GLboolean'
  },
  'glAreVertexArraysResidentSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ],
      [
        'residences',
        'GLboolean* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewAreVertexArraysResidentSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'GLboolean'
  },
  'glArrayElement' => {
    'aliases' => {
      'glArrayElementEXT' => 'GL_EXT_vertex_array'
    },
    'argdata' => [
      [
        'i',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glArrayObjectATI' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ScalarType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewArrayObjectATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAsyncCopyBufferSubDataNVX' => {
    'argdata' => [
      [
        'waitSemaphoreCount',
        'GLsizei '
      ],
      [
        'waitSemaphoreArray',
        'const GLuint* ',
        'waitSemaphoreCount'
      ],
      [
        'fenceValueArray',
        'const GLuint64 *',
        'waitSemaphoreCount'
      ],
      [
        'readGpu',
        'GLuint '
      ],
      [
        'writeGpuMask',
        'GLbitfield '
      ],
      [
        'readBuffer',
        'GLuint '
      ],
      [
        'writeBuffer',
        'GLuint '
      ],
      [
        'readOffset',
        'GLintptr '
      ],
      [
        'writeOffset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'signalSemaphoreCount',
        'GLsizei '
      ],
      [
        'signalSemaphoreArray',
        'const GLuint *',
        'signalSemaphoreCount'
      ],
      [
        'signalValueArray',
        'const GLuint64 *',
        'signalSemaphoreCount'
      ]
    ],
    'dynlang' => {
      'fenceValueArray' => 'INARRAY:waitSemaphoreCount',
      'signalSemaphoreArray' => 'INARRAY:signalSemaphoreCount',
      'signalSemaphoreCount' => 'LEN:signalSemaphoreArray',
      'signalValueArray' => 'INARRAY:signalSemaphoreCount',
      'waitSemaphoreArray' => 'INARRAY:waitSemaphoreCount',
      'waitSemaphoreCount' => 'LEN:waitSemaphoreArray'
    },
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewAsyncCopyBufferSubDataNVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2,
      11,
      12
    ],
    'restype' => 'GLsync'
  },
  'glAsyncCopyImageSubDataNVX' => {
    'argdata' => [
      [
        'waitSemaphoreCount',
        'GLsizei '
      ],
      [
        'waitSemaphoreArray',
        'const GLuint* ',
        'waitSemaphoreCount'
      ],
      [
        'waitValueArray',
        'const GLuint64 *',
        'waitSemaphoreCount'
      ],
      [
        'srcGpu',
        'GLuint '
      ],
      [
        'dstGpuMask',
        'GLbitfield '
      ],
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum '
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srcY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum '
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'srcWidth',
        'GLsizei '
      ],
      [
        'srcHeight',
        'GLsizei '
      ],
      [
        'srcDepth',
        'GLsizei '
      ],
      [
        'signalSemaphoreCount',
        'GLsizei '
      ],
      [
        'signalSemaphoreArray',
        'const GLuint *',
        'signalSemaphoreCount'
      ],
      [
        'signalValueArray',
        'const GLuint64 *',
        'signalSemaphoreCount'
      ]
    ],
    'dynlang' => {
      'signalSemaphoreArray' => 'INARRAY:signalSemaphoreCount',
      'signalSemaphoreCount' => 'LEN:signalSemaphoreArray',
      'signalValueArray' => 'INARRAY:signalSemaphoreCount',
      'waitSemaphoreArray' => 'INARRAY:waitSemaphoreCount',
      'waitSemaphoreCount' => 'LEN:waitSemaphoreArray',
      'waitValueArray' => 'INARRAY:waitSemaphoreCount'
    },
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewAsyncCopyImageSubDataNVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2,
      21,
      22
    ],
    'restype' => 'GLuint'
  },
  'glAsyncMarkerSGIX' => {
    'argdata' => [
      [
        'marker',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewAsyncMarkerSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAttachObjectARB' => {
    'argdata' => [
      [
        'containerObj',
        'GLhandleARB '
      ],
      [
        'obj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewAttachObjectARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAttachShader' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewAttachShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBegin' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginConditionalRender' => {
    'aliases' => {
      'glBeginConditionalRenderNV' => 'GL_NV_conditional_render'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'ConditionalRenderMode'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewBeginConditionalRender',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginConditionalRenderNVX' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NVX_conditional_render',
    'glewImpl' => '__glewBeginConditionalRenderNVX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginFragmentShaderATI' => {
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewBeginFragmentShaderATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginOcclusionQueryNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewBeginOcclusionQueryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginPerfMonitorAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewBeginPerfMonitorAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginPerfQueryINTEL' => {
    'argdata' => [
      [
        'queryHandle',
        'GLuint '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewBeginPerfQueryINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginQuery' => {
    'aliases' => {
      'glBeginQueryARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBeginQuery',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginQueryANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewBeginQueryANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginQueryEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewBeginQueryEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginQueryIndexed' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewBeginQueryIndexed',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginSceneEXT' => {
    'feature' => 'GL_EXT_scene_marker',
    'glewImpl' => '__glewBeginSceneEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginTransformFeedback' => {
    'aliases' => {
      'glBeginTransformFeedbackEXT' => 'GL_EXT_transform_feedback',
      'glBeginTransformFeedbackNV' => 'GL_NV_transform_feedback'
    },
    'argdata' => [
      [
        'primitiveMode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewBeginTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginVertexShaderEXT' => {
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBeginVertexShaderEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginVideoCaptureNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewBeginVideoCaptureNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindArraySetEXT' => {
    'argdata' => [
      [
        'arrayset',
        'const void *'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array_setXXX',
    'glewImpl' => '__glewBindArraySetEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glBindAttribLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewBindAttribLocation',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindAttribLocationARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'name',
        'const GLcharARB* '
      ]
    ],
    'feature' => 'GL_ARB_vertex_shader',
    'glewImpl' => '__glewBindAttribLocationARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBuffer' => {
    'aliases' => {
      'glBindBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBindBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBufferBase' => {
    'aliases' => {
      'glBindBufferBaseEXT' => 'GL_EXT_transform_feedback',
      'glBindBufferBaseNV' => 'GL_NV_transform_feedback'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewBindBufferBase',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBufferOffsetEXT' => {
    'aliases' => {
      'glBindBufferOffsetNV' => 'GL_NV_transform_feedback'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_transform_feedback',
    'glewImpl' => '__glewBindBufferOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBufferRange' => {
    'aliases' => {
      'glBindBufferRangeEXT' => 'GL_EXT_transform_feedback',
      'glBindBufferRangeNV' => 'GL_NV_transform_feedback'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewBindBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBuffersBase' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'buffers' => 'VARARGS:2:count',
      'count' => 'items-2'
    },
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindBuffersBase',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glBindBuffersRange' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'count'
      ],
      [
        'offsets',
        'const GLintptr *',
        'count'
      ],
      [
        'sizes',
        'const GLsizeiptr *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindBuffersRange',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glBindFragDataLocation' => {
    'aliases' => {
      'glBindFragDataLocationEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'color',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewBindFragDataLocation',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFragDataLocationIndexed' => {
    'aliases' => {
      'glBindFragDataLocationIndexedEXT' => 'GL_EXT_blend_func_extended'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'colorNumber',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'name',
        'const GLchar * '
      ]
    ],
    'feature' => 'GL_ARB_blend_func_extended',
    'glewImpl' => '__glewBindFragDataLocationIndexed',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFragmentShaderATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewBindFragmentShaderATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFramebuffer' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewBindFramebuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFramebufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_object',
    'glewImpl' => '__glewBindFramebufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFramebufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewBindFramebufferOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindImageTexture' => {
    'argdata' => [
      [
        'unit',
        'GLuint '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'access',
        'GLenum ',
        undef,
        'BufferAccessARB'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ]
    ],
    'feature' => 'GL_ARB_shader_image_load_store',
    'glewImpl' => '__glewBindImageTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindImageTextureEXT' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'access',
        'GLenum ',
        undef,
        'BufferAccessARB'
      ],
      [
        'format',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_shader_image_load_store',
    'glewImpl' => '__glewBindImageTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindImageTextures' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'textures' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindImageTextures',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBindLightParameterEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'value',
        'GLenum ',
        undef,
        'LightParameter'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindLightParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindMaterialParameterEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'value',
        'GLenum ',
        undef,
        'MaterialParameter'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindMaterialParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindMultiTextureEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewBindMultiTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindParameterEXT' => {
    'argdata' => [
      [
        'value',
        'GLenum ',
        undef,
        'VertexShaderParameterEXT'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindProgramARB' => {
    'aliases' => {
      'glBindProgramNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewBindProgramARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindProgramPipeline' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewBindProgramPipeline',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindRenderbuffer' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewBindRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindRenderbufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_object',
    'glewImpl' => '__glewBindRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindRenderbufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewBindRenderbufferOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindSampler' => {
    'argdata' => [
      [
        'unit',
        'GLuint '
      ],
      [
        'sampler',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewBindSampler',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindSamplers' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'samplers',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'samplers' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindSamplers',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBindShadingRateImageNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewBindShadingRateImageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindTexGenParameterEXT' => {
    'argdata' => [
      [
        'unit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'value',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindTexGenParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindTexture' => {
    'aliases' => {
      'glBindTextureEXT' => 'GL_EXT_texture_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindTextureUnit' => {
    'argdata' => [
      [
        'unit',
        'GLuint '
      ],
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewBindTextureUnit',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindTextureUnitParameterEXT' => {
    'argdata' => [
      [
        'unit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'value',
        'GLenum ',
        undef,
        'VertexShaderTextureUnitParameter'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindTextureUnitParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindTextures' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'textures' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindTextures',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBindTransformFeedback' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BindTransformFeedbackTarget'
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewBindTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindTransformFeedbackNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_transform_feedback2',
    'glewImpl' => '__glewBindTransformFeedbackNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexArray' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewBindVertexArray',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexArrayAPPLE' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_vertex_array_object',
    'glewImpl' => '__glewBindVertexArrayAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexArrayOES' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_vertex_array_object',
    'glewImpl' => '__glewBindVertexArrayOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexArraySGIX' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewBindVertexArraySGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexBuffer' => {
    'argdata' => [
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewBindVertexBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVertexBuffers' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'count'
      ],
      [
        'offsets',
        'const GLintptr *',
        'count'
      ],
      [
        'strides',
        'const GLsizei *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindVertexBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4
    ],
    'restype' => 'void'
  },
  'glBindVertexShaderEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindVertexShaderEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVideoCaptureStreamBufferNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'frame_region',
        'GLenum '
      ],
      [
        'offset',
        'GLintptrARB '
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewBindVideoCaptureStreamBufferNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindVideoCaptureStreamTextureNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'frame_region',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewBindVideoCaptureStreamTextureNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBinormalPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'BinormalPointerTypeEXT'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_coordinate_frame',
    'glewImpl' => '__glewBinormalPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBitmap' => {
    'argdata' => [
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'xorig',
        'GLfloat '
      ],
      [
        'yorig',
        'GLfloat '
      ],
      [
        'xmove',
        'GLfloat '
      ],
      [
        'ymove',
        'GLfloat '
      ],
      [
        'bitmap',
        'const GLubyte *',
        'COMPSIZE(width,height)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendBarrierKHR' => {
    'aliases' => {
      'glBlendBarrier' => undef,
      'glBlendBarrierNV' => 'GL_NV_blend_equation_advanced'
    },
    'feature' => 'GL_KHR_blend_equation_advanced',
    'glewImpl' => '__glewBlendBarrierKHR',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendColor' => {
    'aliases' => {
      'glBlendColorEXT' => 'GL_EXT_blend_color'
    },
    'argdata' => [
      [
        'red',
        'GLclampf '
      ],
      [
        'green',
        'GLclampf '
      ],
      [
        'blue',
        'GLclampf '
      ],
      [
        'alpha',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewBlendColor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquation' => {
    'aliases' => {
      'glBlendEquationEXT' => 'GL_EXT_blend_minmax'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewBlendEquation',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationOES' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_blend_subtract',
    'glewImpl' => '__glewBlendEquationOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationSeparate' => {
    'aliases' => {
      'glBlendEquationSeparateEXT' => 'GL_EXT_blend_equation_separate'
    },
    'argdata' => [
      [
        'modeRGB',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ],
      [
        'modeAlpha',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewBlendEquationSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationSeparateOES' => {
    'argdata' => [
      [
        'modeRGB',
        'GLenum '
      ],
      [
        'modeAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_blend_equation_separate',
    'glewImpl' => '__glewBlendEquationSeparateOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationSeparatei' => {
    'aliases' => {
      'glBlendEquationSeparateIndexedAMD' => 'GL_AMD_draw_buffers_blend',
      'glBlendEquationSeparateiARB' => 'GL_ARB_draw_buffers_blend',
      'glBlendEquationSeparateiEXT' => 'GL_EXT_draw_buffers_indexed'
    },
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'modeRGB',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ],
      [
        'modeAlpha',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendEquationSeparatei',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationSeparateiOES' => {
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'modeRGB',
        'GLenum '
      ],
      [
        'modeAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewBlendEquationSeparateiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationi' => {
    'aliases' => {
      'glBlendEquationIndexedAMD' => 'GL_AMD_draw_buffers_blend',
      'glBlendEquationiARB' => 'GL_ARB_draw_buffers_blend',
      'glBlendEquationiEXT' => 'GL_EXT_draw_buffers_indexed'
    },
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'BlendEquationModeEXT'
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendEquationi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationiOES' => {
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewBlendEquationiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFunc' => {
    'argdata' => [
      [
        'sfactor',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dfactor',
        'GLenum ',
        undef,
        'BlendingFactor'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFuncSeparate' => {
    'aliases' => {
      'glBlendFuncSeparateEXT' => 'GL_EXT_blend_func_separate',
      'glBlendFuncSeparateINGR' => undef
    },
    'argdata' => [
      [
        'sfactorRGB',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dfactorRGB',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'sfactorAlpha',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dfactorAlpha',
        'GLenum ',
        undef,
        'BlendingFactor'
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewBlendFuncSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFuncSeparateOES' => {
    'argdata' => [
      [
        'sfactorRGB',
        'GLenum '
      ],
      [
        'dfactorRGB',
        'GLenum '
      ],
      [
        'sfactorAlpha',
        'GLenum '
      ],
      [
        'dfactorAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_blend_func_separate',
    'glewImpl' => '__glewBlendFuncSeparateOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFuncSeparatei' => {
    'aliases' => {
      'glBlendFuncSeparateIndexedAMD' => 'GL_AMD_draw_buffers_blend',
      'glBlendFuncSeparateiARB' => 'GL_ARB_draw_buffers_blend',
      'glBlendFuncSeparateiEXT' => 'GL_EXT_draw_buffers_indexed'
    },
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'srcRGB',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dstRGB',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'srcAlpha',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dstAlpha',
        'GLenum ',
        undef,
        'BlendingFactor'
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendFuncSeparatei',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFuncSeparateiOES' => {
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'srcRGB',
        'GLenum '
      ],
      [
        'dstRGB',
        'GLenum '
      ],
      [
        'srcAlpha',
        'GLenum '
      ],
      [
        'dstAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewBlendFuncSeparateiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFunci' => {
    'aliases' => {
      'glBlendFuncIndexedAMD' => 'GL_AMD_draw_buffers_blend',
      'glBlendFunciARB' => 'GL_ARB_draw_buffers_blend',
      'glBlendFunciEXT' => 'GL_EXT_draw_buffers_indexed'
    },
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'src',
        'GLenum ',
        undef,
        'BlendingFactor'
      ],
      [
        'dst',
        'GLenum ',
        undef,
        'BlendingFactor'
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendFunci',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFunciOES' => {
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'src',
        'GLenum '
      ],
      [
        'dst',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewBlendFunciOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendParameteriNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_blend_equation_advanced',
    'glewImpl' => '__glewBlendParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlitFramebuffer' => {
    'aliases' => {
      'glBlitFramebufferEXT' => 'GL_EXT_framebuffer_blit',
      'glBlitFramebufferNV' => 'GL_NV_framebuffer_blit'
    },
    'argdata' => [
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'BlitFramebufferFilter'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewBlitFramebuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlitFramebufferANGLE' => {
    'argdata' => [
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'BlitFramebufferFilter'
      ]
    ],
    'feature' => 'GL_ANGLE_framebuffer_blit',
    'glewImpl' => '__glewBlitFramebufferANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlitFramebufferLayerEXT' => {
    'argdata' => [
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'srcLayer',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'dstLayer',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'BlitFramebufferFilter'
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_blit_layers',
    'glewImpl' => '__glewBlitFramebufferLayerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlitFramebufferLayersEXT' => {
    'argdata' => [
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'BlitFramebufferFilter'
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_blit_layers',
    'glewImpl' => '__glewBlitFramebufferLayersEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlitNamedFramebuffer' => {
    'argdata' => [
      [
        'readFramebuffer',
        'GLuint '
      ],
      [
        'drawFramebuffer',
        'GLuint '
      ],
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'BlitFramebufferFilter'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewBlitNamedFramebuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferAddressRangeNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'address',
        'GLuint64EXT '
      ],
      [
        'length',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewBufferAddressRangeNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferAttachMemoryNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewBufferAttachMemoryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferData' => {
    'aliases' => {
      'glBufferDataARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void* ',
        'size'
      ],
      [
        'usage',
        'GLenum ',
        undef,
        'BufferUsageARB'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBufferData',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBufferPageCommitmentARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_sparse_buffer',
    'glewImpl' => '__glewBufferPageCommitmentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferPageCommitmentMemNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferStorageTarget'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'memOffset',
        'GLuint64 '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_memory_object_sparse',
    'glewImpl' => '__glewBufferPageCommitmentMemNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferParameteriAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_APPLE_flush_buffer_range',
    'glewImpl' => '__glewBufferParameteriAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferRegionEnabled' => {
    'feature' => 'GL_KTX_buffer_region',
    'glewImpl' => '__glewBufferRegionEnabled',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBufferStorage' => {
    'aliases' => {
      'glBufferStorageEXT' => 'GL_EXT_buffer_storage'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferStorageTarget'
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'BufferStorageMask'
      ]
    ],
    'feature' => 'GL_ARB_buffer_storage',
    'glewImpl' => '__glewBufferStorage',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glBufferStorageExternalEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'clientBuffer',
        'GLeglClientBufferEXT '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'BufferStorageMask'
      ]
    ],
    'feature' => 'GL_EXT_external_buffer',
    'glewImpl' => '__glewBufferStorageExternalEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferStorageMemEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewBufferStorageMemEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferSubData' => {
    'aliases' => {
      'glBufferSubDataARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void* ',
        'size'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glCallCommandListNV' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCallCommandListNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCallList' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCallLists' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ListNameType'
      ],
      [
        'lists',
        'const void *',
        'COMPSIZE(n,type)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCheckFramebufferStatus' => {
    'aliases' => {
      'glCheckFramebufferStatusEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewCheckFramebufferStatus',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glCheckFramebufferStatusOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewCheckFramebufferStatusOES',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glCheckNamedFramebufferStatus' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCheckNamedFramebufferStatus',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glCheckNamedFramebufferStatusEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCheckNamedFramebufferStatusEXT',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glClampColor' => {
    'aliases' => {
      'glClampColorARB' => 'GL_ARB_color_buffer_float'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ClampColorTargetARB'
      ],
      [
        'clamp',
        'GLenum ',
        undef,
        'ClampColorModeARB'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClampColor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClear' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearAccum' => {
    'argdata' => [
      [
        'red',
        'GLfloat '
      ],
      [
        'green',
        'GLfloat '
      ],
      [
        'blue',
        'GLfloat '
      ],
      [
        'alpha',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearBufferData' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferStorageTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearBufferData',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glClearBufferSubData' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glClearBufferfi' => {
    'argdata' => [
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'depth',
        'GLfloat '
      ],
      [
        'stencil',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferfi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearBufferfv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLfloat* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:2:buffer_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glClearBufferiv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:2:buffer_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glClearBufferuiv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLuint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:2:buffer_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glClearColor' => {
    'argdata' => [
      [
        'red',
        'GLclampf '
      ],
      [
        'green',
        'GLclampf '
      ],
      [
        'blue',
        'GLclampf '
      ],
      [
        'alpha',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearColorIiEXT' => {
    'argdata' => [
      [
        'red',
        'GLint '
      ],
      [
        'green',
        'GLint '
      ],
      [
        'blue',
        'GLint '
      ],
      [
        'alpha',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_texture_integer',
    'glewImpl' => '__glewClearColorIiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearColorIuiEXT' => {
    'argdata' => [
      [
        'red',
        'GLuint '
      ],
      [
        'green',
        'GLuint '
      ],
      [
        'blue',
        'GLuint '
      ],
      [
        'alpha',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_texture_integer',
    'glewImpl' => '__glewClearColorIuiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearColorx' => {
    'argdata' => [
      [
        'red',
        'GLclampx '
      ],
      [
        'green',
        'GLclampx '
      ],
      [
        'blue',
        'GLclampx '
      ],
      [
        'alpha',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewClearColorx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearDepth' => {
    'argdata' => [
      [
        'depth',
        'GLclampd '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearDepthdNV' => {
    'argdata' => [
      [
        'depth',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_NV_depth_buffer_float',
    'glewImpl' => '__glewClearDepthdNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearDepthf' => {
    'argdata' => [
      [
        'd',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewClearDepthf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearDepthfOES' => {
    'argdata' => [
      [
        'depth',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewClearDepthfOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearDepthx' => {
    'argdata' => [
      [
        'depth',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewClearDepthx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearIndex' => {
    'argdata' => [
      [
        'c',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearNamedBufferData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedBufferData',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glClearNamedBufferDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearNamedBufferDataEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glClearNamedBufferSubData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glClearNamedBufferSubDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearNamedBufferSubDataEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glClearNamedFramebufferfi' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'depth',
        'GLfloat '
      ],
      [
        'stencil',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferfi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearNamedFramebufferfv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLfloat* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:3:buffer_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glClearNamedFramebufferiv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:3:buffer_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glClearNamedFramebufferuiv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum ',
        undef,
        'Buffer'
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLuint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'dynlang' => {
      'value' => 'SIZE:Buffer:buffer,VARARGS:3:buffer_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glClearPixelLocalStorageuiEXT' => {
    'argdata' => [
      [
        'offset',
        'GLsizei '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-1',
      'values' => 'VARARGS:1:n'
    },
    'feature' => 'GL_EXT_shader_pixel_local_storage2',
    'glewImpl' => '__glewClearPixelLocalStorageuiEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glClearStencil' => {
    'argdata' => [
      [
        's',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearTexImage' => {
    'aliases' => {
      'glClearTexImageEXT' => 'GL_EXT_clear_texture'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_texture',
    'glewImpl' => '__glewClearTexImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glClearTexSubImage' => {
    'aliases' => {
      'glClearTexSubImageEXT' => 'GL_EXT_clear_texture'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_texture',
    'glewImpl' => '__glewClearTexSubImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glClientActiveTexture' => {
    'aliases' => {
      'glClientActiveTextureARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewClientActiveTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientActiveVertexStreamATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewClientActiveVertexStreamATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientAttribDefaultEXT' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClientAttribMask'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewClientAttribDefaultEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientWaitSemaphoreui64NVX' => {
    'argdata' => [
      [
        'fenceObjectCount',
        'GLsizei '
      ],
      [
        'semaphoreArray',
        'const GLuint* ',
        'fenceObjectCount'
      ],
      [
        'fenceValueArray',
        'const GLuint64 *',
        'fenceObjectCount'
      ]
    ],
    'dynlang' => {
      'fenceObjectCount' => 'LEN:semaphoreArray',
      'fenceValueArray' => 'INARRAY:fenceObjectCount',
      'semaphoreArray' => 'INARRAY:fenceObjectCount'
    },
    'feature' => 'GL_NVX_progress_fence',
    'glewImpl' => '__glewClientWaitSemaphoreui64NVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glClientWaitSync' => {
    'aliases' => {
      'glClientWaitSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'sync',
        'GLsync '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'SyncObjectMask'
      ],
      [
        'timeout',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewClientWaitSync',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glClipControl' => {
    'aliases' => {
      'glClipControlEXT' => 'GL_EXT_clip_control'
    },
    'argdata' => [
      [
        'origin',
        'GLenum ',
        undef,
        'ClipControlOrigin'
      ],
      [
        'depth',
        'GLenum ',
        undef,
        'ClipControlDepth'
      ]
    ],
    'feature' => 'GL_ARB_clip_control',
    'glewImpl' => '__glewClipControl',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClipPlane' => {
    'argdata' => [
      [
        'plane',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'equation',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'equation' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glClipPlanef' => {
    'argdata' => [
      [
        'p',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'eqn',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'eqn' => 'VARARGS:1:4'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewClipPlanef',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glClipPlanefOES' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewClipPlanefOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glClipPlanex' => {
    'argdata' => [
      [
        'plane',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'equation',
        'const GLfixed* ',
        '4'
      ]
    ],
    'dynlang' => {
      'equation' => 'VARARGS:1:4'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewClipPlanex',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glColor3b' => {
    'argdata' => [
      [
        'red',
        'GLbyte '
      ],
      [
        'green',
        'GLbyte '
      ],
      [
        'blue',
        'GLbyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3bv' => {
    'argdata' => [
      [
        'v',
        'const GLbyte *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3d' => {
    'argdata' => [
      [
        'red',
        'GLdouble '
      ],
      [
        'green',
        'GLdouble '
      ],
      [
        'blue',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3f' => {
    'argdata' => [
      [
        'red',
        'GLfloat '
      ],
      [
        'green',
        'GLfloat '
      ],
      [
        'blue',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3fVertex3fSUN' => {
    'argdata' => [
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3fVertex3fvSUN' => {
    'argdata' => [
      [
        'c',
        'const GLfloat* ',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:3',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glColor3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3hNV' => {
    'argdata' => [
      [
        'red',
        'GLhalf '
      ],
      [
        'green',
        'GLhalf '
      ],
      [
        'blue',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3i' => {
    'argdata' => [
      [
        'red',
        'GLint '
      ],
      [
        'green',
        'GLint '
      ],
      [
        'blue',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3s' => {
    'argdata' => [
      [
        'red',
        'GLshort '
      ],
      [
        'green',
        'GLshort '
      ],
      [
        'blue',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3ub' => {
    'argdata' => [
      [
        'red',
        'GLubyte '
      ],
      [
        'green',
        'GLubyte '
      ],
      [
        'blue',
        'GLubyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3ubv' => {
    'argdata' => [
      [
        'v',
        'const GLubyte *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3ui' => {
    'argdata' => [
      [
        'red',
        'GLuint '
      ],
      [
        'green',
        'GLuint '
      ],
      [
        'blue',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3uiv' => {
    'argdata' => [
      [
        'v',
        'const GLuint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor3us' => {
    'argdata' => [
      [
        'red',
        'GLushort '
      ],
      [
        'green',
        'GLushort '
      ],
      [
        'blue',
        'GLushort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor3usv' => {
    'argdata' => [
      [
        'v',
        'const GLushort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4b' => {
    'argdata' => [
      [
        'red',
        'GLbyte '
      ],
      [
        'green',
        'GLbyte '
      ],
      [
        'blue',
        'GLbyte '
      ],
      [
        'alpha',
        'GLbyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4bv' => {
    'argdata' => [
      [
        'v',
        'const GLbyte *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4d' => {
    'argdata' => [
      [
        'red',
        'GLdouble '
      ],
      [
        'green',
        'GLdouble '
      ],
      [
        'blue',
        'GLdouble '
      ],
      [
        'alpha',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4f' => {
    'argdata' => [
      [
        'red',
        'GLfloat '
      ],
      [
        'green',
        'GLfloat '
      ],
      [
        'blue',
        'GLfloat '
      ],
      [
        'alpha',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'a',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'c',
        'const GLfloat* ',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'n' => 'INARRAY:3',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glColor4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4hNV' => {
    'argdata' => [
      [
        'red',
        'GLhalf '
      ],
      [
        'green',
        'GLhalf '
      ],
      [
        'blue',
        'GLhalf '
      ],
      [
        'alpha',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4i' => {
    'argdata' => [
      [
        'red',
        'GLint '
      ],
      [
        'green',
        'GLint '
      ],
      [
        'blue',
        'GLint '
      ],
      [
        'alpha',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4s' => {
    'argdata' => [
      [
        'red',
        'GLshort '
      ],
      [
        'green',
        'GLshort '
      ],
      [
        'blue',
        'GLshort '
      ],
      [
        'alpha',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4ub' => {
    'argdata' => [
      [
        'red',
        'GLubyte '
      ],
      [
        'green',
        'GLubyte '
      ],
      [
        'blue',
        'GLubyte '
      ],
      [
        'alpha',
        'GLubyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4ubVertex2fSUN' => {
    'argdata' => [
      [
        'r',
        'GLubyte '
      ],
      [
        'g',
        'GLubyte '
      ],
      [
        'b',
        'GLubyte '
      ],
      [
        'a',
        'GLubyte '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex2fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4ubVertex2fvSUN' => {
    'argdata' => [
      [
        'c',
        'const GLubyte* ',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'v' => 'INARRAY:2'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex2fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glColor4ubVertex3fSUN' => {
    'argdata' => [
      [
        'r',
        'GLubyte '
      ],
      [
        'g',
        'GLubyte '
      ],
      [
        'b',
        'GLubyte '
      ],
      [
        'a',
        'GLubyte '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4ubVertex3fvSUN' => {
    'argdata' => [
      [
        'c',
        'const GLubyte* ',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glColor4ubv' => {
    'argdata' => [
      [
        'v',
        'const GLubyte *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4ui' => {
    'argdata' => [
      [
        'red',
        'GLuint '
      ],
      [
        'green',
        'GLuint '
      ],
      [
        'blue',
        'GLuint '
      ],
      [
        'alpha',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4uiv' => {
    'argdata' => [
      [
        'v',
        'const GLuint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4us' => {
    'argdata' => [
      [
        'red',
        'GLushort '
      ],
      [
        'green',
        'GLushort '
      ],
      [
        'blue',
        'GLushort '
      ],
      [
        'alpha',
        'GLushort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColor4usv' => {
    'argdata' => [
      [
        'v',
        'const GLushort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glColor4x' => {
    'argdata' => [
      [
        'red',
        'GLfixed '
      ],
      [
        'green',
        'GLfixed '
      ],
      [
        'blue',
        'GLfixed '
      ],
      [
        'alpha',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewColor4x',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewColorFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp1ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp1ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMask',
        'GLuint ',
        undef,
        'FragmentShaderDestMaskATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewColorFragmentOp1ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp2ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp2ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMask',
        'GLuint ',
        undef,
        'FragmentShaderDestMaskATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg2',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg2Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg2Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewColorFragmentOp2ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp3ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'FragmentOp3ATI'
      ],
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'dstMask',
        'GLuint ',
        undef,
        'FragmentShaderDestMaskATI'
      ],
      [
        'dstMod',
        'GLuint ',
        undef,
        'FragmentShaderDestModMaskATI'
      ],
      [
        'arg1',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg1Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg1Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg2',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg2Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg2Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ],
      [
        'arg3',
        'GLuint ',
        undef,
        'FragmentShaderGenericSourceATI'
      ],
      [
        'arg3Rep',
        'GLuint ',
        undef,
        'FragmentShaderValueRepATI'
      ],
      [
        'arg3Mod',
        'GLuint ',
        undef,
        'FragmentShaderColorModMaskATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewColorFragmentOp3ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorMask' => {
    'argdata' => [
      [
        'red',
        'GLboolean '
      ],
      [
        'green',
        'GLboolean '
      ],
      [
        'blue',
        'GLboolean '
      ],
      [
        'alpha',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorMaski' => {
    'aliases' => {
      'glColorMaskIndexedEXT' => 'GL_EXT_draw_buffers2',
      'glColorMaskiEXT' => 'GL_EXT_draw_buffers_indexed'
    },
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'red',
        'GLboolean '
      ],
      [
        'green',
        'GLboolean '
      ],
      [
        'blue',
        'GLboolean '
      ],
      [
        'alpha',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewColorMaski',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorMaskiOES' => {
    'argdata' => [
      [
        'buf',
        'GLuint '
      ],
      [
        'r',
        'GLboolean '
      ],
      [
        'g',
        'GLboolean '
      ],
      [
        'b',
        'GLboolean '
      ],
      [
        'a',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewColorMaskiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorMaterial' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'ColorMaterialParameter'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'color' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glColorP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'color' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glColorPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glColorPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewColorPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glColorPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewColorPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glColorPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewColorPointervINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glColorSubTable' => {
    'aliases' => {
      'glColorSubTableEXT' => 'GL_EXT_color_subtable'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'start',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type,count)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorSubTable',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glColorTable' => {
    'aliases' => {
      'glColorTableEXT' => 'GL_EXT_paletted_texture',
      'glColorTableSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'table',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTable',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glColorTableParameterfv' => {
    'aliases' => {
      'glColorTableParameterfvSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTableParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glColorTableParameteriv' => {
    'aliases' => {
      'glColorTableParameterivSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTableParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCombinerInputNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'input',
        'GLenum ',
        undef,
        'CombinerRegisterNV'
      ],
      [
        'mapping',
        'GLenum ',
        undef,
        'CombinerMappingNV'
      ],
      [
        'componentUsage',
        'GLenum ',
        undef,
        'CombinerComponentUsageNV'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerInputNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerOutputNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'abOutput',
        'GLenum ',
        undef,
        'CombinerRegisterNV'
      ],
      [
        'cdOutput',
        'GLenum ',
        undef,
        'CombinerRegisterNV'
      ],
      [
        'sumOutput',
        'GLenum ',
        undef,
        'CombinerRegisterNV'
      ],
      [
        'scale',
        'GLenum ',
        undef,
        'CombinerScaleNV'
      ],
      [
        'bias',
        'GLenum ',
        undef,
        'CombinerBiasNV'
      ],
      [
        'abDotProduct',
        'GLboolean '
      ],
      [
        'cdDotProduct',
        'GLboolean '
      ],
      [
        'muxSum',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerOutputNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterfNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterfvNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCombinerParameteriNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterivNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCombinerStageParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners2',
    'glewImpl' => '__glewCombinerStageParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCommandListSegmentsNV' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ],
      [
        'segments',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCommandListSegmentsNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCompileCommandListNV' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCompileCommandListNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCompileShader' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewCompileShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCompileShaderARB' => {
    'argdata' => [
      [
        'shaderObj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewCompileShaderARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCompileShaderIncludeARB' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'path',
        'const GLchar* const *',
        'count'
      ],
      [
        'length',
        'const GLint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'LEN:path',
      'length' => 'INARRAY:count',
      'path' => 'INARRAY:count'
    },
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewCompileShaderIncludeARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      11
    ],
    'restype' => 'void'
  },
  'glCompressedTexImage1D' => {
    'aliases' => {
      'glCompressedTexImage1DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage1D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glCompressedTexImage2D' => {
    'aliases' => {
      'glCompressedTexImage2DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glCompressedTexImage3D' => {
    'aliases' => {
      'glCompressedTexImage3DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTexImage3DNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewCompressedTexImage3DNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTexImage3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewCompressedTexImage3DOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTexSubImage1D' => {
    'aliases' => {
      'glCompressedTexSubImage1DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage1D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glCompressedTexSubImage2D' => {
    'aliases' => {
      'glCompressedTexSubImage2DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTexSubImage3D' => {
    'aliases' => {
      'glCompressedTexSubImage3DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glCompressedTexSubImage3DNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewCompressedTexSubImage3DNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glCompressedTexSubImage3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewCompressedTexSubImage3DOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glCompressedTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glCompressedTextureImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTextureImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage1D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glCompressedTextureSubImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      11
    ],
    'restype' => 'void'
  },
  'glConservativeRasterParameterfNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_conservative_raster_dilate',
    'glewImpl' => '__glewConservativeRasterParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConservativeRasterParameteriNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_conservative_raster_pre_snap_triangles',
    'glewImpl' => '__glewConservativeRasterParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConvolutionFilter1D' => {
    'aliases' => {
      'glConvolutionFilter1DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'image',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionFilter1D',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glConvolutionFilter2D' => {
    'aliases' => {
      'glConvolutionFilter2DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'image',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionFilter2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glConvolutionParameterf' => {
    'aliases' => {
      'glConvolutionParameterfEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConvolutionParameterfv' => {
    'aliases' => {
      'glConvolutionParameterfvEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glConvolutionParameteri' => {
    'aliases' => {
      'glConvolutionParameteriEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConvolutionParameteriv' => {
    'aliases' => {
      'glConvolutionParameterivEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCopyBufferSubData' => {
    'aliases' => {
      'glCopyBufferSubDataNV' => 'GL_NV_copy_buffer'
    },
    'argdata' => [
      [
        'readTarget',
        'GLenum ',
        undef,
        'CopyBufferSubDataTarget'
      ],
      [
        'writeTarget',
        'GLenum ',
        undef,
        'CopyBufferSubDataTarget'
      ],
      [
        'readOffset',
        'GLintptr '
      ],
      [
        'writeOffset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_copy_buffer',
    'glewImpl' => '__glewCopyBufferSubData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyColorSubTable' => {
    'aliases' => {
      'glCopyColorSubTableEXT' => 'GL_EXT_color_subtable'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'start',
        'GLsizei '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewCopyColorSubTable',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyColorTable' => {
    'aliases' => {
      'glCopyColorTableSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewCopyColorTable',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyConvolutionFilter1D' => {
    'aliases' => {
      'glCopyConvolutionFilter1DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewCopyConvolutionFilter1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyConvolutionFilter2D' => {
    'aliases' => {
      'glCopyConvolutionFilter2DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewCopyConvolutionFilter2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyImageSubData' => {
    'aliases' => {
      'glCopyImageSubDataEXT' => 'GL_EXT_copy_image'
    },
    'argdata' => [
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum ',
        undef,
        'CopyImageSubDataTarget'
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srcY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum ',
        undef,
        'CopyImageSubDataTarget'
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'srcWidth',
        'GLsizei '
      ],
      [
        'srcHeight',
        'GLsizei '
      ],
      [
        'srcDepth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_copy_image',
    'glewImpl' => '__glewCopyImageSubData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyImageSubDataNV' => {
    'argdata' => [
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum ',
        undef,
        'CopyBufferSubDataTarget'
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srcY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum ',
        undef,
        'CopyBufferSubDataTarget'
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_copy_image',
    'glewImpl' => '__glewCopyImageSubDataNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyImageSubDataOES' => {
    'argdata' => [
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum '
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srcY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum '
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'srcWidth',
        'GLsizei '
      ],
      [
        'srcHeight',
        'GLsizei '
      ],
      [
        'srcDepth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OES_copy_image',
    'glewImpl' => '__glewCopyImageSubDataOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexImage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexSubImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexSubImage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexSubImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexSubImage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexSubImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexSubImage3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyNamedBufferSubData' => {
    'argdata' => [
      [
        'readBuffer',
        'GLuint '
      ],
      [
        'writeBuffer',
        'GLuint '
      ],
      [
        'readOffset',
        'GLintptr '
      ],
      [
        'writeOffset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCopyNamedBufferSubData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyPathNV' => {
    'argdata' => [
      [
        'resultPath',
        'GLuint '
      ],
      [
        'srcPath',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCopyPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyPixels' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelCopyType'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexImage1D' => {
    'aliases' => {
      'glCopyTexImage1DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexImage2D' => {
    'aliases' => {
      'glCopyTexImage2DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexSubImage1D' => {
    'aliases' => {
      'glCopyTexSubImage1DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexSubImage2D' => {
    'aliases' => {
      'glCopyTexSubImage2DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexSubImage3D' => {
    'aliases' => {
      'glCopyTexSubImage3DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewCopyTexSubImage3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexSubImage3DNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewCopyTexSubImage3DNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexSubImage3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewCopyTexSubImage3DOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyTextureImage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyTextureImage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureLevelsAPPLE' => {
    'argdata' => [
      [
        'destinationTexture',
        'GLuint '
      ],
      [
        'sourceTexture',
        'GLuint '
      ],
      [
        'sourceBaseLevel',
        'GLint '
      ],
      [
        'sourceLevelCount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_copy_texture_levels',
    'glewImpl' => '__glewCopyTextureLevelsAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTextureSubImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyTextureSubImage3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCoverFillPathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'InstancedPathCoverMode'
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverFillPathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      6
    ],
    'restype' => 'void'
  },
  'glCoverFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'PathCoverMode'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCoverStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'InstancedPathCoverMode'
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverStrokePathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      6
    ],
    'restype' => 'void'
  },
  'glCoverStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'PathCoverMode'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverStrokePathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCoverageModulationNV' => {
    'argdata' => [
      [
        'components',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewCoverageModulationNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCoverageModulationTableNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'v' => 'VARARGS:0:n'
    },
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewCoverageModulationTableNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateBuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'buffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'buffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateCommandListsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'lists',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'lists' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCreateCommandListsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateFramebuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'framebuffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateFramebuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateMemoryObjectsEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'memoryObjects',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewCreateMemoryObjectsEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreatePerfQueryINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'queryHandle',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewCreatePerfQueryINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateProgram' => {
    'aliases' => {
      'glCreateProgramObjectARB' => 'GL_ARB_shader_objects'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewCreateProgram',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateProgramPipelines' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'pipelines',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'pipelines' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateProgramPipelines',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateProgressFenceNVX' => {
    'feature' => 'GL_NVX_progress_fence',
    'glewImpl' => '__glewCreateProgressFenceNVX',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateQueries' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateQueries',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCreateRenderbuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'renderbuffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateRenderbuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateSamplers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'samplers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'samplers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateSamplers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateSemaphoresNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'semaphores',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'semaphores' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_timeline_semaphore',
    'glewImpl' => '__glewCreateSemaphoresNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateShader' => {
    'aliases' => {
      'glCreateShaderObjectARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ShaderType'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewCreateShader',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateShaderProgramEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'string',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_EXT_separate_shader_objects',
    'glewImpl' => '__glewCreateShaderProgramEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateShaderProgramv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'strings',
        'const GLchar * const * ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'strings' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewCreateShaderProgramv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'GLuint'
  },
  'glCreateStatesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'states',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'states' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCreateStatesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateSyncFromCLeventARB' => {
    'argdata' => [
      [
        'context',
        'cl_context '
      ],
      [
        'event',
        'cl_event '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_cl_event',
    'glewImpl' => '__glewCreateSyncFromCLeventARB',
    'glewtype' => 'fun',
    'restype' => 'GLsync'
  },
  'glCreateTextures' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'textures' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateTextures',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glCreateTransformFeedbacks' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateTransformFeedbacks',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCreateVertexArrays' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'arrays' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateVertexArrays',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCullFace' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'TriangleFace'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCullParameterdvEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CullParameterEXT'
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_cull_vertex',
    'glewImpl' => '__glewCullParameterdvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCullParameterfvEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'CullParameterEXT'
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_cull_vertex',
    'glewImpl' => '__glewCullParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glCurrentPaletteMatrixARB' => {
    'argdata' => [
      [
        'index',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewCurrentPaletteMatrixARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCurrentPaletteMatrixOES' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_matrix_palette',
    'glewImpl' => '__glewCurrentPaletteMatrixOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDataPipe' => {
    'argdata' => [
      [
        'space',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_datapipe',
    'glewImpl' => '__glewDataPipe',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glDebugMessageCallback' => {
    'aliases' => {
      'glDebugMessageCallbackARB' => 'GL_ARB_debug_output',
      'glDebugMessageCallbackKHR' => undef
    },
    'argdata' => [
      [
        'callback',
        'GLDEBUGPROC '
      ],
      [
        'userParam',
        'const void *'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewDebugMessageCallback',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDebugMessageCallbackAMD' => {
    'argdata' => [
      [
        'callback',
        'GLDEBUGPROCAMD '
      ],
      [
        'userParam',
        'void *'
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageCallbackAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDebugMessageControl' => {
    'aliases' => {
      'glDebugMessageControlARB' => 'GL_ARB_debug_output',
      'glDebugMessageControlKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum ',
        undef,
        'DebugSource'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DebugType'
      ],
      [
        'severity',
        'GLenum ',
        undef,
        'DebugSeverity'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'count'
      ],
      [
        'enabled',
        'GLboolean '
      ]
    ],
    'dynlang' => {
      'count' => 'items-4',
      'ids' => 'VARARGS:4:count'
    },
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewDebugMessageControl',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glDebugMessageEnableAMD' => {
    'argdata' => [
      [
        'category',
        'GLenum '
      ],
      [
        'severity',
        'GLenum ',
        undef,
        'DebugSeverity'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'count'
      ],
      [
        'enabled',
        'GLboolean '
      ]
    ],
    'dynlang' => {
      'count' => 'items-3',
      'ids' => 'VARARGS:3:count'
    },
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageEnableAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDebugMessageInsert' => {
    'aliases' => {
      'glDebugMessageInsertARB' => 'GL_ARB_debug_output',
      'glDebugMessageInsertKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum ',
        undef,
        'DebugSource'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DebugType'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'severity',
        'GLenum ',
        undef,
        'DebugSeverity'
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'buf',
        'const GLchar* ',
        'COMPSIZE(buf,length)'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewDebugMessageInsert',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDebugMessageInsertAMD' => {
    'argdata' => [
      [
        'category',
        'GLenum '
      ],
      [
        'severity',
        'GLenum ',
        undef,
        'DebugSeverity'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'buf',
        'const GLchar* ',
        'length'
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageInsertAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeformSGIX' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'FfdMaskSGIX'
      ]
    ],
    'feature' => 'GL_SGIX_polynomial_ffd',
    'glewImpl' => '__glewDeformSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteArraySetsEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrayset',
        'const void * *'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array_setXXX',
    'glewImpl' => '__glewDeleteArraySetsEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteAsyncMarkersSGIX' => {
    'argdata' => [
      [
        'marker',
        'GLuint '
      ],
      [
        'range',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewDeleteAsyncMarkersSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteBufferRegion' => {
    'argdata' => [
      [
        'region',
        'GLenum '
      ]
    ],
    'feature' => 'GL_KTX_buffer_region',
    'glewImpl' => '__glewDeleteBufferRegion',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteBuffers' => {
    'aliases' => {
      'glDeleteBuffersARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'buffers' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewDeleteBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteCommandListsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'lists',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'lists' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDeleteCommandListsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteFencesAPPLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'fences' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewDeleteFencesAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteFencesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'fences' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewDeleteFencesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteFragmentShaderATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewDeleteFragmentShaderATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteFramebuffers' => {
    'aliases' => {
      'glDeleteFramebuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'framebuffers' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewDeleteFramebuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteFramebuffersOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewDeleteFramebuffersOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteLists' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ],
      [
        'range',
        'GLsizei '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteMPEGPredictorsSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'predictors',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewDeleteMPEGPredictorsSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteMemoryObjectsEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'memoryObjects',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'memoryObjects' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewDeleteMemoryObjectsEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteNamedStringARB' => {
    'argdata' => [
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewDeleteNamedStringARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteNamesAMD' => {
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        'num',
        'GLuint '
      ],
      [
        'names',
        'const GLuint* ',
        'num'
      ]
    ],
    'dynlang' => {
      'names' => 'VARARGS:1:num',
      'num' => 'items-1'
    },
    'feature' => 'GL_AMD_name_gen_delete',
    'glewImpl' => '__glewDeleteNamesAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDeleteObjectARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewDeleteObjectARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteOcclusionQueriesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewDeleteOcclusionQueriesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeletePathsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'range',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewDeletePathsNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeletePerfMonitorsAMD' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'monitors',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'monitors' => 'OUTASLIST:n'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewDeletePerfMonitorsAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeletePerfQueryINTEL' => {
    'argdata' => [
      [
        'queryHandle',
        'GLuint '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewDeletePerfQueryINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteProgram' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDeleteProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteProgramPipelines' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'pipelines',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'pipelines' => 'VARARGS:0:n'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewDeleteProgramPipelines',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteProgramsARB' => {
    'aliases' => {
      'glDeleteProgramsNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'programs' => 'VARARGS:0:n'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewDeleteProgramsARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteQueries' => {
    'aliases' => {
      'glDeleteQueriesARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewDeleteQueries',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteQueriesANGLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewDeleteQueriesANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteQueriesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewDeleteQueriesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteRenderbuffers' => {
    'aliases' => {
      'glDeleteRenderbuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'renderbuffers' => 'VARARGS:0:n'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewDeleteRenderbuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteRenderbuffersOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewDeleteRenderbuffersOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteSamplers' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'samplers',
        'const GLuint * ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items',
      'samplers' => 'VARARGS:0:count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewDeleteSamplers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteSemaphoresEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'semaphores',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'semaphores' => 'VARARGS:0:n'
    },
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewDeleteSemaphoresEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteShader' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDeleteShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteStatesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'states',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'states' => 'VARARGS:0:n'
    },
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDeleteStatesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteSync' => {
    'aliases' => {
      'glDeleteSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'myGLsync',
        'GLsync '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewDeleteSync',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeleteTextures' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint *',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'textures' => 'VARARGS:0:n'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteTexturesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items',
      'textures' => 'VARARGS:0:n'
    },
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewDeleteTexturesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteTransformFeedbacks' => {
    'aliases' => {
      'glDeleteTransformFeedbacksNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewDeleteTransformFeedbacks',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteVertexArrays' => {
    'aliases' => {
      'glDeleteVertexArraysAPPLE' => 'GL_APPLE_vertex_array_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'arrays' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewDeleteVertexArrays',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteVertexArraysOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_OES_vertex_array_object',
    'glewImpl' => '__glewDeleteVertexArraysOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewDeleteVertexArraysSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDeleteVertexShaderEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewDeleteVertexShaderEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthBoundsEXT' => {
    'argdata' => [
      [
        'zmin',
        'GLclampd '
      ],
      [
        'zmax',
        'GLclampd '
      ]
    ],
    'feature' => 'GL_EXT_depth_bounds_test',
    'glewImpl' => '__glewDepthBoundsEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthBoundsdNV' => {
    'argdata' => [
      [
        'zmin',
        'GLdouble '
      ],
      [
        'zmax',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_NV_depth_buffer_float',
    'glewImpl' => '__glewDepthBoundsdNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthFunc' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'DepthFunction'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthMask' => {
    'argdata' => [
      [
        'flag',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRange' => {
    'argdata' => [
      [
        'zNear',
        'GLclampd '
      ],
      [
        'zFar',
        'GLclampd '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangeArrayfvNV' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat * '
      ]
    ],
    'feature' => 'GL_NV_viewport_array',
    'glewImpl' => '__glewDepthRangeArrayfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDepthRangeArrayv' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLclampd * ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewDepthRangeArrayv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDepthRangeIndexed' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLclampd '
      ],
      [
        'f',
        'GLclampd '
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewDepthRangeIndexed',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangeIndexedfNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLfloat '
      ],
      [
        'f',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_viewport_array',
    'glewImpl' => '__glewDepthRangeIndexedfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangedNV' => {
    'argdata' => [
      [
        'zNear',
        'GLdouble '
      ],
      [
        'zFar',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_NV_depth_buffer_float',
    'glewImpl' => '__glewDepthRangedNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangef' => {
    'argdata' => [
      [
        'n',
        'GLclampf '
      ],
      [
        'f',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewDepthRangef',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangefOES' => {
    'argdata' => [
      [
        'n',
        'GLclampf '
      ],
      [
        'f',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewDepthRangefOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDepthRangex' => {
    'argdata' => [
      [
        'zNear',
        'GLclampx '
      ],
      [
        'zFar',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewDepthRangex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDetachObjectARB' => {
    'argdata' => [
      [
        'containerObj',
        'GLhandleARB '
      ],
      [
        'attachedObj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewDetachObjectARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDetachShader' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDetachShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDetailTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'dynlang' => {
      'points' => 'VARARGS:2:n*2'
    },
    'feature' => 'GL_SGIS_detail_texture',
    'glewImpl' => '__glewDetailTexFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDisable' => {
    'argdata' => [
      [
        'cap',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientState' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientStateIndexedEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewDisableClientStateIndexedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientStateiEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewDisableClientStateiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableDriverControlQCOM' => {
    'argdata' => [
      [
        'driverControl',
        'GLuint '
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewDisableDriverControlQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVariantClientStateEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewDisableVariantClientStateEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVertexArrayAttrib' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewDisableVertexArrayAttrib',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVertexArrayAttribEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewDisableVertexArrayAttribEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVertexArrayEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewDisableVertexArrayEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVertexAttribAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewDisableVertexAttribAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableVertexAttribArray' => {
    'aliases' => {
      'glDisableVertexAttribArrayARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDisableVertexAttribArray',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisablei' => {
    'aliases' => {
      'glDisableIndexedEXT' => 'GL_EXT_draw_buffers2',
      'glDisableiEXT' => 'GL_EXT_draw_buffers_indexed',
      'glDisableiNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewDisablei',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableiOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewDisableiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDiscardFramebufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments',
        'InvalidateFramebufferAttachment'
      ]
    ],
    'dynlang' => {
      'attachments' => 'VARARGS:1:numAttachments',
      'numAttachments' => 'items-1'
    },
    'feature' => 'GL_EXT_discard_framebuffer',
    'glewImpl' => '__glewDiscardFramebufferEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDispatchCompute' => {
    'argdata' => [
      [
        'num_groups_x',
        'GLuint '
      ],
      [
        'num_groups_y',
        'GLuint '
      ],
      [
        'num_groups_z',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_compute_shader',
    'glewImpl' => '__glewDispatchCompute',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDispatchComputeGroupSizeARB' => {
    'argdata' => [
      [
        'num_groups_x',
        'GLuint '
      ],
      [
        'num_groups_y',
        'GLuint '
      ],
      [
        'num_groups_z',
        'GLuint '
      ],
      [
        'group_size_x',
        'GLuint '
      ],
      [
        'group_size_y',
        'GLuint '
      ],
      [
        'group_size_z',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_compute_variable_group_size',
    'glewImpl' => '__glewDispatchComputeGroupSizeARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDispatchComputeIndirect' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_compute_shader',
    'glewImpl' => '__glewDispatchComputeIndirect',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawArrays' => {
    'aliases' => {
      'glDrawArraysEXT' => 'GL_EXT_vertex_array'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawArraysIndirect' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'indirect',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_draw_indirect',
    'glewImpl' => '__glewDrawArraysIndirect',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDrawArraysInstanced' => {
    'aliases' => {
      'glDrawArraysInstancedANGLE' => 'GL_ANGLE_instanced_arrays',
      'glDrawArraysInstancedARB' => 'GL_ARB_instanced_arrays',
      'glDrawArraysInstancedEXT' => 'GL_EXT_draw_instanced',
      'glDrawArraysInstancedNV' => 'GL_NV_draw_instanced'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'instancecount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewDrawArraysInstanced',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawArraysInstancedBaseInstance' => {
    'aliases' => {
      'glDrawArraysInstancedBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawArraysInstancedBaseInstance',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawBuffer' => {
    'argdata' => [
      [
        'buf',
        'GLenum ',
        undef,
        'DrawBufferMode'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawBufferRegion' => {
    'argdata' => [
      [
        'region',
        'GLuint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'xDest',
        'GLint '
      ],
      [
        'yDest',
        'GLint '
      ]
    ],
    'feature' => 'GL_KTX_buffer_region',
    'glewImpl' => '__glewDrawBufferRegion',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawBuffers' => {
    'aliases' => {
      'glDrawBuffersARB' => 'GL_ARB_draw_buffers',
      'glDrawBuffersATI' => 'GL_ATI_draw_buffers',
      'glDrawBuffersEXT' => 'GL_EXT_draw_buffers'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n',
        'DrawBufferMode'
      ]
    ],
    'dynlang' => {
      'bufs' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDrawBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDrawBuffersIndexedEXT' => {
    'argdata' => [
      [
        'n',
        'GLint '
      ],
      [
        'location',
        'const GLenum* ',
        'n'
      ],
      [
        'indices',
        'const GLint *',
        'n'
      ]
    ],
    'dynlang' => {
      'indices' => 'INARRAY:n',
      'location' => 'INARRAY:n',
      'n' => 'LEN:location'
    },
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewDrawBuffersIndexedEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glDrawBuffersNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n'
      ]
    ],
    'dynlang' => {
      'bufs' => 'VARARGS:0:n',
      'n' => 'items'
    },
    'feature' => 'GL_NV_draw_buffers',
    'glewImpl' => '__glewDrawBuffersNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glDrawCommandsAddressNV' => {
    'argdata' => [
      [
        'primitiveMode',
        'GLenum '
      ],
      [
        'indirects',
        'const GLuint64* '
      ],
      [
        'sizes',
        'const GLsizei* '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDrawCommandsAddressNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glDrawCommandsNV' => {
    'argdata' => [
      [
        'primitiveMode',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'indirects',
        'const GLintptr* '
      ],
      [
        'sizes',
        'const GLsizei* '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDrawCommandsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glDrawCommandsStatesAddressNV' => {
    'argdata' => [
      [
        'indirects',
        'const GLuint64* '
      ],
      [
        'sizes',
        'const GLsizei* '
      ],
      [
        'states',
        'const GLuint* '
      ],
      [
        'fbos',
        'const GLuint* '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDrawCommandsStatesAddressNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glDrawCommandsStatesNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'indirects',
        'const GLintptr* '
      ],
      [
        'sizes',
        'const GLsizei* '
      ],
      [
        'states',
        'const GLuint* '
      ],
      [
        'fbos',
        'const GLuint* '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDrawCommandsStatesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2,
      3,
      4
    ],
    'restype' => 'void'
  },
  'glDrawElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewDrawElementArrayAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawElementArrayATI' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ATI_element_array',
    'glewImpl' => '__glewDrawElementArrayATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawElements' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawElementsBaseVertex' => {
    'aliases' => {
      'glDrawElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawElementsBaseVertex',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawElementsIndirect' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indirect',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_draw_indirect',
    'glewImpl' => '__glewDrawElementsIndirect',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glDrawElementsInstanced' => {
    'aliases' => {
      'glDrawElementsInstancedANGLE' => 'GL_ANGLE_instanced_arrays',
      'glDrawElementsInstancedARB' => 'GL_ARB_instanced_arrays',
      'glDrawElementsInstancedEXT' => 'GL_EXT_draw_instanced',
      'glDrawElementsInstancedNV' => 'GL_NV_draw_instanced'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void* ',
        'COMPSIZE(count,type)'
      ],
      [
        'instancecount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewDrawElementsInstanced',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseInstance' => {
    'aliases' => {
      'glDrawElementsInstancedBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'count'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawElementsInstancedBaseInstance',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseVertex' => {
    'aliases' => {
      'glDrawElementsInstancedBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawElementsInstancedBaseVertex',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseVertexBaseInstance' => {
    'aliases' => {
      'glDrawElementsInstancedBaseVertexBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'count'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'basevertex',
        'GLint '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawElementsInstancedBaseVertexBaseInstance',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glDrawMeshTasksEXT' => {
    'argdata' => [
      [
        'num_groups_x',
        'GLuint '
      ],
      [
        'num_groups_y',
        'GLuint '
      ],
      [
        'num_groups_z',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_mesh_shader',
    'glewImpl' => '__glewDrawMeshTasksEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawMeshTasksIndirectEXT' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_mesh_shader',
    'glewImpl' => '__glewDrawMeshTasksIndirectEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawMeshTasksIndirectNV' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_NV_mesh_shader',
    'glewImpl' => '__glewDrawMeshTasksIndirectNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawMeshTasksNV' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_mesh_shader',
    'glewImpl' => '__glewDrawMeshTasksNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawPixels' => {
    'argdata' => [
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glDrawRangeElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewDrawRangeElementArrayAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawRangeElementArrayATI' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ATI_element_array',
    'glewImpl' => '__glewDrawRangeElementArrayATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawRangeElements' => {
    'aliases' => {
      'glDrawRangeElementsEXT' => 'GL_EXT_draw_range_elements'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewDrawRangeElements',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glDrawRangeElementsBaseVertex' => {
    'aliases' => {
      'glDrawRangeElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawRangeElementsBaseVertex',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glDrawTextureNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'sampler',
        'GLuint '
      ],
      [
        'x0',
        'GLfloat '
      ],
      [
        'y0',
        'GLfloat '
      ],
      [
        'x1',
        'GLfloat '
      ],
      [
        'y1',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        's0',
        'GLfloat '
      ],
      [
        't0',
        'GLfloat '
      ],
      [
        's1',
        'GLfloat '
      ],
      [
        't1',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_draw_texture',
    'glewImpl' => '__glewDrawTextureNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedback' => {
    'aliases' => {
      'glDrawTransformFeedbackEXT' => 'GL_EXT_draw_transform_feedback',
      'glDrawTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewDrawTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackInstanced' => {
    'aliases' => {
      'glDrawTransformFeedbackInstancedEXT' => 'GL_EXT_draw_transform_feedback'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'instancecount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback_instanced',
    'glewImpl' => '__glewDrawTransformFeedbackInstanced',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackStream' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewDrawTransformFeedbackStream',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackStreamInstanced' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'instancecount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback_instanced',
    'glewImpl' => '__glewDrawTransformFeedbackStreamInstanced',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawVkImageNV' => {
    'argdata' => [
      [
        'vkImage',
        'GLuint64 '
      ],
      [
        'sampler',
        'GLuint '
      ],
      [
        'x0',
        'GLfloat '
      ],
      [
        'y0',
        'GLfloat '
      ],
      [
        'x1',
        'GLfloat '
      ],
      [
        'y1',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        's0',
        'GLfloat '
      ],
      [
        't0',
        'GLfloat '
      ],
      [
        's1',
        'GLfloat '
      ],
      [
        't1',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_draw_vulkan_image',
    'glewImpl' => '__glewDrawVkImageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEGLImageTargetRenderbufferStorageOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'image',
        'GLeglImageOES '
      ]
    ],
    'feature' => 'GL_OES_EGL_image',
    'glewImpl' => '__glewEGLImageTargetRenderbufferStorageOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEGLImageTargetTexStorageEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'image',
        'GLeglImageOES '
      ],
      [
        'attrib_list',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_EGL_image_storage',
    'glewImpl' => '__glewEGLImageTargetTexStorageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glEGLImageTargetTexture2DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'image',
        'GLeglImageOES '
      ]
    ],
    'feature' => 'GL_OES_EGL_image',
    'glewImpl' => '__glewEGLImageTargetTexture2DOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEGLImageTargetTextureStorageEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'image',
        'GLeglImageOES '
      ],
      [
        'attrib_list',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_EGL_image_storage',
    'glewImpl' => '__glewEGLImageTargetTextureStorageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glEdgeFlag' => {
    'argdata' => [
      [
        'flag',
        'GLboolean '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEdgeFlagFormatNV' => {
    'argdata' => [
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewEdgeFlagFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEdgeFlagPointer' => {
    'argdata' => [
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'stride'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glEdgeFlagPointerEXT' => {
    'argdata' => [
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const GLboolean* ',
        'COMPSIZE(stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewEdgeFlagPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glEdgeFlagPointerListIBM' => {
    'argdata' => [
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const GLboolean ** ',
        'COMPSIZE(stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewEdgeFlagPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glEdgeFlagv' => {
    'argdata' => [
      [
        'flag',
        'const GLboolean *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'flag' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glElementPointerAPPLE' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ElementPointerTypeATI'
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type)'
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewElementPointerAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glElementPointerATI' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ElementPointerTypeATI'
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type)'
      ]
    ],
    'feature' => 'GL_ATI_element_array',
    'glewImpl' => '__glewElementPointerATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glEnable' => {
    'argdata' => [
      [
        'cap',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientState' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientStateIndexedEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewEnableClientStateIndexedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientStateiEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewEnableClientStateiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableDriverControlQCOM' => {
    'argdata' => [
      [
        'driverControl',
        'GLuint '
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewEnableDriverControlQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVariantClientStateEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewEnableVariantClientStateEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVertexArrayAttrib' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewEnableVertexArrayAttrib',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVertexArrayAttribEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewEnableVertexArrayAttribEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVertexArrayEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewEnableVertexArrayEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVertexAttribAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewEnableVertexAttribAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableVertexAttribArray' => {
    'aliases' => {
      'glEnableVertexAttribArrayARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewEnableVertexAttribArray',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnablei' => {
    'aliases' => {
      'glEnableIndexedEXT' => 'GL_EXT_draw_buffers2',
      'glEnableiEXT' => 'GL_EXT_draw_buffers_indexed',
      'glEnableiNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewEnablei',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableiOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewEnableiOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnd' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndConditionalRender' => {
    'aliases' => {
      'glEndConditionalRenderNV' => 'GL_NV_conditional_render',
      'glEndConditionalRenderNVX' => 'GL_NVX_conditional_render'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewEndConditionalRender',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndFragmentShaderATI' => {
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewEndFragmentShaderATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndList' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndOcclusionQueryNV' => {
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewEndOcclusionQueryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndPerfMonitorAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewEndPerfMonitorAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndPerfQueryINTEL' => {
    'argdata' => [
      [
        'queryHandle',
        'GLuint '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewEndPerfQueryINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndQuery' => {
    'aliases' => {
      'glEndQueryARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewEndQuery',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndQueryANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewEndQueryANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndQueryEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ]
    ],
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewEndQueryEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndQueryIndexed' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewEndQueryIndexed',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndSceneEXT' => {
    'feature' => 'GL_EXT_scene_marker',
    'glewImpl' => '__glewEndSceneEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndTilingQCOM' => {
    'argdata' => [
      [
        'preserveMask',
        'GLbitfield ',
        undef,
        'BufferBitQCOM'
      ]
    ],
    'feature' => 'GL_QCOM_tiled_rendering',
    'glewImpl' => '__glewEndTilingQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndTransformFeedback' => {
    'aliases' => {
      'glEndTransformFeedbackEXT' => 'GL_EXT_transform_feedback',
      'glEndTransformFeedbackNV' => 'GL_NV_transform_feedback'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewEndTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndVertexShaderEXT' => {
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewEndVertexShaderEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEndVideoCaptureNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewEndVideoCaptureNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalCoord1d' => {
    'argdata' => [
      [
        'u',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalCoord1dv' => {
    'argdata' => [
      [
        'u',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'u' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glEvalCoord1f' => {
    'argdata' => [
      [
        'u',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalCoord1fv' => {
    'argdata' => [
      [
        'u',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'u' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glEvalCoord2d' => {
    'argdata' => [
      [
        'u',
        'GLdouble '
      ],
      [
        'v',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalCoord2dv' => {
    'argdata' => [
      [
        'u',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'u' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glEvalCoord2f' => {
    'argdata' => [
      [
        'u',
        'GLfloat '
      ],
      [
        'v',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalCoord2fv' => {
    'argdata' => [
      [
        'u',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'u' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glEvalMapsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'EvalMapsModeNV'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewEvalMapsNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalMesh1' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MeshMode1'
      ],
      [
        'i1',
        'GLint '
      ],
      [
        'i2',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalMesh2' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MeshMode2'
      ],
      [
        'i1',
        'GLint '
      ],
      [
        'i2',
        'GLint '
      ],
      [
        'j1',
        'GLint '
      ],
      [
        'j2',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalPoint1' => {
    'argdata' => [
      [
        'i',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalPoint2' => {
    'argdata' => [
      [
        'i',
        'GLint '
      ],
      [
        'j',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvaluateDepthValuesARB' => {
    'feature' => 'GL_ARB_sample_locations',
    'glewImpl' => '__glewEvaluateDepthValuesARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glExecuteProgramNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewExecuteProgramNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glExtGetBufferPointervQCOM' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetBufferPointervQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glExtGetBuffersQCOM' => {
    'argdata' => [
      [
        'buffers',
        'GLuint* ',
        'maxBuffers'
      ],
      [
        'maxBuffers',
        'GLint '
      ],
      [
        'numBuffers',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'buffers' => 'OUTARRAY:maxBuffers',
      'numBuffers' => 'OUTSCALAR'
    },
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetBuffersQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtGetFramebuffersQCOM' => {
    'argdata' => [
      [
        'framebuffers',
        'GLuint* ',
        'maxFramebuffers'
      ],
      [
        'maxFramebuffers',
        'GLint '
      ],
      [
        'numFramebuffers',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'framebuffers' => 'OUTARRAY:maxFramebuffers',
      'numFramebuffers' => 'OUTSCALAR'
    },
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetFramebuffersQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtGetProgramBinarySourceQCOM' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'source',
        'GLchar* ',
        'length'
      ],
      [
        'length',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetProgramBinarySourceQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glExtGetProgramsQCOM' => {
    'argdata' => [
      [
        'programs',
        'GLuint* ',
        'maxPrograms'
      ],
      [
        'maxPrograms',
        'GLint '
      ],
      [
        'numPrograms',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'numPrograms' => 'OUTSCALAR',
      'programs' => 'OUTARRAY:maxPrograms'
    },
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetProgramsQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtGetRenderbuffersQCOM' => {
    'argdata' => [
      [
        'renderbuffers',
        'GLuint* ',
        'maxRenderbuffers'
      ],
      [
        'maxRenderbuffers',
        'GLint '
      ],
      [
        'numRenderbuffers',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'numRenderbuffers' => 'OUTSCALAR',
      'renderbuffers' => 'OUTARRAY:maxRenderbuffers'
    },
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetRenderbuffersQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtGetShadersQCOM' => {
    'argdata' => [
      [
        'shaders',
        'GLuint* ',
        'maxShaders'
      ],
      [
        'maxShaders',
        'GLint '
      ],
      [
        'numShaders',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'numShaders' => 'OUTSCALAR',
      'shaders' => 'OUTARRAY:maxShaders'
    },
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetShadersQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtGetTexLevelParameterivQCOM' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'face',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexLevelParameterivQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glExtGetTexSubImageQCOM' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'texels',
        'void *'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexSubImageQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glExtGetTexturesQCOM' => {
    'argdata' => [
      [
        'textures',
        'GLuint* '
      ],
      [
        'maxTextures',
        'GLint '
      ],
      [
        'numTextures',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexturesQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glExtIsProgramBinaryQCOM' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtIsProgramBinaryQCOM',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glExtTexObjectStateOverrideiQCOM' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtTexObjectStateOverrideiQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glExtractComponentEXT' => {
    'argdata' => [
      [
        'res',
        'GLuint '
      ],
      [
        'src',
        'GLuint '
      ],
      [
        'num',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewExtractComponentEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glExtrapolateTex2DQCOM' => {
    'argdata' => [
      [
        'src1',
        'GLuint '
      ],
      [
        'src2',
        'GLuint '
      ],
      [
        'output',
        'GLuint '
      ],
      [
        'scaleFactor',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_QCOM_frame_extrapolation',
    'glewImpl' => '__glewExtrapolateTex2DQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFeedbackBuffer' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'FeedbackType'
      ],
      [
        'buffer',
        'GLfloat *',
        'size'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'buffer' => 'OUTASLIST:size'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFenceSync' => {
    'aliases' => {
      'glFenceSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'condition',
        'GLenum ',
        undef,
        'SyncCondition'
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'SyncBehaviorFlags'
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewFenceSync',
    'glewtype' => 'fun',
    'restype' => 'GLsync'
  },
  'glFinalCombinerInputNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'input',
        'GLenum ',
        undef,
        'CombinerRegisterNV'
      ],
      [
        'mapping',
        'GLenum ',
        undef,
        'CombinerMappingNV'
      ],
      [
        'componentUsage',
        'GLenum ',
        undef,
        'CombinerComponentUsageNV'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewFinalCombinerInputNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFinish' => {
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFinishAsyncSGIX' => {
    'argdata' => [
      [
        'markerp',
        'GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'markerp' => 'OUTSCALAR'
    },
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewFinishAsyncSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'GLint'
  },
  'glFinishFenceAPPLE' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewFinishFenceAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFinishFenceNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewFinishFenceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFinishObjectAPPLE' => {
    'argdata' => [
      [
        'object',
        'GLenum ',
        undef,
        'ObjectTypeAPPLE'
      ],
      [
        'name',
        'GLint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewFinishObjectAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFinishTextureSUNX' => {
    'feature' => 'GL_SUNX_constant_data',
    'glewImpl' => '__glewFinishTextureSUNX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlush' => {
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushMappedBufferRange' => {
    'aliases' => {
      'glFlushMappedBufferRangeAPPLE' => 'GL_APPLE_flush_buffer_range',
      'glFlushMappedBufferRangeEXT' => 'GL_EXT_map_buffer_range'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_map_buffer_range',
    'glewImpl' => '__glewFlushMappedBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushMappedNamedBufferRange' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewFlushMappedNamedBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushMappedNamedBufferRangeEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFlushMappedNamedBufferRangeEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushPixelDataRangeNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelDataRangeTargetNV'
      ]
    ],
    'feature' => 'GL_NV_pixel_data_range',
    'glewImpl' => '__glewFlushPixelDataRangeNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushRasterSGIX' => {
    'feature' => 'GL_SGIX_flush_raster',
    'glewImpl' => '__glewFlushRasterSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFlushVertexArrayRangeAPPLE' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_array_range',
    'glewImpl' => '__glewFlushVertexArrayRangeAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFlushVertexArrayRangeNV' => {
    'feature' => 'GL_NV_vertex_array_range',
    'glewImpl' => '__glewFlushVertexArrayRangeNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoordFormatNV' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewFogCoordFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoordPointer' => {
    'aliases' => {
      'glFogCoordPointerEXT' => 'GL_EXT_fog_coord'
    },
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'FogPointerTypeEXT'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordPointer',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFogCoordPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'FogPointerTypeIBM'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewFogCoordPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFogCoordd' => {
    'aliases' => {
      'glFogCoorddEXT' => 'GL_EXT_fog_coord'
    },
    'argdata' => [
      [
        'coord',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordd',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoorddv' => {
    'aliases' => {
      'glFogCoorddvEXT' => 'GL_EXT_fog_coord'
    },
    'argdata' => [
      [
        'coord',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'coord' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoorddv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glFogCoordf' => {
    'aliases' => {
      'glFogCoordfEXT' => 'GL_EXT_fog_coord'
    },
    'argdata' => [
      [
        'coord',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoordfv' => {
    'aliases' => {
      'glFogCoordfvEXT' => 'GL_EXT_fog_coord'
    },
    'argdata' => [
      [
        'coord',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'coord' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glFogCoordhNV' => {
    'argdata' => [
      [
        'fog',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewFogCoordhNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoordhvNV' => {
    'argdata' => [
      [
        'fog',
        'const GLhalf* ',
        '1'
      ]
    ],
    'dynlang' => {
      'fog' => 'VARARGS:0:1'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewFogCoordhvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glFogFuncSGIS' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'dynlang' => {
      'points' => 'VARARGS:1:n*2'
    },
    'feature' => 'GL_SGIS_fog_function',
    'glewImpl' => '__glewFogFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFogLayersSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_fog_layers',
    'glewImpl' => '__glewFogLayersSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFogf' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogfv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:FogParameter:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFogi' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogiv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:FogParameter:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFogx' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogPName'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFogx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FogPName'
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:FogPName:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFogxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFragmentColorMaterialEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentColorMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentColorMaterialSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'MaterialParameter'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentColorMaterialSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentCoverageColorNV' => {
    'argdata' => [
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_fragment_coverage_to_color',
    'glewImpl' => '__glewFragmentCoverageColorNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModelfEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightModelfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModelfSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightModelParameterSGIX'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModelfSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModelfvEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightModelfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFragmentLightModelfvSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightModelParameterSGIX'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModelfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFragmentLightModeliEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightModeliEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModeliSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightModelParameterSGIX'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModeliSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModelivEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightModelivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFragmentLightModelivSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightModelParameterSGIX'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModelivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glFragmentLightfEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightfSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightfSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightfvEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FragmentLightParameterSGIX:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentLightiEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightiSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightiSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightivEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentLightivSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FragmentLightParameterSGIX:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentMaterialfEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentMaterialfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentMaterialfSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'const GLfloat '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialfSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentMaterialfvEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentMaterialfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentMaterialiEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLint '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentMaterialiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentMaterialiSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'const GLint '
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialiSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentMaterialivEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentMaterialivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFragmentMaterialivSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFrameTerminatorGREMEDY' => {
    'feature' => 'GL_GREMEDY_frame_terminator',
    'glewImpl' => '__glewFrameTerminatorGREMEDY',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrameZoomSGIX' => {
    'argdata' => [
      [
        'factor',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_framezoom',
    'glewImpl' => '__glewFrameZoomSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferDrawBufferEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'DrawBufferMode'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferDrawBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferDrawBuffersEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n',
        'DrawBufferMode'
      ]
    ],
    'dynlang' => {
      'bufs' => 'VARARGS:1:n',
      'n' => 'items-1'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferDrawBuffersEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glFramebufferFetchBarrierEXT' => {
    'feature' => 'GL_EXT_shader_framebuffer_fetch',
    'glewImpl' => '__glewFramebufferFetchBarrierEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferFetchBarrierQCOM' => {
    'feature' => 'GL_QCOM_shader_framebuffer_fetch_noncoherent',
    'glewImpl' => '__glewFramebufferFetchBarrierQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferFoveationConfigQCOM' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numLayers',
        'GLuint '
      ],
      [
        'focalPointsPerLayer',
        'GLuint '
      ],
      [
        'requestedFeatures',
        'GLuint '
      ],
      [
        'providedFeatures',
        'GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'providedFeatures'
    },
    'feature' => 'GL_QCOM_framebuffer_foveated',
    'glewImpl' => '__glewFramebufferFoveationConfigQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glFramebufferFoveationParametersQCOM' => {
    'argdata' => [
      [
        'fbo',
        'GLuint '
      ],
      [
        'layer',
        'GLuint '
      ],
      [
        'focalPoint',
        'GLuint '
      ],
      [
        'focalX',
        'GLfloat '
      ],
      [
        'focalY',
        'GLfloat '
      ],
      [
        'gainX',
        'GLfloat '
      ],
      [
        'gainY',
        'GLfloat '
      ],
      [
        'foveaArea',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_QCOM_framebuffer_foveated',
    'glewImpl' => '__glewFramebufferFoveationParametersQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferParameteri' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewFramebufferParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferParameteriMESA' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_MESA_framebuffer_flip_y',
    'glewImpl' => '__glewFramebufferParameteriMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferPixelLocalStorageSizeEXT' => {
    'argdata' => [
      [
        'target',
        'GLuint '
      ],
      [
        'size',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_shader_pixel_local_storage2',
    'glewImpl' => '__glewFramebufferPixelLocalStorageSizeEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferReadBufferEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'ReadBufferMode'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferReadBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferRenderbuffer' => {
    'aliases' => {
      'glFramebufferRenderbufferEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'renderbuffertarget',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferRenderbufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'renderbuffertarget',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewFramebufferRenderbufferOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferSampleLocationsfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_sample_locations',
    'glewImpl' => '__glewFramebufferSampleLocationsfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glFramebufferSampleLocationsfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_sample_locations',
    'glewImpl' => '__glewFramebufferSampleLocationsfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glFramebufferSamplePositionsfvAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'values',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewFramebufferSamplePositionsfvAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glFramebufferShadingRateEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'baseLayer',
        'GLint '
      ],
      [
        'numLayers',
        'GLsizei '
      ],
      [
        'texelWidth',
        'GLsizei '
      ],
      [
        'texelHeight',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_fragment_shading_rate',
    'glewImpl' => '__glewFramebufferShadingRateEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture' => {
    'aliases' => {
      'glFramebufferTextureARB' => 'GL_ARB_geometry_shader4',
      'glFramebufferTextureEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_2',
    'glewImpl' => '__glewFramebufferTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture1D' => {
    'aliases' => {
      'glFramebufferTexture1DEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2D' => {
    'aliases' => {
      'glFramebufferTexture2DEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2DDownsampleIMG' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xscale',
        'GLint '
      ],
      [
        'yscale',
        'GLint '
      ]
    ],
    'feature' => 'GL_IMG_framebuffer_downsample',
    'glewImpl' => '__glewFramebufferTexture2DDownsampleIMG',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2DMultisampleEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'samples',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_multisampled_render_to_texture',
    'glewImpl' => '__glewFramebufferTexture2DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2DMultisampleIMG' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'samples',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_IMG_multisampled_render_to_texture',
    'glewImpl' => '__glewFramebufferTexture2DMultisampleIMG',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture2DOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture3D' => {
    'aliases' => {
      'glFramebufferTexture3DEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewFramebufferTexture3DOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureFaceARB' => {
    'aliases' => {
      'glFramebufferTextureFaceEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'face',
        'GLenum ',
        undef,
        'TextureTarget'
      ]
    ],
    'feature' => 'GL_ARB_geometry_shader4',
    'glewImpl' => '__glewFramebufferTextureFaceARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureLayer' => {
    'aliases' => {
      'glFramebufferTextureLayerARB' => 'GL_ARB_geometry_shader4',
      'glFramebufferTextureLayerEXT' => 'GL_EXT_texture_array'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTextureLayer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureLayerDownsampleIMG' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'xscale',
        'GLint '
      ],
      [
        'yscale',
        'GLint '
      ]
    ],
    'feature' => 'GL_IMG_framebuffer_downsample',
    'glewImpl' => '__glewFramebufferTextureLayerDownsampleIMG',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureLayerNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewFramebufferTextureLayerNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureMultisampleMultiviewOVR' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'baseViewIndex',
        'GLint '
      ],
      [
        'numViews',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OVR_multiview_multisampled_render_to_texture',
    'glewImpl' => '__glewFramebufferTextureMultisampleMultiviewOVR',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureMultiviewOVR' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'baseViewIndex',
        'GLint '
      ],
      [
        'numViews',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OVR_multiview',
    'glewImpl' => '__glewFramebufferTextureMultiviewOVR',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFreeObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewFreeObjectBufferATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrontFace' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'FrontFaceDirection'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrustum' => {
    'argdata' => [
      [
        'left',
        'GLdouble '
      ],
      [
        'right',
        'GLdouble '
      ],
      [
        'bottom',
        'GLdouble '
      ],
      [
        'top',
        'GLdouble '
      ],
      [
        'zNear',
        'GLdouble '
      ],
      [
        'zFar',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrustumf' => {
    'argdata' => [
      [
        'left',
        'GLfloat '
      ],
      [
        'right',
        'GLfloat '
      ],
      [
        'bottom',
        'GLfloat '
      ],
      [
        'top',
        'GLfloat '
      ],
      [
        'zNear',
        'GLfloat '
      ],
      [
        'zFar',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFrustumf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrustumfOES' => {
    'argdata' => [
      [
        'l',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'n',
        'GLfloat '
      ],
      [
        'f',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewFrustumfOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFrustumx' => {
    'argdata' => [
      [
        'left',
        'GLfixed '
      ],
      [
        'right',
        'GLfixed '
      ],
      [
        'bottom',
        'GLfixed '
      ],
      [
        'top',
        'GLfixed '
      ],
      [
        'zNear',
        'GLfixed '
      ],
      [
        'zFar',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFrustumx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenAsyncMarkersSGIX' => {
    'argdata' => [
      [
        'range',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewGenAsyncMarkersSGIX',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenBuffers' => {
    'aliases' => {
      'glGenBuffersARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'buffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'buffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGenBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenFencesAPPLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'fences' => 'OUTASLIST:n'
    },
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewGenFencesAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenFencesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'fences' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewGenFencesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenFragmentShadersATI' => {
    'argdata' => [
      [
        'range',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewGenFragmentShadersATI',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenFramebuffers' => {
    'aliases' => {
      'glGenFramebuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'framebuffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenFramebuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenFramebuffersOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewGenFramebuffersOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenLists' => {
    'argdata' => [
      [
        'range',
        'GLsizei '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenMPEGPredictorsSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'predictors',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGenMPEGPredictorsSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenNamesAMD' => {
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        'num',
        'GLuint '
      ],
      [
        'names',
        'GLuint* ',
        'num'
      ]
    ],
    'dynlang' => {
      'names' => 'OUTASLIST:num'
    },
    'feature' => 'GL_AMD_name_gen_delete',
    'glewImpl' => '__glewGenNamesAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGenOcclusionQueriesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGenOcclusionQueriesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenPathsNV' => {
    'argdata' => [
      [
        'range',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGenPathsNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenPerfMonitorsAMD' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'monitors',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'monitors' => 'OUTASLIST:n'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGenPerfMonitorsAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenProgramPipelines' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'pipelines',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'pipelines' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGenProgramPipelines',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenProgramsARB' => {
    'aliases' => {
      'glGenProgramsNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'programs' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGenProgramsARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenQueries' => {
    'aliases' => {
      'glGenQueriesARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGenQueries',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenQueriesANGLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGenQueriesANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenQueriesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewGenQueriesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenRenderbuffers' => {
    'aliases' => {
      'glGenRenderbuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'renderbuffers' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenRenderbuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenRenderbuffersOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewGenRenderbuffersOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenSamplers' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'samplers',
        'GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'samplers' => 'OUTASLIST:count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGenSamplers',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenSemaphoresEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'semaphores',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'semaphores' => 'OUTASLIST:n'
    },
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewGenSemaphoresEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenSymbolsEXT' => {
    'argdata' => [
      [
        'datatype',
        'GLenum ',
        undef,
        'DataTypeEXT'
      ],
      [
        'storagetype',
        'GLenum ',
        undef,
        'VertexShaderStorageTypeEXT'
      ],
      [
        'range',
        'GLenum ',
        undef,
        'ParameterRangeEXT'
      ],
      [
        'components',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGenSymbolsEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenTextures' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint *',
        'n'
      ]
    ],
    'dynlang' => {
      'textures' => 'OUTASLIST:n'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenTexturesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'textures' => 'OUTASLIST:n'
    },
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewGenTexturesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenTransformFeedbacks' => {
    'aliases' => {
      'glGenTransformFeedbacksNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewGenTransformFeedbacks',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenVertexArrays' => {
    'aliases' => {
      'glGenVertexArraysAPPLE' => 'GL_APPLE_vertex_array_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'arrays' => 'OUTASLIST:n'
    },
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewGenVertexArrays',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenVertexArraysOES' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_OES_vertex_array_object',
    'glewImpl' => '__glewGenVertexArraysOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewGenVertexArraysSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGenVertexShadersEXT' => {
    'argdata' => [
      [
        'range',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGenVertexShadersEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenerateMipmap' => {
    'aliases' => {
      'glGenerateMipmapEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenerateMipmap',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenerateMipmapOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewGenerateMipmapOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenerateMultiTexMipmapEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGenerateMultiTexMipmapEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenerateTextureMipmap' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGenerateTextureMipmap',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenerateTextureMipmapEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGenerateTextureMipmapEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetActiveAtomicCounterBufferiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufferIndex',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'AtomicCounterBufferPName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:AtomicCounterBufferPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_shader_atomic_counters',
    'glewImpl' => '__glewGetActiveAtomicCounterBufferiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetActiveAttrib' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint* ',
        '1'
      ],
      [
        'type',
        'GLenum* ',
        '1',
        'AttributeType'
      ],
      [
        'name',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'bufSize' => '<glGetProgramiv(program,GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,&)',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetActiveAttrib',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetActiveAttribARB' => {
    'argdata' => [
      [
        'program',
        'GLhandleARB '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint *',
        '1'
      ],
      [
        'type',
        'GLenum *',
        '1',
        'AttributeType'
      ],
      [
        'name',
        'GLcharARB *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'bufSize' => '<glGetProgramiv(program,GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,&)',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_ARB_vertex_shader',
    'glewImpl' => '__glewGetActiveAttribARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetActiveSubroutineName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'name',
      'bufSize' => '<glGetProgramStageiv(program,shadertype,GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,&)'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineName',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      5
    ],
    'restype' => 'void'
  },
  'glGetActiveSubroutineUniformName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'name',
      'bufSize' => '<glGetActiveSubroutineUniformiv(program,shadertype,index,GL_UNIFORM_NAME_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineUniformName',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      5
    ],
    'restype' => 'void'
  },
  'glGetActiveSubroutineUniformiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SubroutineParameterName'
      ],
      [
        'values',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'values' => 'SIZE:SubroutineParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineUniformiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetActiveUniform' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint* ',
        '1'
      ],
      [
        'type',
        'GLenum* ',
        '1',
        'UniformType'
      ],
      [
        'name',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'bufSize' => '<glGetProgramiv(program,GL_ACTIVE_UNIFORM_MAX_LENGTH,&)',
      'length' => 'NULL',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetActiveUniform',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetActiveUniformARB' => {
    'argdata' => [
      [
        'program',
        'GLhandleARB '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint *',
        '1'
      ],
      [
        'type',
        'GLenum *',
        '1',
        'UniformType'
      ],
      [
        'name',
        'GLcharARB *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'bufSize' => '<glGetProgramiv(program,GL_ACTIVE_UNIFORM_MAX_LENGTH,&)',
      'length' => 'NULL',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetActiveUniformARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetActiveUniformBlockName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockIndex',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'uniformBlockName',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'uniformBlockName',
      'bufSize' => '<glGetActiveUniformBlockiv(program,uniformBlockIndex,GL_UNIFORM_BLOCK_NAME_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformBlockName',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetActiveUniformBlockiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockIndex',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'UniformBlockPName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(program,uniformBlockIndex,pname)'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformBlockiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetActiveUniformName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformIndex',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'uniformName',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'uniformName',
      'bufSize' => '<glGetProgramiv(program,GL_ACTIVE_UNIFORM_MAX_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformName',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetActiveUniformsiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformCount',
        'GLsizei '
      ],
      [
        'uniformIndices',
        'const GLuint* ',
        'uniformCount'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'UniformPName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(uniformCount,pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:UniformPName:pname:uniformCount,OUTASLIST:pname_count',
      'uniformCount' => 'items-2',
      'uniformIndices' => 'VARARGS:2:uniformCount'
    },
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformsiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      4
    ],
    'restype' => 'void'
  },
  'glGetActiveVaryingNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'size',
        'GLsizei *',
        '1'
      ],
      [
        'type',
        'GLenum *',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'length' => 'OUTSCALAR',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewGetActiveVaryingNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetArrayObjectfvATI' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetArrayObjectfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetArrayObjectivATI' => {
    'argdata' => [
      [
        'array',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetArrayObjectivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetAttachedObjectsARB' => {
    'argdata' => [
      [
        'containerObj',
        'GLhandleARB '
      ],
      [
        'maxCount',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei* ',
        '1'
      ],
      [
        'obj',
        'GLhandleARB *',
        'maxCount'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetAttachedObjectsARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetAttachedShaders' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'maxCount',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei* ',
        '1'
      ],
      [
        'shaders',
        'GLuint* ',
        'maxCount'
      ]
    ],
    'dynlang' => {
      'maxCount' => '<glGetProgramiv(program,GL_ATTACHED_SHADERS,&)',
      'shaders' => 'OUTASLIST:maxCount'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetAttachedShaders',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetAttribLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetAttribLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetAttribLocationARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ],
      [
        'name',
        'const GLcharARB* '
      ]
    ],
    'feature' => 'GL_ARB_vertex_shader',
    'glewImpl' => '__glewGetAttribLocationARB',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetBooleani_v' => {
    'aliases' => {
      'glGetBooleanIndexedvEXT' => 'GL_EXT_draw_buffers2'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLboolean* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:BufferTargetARB:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetBooleani_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBooleanv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetBufferParameteri64v' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLint64 * ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:BufferPNameARB:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_3_2',
    'glewImpl' => '__glewGetBufferParameteri64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBufferParameteriv' => {
    'aliases' => {
      'glGetBufferParameterivARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:BufferPNameARB:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBufferParameterui64vNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetBufferParameterui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBufferPointerv' => {
    'aliases' => {
      'glGetBufferPointervARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPointerNameARB'
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferPointerv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBufferPointervOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void** '
      ]
    ],
    'feature' => 'GL_OES_mapbuffer',
    'glewImpl' => '__glewGetBufferPointervOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetBufferSubData' => {
    'aliases' => {
      'glGetBufferSubDataARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void* ',
        'size'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetClipPlane' => {
    'argdata' => [
      [
        'plane',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'equation',
        'GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'equation' => 'OUTASLIST:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetClipPlanef' => {
    'argdata' => [
      [
        'plane',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'equation',
        'GLfloat * ',
        '4'
      ]
    ],
    'dynlang' => {
      'equation' => 'OUTASLIST:4'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetClipPlanef',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetClipPlanefOES' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewGetClipPlanefOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetClipPlanex' => {
    'argdata' => [
      [
        'plane',
        'GLenum ',
        undef,
        'ClipPlaneName'
      ],
      [
        'equation',
        'GLfixed * ',
        '4'
      ]
    ],
    'dynlang' => {
      'equation' => 'OUTASLIST:4'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetClipPlanex',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetColorTable' => {
    'aliases' => {
      'glGetColorTableEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'table',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTable',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetColorTableParameterfv' => {
    'aliases' => {
      'glGetColorTableParameterfvEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTableParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetColorTableParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTargetSGI'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableParameterfvSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetColorTableParameteriv' => {
    'aliases' => {
      'glGetColorTableParameterivEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTableParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetColorTableParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTargetSGI'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ColorTableParameterPName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ColorTableParameterPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableParameterivSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetColorTableSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTargetSGI'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'table',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCombinerInputParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerInputParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetCombinerInputParameterivNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerInputParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetCombinerOutputParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerOutputParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCombinerOutputParameterivNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'portion',
        'GLenum ',
        undef,
        'CombinerPortionNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerOutputParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCombinerStageParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum ',
        undef,
        'CombinerStageNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners2',
    'glewImpl' => '__glewGetCombinerStageParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetCommandHeaderNV' => {
    'argdata' => [
      [
        'tokenID',
        'GLenum ',
        undef,
        'CommandOpcodesNV'
      ],
      [
        'size',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewGetCommandHeaderNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetCompressedMultiTexImageEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,lod)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetCompressedMultiTexImageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCompressedTexImage' => {
    'aliases' => {
      'glGetCompressedTexImageARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,level)'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewGetCompressedTexImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetCompressedTextureImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetCompressedTextureImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCompressedTextureImageEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,lod)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetCompressedTextureImageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetCompressedTextureSubImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_get_texture_sub_image',
    'glewImpl' => '__glewGetCompressedTextureSubImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glGetConvolutionFilter' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'image',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionFilter',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetConvolutionFilterEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTargetEXT'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'image',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionFilterEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetConvolutionParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetConvolutionParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetConvolutionParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetConvolutionParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ConvolutionParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ConvolutionParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetCoverageModulationTableNV' => {
    'argdata' => [
      [
        'bufsize',
        'GLsizei '
      ],
      [
        'v',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewGetCoverageModulationTableNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetDebugMessageLog' => {
    'aliases' => {
      'glGetDebugMessageLogARB' => 'GL_ARB_debug_output',
      'glGetDebugMessageLogKHR' => undef
    },
    'argdata' => [
      [
        'count',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'sources',
        'GLenum* ',
        'count',
        'DebugSource'
      ],
      [
        'types',
        'GLenum* ',
        'count',
        'DebugType'
      ],
      [
        'ids',
        'GLuint* ',
        'count'
      ],
      [
        'severities',
        'GLenum* ',
        'count',
        'DebugSeverity'
      ],
      [
        'lengths',
        'GLsizei* ',
        'count'
      ],
      [
        'messageLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'ids' => 'OUTARRAY:count',
      'lengths' => 'OUTARRAY:count',
      'messageLog' => 'OUTSCALAR',
      'severities' => 'OUTARRAY:count',
      'sources' => 'OUTARRAY:count',
      'types' => 'OUTARRAY:count'
    },
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewGetDebugMessageLog',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4,
      5,
      6,
      7
    ],
    'restype' => 'GLuint'
  },
  'glGetDebugMessageLogAMD' => {
    'argdata' => [
      [
        'count',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'categories',
        'GLenum* ',
        'count'
      ],
      [
        'severities',
        'GLenum* ',
        'count',
        'DebugSeverity'
      ],
      [
        'ids',
        'GLuint* ',
        'count'
      ],
      [
        'lengths',
        'GLsizei* ',
        'count'
      ],
      [
        'message',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'categories' => 'OUTARRAY:count',
      'ids' => 'OUTARRAY:count',
      'lengths' => 'OUTARRAY:count',
      'message' => 'OUTSCALAR',
      'severities' => 'OUTARRAY:count'
    },
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewGetDebugMessageLogAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4,
      5,
      6
    ],
    'restype' => 'GLuint'
  },
  'glGetDetailTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'points',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'points' => 'SIZE:TextureTarget:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_SGIS_detail_texture',
    'glewImpl' => '__glewGetDetailTexFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetDoublei_v' => {
    'aliases' => {
      'glGetDoubleIndexedvEXT' => 'GL_EXT_direct_state_access',
      'glGetDoublei_vEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLdouble* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewGetDoublei_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetDoublev' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetDriverControlStringQCOM' => {
    'argdata' => [
      [
        'driverControl',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* '
      ],
      [
        'driverControlString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewGetDriverControlStringQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetDriverControlsQCOM' => {
    'argdata' => [
      [
        'num',
        'GLint* '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'driverControls',
        'GLuint *',
        'size'
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewGetDriverControlsQCOM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glGetError' => {
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glGetExtensionREGAL' => {
    'argdata' => [
      [
        'ext',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_REGAL_extension_query',
    'glewImpl' => '__glewGetExtensionREGAL',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glGetFenceivNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FenceParameterNameNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewGetFenceivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFinalCombinerInputParameterfvNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetFinalCombinerInputParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFinalCombinerInputParameterivNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum ',
        undef,
        'CombinerVariableNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'CombinerParameterNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetFinalCombinerInputParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFirstPerfQueryIdINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetFirstPerfQueryIdINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glGetFixedv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'params',
        'GLfixed* '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetFixedv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetFloati_v' => {
    'aliases' => {
      'glGetFloatIndexedvEXT' => 'GL_EXT_direct_state_access',
      'glGetFloati_vEXT' => 'GL_EXT_direct_state_access',
      'glGetFloati_vNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewGetFloati_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFloatv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetFogFuncSGIS' => {
    'argdata' => [
      [
        'points',
        'GLfloat* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_SGIS_fog_function',
    'glewImpl' => '__glewGetFogFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glGetFogLayersSGIX' => {
    'argdata' => [
      [
        'points',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_fog_layers',
    'glewImpl' => '__glewGetFogLayersSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glGetFragDataIndex' => {
    'aliases' => {
      'glGetFragDataIndexEXT' => 'GL_EXT_blend_func_extended'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar * '
      ]
    ],
    'feature' => 'GL_ARB_blend_func_extended',
    'glewImpl' => '__glewGetFragDataIndex',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetFragDataLocation' => {
    'aliases' => {
      'glGetFragDataLocationEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetFragDataLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetFragmentLightfvEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentLightfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FragmentLightParameterSGIX:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentLightfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentLightivEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentLightivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentLightivSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'FragmentLightNameSGIX'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FragmentLightParameterSGIX'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FragmentLightParameterSGIX:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentLightivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentMaterialfvEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentMaterialfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentMaterialfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentMaterialivEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentMaterialivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentMaterialivSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentMaterialivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFragmentShadingRatesEXT' => {
    'argdata' => [
      [
        'samples',
        'GLsizei '
      ],
      [
        'maxCount',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei* ',
        '1'
      ],
      [
        'shadingRates',
        'GLenum *',
        'maxCount',
        'ShadingRate'
      ]
    ],
    'dynlang' => {
      'count' => 'OUTSCALAR',
      'shadingRates' => 'OUTARRAY:maxCount'
    },
    'feature' => 'GL_EXT_fragment_shading_rate',
    'glewImpl' => '__glewGetFragmentShadingRatesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetFramebufferAttachmentParameteriv' => {
    'aliases' => {
      'glGetFramebufferAttachmentParameterivEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FramebufferAttachmentParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGetFramebufferAttachmentParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetFramebufferAttachmentParameterivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewGetFramebufferAttachmentParameterivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetFramebufferParameterfvAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'values',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewGetFramebufferParameterfvAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetFramebufferParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FramebufferAttachmentParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewGetFramebufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFramebufferParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetFramebufferParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetFramebufferParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetFramebufferParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFramebufferParameterivMESA' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FramebufferAttachmentParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_MESA_framebuffer_flip_y',
    'glewImpl' => '__glewGetFramebufferParameterivMESA',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetFramebufferPixelLocalStorageSizeEXT' => {
    'argdata' => [
      [
        'target',
        'GLuint ',
        undef,
        'FramebufferTarget'
      ]
    ],
    'feature' => 'GL_EXT_shader_pixel_local_storage2',
    'glewImpl' => '__glewGetFramebufferPixelLocalStorageSizeEXT',
    'glewtype' => 'fun',
    'restype' => 'GLsizei'
  },
  'glGetGraphicsResetStatus' => {
    'aliases' => {
      'glGetGraphicsResetStatusEXT' => 'GL_EXT_robustness',
      'glGetGraphicsResetStatusKHR' => undef
    },
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetGraphicsResetStatus',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glGetGraphicsResetStatusARB' => {
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetGraphicsResetStatusARB',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glGetHandleARB' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'ContainerType'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLhandleARB'
  },
  'glGetHistogram' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogram',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetHistogramEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetHistogramParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetHistogramParameterPNameEXT'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetHistogramParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogramParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetHistogramParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetHistogramParameterPNameEXT'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetHistogramParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetHistogramParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetHistogramParameterPNameEXT'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetHistogramParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogramParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetHistogramParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetHistogramParameterPNameEXT'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetHistogramParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetImageHandleARB' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetImageHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetImageHandleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewGetImageHandleNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetImageTransformParameterfvHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewGetImageTransformParameterfvHP',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetImageTransformParameterivHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewGetImageTransformParameterivHP',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetInfoLogARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'maxLength',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLcharARB *',
        'maxLength'
      ]
    ],
    'dynlang' => {
      'infoLog' => 'OUTSCALAR',
      'length' => 'OUTSCALAR'
    },
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetInfoLogARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetInteger64i_v' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint64 * ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_VERSION_3_2',
    'glewImpl' => '__glewGetInteger64i_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetInteger64v' => {
    'aliases' => {
      'glGetInteger64vAPPLE' => 'GL_APPLE_sync',
      'glGetInteger64vEXT' => 'GL_EXT_disjoint_timer_query'
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewGetInteger64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetIntegeri_v' => {
    'aliases' => {
      'glGetIntegerIndexedvEXT' => 'GL_EXT_draw_buffers2'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetIntegeri_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetIntegeri_vEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewGetIntegeri_vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetIntegerui64i_vNV' => {
    'argdata' => [
      [
        'value',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'result',
        'GLuint64EXT * ',
        'COMPSIZE(value)'
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewGetIntegerui64i_vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetIntegerui64vNV' => {
    'argdata' => [
      [
        'value',
        'GLenum '
      ],
      [
        'result',
        'GLuint64EXT* ',
        'COMPSIZE(value)'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetIntegerui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetIntegerv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetInternalformatSampleivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'InternalFormatPName'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:count'
    },
    'feature' => 'GL_NV_internalformat_sample_query',
    'glewImpl' => '__glewGetInternalformatSampleivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetInternalformati64v' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'InternalFormatPName'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:count'
    },
    'feature' => 'GL_ARB_internalformat_query2',
    'glewImpl' => '__glewGetInternalformati64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetInternalformativ' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'InternalFormatPName'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:count'
    },
    'feature' => 'GL_ARB_internalformat_query',
    'glewImpl' => '__glewGetInternalformativ',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetInvariantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantBooleanvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetInvariantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantFloatvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetInvariantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantIntegervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLightfv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLightiv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLightxv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetLightxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLocalConstantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantBooleanvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLocalConstantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantFloatvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetLocalConstantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantIntegervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMPEGParameterfvSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGParameterfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMPEGParameterivSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGParameterivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMPEGPredictorSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *'
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGPredictorSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMPEGQuantTableubv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'values',
        'GLubyte* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGQuantTableubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetMapAttribParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapAttribParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapAttribParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMapAttribParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapAttribParameterNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapAttribParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMapControlPointsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'MapTypeNV'
      ],
      [
        'ustride',
        'GLsizei '
      ],
      [
        'vstride',
        'GLsizei '
      ],
      [
        'packed',
        'GLboolean '
      ],
      [
        'points',
        'void *',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapControlPointsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glGetMapParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapParameterNV'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMapParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapParameterNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMapdv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'GetMapQuery'
      ],
      [
        'v',
        'GLdouble *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMapfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'GetMapQuery'
      ],
      [
        'v',
        'GLfloat *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMapiv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'GetMapQuery'
      ],
      [
        'v',
        'GLint *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMaterialfv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMaterialiv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMaterialxv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetMaterialxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMemoryObjectDetachedResourcesuivNV' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewGetMemoryObjectDetachedResourcesuivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetMemoryObjectParameterivEXT' => {
    'argdata' => [
      [
        'memoryObject',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MemoryObjectParameterName'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetMemoryObjectParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMinmax' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmax',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetMinmaxEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetMinmaxParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetMinmaxParameterPNameEXT'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetMinmaxParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmaxParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMinmaxParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetMinmaxParameterPNameEXT'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetMinmaxParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMinmaxParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetMinmaxParameterPNameEXT'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetMinmaxParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmaxParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMinmaxParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetMinmaxParameterPNameEXT'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetMinmaxParameterPNameEXT:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetMultiTexEnvfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexEnvfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexEnvivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexEnvivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexGendvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGendvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexGenfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGenfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexGenivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGenivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexImageEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexImageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetMultiTexLevelParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexLevelParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetMultiTexLevelParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexLevelParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetMultiTexParameterIivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterIivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexParameterIuivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterIuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultiTexParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetMultisamplefv' => {
    'aliases' => {
      'glGetMultisamplefvNV' => 'GL_NV_explicit_multisample'
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetMultisamplePNameNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'val',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'val' => 'SIZE:GetMultisamplePNameNV:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewGetMultisamplefv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferParameteri64v' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameteri64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferParameteriv' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferParameterivEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:BufferPNameARB:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferParameterui64vNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPNameARB'
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:BufferPNameARB:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetNamedBufferParameterui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferPointerv' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPointerNameARB'
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferPointerv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferPointervEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'BufferPointerNameARB'
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferPointervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferSubData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedBufferSubDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void *',
        'COMPSIZE(size)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferSubDataEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedFramebufferAttachmentParameteriv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferAttachmentParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedFramebufferAttachmentParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferAttachmentParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:FramebufferAttachmentParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferAttachmentParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedFramebufferParameterfvAMD' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'values',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewGetNamedFramebufferParameterfvAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetNamedFramebufferParameteriv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetFramebufferParameter'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedFramebufferParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetFramebufferParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetFramebufferParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewGetNamedFramebufferParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterIivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterIivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterIuivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLuint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterIuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterdvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterdvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterfvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramStringEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramStringProperty'
      ],
      [
        'string',
        'void *',
        'COMPSIZE(program,pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramStringEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedProgramivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramPropertyARB'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNamedRenderbufferParameteriv' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'RenderbufferParameterName'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedRenderbufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedRenderbufferParameterivEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'RenderbufferParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:RenderbufferParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedRenderbufferParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetNamedStringARB' => {
    'argdata' => [
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'stringlen',
        'GLint *',
        '1'
      ],
      [
        'string',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'string' => 'OUTSCALAR',
      'stringlen' => 'OUTSCALAR'
    },
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewGetNamedStringARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetNamedStringivARB' => {
    'argdata' => [
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewGetNamedStringivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetNextPerfQueryIdINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'nextQueryId',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetNextPerfQueryIdINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetNonlinLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint* '
      ],
      [
        'data',
        'GLfloat *'
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewGetNonlinLightfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetNonlinMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint* '
      ],
      [
        'data',
        'const GLfloat *'
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewGetNonlinMaterialfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetObjectBufferfvATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetObjectBufferfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetObjectBufferivATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetObjectBufferivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetObjectLabel' => {
    'aliases' => {
      'glGetObjectLabelKHR' => undef
    },
    'argdata' => [
      [
        'identifier',
        'GLenum ',
        undef,
        'ObjectIdentifier'
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'label',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'label',
      'bufSize' => '<glGetIntegerv(GL_MAX_LABEL_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewGetObjectLabel',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetObjectLabelEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'object',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'label',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'label' => 'OUTSCALAR',
      'length' => 'OUTSCALAR'
    },
    'feature' => 'GL_EXT_debug_label',
    'glewImpl' => '__glewGetObjectLabelEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetObjectParameterfvARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetObjectParameterfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetObjectParameterivAPPLE' => {
    'argdata' => [
      [
        'objectType',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_APPLE_object_purgeable',
    'glewImpl' => '__glewGetObjectParameterivAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetObjectParameterivARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetObjectParameterivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetObjectPtrLabel' => {
    'aliases' => {
      'glGetObjectPtrLabelKHR' => undef
    },
    'argdata' => [
      [
        'ptr',
        'void* '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'label',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewGetObjectPtrLabel',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetOcclusionQueryivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'OcclusionQueryParameterNameNV'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGetOcclusionQueryivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetOcclusionQueryuivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'OcclusionQueryParameterNameNV'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGetOcclusionQueryuivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathColorGenfvNV' => {
    'argdata' => [
      [
        'color',
        'GLenum ',
        undef,
        'PathColor'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'value',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathColorGenfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathColorGenivNV' => {
    'argdata' => [
      [
        'color',
        'GLenum ',
        undef,
        'PathColor'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'value',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathColorGenivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'commands',
        'GLubyte* ',
        'COMPSIZE(path)',
        'PathCoordType'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathCommandsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPathCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coords',
        'GLfloat* ',
        'COMPSIZE(path)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathCoordsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPathDashArrayNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'dashArray',
        'GLfloat* ',
        'COMPSIZE(path)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathDashArrayNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPathLengthNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'startSegment',
        'GLsizei '
      ],
      [
        'numSegments',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathLengthNV',
    'glewtype' => 'fun',
    'restype' => 'GLfloat'
  },
  'glGetPathMetricRangeNV' => {
    'argdata' => [
      [
        'metricQueryMask',
        'GLbitfield ',
        undef,
        'PathMetricMask'
      ],
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'metrics',
        'GLfloat* ',
        'COMPSIZE(metricQueryMask,numPaths,stride)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathMetricRangeNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetPathMetricsNV' => {
    'argdata' => [
      [
        'metricQueryMask',
        'GLbitfield ',
        undef,
        'PathMetricMask'
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'metrics',
        'GLfloat *',
        'COMPSIZE(metricQueryMask,numPaths,stride)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathMetricsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      6
    ],
    'restype' => 'void'
  },
  'glGetPathParameterfvNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'value' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathParameterivNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'value' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathSpacingNV' => {
    'argdata' => [
      [
        'pathListMode',
        'GLenum ',
        undef,
        'PathListMode'
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'advanceScale',
        'GLfloat '
      ],
      [
        'kerningScale',
        'GLfloat '
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'returnedSpacing',
        'GLfloat *',
        'COMPSIZE(pathListMode,numPaths)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathSpacingNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      8
    ],
    'restype' => 'void'
  },
  'glGetPathTexGenfvNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'value',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathTexGenfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPathTexGenivNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'value',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathTexGenivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPerfCounterInfoINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'counterId',
        'GLuint '
      ],
      [
        'counterNameLength',
        'GLuint '
      ],
      [
        'counterName',
        'GLchar* ',
        'counterNameLength'
      ],
      [
        'counterDescLength',
        'GLuint '
      ],
      [
        'counterDesc',
        'GLchar *',
        'counterDescLength'
      ],
      [
        'counterOffset',
        'GLuint *'
      ],
      [
        'counterDataSize',
        'GLuint *'
      ],
      [
        'counterTypeEnum',
        'GLuint *'
      ],
      [
        'counterDataTypeEnum',
        'GLuint *'
      ],
      [
        'rawCounterMaxValue',
        'GLuint64 *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfCounterInfoINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      5,
      6,
      7,
      8,
      9,
      10
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterDataAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'dataSize',
        'GLsizei '
      ],
      [
        'data',
        'GLuint* ',
        'dataSize/4'
      ],
      [
        'bytesWritten',
        'GLint *',
        '1'
      ]
    ],
    'dynlang' => {
      'bytesWritten' => 'OUTSCALAR',
      'data' => 'OUTARRAY:dataSize/4'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterDataAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterInfoAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'counter',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'void *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterInfoAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterStringAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'counter',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'counterString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'counterString' => 'OUTSCALAR',
      'length' => 'OUTSCALAR'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterStringAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorCountersAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'numCounters',
        'GLint* ',
        '1'
      ],
      [
        'maxActiveCounters',
        'GLint *',
        '1'
      ],
      [
        'counterSize',
        'GLsizei '
      ],
      [
        'counters',
        'GLuint *',
        'counterSize'
      ]
    ],
    'dynlang' => {
      'counters' => 'OUTARRAY:counterSize',
      'maxActiveCounters' => 'OUTSCALAR',
      'numCounters' => 'OUTSCALAR'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCountersAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2,
      4
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorGroupStringAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'groupString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'groupString' => 'OUTSCALAR',
      'length' => 'OUTSCALAR'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorGroupStringAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetPerfMonitorGroupsAMD' => {
    'argdata' => [
      [
        'numGroups',
        'GLint* ',
        '1'
      ],
      [
        'groupsSize',
        'GLsizei '
      ],
      [
        'groups',
        'GLuint *',
        'groupsSize'
      ]
    ],
    'dynlang' => {
      'groups' => 'OUTARRAY:groupsSize',
      'numGroups' => 'OUTSCALAR'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorGroupsAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      2
    ],
    'restype' => 'void'
  },
  'glGetPerfQueryDataINTEL' => {
    'argdata' => [
      [
        'queryHandle',
        'GLuint '
      ],
      [
        'flags',
        'GLuint ',
        undef,
        'PerfQueryDataFlags'
      ],
      [
        'dataSize',
        'GLsizei '
      ],
      [
        'data',
        'void *'
      ],
      [
        'bytesWritten',
        'GLuint *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryDataINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetPerfQueryIdByNameINTEL' => {
    'argdata' => [
      [
        'queryName',
        'GLchar* '
      ],
      [
        'queryId',
        'GLuint *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryIdByNameINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glGetPerfQueryInfoINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'queryNameLength',
        'GLuint '
      ],
      [
        'queryName',
        'GLchar* ',
        'queryNameLength'
      ],
      [
        'dataSize',
        'GLuint *'
      ],
      [
        'noCounters',
        'GLuint *'
      ],
      [
        'noInstances',
        'GLuint *'
      ],
      [
        'capsMask',
        'GLuint *',
        undef,
        'PerformanceQueryCapsMaskINTEL'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryInfoINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetPixelMapfv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'values',
        'GLfloat *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPixelMapuiv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'values',
        'GLuint *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPixelMapusv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'values',
        'GLushort *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPixelTransformParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewGetPixelTransformParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPixelTransformParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewGetPixelTransformParameterfvSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPixelTransformParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewGetPixelTransformParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPixelTransformParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewGetPixelTransformParameterivSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPointerIndexedvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetPointerIndexedvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPointeri_vEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetPointeri_vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetPointerv' => {
    'aliases' => {
      'glGetPointervEXT' => undef,
      'glGetPointervKHR' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPointervPName'
      ],
      [
        'params',
        'void* *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetPolygonStipple' => {
    'argdata' => [
      [
        'mask',
        'GLubyte *',
        'COMPSIZE()'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glGetProcAddressREGAL' => {
    'argdata' => [
      [
        'name',
        'const GLchar *'
      ]
    ],
    'feature' => 'GL_REGAL_proc_address',
    'glewImpl' => '__glewGetProcAddressREGAL',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glGetProgramBinary' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'binaryFormat',
        'GLenum *',
        '1'
      ],
      [
        'binary',
        'void*',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'binary' => 'OUTSCALAR:bufSize',
      'binaryFormat' => 'OUTSCALAR',
      'bufSize' => '<glGetProgramiv(program,GL_PROGRAM_BINARY_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_get_program_binary',
    'glewImpl' => '__glewGetProgramBinary',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetProgramBinaryOES' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* '
      ],
      [
        'binaryFormat',
        'GLenum *'
      ],
      [
        'binary',
        'void*'
      ]
    ],
    'feature' => 'GL_OES_get_program_binary',
    'glewImpl' => '__glewGetProgramBinaryOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetProgramEnvParameterdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramEnvParameterdvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramEnvParameterfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramEnvParameterfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramInfoLog' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'infoLog',
      'bufSize' => '<glGetProgramiv(program,GL_INFO_LOG_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetProgramInfoLog',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramInterfaceiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramInterfacePName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ProgramInterfacePName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramInterfaceiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramLocalParameterdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramLocalParameterdvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramLocalParameterfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramLocalParameterfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramNamedParameterdvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'params',
        'GLdouble *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewGetProgramNamedParameterdvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramNamedParameterfvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'params',
        'GLfloat *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewGetProgramNamedParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramParameterdvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramParameterdvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramPipelineInfoLog' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'infoLog',
      'bufSize' => '<glGetProgramPipelineiv(pipeline,GL_INFO_LOG_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGetProgramPipelineInfoLog',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramPipelineiv' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PipelineParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:PipelineParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGetProgramPipelineiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramResourceIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceIndex',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetProgramResourceLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceLocationIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceLocationIndex',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceLocationIndexEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_EXT_blend_func_extended',
    'glewImpl' => '__glewGetProgramResourceLocationIndexEXT',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'name',
      'bufSize' => '<glGetProgramResourceiv(program,programInterface,index,1,&(GLenum){GL_NAME_LENGTH},sizeof(bufSize),NULL,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceName',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      5
    ],
    'restype' => 'void'
  },
  'glGetProgramResourcefvNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'propCount',
        'GLsizei '
      ],
      [
        'props',
        'const GLenum* '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'params',
        'GLfloat *',
        'count'
      ]
    ],
    'dynlang' => {
      'length' => 'OUTSCALAR',
      'params' => 'OUTARRAY:count'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetProgramResourcefvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      6,
      7
    ],
    'restype' => 'void'
  },
  'glGetProgramResourceiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum ',
        undef,
        'ProgramInterface'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'propCount',
        'GLsizei '
      ],
      [
        'props',
        'const GLenum* ',
        'propCount',
        'ProgramResourceProperty'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'params',
        'GLint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'propCount',
      'length' => 'NULL',
      'params' => 'OUTASLIST:count',
      'propCount' => 'items-3',
      'props' => 'VARARGS:3:propCount'
    },
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      6,
      7
    ],
    'restype' => 'void'
  },
  'glGetProgramStageiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramStagePName'
      ],
      [
        'values',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'values'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetProgramStageiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetProgramStringARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramStringProperty'
      ],
      [
        'string',
        'void *',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramStringARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramStringNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'program',
        'GLubyte* ',
        'COMPSIZE(id,pname)'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramStringNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramPropertyARB'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ProgramPropertyARB:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetProgramiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramivARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramPropertyARB'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetProgramivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryBufferObjecti64v' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjecti64v',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectiv' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectiv',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectui64v' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectui64v',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectuiv' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectuiv',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryIndexediv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewGetQueryIndexediv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetQueryObjecti64v' => {
    'aliases' => {
      'glGetQueryObjecti64vEXT' => 'GL_EXT_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'params',
        'GLint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryObjectParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_timer_query',
    'glewImpl' => '__glewGetQueryObjecti64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjecti64vANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjecti64vANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectiv' => {
    'aliases' => {
      'glGetQueryObjectivARB' => 'GL_ARB_occlusion_query',
      'glGetQueryObjectivEXT' => 'GL_EXT_disjoint_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryObjectParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryObjectiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectivANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectivANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectui64v' => {
    'aliases' => {
      'glGetQueryObjectui64vEXT' => 'GL_EXT_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'params',
        'GLuint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryObjectParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_timer_query',
    'glewImpl' => '__glewGetQueryObjectui64v',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectui64vANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectui64vANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectuiv' => {
    'aliases' => {
      'glGetQueryObjectuivARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryObjectParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryObjectuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectuivANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectuivANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryObjectuivEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryObjectParameterName'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryObjectParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewGetQueryObjectuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryiv' => {
    'aliases' => {
      'glGetQueryivARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryivANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryivANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetQueryivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'QueryParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:QueryParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewGetQueryivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetRenderbufferParameteriv' => {
    'aliases' => {
      'glGetRenderbufferParameterivEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'RenderbufferParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:RenderbufferParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGetRenderbufferParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetRenderbufferParameterivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewGetRenderbufferParameterivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameterIiv' => {
    'aliases' => {
      'glGetSamplerParameterIivEXT' => 'GL_EXT_texture_border_clamp'
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:SamplerParameterI:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameterIivOES' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewGetSamplerParameterIivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameterIuiv' => {
    'aliases' => {
      'glGetSamplerParameterIuivEXT' => 'GL_EXT_texture_border_clamp'
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:SamplerParameterI:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameterIuivOES' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewGetSamplerParameterIuivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameterfv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterF'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:SamplerParameterF:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSamplerParameteriv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:SamplerParameterI:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSemaphoreParameterivNV' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SemaphoreParameterName'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_NV_timeline_semaphore',
    'glewImpl' => '__glewGetSemaphoreParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSemaphoreParameterui64vEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SemaphoreParameterName'
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewGetSemaphoreParameterui64vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetSeparableFilter' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'SeparableTargetEXT'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'row',
        'void *',
        'COMPSIZE(target,format,type)'
      ],
      [
        'column',
        'void *',
        'COMPSIZE(target,format,type)'
      ],
      [
        'span',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetSeparableFilter',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glGetSeparableFilterEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'SeparableTargetEXT'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'row',
        'void *',
        'COMPSIZE(target,format,type)'
      ],
      [
        'column',
        'void *',
        'COMPSIZE(target,format,type)'
      ],
      [
        'span',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetSeparableFilterEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glGetShaderInfoLog' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'infoLog',
      'bufSize' => '<glGetShaderiv(shader,GL_INFO_LOG_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderInfoLog',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetShaderPrecisionFormat' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'precisiontype',
        'GLenum ',
        undef,
        'PrecisionType'
      ],
      [
        'range',
        'GLint* ',
        '2'
      ],
      [
        'precision',
        'GLint *',
        '1'
      ]
    ],
    'dynlang' => {
      'precision' => 'OUTSCALAR',
      'range' => 'OUTARRAY:2'
    },
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewGetShaderPrecisionFormat',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetShaderSource' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'source',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'source',
      'bufSize' => '<glGetShaderiv(shader,GL_SHADER_SOURCE_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderSource',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetShaderSourceARB' => {
    'argdata' => [
      [
        'shader',
        'GLhandleARB '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'source',
        'GLcharARB *',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'source',
      'bufSize' => '<glGetShaderiv(shader,GL_SHADER_SOURCE_LENGTH,&)',
      'length' => 'NULL'
    },
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetShaderSourceARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetShaderiv' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ShaderParameterName'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ShaderParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetShadingRateImagePaletteNV' => {
    'argdata' => [
      [
        'viewport',
        'GLuint '
      ],
      [
        'entry',
        'GLuint '
      ],
      [
        'rate',
        'GLenum* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'rate'
    },
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewGetShadingRateImagePaletteNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetShadingRateSampleLocationivNV' => {
    'argdata' => [
      [
        'rate',
        'GLenum '
      ],
      [
        'samples',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'location',
        'GLint* ',
        '3'
      ]
    ],
    'dynlang' => {
      'location' => 'OUTASLIST:3'
    },
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewGetShadingRateSampleLocationivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetSharpenTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'points',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'dynlang' => {
      'points' => 'SIZE:TextureTarget:target,OUTASLIST:target_count'
    },
    'feature' => 'GL_SGIS_sharpen_texture',
    'glewImpl' => '__glewGetSharpenTexFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetStageIndexNV' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewGetStageIndexNV',
    'glewtype' => 'fun',
    'restype' => 'GLushort'
  },
  'glGetString' => {
    'argdata' => [
      [
        'name',
        'GLenum ',
        undef,
        'StringName'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'const GLubyte *'
  },
  'glGetSubroutineIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetSubroutineIndex',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetSubroutineUniformLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetSubroutineUniformLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetSynciv' => {
    'aliases' => {
      'glGetSyncivAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'sync',
        'GLsync '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SyncParameterName'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'values',
        'GLint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'sizeof(GLint)',
      'length' => 'NULL',
      'values' => 'SIZE:SyncParameterName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewGetSynciv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glGetTexBumpParameterfvATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetTexBumpParameterATI'
      ],
      [
        'param',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewGetTexBumpParameterfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetTexBumpParameterivATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetTexBumpParameterATI'
      ],
      [
        'param',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewGetTexBumpParameterivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetTexEnvfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexEnviv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexEnvxv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetTexEnvxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexFilterFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'TextureFilterSGIS'
      ],
      [
        'weights',
        'GLfloat* ',
        'COMPSIZE(target,filter)'
      ]
    ],
    'feature' => 'GL_SGIS_texture_filter4',
    'glewImpl' => '__glewGetTexFilterFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGendv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGenfv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGenfvOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewGetTexGenfvOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGeniv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGenivOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewGetTexGenivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexGenxvOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewGetTexGenxvOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetTexLevelParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTexLevelParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTexParameterIiv' => {
    'aliases' => {
      'glGetTexParameterIivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTexParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterIivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewGetTexParameterIivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterIuiv' => {
    'aliases' => {
      'glGetTexParameterIuivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTexParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterIuivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewGetTexParameterIuivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterPointervAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void **',
        '1'
      ]
    ],
    'feature' => 'GL_APPLE_texture_range',
    'glewImpl' => '__glewGetTexParameterPointervAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTexParameterxv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetTexParameterxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTextureHandleARB' => {
    'aliases' => {
      'glGetTextureHandleIMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetTextureHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetTextureHandleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewGetTextureHandleNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetTextureImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetTextureImageEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureImageEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetTextureLevelParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureLevelParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetTextureLevelParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureLevelParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterIiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterIivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterIuiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterIuivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTextureParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTextureSamplerHandleARB' => {
    'aliases' => {
      'glGetTextureSamplerHandleIMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'sampler',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetTextureSamplerHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetTextureSamplerHandleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'sampler',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewGetTextureSamplerHandleNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetTextureSubImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_get_texture_sub_image',
    'glewImpl' => '__glewGetTextureSubImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      11
    ],
    'restype' => 'void'
  },
  'glGetTrackMatrixivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'address',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetTrackMatrixivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTransformFeedbackVarying' => {
    'aliases' => {
      'glGetTransformFeedbackVaryingEXT' => 'GL_EXT_transform_feedback'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei * ',
        '1'
      ],
      [
        'size',
        'GLsizei * ',
        '1'
      ],
      [
        'type',
        'GLenum * ',
        '1',
        'AttributeType'
      ],
      [
        'name',
        'GLchar * ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'bufSize' => '<glGetProgramiv(program,GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,&)',
      'length' => 'NULL',
      'name' => 'OUTSCALAR',
      'size' => 'OUTSCALAR',
      'type' => 'OUTSCALAR'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTransformFeedbackVarying',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5,
      6
    ],
    'restype' => 'void'
  },
  'glGetTransformFeedbackVaryingNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'location',
        'GLint *',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'location'
    },
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewGetTransformFeedbackVaryingNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTransformFeedbacki64_v' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TransformFeedbackPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'param',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbacki64_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTransformFeedbacki_v' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TransformFeedbackPName'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbacki_v',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetTransformFeedbackiv' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TransformFeedbackPName'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbackiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetTranslatedShaderSourceANGLE' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'source',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'length' => 'OUTSCALAR',
      'source' => 'OUTSCALAR'
    },
    'feature' => 'GL_ANGLE_translated_shader_source',
    'glewImpl' => '__glewGetTranslatedShaderSourceANGLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetUniformBlockIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockName',
        'const GLchar* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetUniformBlockIndex',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetUniformBufferSizeEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_bindable_uniform',
    'glewImpl' => '__glewGetUniformBufferSizeEXT',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetUniformIndices' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformCount',
        'GLsizei '
      ],
      [
        'uniformNames',
        'const GLchar* const * ',
        'uniformCount'
      ],
      [
        'uniformIndices',
        'GLuint* ',
        'uniformCount'
      ]
    ],
    'dynlang' => {
      'uniformCount' => 'items-1',
      'uniformIndices' => 'OUTASLIST:uniformCount',
      'uniformNames' => 'VARARGS:1:uniformCount'
    },
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetUniformIndices',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glGetUniformLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetUniformLocationARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ],
      [
        'name',
        'const GLcharARB* '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetUniformLocationARB',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetUniformOffsetEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_bindable_uniform',
    'glewImpl' => '__glewGetUniformOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'GLintptr'
  },
  'glGetUniformSubroutineuiv' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetUniformSubroutineuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformdv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewGetUniformdv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformfv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformfvARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetUniformfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformi64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint64* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetUniformi64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformi64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewGetUniformi64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformivARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetUniformivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint64* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetUniformui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewGetUniformui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUniformuiv' => {
    'aliases' => {
      'glGetUniformuivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetUniformuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUnsignedBytei_vEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLubyte* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetUnsignedBytei_vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetUnsignedBytevEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'GetPName'
      ],
      [
        'data',
        'GLubyte* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'data' => 'SIZE:GetPName:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetUnsignedBytevEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetVariantArrayObjectfvATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetVariantArrayObjectfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVariantArrayObjectivATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetVariantArrayObjectivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVariantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantBooleanvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVariantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantFloatvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVariantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantIntegervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVariantPointervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum ',
        undef,
        'GetVariantValueEXT'
      ],
      [
        'data',
        'void **',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantPointervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVaryingLocationNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar *',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewGetVaryingLocationNV',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetVectorOperationSGIX' => {
    'argdata' => [
      [
        'operation',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_vector_ops',
    'glewImpl' => '__glewGetVectorOperationSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetVertexArrayIndexed64iv' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIndexed64iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayIndexediv' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIndexediv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayIntegeri_vEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIntegeri_vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayIntegervEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIntegervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayPointeri_vEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayPointeri_vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayPointervEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayPointervEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexArrayiv' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPName'
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribArrayObjectfvATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ArrayObjectPNameATI:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ATI_vertex_attrib_array_object',
    'glewImpl' => '__glewGetVertexAttribArrayObjectfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribArrayObjectivATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ArrayObjectPNameATI'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:ArrayObjectPNameATI:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ATI_vertex_attrib_array_object',
    'glewImpl' => '__glewGetVertexAttribArrayObjectivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribIiv' => {
    'aliases' => {
      'glGetVertexAttribIivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetVertexAttribIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribIuiv' => {
    'aliases' => {
      'glGetVertexAttribIuivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'params'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetVertexAttribIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribLdv' => {
    'aliases' => {
      'glGetVertexAttribLdvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:VertexAttribEnum:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewGetVertexAttribLdv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribLi64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:VertexAttribEnum:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewGetVertexAttribLi64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribLui64vARB' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLuint64EXT* '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetVertexAttribLui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribLui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribEnum'
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:VertexAttribEnum:pname,OUTASLIST:pname_count'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewGetVertexAttribLui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribPointerv' => {
    'aliases' => {
      'glGetVertexAttribPointervARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribPointervNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribPointerPropertyARB'
      ],
      [
        'pointer',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribPointerv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribdv' => {
    'aliases' => {
      'glGetVertexAttribdvARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribdvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribPropertyARB'
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribdv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribfv' => {
    'aliases' => {
      'glGetVertexAttribfvARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribfvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribPropertyARB'
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVertexAttribiv' => {
    'aliases' => {
      'glGetVertexAttribivARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribivNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'VertexAttribPropertyARB'
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVideoCaptureStreamdvNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewGetVideoCaptureStreamdvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVideoCaptureStreamfvNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewGetVideoCaptureStreamfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVideoCaptureStreamivNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewGetVideoCaptureStreamivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetVideoCaptureivNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewGetVideoCaptureivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVideoi64vNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoi64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVideoivNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVideoui64vNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVideouivNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideouivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetVkProcAddrNV' => {
    'argdata' => [
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_NV_draw_vulkan_image',
    'glewImpl' => '__glewGetVkProcAddrNV',
    'glewtype' => 'fun',
    'restype' => 'GLVULKANPROCNV'
  },
  'glGetnColorTableARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ColorTableTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'table',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnColorTableARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetnCompressedTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'GLvoid *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnCompressedTexImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnCompressedTexImageARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'img',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnCompressedTexImageARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnConvolutionFilterARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ConvolutionTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'image',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnConvolutionFilterARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glGetnHistogramARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnHistogramARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetnMapdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'MapQuery'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLdouble* ',
        'bufSize/8'
      ]
    ],
    'dynlang' => {
      'v' => 'OUTASLIST:bufSize/8'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapdvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnMapfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'MapQuery'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLfloat* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'v' => 'OUTASLIST:bufSize'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnMapivARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'query',
        'GLenum ',
        undef,
        'MapQuery'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLint* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'v' => 'OUTASLIST:bufSize'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnMinmaxARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMinmaxARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetnPixelMapfvARB' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'values' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetnPixelMapuivARB' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLuint* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'values' => 'OUTASLIST:bufSize'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapuivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetnPixelMapusvARB' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLushort* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'values' => 'OUTASLIST:bufSize'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapusvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glGetnPolygonStippleARB' => {
    'argdata' => [
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pattern',
        'GLubyte* ',
        'bufSize'
      ]
    ],
    'dynlang' => {
      'pattern' => 'OUTASLIST:bufSize'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPolygonStippleARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glGetnSeparableFilterARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'SeparableTargetEXT'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'rowBufSize',
        'GLsizei '
      ],
      [
        'row',
        'void* ',
        'rowBufSize'
      ],
      [
        'columnBufSize',
        'GLsizei '
      ],
      [
        'column',
        'void*',
        'columnBufSize'
      ],
      [
        'span',
        'void*'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnSeparableFilterARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      6,
      7
    ],
    'restype' => 'void'
  },
  'glGetnTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'GLvoid *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnTexImage',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetnTexImageARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'img',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnTexImageARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glGetnUniformdv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLdouble *',
        'bufSize/8'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/8'
    },
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnUniformdv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformdvARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLdouble* ',
        'bufSize/8'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/8'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformdvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformfv' => {
    'aliases' => {
      'glGetnUniformfvEXT' => 'GL_EXT_robustness',
      'glGetnUniformfvKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformfvARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformi64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint64* ',
        'bufSize/8'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/8'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetnUniformi64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformiv' => {
    'aliases' => {
      'glGetnUniformivEXT' => 'GL_EXT_robustness',
      'glGetnUniformivKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformivARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint64* ',
        'bufSize/8'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/8'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetnUniformui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformuiv' => {
    'aliases' => {
      'glGetnUniformuivKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGetnUniformuivARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint* ',
        'bufSize/4'
      ]
    ],
    'dynlang' => {
      'params' => 'OUTASLIST:bufSize/4'
    },
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformuivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glGlobalAlphaFactorbSUN' => {
    'argdata' => [
      [
        'factor',
        'GLbyte '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactorbSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactordSUN' => {
    'argdata' => [
      [
        'factor',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactordSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactorfSUN' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactorfSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactoriSUN' => {
    'argdata' => [
      [
        'factor',
        'GLint '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactoriSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactorsSUN' => {
    'argdata' => [
      [
        'factor',
        'GLshort '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactorsSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactorubSUN' => {
    'argdata' => [
      [
        'factor',
        'GLubyte '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactorubSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactoruiSUN' => {
    'argdata' => [
      [
        'factor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactoruiSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGlobalAlphaFactorusSUN' => {
    'argdata' => [
      [
        'factor',
        'GLushort '
      ]
    ],
    'feature' => 'GL_SUN_global_alpha',
    'glewImpl' => '__glewGlobalAlphaFactorusSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glHint' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HintTarget'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'HintMode'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glHistogram' => {
    'aliases' => {
      'glHistogramEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'sink',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewHistogram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIglooInterfaceSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_igloo_interface',
    'glewImpl' => '__glewIglooInterfaceSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glImageTransformParameterfHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'param',
        'const GLfloat '
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterfHP',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImageTransformParameterfvHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterfvHP',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glImageTransformParameteriHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'param',
        'const GLint '
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameteriHP',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImageTransformParameterivHP' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ImageTransformTargetHP'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ImageTransformPNameHP'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterivHP',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glImportMemoryFdEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'fd',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_memory_object_fd',
    'glewImpl' => '__glewImportMemoryFdEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImportMemoryWin32HandleEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'handle',
        'void *'
      ]
    ],
    'feature' => 'GL_EXT_memory_object_win32',
    'glewImpl' => '__glewImportMemoryWin32HandleEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glImportMemoryWin32NameEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'name',
        'const void *'
      ]
    ],
    'feature' => 'GL_EXT_memory_object_win32',
    'glewImpl' => '__glewImportMemoryWin32NameEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glImportSemaphoreFdEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'fd',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_semaphore_fd',
    'glewImpl' => '__glewImportSemaphoreFdEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImportSemaphoreWin32HandleEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'handle',
        'void *'
      ]
    ],
    'feature' => 'GL_EXT_semaphore_win32',
    'glewImpl' => '__glewImportSemaphoreWin32HandleEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glImportSemaphoreWin32NameEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum ',
        undef,
        'ExternalHandleType'
      ],
      [
        'name',
        'const void *'
      ]
    ],
    'feature' => 'GL_EXT_semaphore_win32',
    'glewImpl' => '__glewImportSemaphoreWin32NameEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glImportSyncEXT' => {
    'argdata' => [
      [
        'external_sync_type',
        'GLenum '
      ],
      [
        'external_sync',
        'GLintptr '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_EXT_x11_sync_object',
    'glewImpl' => '__glewImportSyncEXT',
    'glewtype' => 'fun',
    'restype' => 'GLsync'
  },
  'glIndexFormatNV' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewIndexFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexFuncEXT' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'IndexFunctionEXT'
      ],
      [
        'ref',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_index_func',
    'glewImpl' => '__glewIndexFuncEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexMask' => {
    'argdata' => [
      [
        'mask',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexMaterialEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'IndexMaterialParameterEXT'
      ]
    ],
    'feature' => 'GL_EXT_index_material',
    'glewImpl' => '__glewIndexMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexPointer' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'IndexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glIndexPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'IndexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewIndexPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glIndexPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'IndexPointerType'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewIndexPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glIndexd' => {
    'argdata' => [
      [
        'c',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexdv' => {
    'argdata' => [
      [
        'c',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'c' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glIndexf' => {
    'argdata' => [
      [
        'c',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexfv' => {
    'argdata' => [
      [
        'c',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'c' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glIndexi' => {
    'argdata' => [
      [
        'c',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexiv' => {
    'argdata' => [
      [
        'c',
        'const GLint *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'c' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glIndexs' => {
    'argdata' => [
      [
        'c',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexsv' => {
    'argdata' => [
      [
        'c',
        'const GLshort *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'c' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glIndexub' => {
    'argdata' => [
      [
        'c',
        'GLubyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexubv' => {
    'argdata' => [
      [
        'c',
        'const GLubyte *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'c' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glInitNames' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInsertComponentEXT' => {
    'argdata' => [
      [
        'res',
        'GLuint '
      ],
      [
        'src',
        'GLuint '
      ],
      [
        'num',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewInsertComponentEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInsertEventMarkerEXT' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'marker',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_EXT_debug_marker',
    'glewImpl' => '__glewInsertEventMarkerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInterleavedArrays' => {
    'argdata' => [
      [
        'format',
        'GLenum ',
        undef,
        'InterleavedArrayFormat'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(format,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glInterleavedTextureCoordSetsSGIS' => {
    'argdata' => [
      [
        'factor',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIS_multitexture',
    'glewImpl' => '__glewInterleavedTextureCoordSetsSGIS',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInterpolatePathsNV' => {
    'argdata' => [
      [
        'resultPath',
        'GLuint '
      ],
      [
        'pathA',
        'GLuint '
      ],
      [
        'pathB',
        'GLuint '
      ],
      [
        'weight',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewInterpolatePathsNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInvalidateBufferData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateBufferData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInvalidateBufferSubData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateBufferSubData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInvalidateFramebuffer' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments',
        'InvalidateFramebufferAttachment'
      ]
    ],
    'dynlang' => {
      'attachments' => 'VARARGS:1:numAttachments',
      'numAttachments' => 'items-1'
    },
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateFramebuffer',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glInvalidateNamedFramebufferData' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments',
        'FramebufferAttachment'
      ]
    ],
    'dynlang' => {
      'attachments' => 'VARARGS:1:numAttachments',
      'numAttachments' => 'items-1'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewInvalidateNamedFramebufferData',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glInvalidateNamedFramebufferSubData' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments',
        'FramebufferAttachment'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'dynlang' => {
      'attachments' => 'VARARGS:5:numAttachments',
      'numAttachments' => 'items-5'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewInvalidateNamedFramebufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glInvalidateSubFramebuffer' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'FramebufferTarget'
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments',
        'InvalidateFramebufferAttachment'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'dynlang' => {
      'attachments' => 'VARARGS:5:numAttachments',
      'numAttachments' => 'items-5'
    },
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateSubFramebuffer',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glInvalidateTexImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateTexImage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glInvalidateTexSubImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateTexSubImage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIsAsyncMarkerSGIX' => {
    'argdata' => [
      [
        'marker',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewIsAsyncMarkerSGIX',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsBuffer' => {
    'aliases' => {
      'glIsBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewIsBuffer',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsBufferResidentNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewIsBufferResidentNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsCommandListNV' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewIsCommandListNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsEnabled' => {
    'argdata' => [
      [
        'cap',
        'GLenum ',
        undef,
        'EnableCap'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsEnabledi' => {
    'aliases' => {
      'glIsEnabledIndexedEXT' => 'GL_EXT_draw_buffers2',
      'glIsEnablediEXT' => 'GL_EXT_draw_buffers_indexed',
      'glIsEnablediNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EnableCap'
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewIsEnabledi',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsEnablediOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_draw_buffers_indexed',
    'glewImpl' => '__glewIsEnablediOES',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsFenceAPPLE' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewIsFenceAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsFenceNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewIsFenceNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsFramebuffer' => {
    'aliases' => {
      'glIsFramebufferEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewIsFramebuffer',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsFramebufferOES' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewIsFramebufferOES',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsImageHandleResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewIsImageHandleResidentARB',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsImageHandleResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewIsImageHandleResidentNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsList' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsMPEGPredictorSGIX' => {
    'argdata' => [
      [
        'predictor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewIsMPEGPredictorSGIX',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsMemoryObjectEXT' => {
    'argdata' => [
      [
        'memoryObject',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewIsMemoryObjectEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsNameAMD' => {
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ]
    ],
    'feature' => 'GL_AMD_name_gen_delete',
    'glewImpl' => '__glewIsNameAMD',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsNamedBufferResidentNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewIsNamedBufferResidentNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsNamedStringARB' => {
    'argdata' => [
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewIsNamedStringARB',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewIsObjectBufferATI',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsOcclusionQueryNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewIsOcclusionQueryNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewIsPathNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsPointInFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewIsPointInFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsPointInStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewIsPointInStrokePathNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsProgram' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewIsProgram',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsProgramARB' => {
    'aliases' => {
      'glIsProgramNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewIsProgramARB',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsProgramPipeline' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewIsProgramPipeline',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsQuery' => {
    'aliases' => {
      'glIsQueryARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewIsQuery',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsQueryANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewIsQueryANGLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsQueryEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_disjoint_timer_query',
    'glewImpl' => '__glewIsQueryEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsRenderbuffer' => {
    'aliases' => {
      'glIsRenderbufferEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewIsRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsRenderbufferOES' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewIsRenderbufferOES',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsSampler' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewIsSampler',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsSemaphoreEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewIsSemaphoreEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsShader' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewIsShader',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsStateNV' => {
    'argdata' => [
      [
        'state',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewIsStateNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsSupportedREGAL' => {
    'argdata' => [
      [
        'ext',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_REGAL_extension_query',
    'glewImpl' => '__glewIsSupportedREGAL',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsSync' => {
    'aliases' => {
      'glIsSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'myGLsync',
        'GLsync '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewIsSync',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsTexture' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsTextureEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewIsTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsTextureHandleResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewIsTextureHandleResidentARB',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsTextureHandleResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewIsTextureHandleResidentNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsTransformFeedback' => {
    'aliases' => {
      'glIsTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewIsTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsVariantEnabledEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'cap',
        'GLenum ',
        undef,
        'VariantCapEXT'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewIsVariantEnabledEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsVertexArray' => {
    'aliases' => {
      'glIsVertexArrayAPPLE' => 'GL_APPLE_vertex_array_object'
    },
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewIsVertexArray',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsVertexArrayOES' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_vertex_array_object',
    'glewImpl' => '__glewIsVertexArrayOES',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsVertexArraySGIX' => {
    'argdata' => [
      [
        'array',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewIsVertexArraySGIX',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glIsVertexAttribEnabledAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewIsVertexAttribEnabledAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glLGPUCopyImageSubDataNVX' => {
    'argdata' => [
      [
        'sourceGpu',
        'GLuint '
      ],
      [
        'destinationGpuMask',
        'GLbitfield '
      ],
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum '
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srxY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum '
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NVX_linked_gpu_multicast',
    'glewImpl' => '__glewLGPUCopyImageSubDataNVX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLGPUInterlockNVX' => {
    'feature' => 'GL_NVX_linked_gpu_multicast',
    'glewImpl' => '__glewLGPUInterlockNVX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLGPUNamedBufferSubDataNVX' => {
    'argdata' => [
      [
        'gpuMask',
        'GLbitfield '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_NVX_linked_gpu_multicast',
    'glewImpl' => '__glewLGPUNamedBufferSubDataNVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glLabelObjectEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'object',
        'GLuint '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'label',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_EXT_debug_label',
    'glewImpl' => '__glewLabelObjectEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightEnviEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewLightEnviEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModelf' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModelfv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightModelParameter:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glLightModeli' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModeliv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightModelParameter:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glLightModelx' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightModelx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModelxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightModelParameter'
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:LightModelParameter:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightModelxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glLightf' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightfv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glLighti' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightiv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glLightx' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightxv' => {
    'argdata' => [
      [
        'light',
        'GLenum ',
        undef,
        'LightName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'LightParameter'
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:LightParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glLineStipple' => {
    'argdata' => [
      [
        'factor',
        'GLint '
      ],
      [
        'pattern',
        'GLushort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLineWidth' => {
    'argdata' => [
      [
        'width',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLineWidthx' => {
    'argdata' => [
      [
        'width',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLineWidthx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLinkProgram' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewLinkProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLinkProgramARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewLinkProgramARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glListBase' => {
    'argdata' => [
      [
        'base',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glListDrawCommandsStatesClientNV' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ],
      [
        'segment',
        'GLuint '
      ],
      [
        'indirects',
        'const void** ',
        'count'
      ],
      [
        'sizes',
        'const GLsizei* ',
        'count'
      ],
      [
        'states',
        'const GLuint* ',
        'count'
      ],
      [
        'fbos',
        'const GLuint* ',
        'count'
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewListDrawCommandsStatesClientNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glLoadIdentity' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadIdentityDeformationMapSGIX' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'FfdMaskSGIX'
      ]
    ],
    'feature' => 'GL_SGIX_polynomial_ffd',
    'glewImpl' => '__glewLoadIdentityDeformationMapSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadMatrixd' => {
    'argdata' => [
      [
        'm',
        'const GLdouble *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glLoadMatrixf' => {
    'argdata' => [
      [
        'm',
        'const GLfloat *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glLoadMatrixx' => {
    'argdata' => [
      [
        'm',
        'const GLfixed* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLoadMatrixx',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glLoadName' => {
    'argdata' => [
      [
        'name',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadPaletteFromModelViewMatrixOES' => {
    'feature' => 'GL_OES_matrix_palette',
    'glewImpl' => '__glewLoadPaletteFromModelViewMatrixOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadProgramNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'program',
        'const GLubyte* ',
        'len'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewLoadProgramNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadTransposeMatrixd' => {
    'aliases' => {
      'glLoadTransposeMatrixdARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLdouble * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewLoadTransposeMatrixd',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glLoadTransposeMatrixf' => {
    'aliases' => {
      'glLoadTransposeMatrixfARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLfloat * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewLoadTransposeMatrixf',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glLockArraysEXT' => {
    'argdata' => [
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_compiled_vertex_array',
    'glewImpl' => '__glewLockArraysEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLogMessageCallbackREGAL' => {
    'argdata' => [
      [
        'callback',
        'GLLOGPROCREGAL '
      ]
    ],
    'feature' => 'GL_REGAL_log',
    'glewImpl' => '__glewLogMessageCallbackREGAL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLogicOp' => {
    'argdata' => [
      [
        'opcode',
        'GLenum ',
        undef,
        'LogicOp'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMPEGPredictorSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *'
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewMPEGPredictorSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMPEGQuantTableubv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'values',
        'GLubyte* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewMPEGQuantTableubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMakeBufferNonResidentNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewMakeBufferNonResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeBufferResidentNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewMakeBufferResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeImageHandleNonResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewMakeImageHandleNonResidentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeImageHandleNonResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewMakeImageHandleNonResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeImageHandleResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewMakeImageHandleResidentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeImageHandleResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewMakeImageHandleResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeNamedBufferNonResidentNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewMakeNamedBufferNonResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeNamedBufferResidentNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewMakeNamedBufferResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeTextureHandleNonResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewMakeTextureHandleNonResidentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeTextureHandleNonResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewMakeTextureHandleNonResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeTextureHandleResidentARB' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewMakeTextureHandleResidentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMakeTextureHandleResidentNV' => {
    'argdata' => [
      [
        'handle',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewMakeTextureHandleResidentNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMap1d' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'order',
        'GLint '
      ],
      [
        'points',
        'const GLdouble *',
        'COMPSIZE(target,stride,order)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glMap1f' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'order',
        'GLint '
      ],
      [
        'points',
        'const GLfloat *',
        'COMPSIZE(target,stride,order)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glMap2d' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ],
      [
        'ustride',
        'GLint '
      ],
      [
        'uorder',
        'GLint '
      ],
      [
        'v1',
        'GLdouble '
      ],
      [
        'v2',
        'GLdouble '
      ],
      [
        'vstride',
        'GLint '
      ],
      [
        'vorder',
        'GLint '
      ],
      [
        'points',
        'const GLdouble *',
        'COMPSIZE(target,ustride,uorder,vstride,vorder)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glMap2f' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MapTarget'
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ],
      [
        'ustride',
        'GLint '
      ],
      [
        'uorder',
        'GLint '
      ],
      [
        'v1',
        'GLfloat '
      ],
      [
        'v2',
        'GLfloat '
      ],
      [
        'vstride',
        'GLint '
      ],
      [
        'vorder',
        'GLint '
      ],
      [
        'points',
        'const GLfloat *',
        'COMPSIZE(target,ustride,uorder,vstride,vorder)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glMapBuffer' => {
    'aliases' => {
      'glMapBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'access',
        'GLenum ',
        undef,
        'BufferAccessARB'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewMapBuffer',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void*'
  },
  'glMapBufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_mapbuffer',
    'glewImpl' => '__glewMapBufferOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapBufferRange' => {
    'aliases' => {
      'glMapBufferRangeEXT' => 'GL_EXT_map_buffer_range'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield ',
        undef,
        'MapBufferAccessMask'
      ]
    ],
    'feature' => 'GL_ARB_map_buffer_range',
    'glewImpl' => '__glewMapBufferRange',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapControlPointsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'MapTypeNV'
      ],
      [
        'ustride',
        'GLsizei '
      ],
      [
        'vstride',
        'GLsizei '
      ],
      [
        'uorder',
        'GLint '
      ],
      [
        'vorder',
        'GLint '
      ],
      [
        'packed',
        'GLboolean '
      ],
      [
        'points',
        'const void *',
        'COMPSIZE(target,uorder,vorder)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewMapControlPointsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glMapGrid1d' => {
    'argdata' => [
      [
        'un',
        'GLint '
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMapGrid1f' => {
    'argdata' => [
      [
        'un',
        'GLint '
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMapGrid2d' => {
    'argdata' => [
      [
        'un',
        'GLint '
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ],
      [
        'vn',
        'GLint '
      ],
      [
        'v1',
        'GLdouble '
      ],
      [
        'v2',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMapGrid2f' => {
    'argdata' => [
      [
        'un',
        'GLint '
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ],
      [
        'vn',
        'GLint '
      ],
      [
        'v1',
        'GLfloat '
      ],
      [
        'v2',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMapNamedBuffer' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'access',
        'GLenum ',
        undef,
        'BufferAccessARB'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewMapNamedBuffer',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapNamedBufferEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'access',
        'GLenum ',
        undef,
        'BufferAccessARB'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapNamedBufferRange' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield ',
        undef,
        'MapBufferAccessMask'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferRange',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapNamedBufferRangeEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield ',
        undef,
        'MapBufferAccessMask'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferRangeEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_map_object_buffer',
    'glewImpl' => '__glewMapObjectBufferATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1
    ],
    'restype' => 'void *'
  },
  'glMapParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapParameterNV'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewMapParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMapParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'EvalTargetNV'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MapParameterNV'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewMapParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMapTexture2DINTEL' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'access',
        'GLbitfield '
      ],
      [
        'stride',
        'GLint* ',
        '1'
      ],
      [
        'layout',
        'GLenum *',
        '1'
      ]
    ],
    'dynlang' => {
      'layout' => 'OUTSCALAR',
      'stride' => 'OUTSCALAR'
    },
    'feature' => 'GL_LAYOUT_LINEAR_INTEL',
    'glewImpl' => '__glewMapTexture2DINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      -1,
      3,
      4
    ],
    'restype' => 'void *'
  },
  'glMapVertexAttrib1dAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLuint '
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'order',
        'GLint '
      ],
      [
        'points',
        'const GLdouble* ',
        'COMPSIZE(size,stride,order)'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewMapVertexAttrib1dAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glMapVertexAttrib1fAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLuint '
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'order',
        'GLint '
      ],
      [
        'points',
        'const GLfloat* ',
        'COMPSIZE(size,stride,order)'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewMapVertexAttrib1fAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glMapVertexAttrib2dAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLuint '
      ],
      [
        'u1',
        'GLdouble '
      ],
      [
        'u2',
        'GLdouble '
      ],
      [
        'ustride',
        'GLint '
      ],
      [
        'uorder',
        'GLint '
      ],
      [
        'v1',
        'GLdouble '
      ],
      [
        'v2',
        'GLdouble '
      ],
      [
        'vstride',
        'GLint '
      ],
      [
        'vorder',
        'GLint '
      ],
      [
        'points',
        'const GLdouble* ',
        'COMPSIZE(size,ustride,uorder,vstride,vorder)'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewMapVertexAttrib2dAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glMapVertexAttrib2fAPPLE' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLuint '
      ],
      [
        'u1',
        'GLfloat '
      ],
      [
        'u2',
        'GLfloat '
      ],
      [
        'ustride',
        'GLint '
      ],
      [
        'uorder',
        'GLint '
      ],
      [
        'v1',
        'GLfloat '
      ],
      [
        'v2',
        'GLfloat '
      ],
      [
        'vstride',
        'GLint '
      ],
      [
        'vorder',
        'GLint '
      ],
      [
        'points',
        'const GLfloat* ',
        'COMPSIZE(size,ustride,uorder,vstride,vorder)'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_program_evaluators',
    'glewImpl' => '__glewMapVertexAttrib2fAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glMaterialf' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialfv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMateriali' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialiv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:MaterialParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMaterialx' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMaterialx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialxv' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MaterialParameter'
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:MaterialParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMaterialxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMatrixFrustumEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'left',
        'GLdouble '
      ],
      [
        'right',
        'GLdouble '
      ],
      [
        'bottom',
        'GLdouble '
      ],
      [
        'top',
        'GLdouble '
      ],
      [
        'zNear',
        'GLdouble '
      ],
      [
        'zFar',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixFrustumEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixIndexPointerARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'MatrixIndexPointerTypeARB'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexPointerARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMatrixIndexPointerOES' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *'
      ]
    ],
    'feature' => 'GL_OES_matrix_palette',
    'glewImpl' => '__glewMatrixIndexPointerOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMatrixIndexubvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLubyte *',
        'size'
      ]
    ],
    'dynlang' => {
      'indices' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexubvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixIndexuivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLuint *',
        'size'
      ]
    ],
    'dynlang' => {
      'indices' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexuivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixIndexusvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLushort *',
        'size'
      ]
    ],
    'dynlang' => {
      'indices' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexusvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoad3x2fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixLoad3x2fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoad3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixLoad3x3fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoadIdentityEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadIdentityEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixLoadTranspose3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixLoadTranspose3x3fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoadTransposedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadTransposedEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoadTransposefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadTransposefEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoaddEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoaddEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixLoadfEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadfEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMode' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixMult3x2fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixMult3x2fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMult3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixMult3x3fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMultTranspose3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixMultTranspose3x3fNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMultTransposedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultTransposedEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMultTransposefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultTransposefEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMultdEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultdEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixMultfEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:1:16'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultfEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMatrixOrthoEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'left',
        'GLdouble '
      ],
      [
        'right',
        'GLdouble '
      ],
      [
        'bottom',
        'GLdouble '
      ],
      [
        'top',
        'GLdouble '
      ],
      [
        'zNear',
        'GLdouble '
      ],
      [
        'zFar',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixOrthoEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixPopEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixPopEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixPushEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixPushEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixRotatedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'angle',
        'GLdouble '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixRotatedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixRotatefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'angle',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixRotatefEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixScaledEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixScaledEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixScalefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixScalefEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixTranslatedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixTranslatedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixTranslatefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'MatrixMode'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixTranslatefEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaxActiveShaderCoresARM' => {
    'argdata' => [
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARM_shader_core_properties',
    'glewImpl' => '__glewMaxActiveShaderCoresARM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaxShaderCompilerThreadsKHR' => {
    'aliases' => {
      'glMaxShaderCompilerThreadsARB' => 'GL_ARB_parallel_shader_compile'
    },
    'argdata' => [
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_KHR_parallel_shader_compile',
    'glewImpl' => '__glewMaxShaderCompilerThreadsKHR',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMemoryBarrier' => {
    'aliases' => {
      'glMemoryBarrierEXT' => 'GL_EXT_shader_image_load_store'
    },
    'argdata' => [
      [
        'barriers',
        'GLbitfield ',
        undef,
        'MemoryBarrierMask'
      ]
    ],
    'feature' => 'GL_ARB_shader_image_load_store',
    'glewImpl' => '__glewMemoryBarrier',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMemoryBarrierByRegion' => {
    'argdata' => [
      [
        'barriers',
        'GLbitfield ',
        undef,
        'MemoryBarrierMask'
      ]
    ],
    'feature' => 'GL_ARB_ES3_1_compatibility',
    'glewImpl' => '__glewMemoryBarrierByRegion',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMemoryObjectParameterivEXT' => {
    'argdata' => [
      [
        'memoryObject',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'MemoryObjectParameterName'
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewMemoryObjectParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMeshBreadthSGIX' => {
    'argdata' => [
      [
        'breadth',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_quad_mesh',
    'glewImpl' => '__glewMeshBreadthSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMeshStrideSGIX' => {
    'argdata' => [
      [
        'stride',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_quad_mesh',
    'glewImpl' => '__glewMeshStrideSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMinSampleShading' => {
    'aliases' => {
      'glMinSampleShadingARB' => 'GL_ARB_sample_shading'
    },
    'argdata' => [
      [
        'value',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewMinSampleShading',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMinSampleShadingOES' => {
    'argdata' => [
      [
        'value',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_OES_sample_shading',
    'glewImpl' => '__glewMinSampleShadingOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMinmax' => {
    'aliases' => {
      'glMinmaxEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'sink',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewMinmax',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultMatrixd' => {
    'argdata' => [
      [
        'm',
        'const GLdouble *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glMultMatrixf' => {
    'argdata' => [
      [
        'm',
        'const GLfloat *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glMultMatrixx' => {
    'argdata' => [
      [
        'm',
        'const GLfixed* ',
        '16'
      ]
    ],
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMultMatrixx',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glMultTransposeMatrixd' => {
    'aliases' => {
      'glMultTransposeMatrixdARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLdouble * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultTransposeMatrixd',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glMultTransposeMatrixf' => {
    'aliases' => {
      'glMultTransposeMatrixfARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLfloat * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'm' => 'VARARGS:0:16'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultTransposeMatrixf',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glMultiDrawArrays' => {
    'aliases' => {
      'glMultiDrawArraysEXT' => 'GL_EXT_multi_draw_arrays'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'const GLint *',
        'drawcount'
      ],
      [
        'count',
        'const GLsizei *',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ]
    ],
    'dynlang' => {
      'count' => 'INARRAY:drawcount',
      'drawcount' => 'LEN:first',
      'first' => 'INARRAY:drawcount'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewMultiDrawArrays',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirect' => {
    'aliases' => {
      'glMultiDrawArraysIndirectAMD' => 'GL_AMD_multi_draw_indirect',
      'glMultiDrawArraysIndirectEXT' => 'GL_EXT_multi_draw_indirect'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'indirect',
        'const void *',
        'COMPSIZE(drawcount,stride)'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawArraysIndirect',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectBindlessCountNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLintptr '
      ],
      [
        'maxDrawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect_count',
    'glewImpl' => '__glewMultiDrawArraysIndirectBindlessCountNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectBindlessNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawArraysIndirectBindlessNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectCount' => {
    'aliases' => {
      'glMultiDrawArraysIndirectCountARB' => 'GL_ARB_indirect_parameters'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'indirect',
        'const GLvoid *'
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewMultiDrawArraysIndirectCount',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'first',
        'const GLint* ',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'dynlang' => {
      'count' => 'INARRAY:primcount',
      'first' => 'INARRAY:primcount',
      'primcount' => 'LEN:first'
    },
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewMultiDrawElementArrayAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawElements' => {
    'aliases' => {
      'glMultiDrawElementsEXT' => 'GL_EXT_multi_draw_arrays'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'const GLsizei *',
        'drawcount'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *const* ',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewMultiDrawElements',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      3
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementsBaseVertex' => {
    'aliases' => {
      'glMultiDrawElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'count',
        'const GLsizei* ',
        'drawcount'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void*const *',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'basevertex',
        'const GLint *',
        'drawcount'
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewMultiDrawElementsBaseVertex',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      3,
      5
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirect' => {
    'aliases' => {
      'glMultiDrawElementsIndirectAMD' => 'GL_AMD_multi_draw_indirect',
      'glMultiDrawElementsIndirectEXT' => 'GL_EXT_multi_draw_indirect'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indirect',
        'const void *',
        'COMPSIZE(drawcount,stride)'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawElementsIndirect',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectBindlessCountNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLintptr '
      ],
      [
        'maxDrawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect_count',
    'glewImpl' => '__glewMultiDrawElementsIndirectBindlessCountNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectBindlessNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawElementsIndirectBindlessNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectCount' => {
    'aliases' => {
      'glMultiDrawElementsIndirectCountARB' => 'GL_ARB_indirect_parameters'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indirect',
        'const GLvoid *'
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewMultiDrawElementsIndirectCount',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiDrawMeshTasksIndirectCountEXT' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_mesh_shader',
    'glewImpl' => '__glewMultiDrawMeshTasksIndirectCountEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiDrawMeshTasksIndirectCountNV' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_mesh_shader',
    'glewImpl' => '__glewMultiDrawMeshTasksIndirectCountNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiDrawMeshTasksIndirectEXT' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_mesh_shader',
    'glewImpl' => '__glewMultiDrawMeshTasksIndirectEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiDrawMeshTasksIndirectNV' => {
    'argdata' => [
      [
        'indirect',
        'GLintptr '
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_mesh_shader',
    'glewImpl' => '__glewMultiDrawMeshTasksIndirectNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiDrawRangeElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PrimitiveType'
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'first',
        'const GLint* ',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'dynlang' => {
      'count' => 'INARRAY:primcount',
      'first' => 'INARRAY:primcount',
      'primcount' => 'LEN:first'
    },
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewMultiDrawRangeElementArrayAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glMultiModeDrawArraysIBM' => {
    'argdata' => [
      [
        'mode',
        'const GLenum* ',
        'COMPSIZE(primcount,modestride)',
        'PrimitiveType'
      ],
      [
        'first',
        'const GLint *',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ],
      [
        'modestride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_multimode_draw_arrays',
    'glewImpl' => '__glewMultiModeDrawArraysIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glMultiModeDrawElementsIBM' => {
    'argdata' => [
      [
        'mode',
        'const GLenum* ',
        'COMPSIZE(primcount,modestride)',
        'PrimitiveType'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'DrawElementsType'
      ],
      [
        'indices',
        'const void *const *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ],
      [
        'modestride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_multimode_draw_arrays',
    'glewImpl' => '__glewMultiModeDrawElementsIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexBufferEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1d' => {
    'aliases' => {
      'glMultiTexCoord1dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1dv' => {
    'aliases' => {
      'glMultiTexCoord1dvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord1f' => {
    'aliases' => {
      'glMultiTexCoord1fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1fv' => {
    'aliases' => {
      'glMultiTexCoord1fvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord1hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord1hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLhalf* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord1hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord1i' => {
    'aliases' => {
      'glMultiTexCoord1iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1iv' => {
    'aliases' => {
      'glMultiTexCoord1ivARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLint *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord1s' => {
    'aliases' => {
      'glMultiTexCoord1sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1sv' => {
    'aliases' => {
      'glMultiTexCoord1svARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLshort *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord2d' => {
    'aliases' => {
      'glMultiTexCoord2dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2dv' => {
    'aliases' => {
      'glMultiTexCoord2dvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord2f' => {
    'aliases' => {
      'glMultiTexCoord2fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2fv' => {
    'aliases' => {
      'glMultiTexCoord2fvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord2hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord2hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLhalf* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord2hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord2i' => {
    'aliases' => {
      'glMultiTexCoord2iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2iv' => {
    'aliases' => {
      'glMultiTexCoord2ivARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord2s' => {
    'aliases' => {
      'glMultiTexCoord2sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2sv' => {
    'aliases' => {
      'glMultiTexCoord2svARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord3d' => {
    'aliases' => {
      'glMultiTexCoord3dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3dv' => {
    'aliases' => {
      'glMultiTexCoord3dvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord3f' => {
    'aliases' => {
      'glMultiTexCoord3fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3fv' => {
    'aliases' => {
      'glMultiTexCoord3fvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord3hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord3i' => {
    'aliases' => {
      'glMultiTexCoord3iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ],
      [
        'r',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3iv' => {
    'aliases' => {
      'glMultiTexCoord3ivARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord3s' => {
    'aliases' => {
      'glMultiTexCoord3sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ],
      [
        'r',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3sv' => {
    'aliases' => {
      'glMultiTexCoord3svARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4d' => {
    'aliases' => {
      'glMultiTexCoord4dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ],
      [
        'q',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4dv' => {
    'aliases' => {
      'glMultiTexCoord4dvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4f' => {
    'aliases' => {
      'glMultiTexCoord4fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'q',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4fv' => {
    'aliases' => {
      'glMultiTexCoord4fvARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ],
      [
        'q',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4i' => {
    'aliases' => {
      'glMultiTexCoord4iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ],
      [
        'r',
        'GLint '
      ],
      [
        'q',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4iv' => {
    'aliases' => {
      'glMultiTexCoord4ivARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4s' => {
    'aliases' => {
      'glMultiTexCoord4sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ],
      [
        'r',
        'GLshort '
      ],
      [
        'q',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4sv' => {
    'aliases' => {
      'glMultiTexCoord4svARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glMultiTexCoord4x' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        's',
        'GLfixed '
      ],
      [
        't',
        'GLfixed '
      ],
      [
        'r',
        'GLfixed '
      ],
      [
        'q',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMultiTexCoord4x',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP1ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP1uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:2:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiTexCoordP2ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP2uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:2:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiTexCoordP3ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP3uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:2:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiTexCoordP4ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP4uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:2:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glMultiTexCoordPointerEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexCoordPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glMultiTexEnvfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexEnvfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexEnviEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnviEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexEnvivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexGendEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGendEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGendvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGendvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexGenfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGenfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexGeniEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGeniEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGenivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glMultiTexImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glMultiTexParameterIivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterIivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexParameterIuivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterIuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexParameterfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexParameteriEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMultiTexRenderbufferEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexSubImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glMultiTexSubImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glMultiTexSubImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum ',
        undef,
        'TextureUnit'
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      11
    ],
    'restype' => 'void'
  },
  'glMulticastBarrierNV' => {
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastBarrierNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMulticastBlitFramebufferNV' => {
    'argdata' => [
      [
        'srcGpu',
        'GLuint '
      ],
      [
        'dstGpu',
        'GLuint '
      ],
      [
        'srcX0',
        'GLint '
      ],
      [
        'srcY0',
        'GLint '
      ],
      [
        'srcX1',
        'GLint '
      ],
      [
        'srcY1',
        'GLint '
      ],
      [
        'dstX0',
        'GLint '
      ],
      [
        'dstY0',
        'GLint '
      ],
      [
        'dstX1',
        'GLint '
      ],
      [
        'dstY1',
        'GLint '
      ],
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClearBufferMask'
      ],
      [
        'filter',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastBlitFramebufferNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMulticastBufferSubDataNV' => {
    'argdata' => [
      [
        'gpuMask',
        'GLbitfield '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *'
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastBufferSubDataNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glMulticastCopyBufferSubDataNV' => {
    'argdata' => [
      [
        'readGpu',
        'GLuint '
      ],
      [
        'writeGpuMask',
        'GLbitfield '
      ],
      [
        'readBuffer',
        'GLuint '
      ],
      [
        'writeBuffer',
        'GLuint '
      ],
      [
        'readOffset',
        'GLintptr '
      ],
      [
        'writeOffset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastCopyBufferSubDataNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMulticastCopyImageSubDataNV' => {
    'argdata' => [
      [
        'srcGpu',
        'GLuint '
      ],
      [
        'dstGpuMask',
        'GLbitfield '
      ],
      [
        'srcName',
        'GLuint '
      ],
      [
        'srcTarget',
        'GLenum '
      ],
      [
        'srcLevel',
        'GLint '
      ],
      [
        'srcX',
        'GLint '
      ],
      [
        'srcY',
        'GLint '
      ],
      [
        'srcZ',
        'GLint '
      ],
      [
        'dstName',
        'GLuint '
      ],
      [
        'dstTarget',
        'GLenum '
      ],
      [
        'dstLevel',
        'GLint '
      ],
      [
        'dstX',
        'GLint '
      ],
      [
        'dstY',
        'GLint '
      ],
      [
        'dstZ',
        'GLint '
      ],
      [
        'srcWidth',
        'GLsizei '
      ],
      [
        'srcHeight',
        'GLsizei '
      ],
      [
        'srcDepth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastCopyImageSubDataNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMulticastFramebufferSampleLocationsfvNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastFramebufferSampleLocationsfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glMulticastGetQueryObjecti64vNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjecti64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectivNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectui64vNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectuivNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectuivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastScissorArrayvNVX' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'v' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewMulticastScissorArrayvNVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastViewportArrayvNVX' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'v' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewMulticastViewportArrayvNVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glMulticastViewportPositionWScaleNVX' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'xcoeff',
        'GLfloat '
      ],
      [
        'ycoeff',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewMulticastViewportPositionWScaleNVX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMulticastWaitSyncNV' => {
    'argdata' => [
      [
        'signalGpu',
        'GLuint '
      ],
      [
        'waitGpuMask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastWaitSyncNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultisampleSubRectPosSGIS' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIS_shared_multisample',
    'glewImpl' => '__glewMultisampleSubRectPosSGIS',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedBufferAttachMemoryNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewNamedBufferAttachMemoryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedBufferData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'usage',
        'GLenum ',
        undef,
        'BufferUsageARB'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedBufferData',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNamedBufferDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(size)'
      ],
      [
        'usage',
        'GLenum ',
        undef,
        'BufferUsageARB'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedBufferDataEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNamedBufferPageCommitmentMemNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'memOffset',
        'GLuint64 '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_memory_object_sparse',
    'glewImpl' => '__glewNamedBufferPageCommitmentMemNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedBufferStorage' => {
    'aliases' => {
      'glNamedBufferStorageEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'BufferStorageMask'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedBufferStorage',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNamedBufferStorageExternalEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'clientBuffer',
        'GLeglClientBufferEXT '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'BufferStorageMask'
      ]
    ],
    'feature' => 'GL_EXT_external_buffer',
    'glewImpl' => '__glewNamedBufferStorageExternalEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedBufferStorageMemEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewNamedBufferStorageMemEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedBufferSubData' => {
    'aliases' => {
      'glNamedBufferSubDataEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedBufferSubData',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedCopyBufferSubDataEXT' => {
    'argdata' => [
      [
        'readBuffer',
        'GLuint '
      ],
      [
        'writeBuffer',
        'GLuint '
      ],
      [
        'readOffset',
        'GLintptr '
      ],
      [
        'writeOffset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedCopyBufferSubDataEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferDrawBuffer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buf',
        'GLenum ',
        undef,
        'ColorBuffer'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferDrawBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferDrawBuffers' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n',
        'ColorBuffer'
      ]
    ],
    'dynlang' => {
      'bufs' => 'VARARGS:1:n',
      'n' => 'items-1'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferDrawBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNamedFramebufferParameteri' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferParameteriEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'FramebufferParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewNamedFramebufferParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferReadBuffer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'src',
        'GLenum ',
        undef,
        'ColorBuffer'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferReadBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferRenderbuffer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'renderbuffertarget',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferRenderbufferEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'renderbuffertarget',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferSampleLocationsfvARB' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_sample_locations',
    'glewImpl' => '__glewNamedFramebufferSampleLocationsfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedFramebufferSampleLocationsfvNV' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_sample_locations',
    'glewImpl' => '__glewNamedFramebufferSampleLocationsfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedFramebufferSamplePositionsfvAMD' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'values',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewNamedFramebufferSamplePositionsfvAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedFramebufferTexture' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture1DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture2DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture3DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'textarget',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureFaceEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'face',
        'GLenum ',
        undef,
        'TextureTarget'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureFaceEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureLayer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureLayer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureLayerEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureLayerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureMultiviewOVR' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum ',
        undef,
        'FramebufferAttachment'
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'baseViewIndex',
        'GLint '
      ],
      [
        'numViews',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OVR_multiview',
    'glewImpl' => '__glewNamedFramebufferTextureMultiviewOVR',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4dEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4dEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4dvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4dvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4fEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4fEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4fvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4fvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4iEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4iEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4ivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4ivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4uiEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'z',
        'GLuint '
      ],
      [
        'w',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4uiEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4uivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4uivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParameters4fvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:4:count*4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameters4fvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParametersI4ivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:4:count*4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParametersI4ivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glNamedProgramLocalParametersI4uivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:4:count*4'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParametersI4uivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glNamedProgramStringEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'ProgramFormat'
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'string',
        'const void *',
        'len'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramStringEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glNamedRenderbufferStorage' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisample' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisampleAdvancedAMD' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'storageSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_multisample_advanced',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisampleAdvancedAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisampleCoverageEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisampleCoverageEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisampleEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedStringARB' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ],
      [
        'stringlen',
        'GLint '
      ],
      [
        'string',
        'const GLchar *',
        'stringlen'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewNamedStringARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNewBufferRegion' => {
    'argdata' => [
      [
        'region',
        'GLenum '
      ]
    ],
    'feature' => 'GL_KTX_buffer_region',
    'glewImpl' => '__glewNewBufferRegion',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glNewList' => {
    'argdata' => [
      [
        'list',
        'GLuint '
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'ListMode'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNewObjectBufferATI' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'size'
      ],
      [
        'usage',
        'GLenum ',
        undef,
        'ArrayObjectUsageATI'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewNewObjectBufferATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'GLuint'
  },
  'glNonlinLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewNonlinLightfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNonlinMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewNonlinMaterialfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNormal3b' => {
    'argdata' => [
      [
        'nx',
        'GLbyte '
      ],
      [
        'ny',
        'GLbyte '
      ],
      [
        'nz',
        'GLbyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3bv' => {
    'argdata' => [
      [
        'v',
        'const GLbyte *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3d' => {
    'argdata' => [
      [
        'nx',
        'GLdouble '
      ],
      [
        'ny',
        'GLdouble '
      ],
      [
        'nz',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3f' => {
    'argdata' => [
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'n',
        'const GLfloat* ',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'n' => 'INARRAY:3',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glNormal3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3hNV' => {
    'argdata' => [
      [
        'nx',
        'GLhalf '
      ],
      [
        'ny',
        'GLhalf '
      ],
      [
        'nz',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewNormal3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewNormal3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3i' => {
    'argdata' => [
      [
        'nx',
        'GLint '
      ],
      [
        'ny',
        'GLint '
      ],
      [
        'nz',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3s' => {
    'argdata' => [
      [
        'nx',
        'GLshort '
      ],
      [
        'ny',
        'GLshort '
      ],
      [
        'nz',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormal3sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glNormal3x' => {
    'argdata' => [
      [
        'nx',
        'GLfixed '
      ],
      [
        'ny',
        'GLfixed '
      ],
      [
        'nz',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewNormal3x',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalFormatNV' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewNormalFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewNormalP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewNormalP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalPointer' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNormalPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewNormalPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glNormalPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewNormalPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glNormalPointervINTEL' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewNormalPointervINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalStream3bATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'nx',
        'GLbyte '
      ],
      [
        'ny',
        'GLbyte '
      ],
      [
        'nz',
        'GLbyte '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3bATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3bvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLbyte *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3bvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalStream3dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'nx',
        'GLdouble '
      ],
      [
        'ny',
        'GLdouble '
      ],
      [
        'nz',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLdouble *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3dvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalStream3fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3fvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalStream3iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'nx',
        'GLint '
      ],
      [
        'ny',
        'GLint '
      ],
      [
        'nz',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLint *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3ivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glNormalStream3sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'nx',
        'GLshort '
      ],
      [
        'ny',
        'GLshort '
      ],
      [
        'nz',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLshort *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3svATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glObjectLabel' => {
    'aliases' => {
      'glObjectLabelKHR' => undef
    },
    'argdata' => [
      [
        'identifier',
        'GLenum ',
        undef,
        'ObjectIdentifier'
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'label',
        'const GLchar* ',
        'COMPSIZE(label,length)'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewObjectLabel',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glObjectPtrLabel' => {
    'aliases' => {
      'glObjectPtrLabelKHR' => undef
    },
    'argdata' => [
      [
        'ptr',
        'void* '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'label',
        'const GLchar* ',
        'COMPSIZE(label,length)'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewObjectPtrLabel',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glObjectPurgeableAPPLE' => {
    'argdata' => [
      [
        'objectType',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'option',
        'GLenum '
      ]
    ],
    'feature' => 'GL_APPLE_object_purgeable',
    'glewImpl' => '__glewObjectPurgeableAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glObjectUnpurgeableAPPLE' => {
    'argdata' => [
      [
        'objectType',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'option',
        'GLenum '
      ]
    ],
    'feature' => 'GL_APPLE_object_purgeable',
    'glewImpl' => '__glewObjectUnpurgeableAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glOrtho' => {
    'argdata' => [
      [
        'left',
        'GLdouble '
      ],
      [
        'right',
        'GLdouble '
      ],
      [
        'bottom',
        'GLdouble '
      ],
      [
        'top',
        'GLdouble '
      ],
      [
        'zNear',
        'GLdouble '
      ],
      [
        'zFar',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glOrthof' => {
    'argdata' => [
      [
        'left',
        'GLfloat '
      ],
      [
        'right',
        'GLfloat '
      ],
      [
        'bottom',
        'GLfloat '
      ],
      [
        'top',
        'GLfloat '
      ],
      [
        'zNear',
        'GLfloat '
      ],
      [
        'zFar',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewOrthof',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glOrthofOES' => {
    'argdata' => [
      [
        'l',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'n',
        'GLfloat '
      ],
      [
        'f',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_OES_single_precision',
    'glewImpl' => '__glewOrthofOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glOrthox' => {
    'argdata' => [
      [
        'left',
        'GLfixed '
      ],
      [
        'right',
        'GLfixed '
      ],
      [
        'bottom',
        'GLfixed '
      ],
      [
        'top',
        'GLfixed '
      ],
      [
        'zNear',
        'GLfixed '
      ],
      [
        'zFar',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewOrthox',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPNTrianglesfATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PNTrianglesPNameATI'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_pn_triangles',
    'glewImpl' => '__glewPNTrianglesfATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPNTrianglesiATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PNTrianglesPNameATI'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_pn_triangles',
    'glewImpl' => '__glewPNTrianglesiATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPassTexCoordATI' => {
    'argdata' => [
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'coord',
        'GLuint ',
        undef,
        'FragmentShaderTextureSourceATI'
      ],
      [
        'swizzle',
        'GLenum ',
        undef,
        'SwizzleOpATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewPassTexCoordATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPassThrough' => {
    'argdata' => [
      [
        'token',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPatchParameterfv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PatchParameterName'
      ],
      [
        'values',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'values' => 'SIZE:PatchParameterName:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_ARB_tessellation_shader',
    'glewImpl' => '__glewPatchParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glPatchParameteri' => {
    'aliases' => {
      'glPatchParameteriEXT' => 'GL_EXT_tessellation_point_size'
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PatchParameterName'
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_tessellation_shader',
    'glewImpl' => '__glewPatchParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathColorGenNV' => {
    'argdata' => [
      [
        'color',
        'GLenum ',
        undef,
        'PathColor'
      ],
      [
        'genMode',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'colorFormat',
        'GLenum ',
        undef,
        'PathColorFormat'
      ],
      [
        'coeffs',
        'const GLfloat* ',
        'COMPSIZE(genMode,colorFormat)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathColorGenNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glPathCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'numCommands',
        'GLsizei '
      ],
      [
        'commands',
        'const GLubyte* ',
        'numCommands',
        'PathCoordType'
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum ',
        undef,
        'PathCoordType'
      ],
      [
        'coords',
        'const void*',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCommandsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glPathCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum ',
        undef,
        'PathCoordType'
      ],
      [
        'coords',
        'const void *',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCoordsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glPathCoverDepthFuncNV' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'DepthFunction'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCoverDepthFuncNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathDashArrayNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'dashCount',
        'GLsizei '
      ],
      [
        'dashArray',
        'const GLfloat* ',
        'dashCount'
      ]
    ],
    'dynlang' => {
      'dashArray' => 'VARARGS:1:dashCount',
      'dashCount' => 'items-1'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathDashArrayNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPathFogGenNV' => {
    'argdata' => [
      [
        'genMode',
        'GLenum ',
        undef,
        'PathGenMode'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathFogGenNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathGlyphIndexArrayNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *'
      ],
      [
        'fontStyle',
        'GLbitfield ',
        undef,
        'PathFontStyle'
      ],
      [
        'firstGlyphIndex',
        'GLuint '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphIndexArrayNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'GLenum'
  },
  'glPathGlyphIndexRangeNV' => {
    'argdata' => [
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *'
      ],
      [
        'fontStyle',
        'GLbitfield ',
        undef,
        'PathFontStyle'
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ],
      [
        'baseAndCount',
        'GLuint* ',
        '2'
      ]
    ],
    'dynlang' => {
      'baseAndCount' => 'OUTARRAY:2'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphIndexRangeNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      5
    ],
    'restype' => 'GLenum'
  },
  'glPathGlyphRangeNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum ',
        undef,
        'PathFontTarget'
      ],
      [
        'fontName',
        'const void *',
        'COMPSIZE(fontTarget,fontName)'
      ],
      [
        'fontStyle',
        'GLbitfield ',
        undef,
        'PathFontStyle'
      ],
      [
        'firstGlyph',
        'GLuint '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'handleMissingGlyphs',
        'GLenum ',
        undef,
        'PathHandleMissingGlyphs'
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphRangeNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPathGlyphsNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum ',
        undef,
        'PathFontTarget'
      ],
      [
        'fontName',
        'const void *',
        'COMPSIZE(fontTarget,fontName)'
      ],
      [
        'fontStyle',
        'GLbitfield ',
        undef,
        'PathFontStyle'
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'charcodes',
        'const void*',
        'COMPSIZE(numGlyphs,type,charcodes)'
      ],
      [
        'handleMissingGlyphs',
        'GLenum ',
        undef,
        'PathHandleMissingGlyphs'
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      6
    ],
    'restype' => 'void'
  },
  'glPathMemoryGlyphIndexArrayNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontSize',
        'GLsizeiptr '
      ],
      [
        'fontData',
        'const void *'
      ],
      [
        'faceIndex',
        'GLsizei '
      ],
      [
        'firstGlyphIndex',
        'GLuint '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathMemoryGlyphIndexArrayNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'GLenum'
  },
  'glPathParameterfNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathParameterfvNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPathParameteriNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathParameterivNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PathParameter'
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPathStencilDepthOffsetNV' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ],
      [
        'units',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStencilDepthOffsetNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathStencilFuncNV' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'StencilFunction'
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStencilFuncNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathStringNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PathStringFormat'
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pathString',
        'const void *',
        'length'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStringNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glPathSubCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'commandStart',
        'GLsizei '
      ],
      [
        'commandsToDelete',
        'GLsizei '
      ],
      [
        'numCommands',
        'GLsizei '
      ],
      [
        'commands',
        'const GLubyte* ',
        'numCommands',
        'PathCoordType'
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum ',
        undef,
        'PathCoordType'
      ],
      [
        'coords',
        'const void*',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathSubCommandsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glPathSubCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coordStart',
        'GLsizei '
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum ',
        undef,
        'PathCoordType'
      ],
      [
        'coords',
        'const void *',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathSubCoordsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glPathTexGenNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum ',
        undef,
        'PathColor'
      ],
      [
        'genMode',
        'GLenum ',
        undef,
        'PathGenMode'
      ],
      [
        'components',
        'GLint '
      ],
      [
        'coeffs',
        'const GLfloat* ',
        'COMPSIZE(genMode,components)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathTexGenNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glPauseTransformFeedback' => {
    'aliases' => {
      'glPauseTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewPauseTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelDataRangeNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelDataRangeTargetNV'
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_NV_pixel_data_range',
    'glewImpl' => '__glewPixelDataRangeNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelMapfv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLfloat *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'mapsize' => 'items-1',
      'values' => 'VARARGS:1:mapsize'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelMapuiv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'mapsize' => 'items-1',
      'values' => 'VARARGS:1:mapsize'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelMapusv' => {
    'argdata' => [
      [
        'map',
        'GLenum ',
        undef,
        'PixelMap'
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLushort *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'mapsize' => 'items-1',
      'values' => 'VARARGS:1:mapsize'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelStoref' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PixelStoreParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelStorei' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PixelStoreParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTexGenSGIX' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'PixelTexGenModeSGIX'
      ]
    ],
    'feature' => 'GL_SGIX_pixel_texture',
    'glewImpl' => '__glewPixelTexGenSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransferf' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransferParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransferi' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransferParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameterfEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelTransformTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransformPNameEXT'
      ],
      [
        'param',
        'const GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameterfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameterfSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameterfSGI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelTransformTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransformPNameEXT'
      ],
      [
        'params',
        'const GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:1'
    },
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelTransformParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameterfvSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelTransformParameteriEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelTransformTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransformPNameEXT'
      ],
      [
        'param',
        'const GLint '
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameteriSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameteriSGI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'PixelTransformTargetEXT'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'PixelTransformPNameEXT'
      ],
      [
        'params',
        'const GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:1'
    },
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelTransformParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameterivSGI',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPixelTransformSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformSGI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelZoom' => {
    'argdata' => [
      [
        'xfactor',
        'GLfloat '
      ],
      [
        'yfactor',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointAlongPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'startSegment',
        'GLsizei '
      ],
      [
        'numSegments',
        'GLsizei '
      ],
      [
        'distance',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat* ',
        '1'
      ],
      [
        'y',
        'GLfloat *',
        '1'
      ],
      [
        'tangentX',
        'GLfloat *',
        '1'
      ],
      [
        'tangentY',
        'GLfloat *',
        '1'
      ]
    ],
    'dynlang' => {
      'tangentX' => 'OUTSCALAR',
      'tangentY' => 'OUTSCALAR',
      'x' => 'OUTSCALAR',
      'y' => 'OUTSCALAR'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPointAlongPathNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4,
      5,
      6,
      7
    ],
    'restype' => 'GLboolean'
  },
  'glPointParameterf' => {
    'aliases' => {
      'glPointParameterfARB' => 'GL_ARB_point_parameters',
      'glPointParameterfEXT' => 'GL_EXT_point_parameters',
      'glPointParameterfSGIS' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointParameterfv' => {
    'aliases' => {
      'glPointParameterfvARB' => 'GL_ARB_point_parameters',
      'glPointParameterfvEXT' => 'GL_EXT_point_parameters',
      'glPointParameterfvSGIS' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:PointParameterNameARB:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glPointParameteri' => {
    'aliases' => {
      'glPointParameteriNV' => 'GL_NV_point_sprite'
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointParameteriv' => {
    'aliases' => {
      'glPointParameterivNV' => 'GL_NV_point_sprite'
    },
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:PointParameterNameARB:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glPointParameterx' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewPointParameterx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointParameterxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'PointParameterNameARB'
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:PointParameterNameARB:pname,VARARGS:1:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewPointParameterxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glPointSize' => {
    'argdata' => [
      [
        'size',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointSizePointerOES' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewPointSizePointerOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glPointSizex' => {
    'argdata' => [
      [
        'size',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewPointSizex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPollAsyncSGIX' => {
    'argdata' => [
      [
        'markerp',
        'GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'markerp' => 'OUTSCALAR'
    },
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewPollAsyncSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'GLint'
  },
  'glPolygonMode' => {
    'aliases' => {
      'glPolygonModeNV' => 'GL_NV_polygon_mode'
    },
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'PolygonMode'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPolygonOffset' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ],
      [
        'units',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPolygonOffsetClamp' => {
    'aliases' => {
      'glPolygonOffsetClampEXT' => 'GL_EXT_polygon_offset_clamp'
    },
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ],
      [
        'units',
        'GLfloat '
      ],
      [
        'clamp',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_polygon_offset_clamp',
    'glewImpl' => '__glewPolygonOffsetClamp',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPolygonOffsetEXT' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ],
      [
        'bias',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_polygon_offset',
    'glewImpl' => '__glewPolygonOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPolygonOffsetx' => {
    'argdata' => [
      [
        'factor',
        'GLfixed '
      ],
      [
        'units',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewPolygonOffsetx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPolygonStipple' => {
    'argdata' => [
      [
        'mask',
        'const GLubyte *',
        'COMPSIZE()'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopAttrib' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopClientAttrib' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopDebugGroup' => {
    'aliases' => {
      'glPopDebugGroupKHR' => undef
    },
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewPopDebugGroup',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopGroupMarkerEXT' => {
    'feature' => 'GL_EXT_debug_marker',
    'glewImpl' => '__glewPopGroupMarkerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopMatrix' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPopName' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPresentFrameDualFillNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'minPresentTime',
        'GLuint64EXT '
      ],
      [
        'beginPresentTimeId',
        'GLuint '
      ],
      [
        'presentDurationId',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'target0',
        'GLenum '
      ],
      [
        'fill0',
        'GLuint '
      ],
      [
        'target1',
        'GLenum '
      ],
      [
        'fill1',
        'GLuint '
      ],
      [
        'target2',
        'GLenum '
      ],
      [
        'fill2',
        'GLuint '
      ],
      [
        'target3',
        'GLenum '
      ],
      [
        'fill3',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewPresentFrameDualFillNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPresentFrameKeyedNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'minPresentTime',
        'GLuint64EXT '
      ],
      [
        'beginPresentTimeId',
        'GLuint '
      ],
      [
        'presentDurationId',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'target0',
        'GLenum '
      ],
      [
        'fill0',
        'GLuint '
      ],
      [
        'key0',
        'GLuint '
      ],
      [
        'target1',
        'GLenum '
      ],
      [
        'fill1',
        'GLuint '
      ],
      [
        'key1',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewPresentFrameKeyedNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPrimitiveBoundingBoxARB' => {
    'aliases' => {
      'glPrimitiveBoundingBox' => undef,
      'glPrimitiveBoundingBoxEXT' => 'GL_EXT_primitive_bounding_box'
    },
    'argdata' => [
      [
        'minX',
        'GLfloat '
      ],
      [
        'minY',
        'GLfloat '
      ],
      [
        'minZ',
        'GLfloat '
      ],
      [
        'minW',
        'GLfloat '
      ],
      [
        'maxX',
        'GLfloat '
      ],
      [
        'maxY',
        'GLfloat '
      ],
      [
        'maxZ',
        'GLfloat '
      ],
      [
        'maxW',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_ES3_2_compatibility',
    'glewImpl' => '__glewPrimitiveBoundingBoxARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPrimitiveRestartIndex' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewPrimitiveRestartIndex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPrimitiveRestartIndexNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_primitive_restart',
    'glewImpl' => '__glewPrimitiveRestartIndexNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPrimitiveRestartNV' => {
    'feature' => 'GL_NV_primitive_restart',
    'glewImpl' => '__glewPrimitiveRestartNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPrioritizeTextures' => {
    'aliases' => {
      'glPrioritizeTexturesEXT' => 'GL_EXT_texture_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint *',
        'n'
      ],
      [
        'priorities',
        'const GLclampf *',
        'n'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'n' => 'LEN:textures',
      'priorities' => 'INARRAY:n',
      'textures' => 'INARRAY:n'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glPrioritizeVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ],
      [
        'priorities',
        'const GLclampf* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewPrioritizeVertexArraysSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'void'
  },
  'glProgramBinary' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'binaryFormat',
        'GLenum '
      ],
      [
        'binary',
        'const void *',
        'length'
      ],
      [
        'length',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_get_program_binary',
    'glewImpl' => '__glewProgramBinary',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramBinaryOES' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'binaryFormat',
        'GLenum '
      ],
      [
        'binary',
        'const void *'
      ],
      [
        'length',
        'GLint '
      ]
    ],
    'feature' => 'GL_OES_get_program_binary',
    'glewImpl' => '__glewProgramBinaryOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramBufferParametersIivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-3',
      'params' => 'VARARGS:3:count'
    },
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersIivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramBufferParametersIuivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-3',
      'params' => 'VARARGS:3:count'
    },
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersIuivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramBufferParametersfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-3',
      'params' => 'VARARGS:3:count'
    },
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramEnvParameter4dARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4dARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramEnvParameter4dvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4dvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramEnvParameter4fARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4fARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramEnvParameter4fvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4fvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramEnvParameterI4iNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4iNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramEnvParameterI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4ivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramEnvParameterI4uiNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'z',
        'GLuint '
      ],
      [
        'w',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4uiNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramEnvParameterI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4uivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramEnvParameters4fvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_EXT_gpu_program_parameters',
    'glewImpl' => '__glewProgramEnvParameters4fvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramEnvParametersI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParametersI4ivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramEnvParametersI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParametersI4uivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramLocalParameter4dARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4dARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramLocalParameter4dvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4dvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramLocalParameter4fARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4fARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramLocalParameter4fvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4fvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramLocalParameterI4iNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4iNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramLocalParameterI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4ivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramLocalParameterI4uiNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'z',
        'GLuint '
      ],
      [
        'w',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4uiNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramLocalParameterI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint *',
        '4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4uivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramLocalParameters4fvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_EXT_gpu_program_parameters',
    'glewImpl' => '__glewProgramLocalParameters4fvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramLocalParametersI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParametersI4ivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramLocalParametersI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count*4'
      ]
    ],
    'dynlang' => {
      'params' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParametersI4uivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramNamedParameter4dNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4dNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramNamedParameter4dvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'v',
        'const GLdouble * ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:3:4'
    },
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramNamedParameter4fNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4fNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramNamedParameter4fvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'v',
        'const GLfloat * ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:3:4'
    },
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramParameter4dNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4dNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramParameter4dvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramParameter4fNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4fNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramParameter4fvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glProgramParameteri' => {
    'aliases' => {
      'glProgramParameteriARB' => 'GL_ARB_geometry_shader4',
      'glProgramParameteriEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'ProgramParameterPName'
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_get_program_binary',
    'glewImpl' => '__glewProgramParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramParameters4dvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameters4dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramParameters4fvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameters4fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramPathFragmentInputGenNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'genMode',
        'GLenum '
      ],
      [
        'components',
        'GLint '
      ],
      [
        'coeffs',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewProgramPathFragmentInputGenNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramStringARB' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'format',
        'GLenum ',
        undef,
        'ProgramFormat'
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'string',
        'const void *',
        'len'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramStringARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1d' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1f' => {
    'aliases' => {
      'glProgramUniform1fEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1fv' => {
    'aliases' => {
      'glProgramUniform1fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1i' => {
    'aliases' => {
      'glProgramUniform1iEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1i64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1i64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1i64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1iv' => {
    'aliases' => {
      'glProgramUniform1ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1ui' => {
    'aliases' => {
      'glProgramUniform1uiEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1ui64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1ui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform1ui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform1uiv' => {
    'aliases' => {
      'glProgramUniform1uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2d' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2f' => {
    'aliases' => {
      'glProgramUniform2fEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2fv' => {
    'aliases' => {
      'glProgramUniform2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2i' => {
    'aliases' => {
      'glProgramUniform2iEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2i64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2i64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2i64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2iv' => {
    'aliases' => {
      'glProgramUniform2ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2ui' => {
    'aliases' => {
      'glProgramUniform2uiEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2ui64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2ui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform2ui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform2uiv' => {
    'aliases' => {
      'glProgramUniform2uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*2'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3d' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3f' => {
    'aliases' => {
      'glProgramUniform3fEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3fv' => {
    'aliases' => {
      'glProgramUniform3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3i' => {
    'aliases' => {
      'glProgramUniform3iEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3i64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ],
      [
        'z',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3i64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3i64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3iv' => {
    'aliases' => {
      'glProgramUniform3ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3ui' => {
    'aliases' => {
      'glProgramUniform3uiEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'z',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3ui64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ],
      [
        'z',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3ui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform3ui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform3uiv' => {
    'aliases' => {
      'glProgramUniform3uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*3'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4d' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4f' => {
    'aliases' => {
      'glProgramUniform4fEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4fv' => {
    'aliases' => {
      'glProgramUniform4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4i' => {
    'aliases' => {
      'glProgramUniform4iEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4i64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ],
      [
        'z',
        'GLint64 '
      ],
      [
        'w',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4i64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ],
      [
        'w',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4i64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4iv' => {
    'aliases' => {
      'glProgramUniform4ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4ui' => {
    'aliases' => {
      'glProgramUniform4uiEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'z',
        'GLuint '
      ],
      [
        'w',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4ui64ARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ],
      [
        'z',
        'GLuint64 '
      ],
      [
        'w',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4ui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ],
      [
        'w',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniform4ui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniform4uiv' => {
    'aliases' => {
      'glProgramUniform4uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniformHandleui64ARB' => {
    'aliases' => {
      'glProgramUniformHandleui64IMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniformHandleui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniformHandleui64vARB' => {
    'aliases' => {
      'glProgramUniformHandleui64vIMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'values' => 'VARARGS:2:count'
    },
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniformHandleui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'values' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2fv' => {
    'aliases' => {
      'glProgramUniformMatrix2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*4'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*6'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x3fv' => {
    'aliases' => {
      'glProgramUniformMatrix2x3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*6'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*8'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x4fv' => {
    'aliases' => {
      'glProgramUniformMatrix2x4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*8'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*9'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*9'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3fv' => {
    'aliases' => {
      'glProgramUniformMatrix3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*9'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*9'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*6'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x2fv' => {
    'aliases' => {
      'glProgramUniformMatrix3x2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*6'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*12'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x4fv' => {
    'aliases' => {
      'glProgramUniformMatrix3x4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*12'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*16'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*16'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4fv' => {
    'aliases' => {
      'glProgramUniformMatrix4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*16'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*16'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*8'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x2fv' => {
    'aliases' => {
      'glProgramUniformMatrix4x2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*8'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*12'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x3fv' => {
    'aliases' => {
      'glProgramUniformMatrix4x3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:4:count*12'
    },
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glProgramUniformui64NV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewProgramUniformui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramUniformui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'value' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewProgramUniformui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glProgramVertexLimitNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'ProgramTarget'
      ],
      [
        'limit',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_geometry_program4',
    'glewImpl' => '__glewProgramVertexLimitNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProvokingVertex' => {
    'aliases' => {
      'glProvokingVertexEXT' => 'GL_EXT_provoking_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'VertexProvokingMode'
      ]
    ],
    'feature' => 'GL_ARB_provoking_vertex',
    'glewImpl' => '__glewProvokingVertex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushAttrib' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'AttribMask'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushClientAttrib' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClientAttribMask'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushClientAttribDefaultEXT' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield ',
        undef,
        'ClientAttribMask'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewPushClientAttribDefaultEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushDebugGroup' => {
    'aliases' => {
      'glPushDebugGroupKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum ',
        undef,
        'DebugSource'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'message',
        'const GLchar * ',
        'COMPSIZE(message,length)'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewPushDebugGroup',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushGroupMarkerEXT' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'marker',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_EXT_debug_marker',
    'glewImpl' => '__glewPushGroupMarkerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushMatrix' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushName' => {
    'argdata' => [
      [
        'name',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glQueryCounter' => {
    'aliases' => {
      'glQueryCounterEXT' => 'GL_EXT_disjoint_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'QueryCounterTarget'
      ]
    ],
    'feature' => 'GL_ARB_timer_query',
    'glewImpl' => '__glewQueryCounter',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glQueryCounterANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewQueryCounterANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glQueryObjectParameteruiAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'QueryTarget'
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLuint ',
        undef,
        'OcclusionQueryEventMaskAMD'
      ]
    ],
    'feature' => 'GL_AMD_occlusion_query_event',
    'glewImpl' => '__glewQueryObjectParameteruiAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos2d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos2dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos2f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos2fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos2i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos2iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos2s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos2sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos3d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos3dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos3f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos3i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos3iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos3s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos3sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos4d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos4dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos4f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos4i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos4iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterPos4s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRasterPos4sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRasterSamplesEXT' => {
    'argdata' => [
      [
        'samples',
        'GLuint '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewRasterSamplesEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBuffer' => {
    'argdata' => [
      [
        'src',
        'GLenum ',
        undef,
        'ReadBufferMode'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBufferIndexedEXT' => {
    'argdata' => [
      [
        'src',
        'GLenum ',
        undef,
        'ReadBufferMode'
      ],
      [
        'index',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewReadBufferIndexedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBufferNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_read_buffer',
    'glewImpl' => '__glewReadBufferNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBufferRegion' => {
    'argdata' => [
      [
        'region',
        'GLuint '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_KTX_buffer_region',
    'glewImpl' => '__glewReadBufferRegion',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadPixels' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glReadVideoPixelsSUN' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void* '
      ]
    ],
    'feature' => 'GL_SUN_read_video_pixels',
    'glewImpl' => '__glewReadVideoPixelsSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glReadnPixels' => {
    'aliases' => {
      'glReadnPixelsARB' => 'GL_ARB_robustness',
      'glReadnPixelsEXT' => 'GL_EXT_robustness',
      'glReadnPixelsKHR' => undef
    },
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'data',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewReadnPixels',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glRectd' => {
    'argdata' => [
      [
        'x1',
        'GLdouble '
      ],
      [
        'y1',
        'GLdouble '
      ],
      [
        'x2',
        'GLdouble '
      ],
      [
        'y2',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRectdv' => {
    'argdata' => [
      [
        'v1',
        'const GLdouble *',
        '2'
      ],
      [
        'v2',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v1' => 'INARRAY:2',
      'v2' => 'INARRAY:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glRectf' => {
    'argdata' => [
      [
        'x1',
        'GLfloat '
      ],
      [
        'y1',
        'GLfloat '
      ],
      [
        'x2',
        'GLfloat '
      ],
      [
        'y2',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRectfv' => {
    'argdata' => [
      [
        'v1',
        'const GLfloat *',
        '2'
      ],
      [
        'v2',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v1' => 'INARRAY:2',
      'v2' => 'INARRAY:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glRecti' => {
    'argdata' => [
      [
        'x1',
        'GLint '
      ],
      [
        'y1',
        'GLint '
      ],
      [
        'x2',
        'GLint '
      ],
      [
        'y2',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRectiv' => {
    'argdata' => [
      [
        'v1',
        'const GLint *',
        '2'
      ],
      [
        'v2',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v1' => 'INARRAY:2',
      'v2' => 'INARRAY:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glRects' => {
    'argdata' => [
      [
        'x1',
        'GLshort '
      ],
      [
        'y1',
        'GLshort '
      ],
      [
        'x2',
        'GLshort '
      ],
      [
        'y2',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRectsv' => {
    'argdata' => [
      [
        'v1',
        'const GLshort *',
        '2'
      ],
      [
        'v2',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v1' => 'INARRAY:2',
      'v2' => 'INARRAY:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glReferencePlaneSGIX' => {
    'argdata' => [
      [
        'equation',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'equation' => 'VARARGS:0:4'
    },
    'feature' => 'GL_SGIX_reference_plane',
    'glewImpl' => '__glewReferencePlaneSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glReleaseKeyedMutexWin32EXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'key',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_win32_keyed_mutex',
    'glewImpl' => '__glewReleaseKeyedMutexWin32EXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glReleaseShaderCompiler' => {
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewReleaseShaderCompiler',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderGpuMaskNV' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewRenderGpuMaskNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderMode' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'RenderingMode'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glRenderbufferStorage' => {
    'aliases' => {
      'glRenderbufferStorageEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewRenderbufferStorage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisample' => {
    'aliases' => {
      'glRenderbufferStorageMultisampleEXT' => 'GL_EXT_framebuffer_multisample',
      'glRenderbufferStorageMultisampleNV' => 'GL_NV_framebuffer_multisample'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewRenderbufferStorageMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ANGLE_framebuffer_multisample',
    'glewImpl' => '__glewRenderbufferStorageMultisampleANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_framebuffer_multisample',
    'glewImpl' => '__glewRenderbufferStorageMultisampleAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleAdvancedAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'storageSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_multisample_advanced',
    'glewImpl' => '__glewRenderbufferStorageMultisampleAdvancedAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_framebuffer_multisample_coverage',
    'glewImpl' => '__glewRenderbufferStorageMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleIMG' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'RenderbufferTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_IMG_multisampled_render_to_texture',
    'glewImpl' => '__glewRenderbufferStorageMultisampleIMG',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_OES_framebuffer_object',
    'glewImpl' => '__glewRenderbufferStorageOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodePointerSUN' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ReplacementCodeTypeSUN'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodePointerSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glReplacementCodeubSUN' => {
    'argdata' => [
      [
        'code',
        'GLubyte '
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeubSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeubvSUN' => {
    'argdata' => [
      [
        'code',
        'const GLubyte* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeubvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiColor3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiColor3fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'c',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:3',
      'rc' => 'INARRAY:1',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'a',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'n' => 'INARRAY:3',
      'rc' => 'INARRAY:1',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4ubVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        'r',
        'GLubyte '
      ],
      [
        'g',
        'GLubyte '
      ],
      [
        'b',
        'GLubyte '
      ],
      [
        'a',
        'GLubyte '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4ubVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4ubVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'c',
        'const GLubyte *',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'rc' => 'INARRAY:1',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'n' => 'INARRAY:3',
      'rc' => 'INARRAY:1',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiSUN' => {
    'argdata' => [
      [
        'code',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeuiSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'a',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'n' => 'INARRAY:3',
      'rc' => 'INARRAY:1',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3,
      4
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'n' => 'INARRAY:3',
      'rc' => 'INARRAY:1',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'rc' => 'INARRAY:1',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuiVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint ',
        undef,
        'TriangleListSUN'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1',
        'TriangleListSUN'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'rc' => 'INARRAY:1',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glReplacementCodeuivSUN' => {
    'argdata' => [
      [
        'code',
        'const GLuint* ',
        'COMPSIZE()',
        'TriangleListSUN'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeuivSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glReplacementCodeusSUN' => {
    'argdata' => [
      [
        'code',
        'GLushort '
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeusSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeusvSUN' => {
    'argdata' => [
      [
        'code',
        'const GLushort* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeusvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glRequestResidentProgramsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'GLuint* ',
        'n'
      ]
    ],
    'dynlang' => {
      'programs' => 'OUTASLIST:n'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewRequestResidentProgramsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glResetHistogram' => {
    'aliases' => {
      'glResetHistogramEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'HistogramTargetEXT'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewResetHistogram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResetMemoryObjectParameterNV' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewResetMemoryObjectParameterNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResetMinmax' => {
    'aliases' => {
      'glResetMinmaxEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'MinmaxTargetEXT'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewResetMinmax',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResizeBuffersMESA' => {
    'feature' => 'GL_MESA_resize_buffers',
    'glewImpl' => '__glewResizeBuffersMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResolveDepthValuesNV' => {
    'feature' => 'GL_NV_sample_locations',
    'glewImpl' => '__glewResolveDepthValuesNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResolveMultisampleFramebufferAPPLE' => {
    'feature' => 'GL_APPLE_framebuffer_multisample',
    'glewImpl' => '__glewResolveMultisampleFramebufferAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResumeTransformFeedback' => {
    'aliases' => {
      'glResumeTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewResumeTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRotated' => {
    'argdata' => [
      [
        'angle',
        'GLdouble '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRotatef' => {
    'argdata' => [
      [
        'angle',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRotatex' => {
    'argdata' => [
      [
        'angle',
        'GLfixed '
      ],
      [
        'x',
        'GLfixed '
      ],
      [
        'y',
        'GLfixed '
      ],
      [
        'z',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewRotatex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleCoverage' => {
    'aliases' => {
      'glSampleCoverageARB' => 'GL_ARB_multisample'
    },
    'argdata' => [
      [
        'value',
        'GLclampf '
      ],
      [
        'invert',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewSampleCoverage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleCoveragex' => {
    'argdata' => [
      [
        'value',
        'GLclampx '
      ],
      [
        'invert',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewSampleCoveragex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleMapATI' => {
    'argdata' => [
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderRegATI'
      ],
      [
        'interp',
        'GLuint ',
        undef,
        'FragmentShaderTextureSourceATI'
      ],
      [
        'swizzle',
        'GLenum ',
        undef,
        'SwizzleOpATI'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewSampleMapATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleMaskEXT' => {
    'aliases' => {
      'glSampleMaskSGIS' => 'GL_SGIS_multisample'
    },
    'argdata' => [
      [
        'value',
        'GLclampf '
      ],
      [
        'invert',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_EXT_multisample',
    'glewImpl' => '__glewSampleMaskEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleMaskIndexedNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_NV_explicit_multisample',
    'glewImpl' => '__glewSampleMaskIndexedNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSampleMaski' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewSampleMaski',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplePatternEXT' => {
    'aliases' => {
      'glSamplePatternSGIS' => 'GL_SGIS_multisample'
    },
    'argdata' => [
      [
        'pattern',
        'GLenum ',
        undef,
        'SamplePatternEXT'
      ]
    ],
    'feature' => 'GL_EXT_multisample',
    'glewImpl' => '__glewSamplePatternEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameterIiv' => {
    'aliases' => {
      'glSamplerParameterIivEXT' => 'GL_EXT_texture_border_clamp'
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:SamplerParameterI:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSamplerParameterIivOES' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewSamplerParameterIivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSamplerParameterIuiv' => {
    'aliases' => {
      'glSamplerParameterIuivEXT' => 'GL_EXT_texture_border_clamp'
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'param',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:SamplerParameterI:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSamplerParameterIuivOES' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewSamplerParameterIuivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSamplerParameterf' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterF'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameterfv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterF'
      ],
      [
        'param',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:SamplerParameterF:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSamplerParameteri' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameteriv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SamplerParameterI'
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:SamplerParameterI:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glScaled' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScalef' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScalex' => {
    'argdata' => [
      [
        'x',
        'GLfixed '
      ],
      [
        'y',
        'GLfixed '
      ],
      [
        'z',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewScalex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScissor' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScissorArrayv' => {
    'aliases' => {
      'glScissorArrayvNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLint * ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewScissorArrayv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glScissorExclusiveArrayvNV' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_NV_scissor_exclusive',
    'glewImpl' => '__glewScissorExclusiveArrayvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glScissorExclusiveNV' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_scissor_exclusive',
    'glewImpl' => '__glewScissorExclusiveNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScissorIndexed' => {
    'aliases' => {
      'glScissorIndexedNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'left',
        'GLint '
      ],
      [
        'bottom',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewScissorIndexed',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glScissorIndexedv' => {
    'aliases' => {
      'glScissorIndexedvNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint * ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewScissorIndexedv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3b' => {
    'aliases' => {
      'glSecondaryColor3bEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLbyte '
      ],
      [
        'green',
        'GLbyte '
      ],
      [
        'blue',
        'GLbyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3b',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3bv' => {
    'aliases' => {
      'glSecondaryColor3bvEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLbyte *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3bv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3d' => {
    'aliases' => {
      'glSecondaryColor3dEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLdouble '
      ],
      [
        'green',
        'GLdouble '
      ],
      [
        'blue',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3dv' => {
    'aliases' => {
      'glSecondaryColor3dvEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3f' => {
    'aliases' => {
      'glSecondaryColor3fEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLfloat '
      ],
      [
        'green',
        'GLfloat '
      ],
      [
        'blue',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3fv' => {
    'aliases' => {
      'glSecondaryColor3fvEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3hNV' => {
    'argdata' => [
      [
        'red',
        'GLhalf '
      ],
      [
        'green',
        'GLhalf '
      ],
      [
        'blue',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewSecondaryColor3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewSecondaryColor3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3i' => {
    'aliases' => {
      'glSecondaryColor3iEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLint '
      ],
      [
        'green',
        'GLint '
      ],
      [
        'blue',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3iv' => {
    'aliases' => {
      'glSecondaryColor3ivEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3s' => {
    'aliases' => {
      'glSecondaryColor3sEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLshort '
      ],
      [
        'green',
        'GLshort '
      ],
      [
        'blue',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3sv' => {
    'aliases' => {
      'glSecondaryColor3svEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3ub' => {
    'aliases' => {
      'glSecondaryColor3ubEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLubyte '
      ],
      [
        'green',
        'GLubyte '
      ],
      [
        'blue',
        'GLubyte '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3ub',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3ubv' => {
    'aliases' => {
      'glSecondaryColor3ubvEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLubyte *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3ubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3ui' => {
    'aliases' => {
      'glSecondaryColor3uiEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLuint '
      ],
      [
        'green',
        'GLuint '
      ],
      [
        'blue',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3uiv' => {
    'aliases' => {
      'glSecondaryColor3uivEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLuint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColor3us' => {
    'aliases' => {
      'glSecondaryColor3usEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'red',
        'GLushort '
      ],
      [
        'green',
        'GLushort '
      ],
      [
        'blue',
        'GLushort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3us',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColor3usv' => {
    'aliases' => {
      'glSecondaryColor3usvEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'v',
        'const GLushort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3usv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glSecondaryColorFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewSecondaryColorFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColorP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewSecondaryColorP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColorP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'color' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewSecondaryColorP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSecondaryColorPointer' => {
    'aliases' => {
      'glSecondaryColorPointerEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColorPointer',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glSecondaryColorPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'SecondaryColorPointerTypeIBM'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewSecondaryColorPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glSelectBuffer' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint *',
        'size'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'buffer' => 'OUTASLIST:size'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSelectPerfMonitorCountersAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ],
      [
        'enable',
        'GLboolean '
      ],
      [
        'group',
        'GLuint '
      ],
      [
        'numCounters',
        'GLint '
      ],
      [
        'counterList',
        'GLuint* ',
        'numCounters'
      ]
    ],
    'dynlang' => {
      'counterList' => 'OUTASLIST:numCounters'
    },
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewSelectPerfMonitorCountersAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glSelectTextureCoordSetSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIS_multitexture',
    'glewImpl' => '__glewSelectTextureCoordSetSGIS',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSelectTextureSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIS_multitexture',
    'glewImpl' => '__glewSelectTextureSGIS',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSelectTextureTransformSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIS_multitexture',
    'glewImpl' => '__glewSelectTextureTransformSGIS',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSemaphoreParameterivNV' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SemaphoreParameterName'
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_NV_timeline_semaphore',
    'glewImpl' => '__glewSemaphoreParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSemaphoreParameterui64vEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'SemaphoreParameterName'
      ],
      [
        'params',
        'const GLuint64* '
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewSemaphoreParameterui64vEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSeparableFilter2D' => {
    'aliases' => {
      'glSeparableFilter2DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'SeparableTargetEXT'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'row',
        'const void *',
        'COMPSIZE(target,format,type,width)'
      ],
      [
        'column',
        'const void *',
        'COMPSIZE(target,format,type,height)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewSeparableFilter2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6,
      7
    ],
    'restype' => 'void'
  },
  'glSetFenceAPPLE' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewSetFenceAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSetFenceNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ],
      [
        'condition',
        'GLenum ',
        undef,
        'FenceConditionNV'
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewSetFenceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSetFragmentShaderConstantATI' => {
    'argdata' => [
      [
        'dst',
        'GLuint ',
        undef,
        'FragmentShaderConATI'
      ],
      [
        'value',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewSetFragmentShaderConstantATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSetInvariantEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ScalarType'
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewSetInvariantEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSetLocalConstantEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ScalarType'
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewSetLocalConstantEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSetMultisamplefvAMD' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'val',
        'const GLfloat* ',
        '2'
      ]
    ],
    'dynlang' => {
      'val' => 'VARARGS:2:2'
    },
    'feature' => 'GL_AMD_sample_positions',
    'glewImpl' => '__glewSetMultisamplefvAMD',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glShadeModel' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'ShadingModel'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderBinary' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'shaders',
        'const GLuint* ',
        'count'
      ],
      [
        'binaryFormat',
        'GLenum ',
        undef,
        'ShaderBinaryFormat'
      ],
      [
        'binary',
        'const void*',
        'length'
      ],
      [
        'length',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewShaderBinary',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      3
    ],
    'restype' => 'void'
  },
  'glShaderOp1EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'VertexShaderOpEXT'
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp1EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderOp2EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'VertexShaderOpEXT'
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp2EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderOp3EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum ',
        undef,
        'VertexShaderOpEXT'
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg3',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp3EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderSource' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'string',
        'const GLchar *const* ',
        'count'
      ],
      [
        'length',
        'const GLint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'length' => 'NULL',
      'string' => 'VARARGS:1:count'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewShaderSource',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glShaderSourceARB' => {
    'argdata' => [
      [
        'shader',
        'GLhandleARB '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'string',
        'const GLcharARB ** ',
        'count'
      ],
      [
        'length',
        'const GLint *',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'length' => 'NULL',
      'string' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewShaderSourceARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glShaderStorageBlockBinding' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'storageBlockIndex',
        'GLuint '
      ],
      [
        'storageBlockBinding',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_shader_storage_buffer_object',
    'glewImpl' => '__glewShaderStorageBlockBinding',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShadingRateCombinerOpsEXT' => {
    'argdata' => [
      [
        'combinerOp0',
        'GLenum ',
        undef,
        'ShadingRateCombinerOp'
      ],
      [
        'combinerOp1',
        'GLenum ',
        undef,
        'ShadingRateCombinerOp'
      ]
    ],
    'feature' => 'GL_EXT_fragment_shading_rate',
    'glewImpl' => '__glewShadingRateCombinerOpsEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShadingRateEXT' => {
    'argdata' => [
      [
        'rate',
        'GLenum ',
        undef,
        'ShadingRate'
      ]
    ],
    'feature' => 'GL_EXT_fragment_shading_rate',
    'glewImpl' => '__glewShadingRateEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShadingRateImageBarrierNV' => {
    'argdata' => [
      [
        'synchronize',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewShadingRateImageBarrierNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShadingRateImagePaletteNV' => {
    'argdata' => [
      [
        'viewport',
        'GLuint '
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'rates',
        'const GLenum* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'rates' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewShadingRateImagePaletteNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glShadingRateQCOM' => {
    'argdata' => [
      [
        'rate',
        'GLenum ',
        undef,
        'ShadingRateQCOM'
      ]
    ],
    'feature' => 'GL_QCOM_shading_rate',
    'glewImpl' => '__glewShadingRateQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShadingRateSampleOrderCustomNV' => {
    'argdata' => [
      [
        'rate',
        'GLenum '
      ],
      [
        'samples',
        'GLuint '
      ],
      [
        'locations',
        'const GLint* ',
        'COMPSIZE(rate,samples)'
      ]
    ],
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewShadingRateSampleOrderCustomNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glShadingRateSampleOrderNV' => {
    'argdata' => [
      [
        'order',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_shading_rate_image',
    'glewImpl' => '__glewShadingRateSampleOrderNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSharpenTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'dynlang' => {
      'points' => 'VARARGS:2:n*2'
    },
    'feature' => 'GL_SGIS_sharpen_texture',
    'glewImpl' => '__glewSharpenTexFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glSignalSemaphoreEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'numBufferBarriers',
        'GLuint '
      ],
      [
        'buffers',
        'const GLuint* ',
        'COMPSIZE(numBufferBarriers)'
      ],
      [
        'numTextureBarriers',
        'GLuint '
      ],
      [
        'textures',
        'const GLuint *',
        'COMPSIZE(numTextureBarriers)'
      ],
      [
        'dstLayouts',
        'const GLenum *',
        'COMPSIZE(numTextureBarriers)',
        'TextureLayout'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewSignalSemaphoreEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glSignalSemaphoreui64NVX' => {
    'argdata' => [
      [
        'signalGpu',
        'GLuint '
      ],
      [
        'fenceObjectCount',
        'GLsizei '
      ],
      [
        'semaphoreArray',
        'const GLuint* ',
        'fenceObjectCount'
      ],
      [
        'fenceValueArray',
        'const GLuint64 *',
        'fenceObjectCount'
      ]
    ],
    'dynlang' => {
      'fenceObjectCount' => 'LEN:semaphoreArray',
      'fenceValueArray' => 'INARRAY:fenceObjectCount',
      'semaphoreArray' => 'INARRAY:fenceObjectCount'
    },
    'feature' => 'GL_NVX_progress_fence',
    'glewImpl' => '__glewSignalSemaphoreui64NVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glSignalVkFenceNV' => {
    'argdata' => [
      [
        'vkFence',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_draw_vulkan_image',
    'glewImpl' => '__glewSignalVkFenceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSignalVkSemaphoreNV' => {
    'argdata' => [
      [
        'vkSemaphore',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_draw_vulkan_image',
    'glewImpl' => '__glewSignalVkSemaphoreNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSpecializeShader' => {
    'aliases' => {
      'glSpecializeShaderARB' => 'GL_ARB_gl_spirv'
    },
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'pEntryPoint',
        'const GLchar *'
      ],
      [
        'numSpecializationConstants',
        'GLuint '
      ],
      [
        'pConstantIndex',
        'const GLuint *',
        'numSpecializationConstants'
      ],
      [
        'pConstantValue',
        'const GLuint *',
        'numSpecializationConstants'
      ]
    ],
    'dynlang' => {
      'numSpecializationConstants' => 'LEN:pConstantIndex',
      'pConstantIndex' => 'INARRAY:numSpecializationConstants',
      'pConstantValue' => 'INARRAY:numSpecializationConstants'
    },
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewSpecializeShader',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glSpriteParameterfSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'SpriteParameterNameSGIX'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterfSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSpriteParameterfvSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'SpriteParameterNameSGIX'
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterfvSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSpriteParameteriSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'SpriteParameterNameSGIX'
      ],
      [
        'param',
        'GLint ',
        undef,
        'SpriteModeSGIX'
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameteriSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSpriteParameterivSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'SpriteParameterNameSGIX'
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)',
        'SpriteModeSGIX'
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterivSGIX',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glStartTilingQCOM' => {
    'argdata' => [
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'width',
        'GLuint '
      ],
      [
        'height',
        'GLuint '
      ],
      [
        'preserveMask',
        'GLbitfield ',
        undef,
        'BufferBitQCOM'
      ]
    ],
    'feature' => 'GL_QCOM_tiled_rendering',
    'glewImpl' => '__glewStartTilingQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStateCaptureNV' => {
    'argdata' => [
      [
        'state',
        'GLuint '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewStateCaptureNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFillPathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum ',
        undef,
        'PathFillMode'
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilFillPathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      7
    ],
    'restype' => 'void'
  },
  'glStencilFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum ',
        undef,
        'PathFillMode'
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFunc' => {
    'argdata' => [
      [
        'func',
        'GLenum ',
        undef,
        'StencilFunction'
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFuncSeparate' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'func',
        'GLenum ',
        undef,
        'StencilFunction'
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilFuncSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFuncSeparateATI' => {
    'argdata' => [
      [
        'frontfunc',
        'GLenum ',
        undef,
        'StencilFunction'
      ],
      [
        'backfunc',
        'GLenum ',
        undef,
        'StencilFunction'
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_separate_stencil',
    'glewImpl' => '__glewStencilFuncSeparateATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilMask' => {
    'argdata' => [
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilMaskSeparate' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilMaskSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOp' => {
    'argdata' => [
      [
        'fail',
        'GLenum ',
        undef,
        'StencilOp'
      ],
      [
        'zfail',
        'GLenum ',
        undef,
        'StencilOp'
      ],
      [
        'zpass',
        'GLenum ',
        undef,
        'StencilOp'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOpSeparate' => {
    'aliases' => {
      'glStencilOpSeparateATI' => 'GL_ATI_separate_stencil'
    },
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'sfail',
        'GLenum ',
        undef,
        'StencilOp'
      ],
      [
        'dpfail',
        'GLenum ',
        undef,
        'StencilOp'
      ],
      [
        'dppass',
        'GLenum ',
        undef,
        'StencilOp'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilOpSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOpValueAMD' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_AMD_stencil_operation_extended',
    'glewImpl' => '__glewStencilOpValueAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilStrokePathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      7
    ],
    'restype' => 'void'
  },
  'glStencilStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilStrokePathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilThenCoverFillPathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum ',
        undef,
        'PathFillMode'
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'InstancedPathCoverMode'
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverFillPathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      8
    ],
    'restype' => 'void'
  },
  'glStencilThenCoverFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum ',
        undef,
        'PathFillMode'
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'PathCoverMode'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilThenCoverStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum ',
        undef,
        'PathElementType'
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'InstancedPathCoverMode'
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverStrokePathInstancedNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      8
    ],
    'restype' => 'void'
  },
  'glStencilThenCoverStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum ',
        undef,
        'PathCoverMode'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverStrokePathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStereoParameterfNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_3dvision_settings',
    'glewImpl' => '__glewStereoParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStereoParameteriNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_3dvision_settings',
    'glewImpl' => '__glewStereoParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStringMarkerGREMEDY' => {
    'argdata' => [
      [
        'len',
        'GLsizei '
      ],
      [
        'string',
        'const void *',
        'len'
      ]
    ],
    'feature' => 'GL_GREMEDY_string_marker',
    'glewImpl' => '__glewStringMarkerGREMEDY',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glSubpixelPrecisionBiasNV' => {
    'argdata' => [
      [
        'xbits',
        'GLuint '
      ],
      [
        'ybits',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_conservative_raster',
    'glewImpl' => '__glewSubpixelPrecisionBiasNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSwapMPEGPredictorsSGIX' => {
    'argdata' => [
      [
        'target0',
        'GLenum '
      ],
      [
        'target1',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewSwapMPEGPredictorsSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSwizzleEXT' => {
    'argdata' => [
      [
        'res',
        'GLuint '
      ],
      [
        'in',
        'GLuint '
      ],
      [
        'outX',
        'GLenum ',
        undef,
        'VertexShaderCoordOutEXT'
      ],
      [
        'outY',
        'GLenum ',
        undef,
        'VertexShaderCoordOutEXT'
      ],
      [
        'outZ',
        'GLenum ',
        undef,
        'VertexShaderCoordOutEXT'
      ],
      [
        'outW',
        'GLenum ',
        undef,
        'VertexShaderCoordOutEXT'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewSwizzleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSyncTextureINTEL' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_LAYOUT_LINEAR_INTEL',
    'glewImpl' => '__glewSyncTextureINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTagSampleBufferSGIX' => {
    'feature' => 'GL_SGIX_tag_sample_buffer',
    'glewImpl' => '__glewTagSampleBufferSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTangentPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TangentPointerTypeEXT'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_coordinate_frame',
    'glewImpl' => '__glewTangentPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTbufferMask3DFX' => {
    'argdata' => [
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_3DFX_tbuffer',
    'glewImpl' => '__glewTbufferMask3DFX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTessellationFactorAMD' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_AMD_vertex_shader_tessellator',
    'glewImpl' => '__glewTessellationFactorAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTessellationModeAMD' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_AMD_vertex_shader_tessellator',
    'glewImpl' => '__glewTessellationModeAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTestFenceAPPLE' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewTestFenceAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glTestFenceNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewTestFenceNV',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glTestObjectAPPLE' => {
    'argdata' => [
      [
        'object',
        'GLenum ',
        undef,
        'ObjectTypeAPPLE'
      ],
      [
        'name',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewTestObjectAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glTexAttachMemoryNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewTexAttachMemoryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBuffer' => {
    'aliases' => {
      'glTexBufferARB' => 'GL_ARB_texture_buffer_object',
      'glTexBufferEXT' => 'GL_EXT_texture_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewTexBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_texture_buffer',
    'glewImpl' => '__glewTexBufferOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBufferRange' => {
    'aliases' => {
      'glTexBufferRangeEXT' => undef
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_texture_buffer_range',
    'glewImpl' => '__glewTexBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBufferRangeOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_OES_texture_buffer',
    'glewImpl' => '__glewTexBufferRangeOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBumpParameterfvATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'TexBumpParameterATI'
      ],
      [
        'param',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewTexBumpParameterfvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexBumpParameterivATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'TexBumpParameterATI'
      ],
      [
        'param',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewTexBumpParameterivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexCoord1d' => {
    'argdata' => [
      [
        's',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord1f' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord1hNV' => {
    'argdata' => [
      [
        's',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord1hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:1'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord1hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord1i' => {
    'argdata' => [
      [
        's',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord1s' => {
    'argdata' => [
      [
        's',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:1'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord2d' => {
    'argdata' => [
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord2f' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fColor3fVertex3fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fColor3fVertex3fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '2'
      ],
      [
        'c',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:3',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glTexCoord2fColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'a',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fColor4fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '2'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'n' => 'INARRAY:3',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glTexCoord2fColor4ubVertex3fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLubyte '
      ],
      [
        'g',
        'GLubyte '
      ],
      [
        'b',
        'GLubyte '
      ],
      [
        'a',
        'GLubyte '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4ubVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fColor4ubVertex3fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '2'
      ],
      [
        'c',
        'const GLubyte *',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glTexCoord2fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fNormal3fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fNormal3fVertex3fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '2'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'n' => 'INARRAY:3',
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2
    ],
    'restype' => 'void'
  },
  'glTexCoord2fVertex3fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2fVertex3fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '2'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'tc' => 'INARRAY:2',
      'v' => 'INARRAY:3'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fVertex3fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glTexCoord2fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord2hNV' => {
    'argdata' => [
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord2hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord2hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord2i' => {
    'argdata' => [
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord2s' => {
    'argdata' => [
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord2sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord3d' => {
    'argdata' => [
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord3dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord3f' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord3hNV' => {
    'argdata' => [
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord3hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord3i' => {
    'argdata' => [
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ],
      [
        'r',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord3iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord3s' => {
    'argdata' => [
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ],
      [
        'r',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord3sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord4d' => {
    'argdata' => [
      [
        's',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ],
      [
        'q',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord4f' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'q',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4fColor4fNormal3fVertex4fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'p',
        'GLfloat '
      ],
      [
        'q',
        'GLfloat '
      ],
      [
        'r',
        'GLfloat '
      ],
      [
        'g',
        'GLfloat '
      ],
      [
        'b',
        'GLfloat '
      ],
      [
        'a',
        'GLfloat '
      ],
      [
        'nx',
        'GLfloat '
      ],
      [
        'ny',
        'GLfloat '
      ],
      [
        'nz',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fColor4fNormal3fVertex4fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4fColor4fNormal3fVertex4fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '4'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'dynlang' => {
      'c' => 'INARRAY:4',
      'n' => 'INARRAY:3',
      'tc' => 'INARRAY:4',
      'v' => 'INARRAY:4'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fColor4fNormal3fVertex4fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1,
      2,
      3
    ],
    'restype' => 'void'
  },
  'glTexCoord4fVertex4fSUN' => {
    'argdata' => [
      [
        's',
        'GLfloat '
      ],
      [
        't',
        'GLfloat '
      ],
      [
        'p',
        'GLfloat '
      ],
      [
        'q',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fVertex4fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4fVertex4fvSUN' => {
    'argdata' => [
      [
        'tc',
        'const GLfloat* ',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'dynlang' => {
      'tc' => 'INARRAY:4',
      'v' => 'INARRAY:4'
    },
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fVertex4fvSUN',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glTexCoord4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord4hNV' => {
    'argdata' => [
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ],
      [
        'q',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord4i' => {
    'argdata' => [
      [
        's',
        'GLint '
      ],
      [
        't',
        'GLint '
      ],
      [
        'r',
        'GLint '
      ],
      [
        'q',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoord4s' => {
    'argdata' => [
      [
        's',
        'GLshort '
      ],
      [
        't',
        'GLshort '
      ],
      [
        'r',
        'GLshort '
      ],
      [
        'q',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord4sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glTexCoordFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewTexCoordFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP1ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP1uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexCoordP2ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP2uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexCoordP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexCoordP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTexCoordPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTexCoordPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewTexCoordPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glTexCoordPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewTexCoordPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTexCoordPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewTexCoordPointervINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexEnvf' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnvfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexEnvi' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnviv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexEnvx' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexEnvx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnvxv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureEnvTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureEnvParameter'
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureEnvParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexEnvxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexEstimateMotionQCOM' => {
    'argdata' => [
      [
        'ref',
        'GLuint '
      ],
      [
        'target',
        'GLuint '
      ],
      [
        'output',
        'GLuint '
      ]
    ],
    'feature' => 'GL_QCOM_motion_estimation',
    'glewImpl' => '__glewTexEstimateMotionQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEstimateMotionRegionsQCOM' => {
    'argdata' => [
      [
        'ref',
        'GLuint '
      ],
      [
        'target',
        'GLuint '
      ],
      [
        'output',
        'GLuint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_QCOM_motion_estimation',
    'glewImpl' => '__glewTexEstimateMotionRegionsQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexFilterFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'filter',
        'GLenum ',
        undef,
        'TextureFilterSGIS'
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'weights',
        'const GLfloat* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-2',
      'weights' => 'VARARGS:2:n'
    },
    'feature' => 'GL_SGIS_texture_filter4',
    'glewImpl' => '__glewTexFilterFuncSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTexGend' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGendv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexGenf' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGenfOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGenfOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGenfv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexGenfvOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGenfvOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexGeni' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGeniOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGeniOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGeniv' => {
    'argdata' => [
      [
        'coord',
        'GLenum ',
        undef,
        'TextureCoordName'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureGenParameter'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'params' => 'SIZE:TextureGenParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexGenivOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGenivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexGenxOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGenxOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGenxvOES' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfixed* '
      ]
    ],
    'feature' => 'GL_OES_texture_cube_map',
    'glewImpl' => '__glewTexGenxvOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexImage1D' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glTexImage2D' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glTexImage2DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewTexImage2DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage2DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTexImage2DMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage3D' => {
    'aliases' => {
      'glTexImage3DEXT' => 'GL_EXT_texture3D'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewTexImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glTexImage3DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewTexImage3DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage3DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTexImage3DMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage3DNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewTexImage3DNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glTexImage3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewTexImage3DOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glTexImage4DSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'size4d',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth,size4d)'
      ]
    ],
    'feature' => 'GL_SGIS_texture4D',
    'glewImpl' => '__glewTexImage4DSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTexPageCommitmentARB' => {
    'aliases' => {
      'glTexPageCommitmentEXT' => 'GL_EXT_sparse_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_sparse_texture',
    'glewImpl' => '__glewTexPageCommitmentARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexPageCommitmentMemNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_memory_object_sparse',
    'glewImpl' => '__glewTexPageCommitmentMemNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameterIiv' => {
    'aliases' => {
      'glTexParameterIivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTexParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameterIivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewTexParameterIivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameterIuiv' => {
    'aliases' => {
      'glTexParameterIuivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTexParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameterIuivOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_OES_texture_border_clamp',
    'glewImpl' => '__glewTexParameterIuivOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameterf' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameteri' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexParameterx' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexParameterx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameterxv' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'GetTextureParameter'
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:GetTextureParameter:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewTexParameterxv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTexRenderbufferNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_explicit_multisample',
    'glewImpl' => '__glewTexRenderbufferNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexScissorFuncINTEL' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'lfunc',
        'GLenum '
      ],
      [
        'hfunc',
        'GLenum '
      ]
    ],
    'feature' => 'GL_INTEL_texture_scissor',
    'glewImpl' => '__glewTexScissorFuncINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexScissorINTEL' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'tlow',
        'GLclampf '
      ],
      [
        'thigh',
        'GLclampf '
      ]
    ],
    'feature' => 'GL_INTEL_texture_scissor',
    'glewImpl' => '__glewTexScissorINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage1D' => {
    'aliases' => {
      'glTexStorage1DEXT' => 'GL_EXT_texture_storage'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage2D' => {
    'aliases' => {
      'glTexStorage2DEXT' => 'GL_EXT_texture_storage'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage2DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage_multisample',
    'glewImpl' => '__glewTexStorage2DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage3D' => {
    'aliases' => {
      'glTexStorage3DEXT' => 'GL_EXT_texture_storage'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage3DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage_multisample',
    'glewImpl' => '__glewTexStorage3DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage3DMultisampleOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_OES_texture_storage_multisample_2d_array',
    'glewImpl' => '__glewTexStorage3DMultisampleOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageAttribs2DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'attrib_list',
        'const GLint* ',
        undef,
        'TexStorageAttribs'
      ]
    ],
    'feature' => 'GL_EXT_texture_storage_compression',
    'glewImpl' => '__glewTexStorageAttribs2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glTexStorageAttribs3DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'attrib_list',
        'const GLint* ',
        undef,
        'TexStorageAttribs'
      ]
    ],
    'feature' => 'GL_EXT_texture_storage_compression',
    'glewImpl' => '__glewTexStorageAttribs3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glTexStorageMem1DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem2DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem2DMultisampleEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem2DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem3DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem3DMultisampleEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem3DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageSparseAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'layers',
        'GLsizei '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'TextureStorageMaskAMD'
      ]
    ],
    'feature' => 'GL_AMD_sparse_texture',
    'glewImpl' => '__glewTexStorageSparseAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexSubImage1D' => {
    'aliases' => {
      'glTexSubImage1DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glTexSubImage2D' => {
    'aliases' => {
      'glTexSubImage2DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glTexSubImage3D' => {
    'aliases' => {
      'glTexSubImage3DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewTexSubImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTexSubImage3DNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_NV_texture_array',
    'glewImpl' => '__glewTexSubImage3DNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTexSubImage3DOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_OES_texture_3D',
    'glewImpl' => '__glewTexSubImage3DOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTexSubImage4DSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'woffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'size4d',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth,size4d)'
      ]
    ],
    'feature' => 'GL_SGIS_texture4D',
    'glewImpl' => '__glewTexSubImage4DSGIS',
    'glewtype' => 'fun',
    'ptr_args' => [
      12
    ],
    'restype' => 'void'
  },
  'glTextureAttachMemoryNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_memory_attachment',
    'glewImpl' => '__glewTextureAttachMemoryNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBarrier' => {
    'feature' => 'GL_ARB_texture_barrier',
    'glewImpl' => '__glewTextureBarrier',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBarrierNV' => {
    'feature' => 'GL_NV_texture_barrier',
    'glewImpl' => '__glewTextureBarrierNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBuffer' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferRange' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferRangeEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_texture_buffer_range',
    'glewImpl' => '__glewTextureBufferRangeEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureFogSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_fog_texture',
    'glewImpl' => '__glewTextureFogSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureFoveationParametersQCOM' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'layer',
        'GLuint '
      ],
      [
        'focalPoint',
        'GLuint '
      ],
      [
        'focalX',
        'GLfloat '
      ],
      [
        'focalY',
        'GLfloat '
      ],
      [
        'gainX',
        'GLfloat '
      ],
      [
        'gainY',
        'GLfloat '
      ],
      [
        'foveaArea',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_QCOM_texture_foveated',
    'glewImpl' => '__glewTextureFoveationParametersQCOM',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glTextureImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glTextureImage2DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage2DMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage2DMultisampleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage2DMultisampleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTextureImage3DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage3DMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage3DMultisampleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint ',
        undef,
        'InternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage3DMultisampleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureLightEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'LightTexturePNameEXT'
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewTextureLightEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureMaterialEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum ',
        undef,
        'TriangleFace'
      ],
      [
        'mode',
        'GLenum ',
        undef,
        'MaterialParameter'
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewTextureMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureNormalEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum ',
        undef,
        'TextureNormalModeEXT'
      ]
    ],
    'feature' => 'GL_EXT_texture_perturb_normal',
    'glewImpl' => '__glewTextureNormalEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexturePageCommitmentEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTexturePageCommitmentEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexturePageCommitmentMemNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_memory_object_sparse',
    'glewImpl' => '__glewTexturePageCommitmentMemNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterIiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterIiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTextureParameterIivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterIivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTextureParameterIuiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterIuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTextureParameterIuivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterIuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTextureParameterf' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterfEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTextureParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTextureParameteri' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameteriEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'param' => 'SIZE:TextureParameterName:pname,VARARGS:2:pname_count'
    },
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameteriv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTextureParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'pname',
        'GLenum ',
        undef,
        'TextureParameterName'
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'dynlang' => {
      'params' => 'SIZE:TextureParameterName:pname,VARARGS:3:pname_count'
    },
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTextureRangeAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_APPLE_texture_range',
    'glewImpl' => '__glewTextureRangeAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTextureRenderbufferEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_texture_storage',
    'glewImpl' => '__glewTextureStorage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_texture_storage',
    'glewImpl' => '__glewTextureStorage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2DMultisample' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage2DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2DMultisampleEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage_multisample',
    'glewImpl' => '__glewTextureStorage2DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_texture_storage',
    'glewImpl' => '__glewTextureStorage3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage3DMultisample' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage3DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage3DMultisampleEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage_multisample',
    'glewImpl' => '__glewTextureStorage3DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageMem1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTextureStorageMem1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageMem2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTextureStorageMem2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageMem2DMultisampleEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTextureStorageMem2DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageMem3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTextureStorageMem3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageMem3DMultisampleEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTextureStorageMem3DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorageSparseAMD' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'internalFormat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'layers',
        'GLsizei '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'TextureStorageMaskAMD'
      ]
    ],
    'feature' => 'GL_AMD_sparse_texture',
    'glewImpl' => '__glewTextureStorageSparseAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureSubImage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage1D',
    'glewtype' => 'fun',
    'ptr_args' => [
      6
    ],
    'restype' => 'void'
  },
  'glTextureSubImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage1DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      7
    ],
    'restype' => 'void'
  },
  'glTextureSubImage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage2D',
    'glewtype' => 'fun',
    'ptr_args' => [
      8
    ],
    'restype' => 'void'
  },
  'glTextureSubImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage2DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      9
    ],
    'restype' => 'void'
  },
  'glTextureSubImage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage3D',
    'glewtype' => 'fun',
    'ptr_args' => [
      10
    ],
    'restype' => 'void'
  },
  'glTextureSubImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum ',
        undef,
        'PixelFormat'
      ],
      [
        'type',
        'GLenum ',
        undef,
        'PixelType'
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage3DEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      11
    ],
    'restype' => 'void'
  },
  'glTextureView' => {
    'aliases' => {
      'glTextureViewEXT' => 'GL_EXT_texture_view'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum ',
        undef,
        'TextureTarget'
      ],
      [
        'origtexture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum ',
        undef,
        'SizedInternalFormat'
      ],
      [
        'minlevel',
        'GLuint '
      ],
      [
        'numlevels',
        'GLuint '
      ],
      [
        'minlayer',
        'GLuint '
      ],
      [
        'numlayers',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_texture_view',
    'glewImpl' => '__glewTextureView',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureViewOES' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'origtexture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'minlevel',
        'GLuint '
      ],
      [
        'numlevels',
        'GLuint '
      ],
      [
        'minlayer',
        'GLuint '
      ],
      [
        'numlayers',
        'GLuint '
      ]
    ],
    'feature' => 'GL_OES_texture_view',
    'glewImpl' => '__glewTextureViewOES',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTrackMatrixNV' => {
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'address',
        'GLuint '
      ],
      [
        'matrix',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'transform',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewTrackMatrixNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTransformFeedbackAttribsNV' => {
    'argdata' => [
      [
        'count',
        'GLuint '
      ],
      [
        'attribs',
        'const GLint *',
        'COMPSIZE(count)'
      ],
      [
        'bufferMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewTransformFeedbackAttribsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glTransformFeedbackBufferBase' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTransformFeedbackBufferBase',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTransformFeedbackBufferRange' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTransformFeedbackBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTransformFeedbackVaryings' => {
    'aliases' => {
      'glTransformFeedbackVaryingsEXT' => 'GL_EXT_transform_feedback'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'varyings',
        'const GLchar *const* ',
        'count'
      ],
      [
        'bufferMode',
        'GLenum ',
        undef,
        'TransformFeedbackBufferMode'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'varyings' => 'VARARGS:2:count'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTransformFeedbackVaryings',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTransformFeedbackVaryingsNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'locations',
        'const GLint *',
        'count',
        'TransformFeedbackTokenNV'
      ],
      [
        'bufferMode',
        'GLenum ',
        undef,
        'TransformFeedbackBufferMode'
      ]
    ],
    'dynlang' => {
      'count' => 'items-2',
      'locations' => 'VARARGS:2:count'
    },
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewTransformFeedbackVaryingsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glTransformPathNV' => {
    'argdata' => [
      [
        'resultPath',
        'GLuint '
      ],
      [
        'srcPath',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum ',
        undef,
        'PathTransformType'
      ],
      [
        'transformValues',
        'const GLfloat* ',
        'COMPSIZE(transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewTransformPathNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glTranslated' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTranslatef' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTranslatex' => {
    'argdata' => [
      [
        'x',
        'GLfixed '
      ],
      [
        'y',
        'GLfixed '
      ],
      [
        'z',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTranslatex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1d' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform1d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform1dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1f' => {
    'aliases' => {
      'glUniform1fARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1fv' => {
    'aliases' => {
      'glUniform1fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1i' => {
    'aliases' => {
      'glUniform1iARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1i64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1i64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1i64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1iv' => {
    'aliases' => {
      'glUniform1ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1ui' => {
    'aliases' => {
      'glUniform1uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1ui64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1ui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform1ui64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform1uiv' => {
    'aliases' => {
      'glUniform1uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2d' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2f' => {
    'aliases' => {
      'glUniform2fARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLfloat '
      ],
      [
        'v1',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2fv' => {
    'aliases' => {
      'glUniform2fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2i' => {
    'aliases' => {
      'glUniform2iARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2i64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2i64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2i64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2iv' => {
    'aliases' => {
      'glUniform2ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2ui' => {
    'aliases' => {
      'glUniform2uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2ui64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2ui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform2ui64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform2uiv' => {
    'aliases' => {
      'glUniform2uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3d' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3f' => {
    'aliases' => {
      'glUniform3fARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLfloat '
      ],
      [
        'v1',
        'GLfloat '
      ],
      [
        'v2',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3fv' => {
    'aliases' => {
      'glUniform3fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3i' => {
    'aliases' => {
      'glUniform3iARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ],
      [
        'v2',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3i64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ],
      [
        'z',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3i64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3i64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3iv' => {
    'aliases' => {
      'glUniform3ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3ui' => {
    'aliases' => {
      'glUniform3uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ],
      [
        'v2',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3ui64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ],
      [
        'z',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3ui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform3ui64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform3uiv' => {
    'aliases' => {
      'glUniform3uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4d' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform4d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4f' => {
    'aliases' => {
      'glUniform4fARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLfloat '
      ],
      [
        'v1',
        'GLfloat '
      ],
      [
        'v2',
        'GLfloat '
      ],
      [
        'v3',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4fv' => {
    'aliases' => {
      'glUniform4fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4i' => {
    'aliases' => {
      'glUniform4iARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ],
      [
        'v2',
        'GLint '
      ],
      [
        'v3',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4i64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64 '
      ],
      [
        'y',
        'GLint64 '
      ],
      [
        'z',
        'GLint64 '
      ],
      [
        'w',
        'GLint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4i64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4i64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ],
      [
        'w',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4i64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4i64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4iv' => {
    'aliases' => {
      'glUniform4ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4ui' => {
    'aliases' => {
      'glUniform4uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ],
      [
        'v2',
        'GLuint '
      ],
      [
        'v3',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4ui64ARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64 '
      ],
      [
        'y',
        'GLuint64 '
      ],
      [
        'z',
        'GLuint64 '
      ],
      [
        'w',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4ui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ],
      [
        'w',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniform4ui64vARB' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniform4uiv' => {
    'aliases' => {
      'glUniform4uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniformBlockBinding' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockIndex',
        'GLuint '
      ],
      [
        'uniformBlockBinding',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewUniformBlockBinding',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniformBufferEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_bindable_uniform',
    'glewImpl' => '__glewUniformBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniformHandleui64ARB' => {
    'aliases' => {
      'glUniformHandleui64IMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniformHandleui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniformHandleui64vARB' => {
    'aliases' => {
      'glUniformHandleui64vIMG' => 'GL_IMG_bindless_texture'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'value' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniformHandleui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'value' => 'VARARGS:1:count'
    },
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2fv' => {
    'aliases' => {
      'glUniformMatrix2fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2x3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*6'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2x3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2x3fv' => {
    'aliases' => {
      'glUniformMatrix2x3fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*6'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix2x3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2x4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*8'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2x4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix2x4fv' => {
    'aliases' => {
      'glUniformMatrix2x4fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*8'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix2x4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*9'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*9'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3fv' => {
    'aliases' => {
      'glUniformMatrix3fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*9'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*9'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3x2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*6'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3x2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3x2fv' => {
    'aliases' => {
      'glUniformMatrix3x2fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*6'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*6'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix3x2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3x4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*12'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3x4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix3x4fv' => {
    'aliases' => {
      'glUniformMatrix3x4fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*12'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix3x4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*16'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*16'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4fv' => {
    'aliases' => {
      'glUniformMatrix4fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*16'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*16'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4x2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*8'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4x2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4x2fv' => {
    'aliases' => {
      'glUniformMatrix4x2fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*8'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*8'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix4x2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4x3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*12'
    },
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4x3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformMatrix4x3fv' => {
    'aliases' => {
      'glUniformMatrix4x3fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*12'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:count*12'
    },
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix4x3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUniformSubroutinesuiv' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum ',
        undef,
        'ShaderType'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'indices',
        'const GLuint* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'indices' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewUniformSubroutinesuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUniformui64NV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'value',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewUniformui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUniformui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:2:count*1'
    },
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewUniformui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glUnlockArraysEXT' => {
    'feature' => 'GL_EXT_compiled_vertex_array',
    'glewImpl' => '__glewUnlockArraysEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUnmapBuffer' => {
    'aliases' => {
      'glUnmapBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum ',
        undef,
        'BufferTargetARB'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewUnmapBuffer',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glUnmapBufferOES' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_OES_mapbuffer',
    'glewImpl' => '__glewUnmapBufferOES',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glUnmapNamedBuffer' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewUnmapNamedBuffer',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glUnmapNamedBufferEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewUnmapNamedBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glUnmapObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_map_object_buffer',
    'glewImpl' => '__glewUnmapObjectBufferATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUnmapTexture2DINTEL' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_LAYOUT_LINEAR_INTEL',
    'glewImpl' => '__glewUnmapTexture2DINTEL',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUpdateObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'size'
      ],
      [
        'preserve',
        'GLenum ',
        undef,
        'PreserveModeATI'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewUpdateObjectBufferATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glUploadGpuMaskNVX' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_NVX_gpu_multicast2',
    'glewImpl' => '__glewUploadGpuMaskNVX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUseProgram' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUseProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUseProgramObjectARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewUseProgramObjectARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUseProgramStages' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'stages',
        'GLbitfield ',
        undef,
        'UseProgramStageMask'
      ],
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewUseProgramStages',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUseShaderProgramEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_separate_shader_objects',
    'glewImpl' => '__glewUseShaderProgramEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVDPAUFiniNV' => {
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUFiniNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVDPAUGetSurfaceivNV' => {
    'argdata' => [
      [
        'surface',
        'GLvdpauSurfaceNV '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* '
      ],
      [
        'values',
        'GLint *',
        'count'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUGetSurfaceivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4
    ],
    'restype' => 'void'
  },
  'glVDPAUInitNV' => {
    'argdata' => [
      [
        'vdpDevice',
        'const void* '
      ],
      [
        'getProcAddress',
        'const void*'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUInitNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      1
    ],
    'restype' => 'void'
  },
  'glVDPAUIsSurfaceNV' => {
    'argdata' => [
      [
        'surface',
        'GLvdpauSurfaceNV '
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUIsSurfaceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVDPAUMapSurfacesNV' => {
    'argdata' => [
      [
        'numSurfaces',
        'GLsizei '
      ],
      [
        'surfaces',
        'const GLvdpauSurfaceNV* ',
        'numSurfaces'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUMapSurfacesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVDPAURegisterOutputSurfaceNV' => {
    'argdata' => [
      [
        'vdpSurface',
        'const void* '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'numTextureNames',
        'GLsizei '
      ],
      [
        'textureNames',
        'const GLuint *',
        'numTextureNames'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAURegisterOutputSurfaceNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      3
    ],
    'restype' => 'GLvdpauSurfaceNV'
  },
  'glVDPAURegisterVideoSurfaceNV' => {
    'argdata' => [
      [
        'vdpSurface',
        'const void* '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'numTextureNames',
        'GLsizei '
      ],
      [
        'textureNames',
        'const GLuint *',
        'numTextureNames'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAURegisterVideoSurfaceNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      3
    ],
    'restype' => 'GLvdpauSurfaceNV'
  },
  'glVDPAURegisterVideoSurfaceWithPictureStructureNV' => {
    'argdata' => [
      [
        'vdpSurface',
        'const void *'
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'numTextureNames',
        'GLsizei '
      ],
      [
        'textureNames',
        'const GLuint *',
        'numTextureNames'
      ],
      [
        'isFrameStructure',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop2',
    'glewImpl' => '__glewVDPAURegisterVideoSurfaceWithPictureStructureNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0,
      3
    ],
    'restype' => 'GLvdpauSurfaceNV'
  },
  'glVDPAUSurfaceAccessNV' => {
    'argdata' => [
      [
        'surface',
        'GLvdpauSurfaceNV '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUSurfaceAccessNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVDPAUUnmapSurfacesNV' => {
    'argdata' => [
      [
        'numSurface',
        'GLsizei '
      ],
      [
        'surfaces',
        'const GLvdpauSurfaceNV* ',
        'numSurface'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUUnmapSurfacesNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVDPAUUnregisterSurfaceNV' => {
    'argdata' => [
      [
        'surface',
        'GLvdpauSurfaceNV '
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUUnregisterSurfaceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glValidateProgram' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewValidateProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glValidateProgramARB' => {
    'argdata' => [
      [
        'programObj',
        'GLhandleARB '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewValidateProgramARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glValidateProgramPipeline' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewValidateProgramPipeline',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVariantArrayObjectATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ScalarType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewVariantArrayObjectATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVariantPointerEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ScalarType'
      ],
      [
        'stride',
        'GLuint '
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVariantbvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLbyte *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantbvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantdvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLdouble *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantdvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantfvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantivEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantsvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLshort *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantsvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantubvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLubyte *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantubvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantuivEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLuint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantuivEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVariantusvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLushort *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantusvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVectorOperationSGIX' => {
    'argdata' => [
      [
        'operation',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_vector_ops',
    'glewImpl' => '__glewVectorOperationSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex2f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex2hNV' => {
    'argdata' => [
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex2hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex2hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex2i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex2s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex2sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex3d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex3dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex3f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex3hNV' => {
    'argdata' => [
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ],
      [
        'z',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex3hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex3i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex3iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex3s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex3sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex4d' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex4dv' => {
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex4f' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex4hNV' => {
    'argdata' => [
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ],
      [
        'z',
        'GLhalf '
      ],
      [
        'w',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex4hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex4i' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex4iv' => {
    'argdata' => [
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertex4s' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertex4sv' => {
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertexArrayAttribBinding' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayAttribBinding',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayAttribFormat' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayAttribFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayAttribIFormat' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribIType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayAttribIFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayAttribLFormat' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayAttribLFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayBindVertexBufferEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayBindVertexBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayBindingDivisor' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'divisor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayBindingDivisor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayColorOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayColorOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayEdgeFlagOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayEdgeFlagOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayElementBuffer' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayElementBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayFogCoordOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'FogCoordinatePointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayFogCoordOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayIndexOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'IndexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayIndexOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayMultiTexCoordOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'texunit',
        'GLenum '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayMultiTexCoordOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayNormalOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'NormalPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayNormalOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayParameteriAPPLE' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'VertexArrayPNameAPPLE'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_APPLE_vertex_array_range',
    'glewImpl' => '__glewVertexArrayParameteriAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayRangeAPPLE' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_APPLE_vertex_array_range',
    'glewImpl' => '__glewVertexArrayRangeAPPLE',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexArrayRangeNV' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_NV_vertex_array_range',
    'glewImpl' => '__glewVertexArrayRangeNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexArraySecondaryColorOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'ColorPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArraySecondaryColorOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayTexCoordOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'TexCoordPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayTexCoordOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribBindingEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayVertexAttribBindingEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribDivisorEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'divisor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexAttribDivisorEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribFormatEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayVertexAttribFormatEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribIFormatEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribIType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayVertexAttribIFormatEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribIOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexAttribIOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribLFormatEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayVertexAttribLFormatEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribLOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexArrayVertexAttribLOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexAttribOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexAttribOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexBindingDivisorEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'divisor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexArrayVertexBindingDivisorEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexBuffer' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayVertexBuffers' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'count'
      ],
      [
        'offsets',
        'const GLintptr *',
        'count'
      ],
      [
        'strides',
        'const GLsizei *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexBuffers',
    'glewtype' => 'fun',
    'ptr_args' => [
      3,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glVertexArrayVertexOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayVertexOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib1d' => {
    'aliases' => {
      'glVertexAttrib1dARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1dNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib1dv' => {
    'aliases' => {
      'glVertexAttrib1dvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1dvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib1f' => {
    'aliases' => {
      'glVertexAttrib1fARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1fNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib1fv' => {
    'aliases' => {
      'glVertexAttrib1fvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1fvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib1hNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib1hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib1hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLhalf* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib1hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib1s' => {
    'aliases' => {
      'glVertexAttrib1sARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1sNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLshort '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib1sv' => {
    'aliases' => {
      'glVertexAttrib1svARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib1svNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib2d' => {
    'aliases' => {
      'glVertexAttrib2dARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2dNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib2dv' => {
    'aliases' => {
      'glVertexAttrib2dvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2dvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib2f' => {
    'aliases' => {
      'glVertexAttrib2fARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2fNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib2fv' => {
    'aliases' => {
      'glVertexAttrib2fvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2fvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib2hNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib2hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib2hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLhalf* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib2hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib2s' => {
    'aliases' => {
      'glVertexAttrib2sARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2sNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib2sv' => {
    'aliases' => {
      'glVertexAttrib2svARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib2svNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib3d' => {
    'aliases' => {
      'glVertexAttrib3dARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3dNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib3dv' => {
    'aliases' => {
      'glVertexAttrib3dvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3dvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib3f' => {
    'aliases' => {
      'glVertexAttrib3fARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3fNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib3fv' => {
    'aliases' => {
      'glVertexAttrib3fvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3fvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib3hNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ],
      [
        'z',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib3hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib3s' => {
    'aliases' => {
      'glVertexAttrib3sARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3sNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib3sv' => {
    'aliases' => {
      'glVertexAttrib3svARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib3svNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Nbv' => {
    'aliases' => {
      'glVertexAttrib4NbvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nbv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Niv' => {
    'aliases' => {
      'glVertexAttrib4NivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Niv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Nsv' => {
    'aliases' => {
      'glVertexAttrib4NsvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nsv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Nub' => {
    'aliases' => {
      'glVertexAttrib4NubARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4ubNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLubyte '
      ],
      [
        'y',
        'GLubyte '
      ],
      [
        'z',
        'GLubyte '
      ],
      [
        'w',
        'GLubyte '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nub',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib4Nubv' => {
    'aliases' => {
      'glVertexAttrib4NubvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4ubvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLubyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Nuiv' => {
    'aliases' => {
      'glVertexAttrib4NuivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nuiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4Nusv' => {
    'aliases' => {
      'glVertexAttrib4NusvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nusv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4bv' => {
    'aliases' => {
      'glVertexAttrib4bvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4bv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4d' => {
    'aliases' => {
      'glVertexAttrib4dARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4dNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib4dv' => {
    'aliases' => {
      'glVertexAttrib4dvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4dvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4f' => {
    'aliases' => {
      'glVertexAttrib4fARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4fNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib4fv' => {
    'aliases' => {
      'glVertexAttrib4fvARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4fvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4hNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLhalf '
      ],
      [
        'y',
        'GLhalf '
      ],
      [
        'z',
        'GLhalf '
      ],
      [
        'w',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib4hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4iv' => {
    'aliases' => {
      'glVertexAttrib4ivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4s' => {
    'aliases' => {
      'glVertexAttrib4sARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4sNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttrib4sv' => {
    'aliases' => {
      'glVertexAttrib4svARB' => 'GL_ARB_vertex_program',
      'glVertexAttrib4svNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4ubv' => {
    'aliases' => {
      'glVertexAttrib4ubvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLubyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4ubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4uiv' => {
    'aliases' => {
      'glVertexAttrib4uivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttrib4usv' => {
    'aliases' => {
      'glVertexAttrib4usvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4usv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribArrayObjectATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_attrib_array_object',
    'glewImpl' => '__glewVertexAttribArrayObjectATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribBinding' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'bindingindex',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribBinding',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribDivisor' => {
    'aliases' => {
      'glVertexAttribDivisorANGLE' => 'GL_ANGLE_instanced_arrays',
      'glVertexAttribDivisorARB' => 'GL_ARB_instanced_arrays',
      'glVertexAttribDivisorEXT' => 'GL_EXT_instanced_arrays',
      'glVertexAttribDivisorNV' => 'GL_NV_instanced_arrays'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'divisor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_3',
    'glewImpl' => '__glewVertexAttribDivisor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribFormat' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewVertexAttribFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI1i' => {
    'aliases' => {
      'glVertexAttribI1iEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI1iv' => {
    'aliases' => {
      'glVertexAttribI1ivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI1ui' => {
    'aliases' => {
      'glVertexAttribI1uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI1uiv' => {
    'aliases' => {
      'glVertexAttribI1uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI2i' => {
    'aliases' => {
      'glVertexAttribI2iEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI2iv' => {
    'aliases' => {
      'glVertexAttribI2ivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI2ui' => {
    'aliases' => {
      'glVertexAttribI2uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI2uiv' => {
    'aliases' => {
      'glVertexAttribI2uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI3i' => {
    'aliases' => {
      'glVertexAttribI3iEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ],
      [
        'v2',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI3iv' => {
    'aliases' => {
      'glVertexAttribI3ivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI3ui' => {
    'aliases' => {
      'glVertexAttribI3uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ],
      [
        'v2',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI3uiv' => {
    'aliases' => {
      'glVertexAttribI3uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4bv' => {
    'aliases' => {
      'glVertexAttribI4bvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4bv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4i' => {
    'aliases' => {
      'glVertexAttribI4iEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLint '
      ],
      [
        'v1',
        'GLint '
      ],
      [
        'v2',
        'GLint '
      ],
      [
        'v3',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI4iv' => {
    'aliases' => {
      'glVertexAttribI4ivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4sv' => {
    'aliases' => {
      'glVertexAttribI4svEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4ubv' => {
    'aliases' => {
      'glVertexAttribI4ubvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLubyte* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4ubv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4ui' => {
    'aliases' => {
      'glVertexAttribI4uiEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v0',
        'GLuint '
      ],
      [
        'v1',
        'GLuint '
      ],
      [
        'v2',
        'GLuint '
      ],
      [
        'v3',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribI4uiv' => {
    'aliases' => {
      'glVertexAttribI4uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribI4usv' => {
    'aliases' => {
      'glVertexAttribI4usvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4usv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribIFormat' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribIType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribIFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribIFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribIType'
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewVertexAttribIFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribIPointer' => {
    'aliases' => {
      'glVertexAttribIPointerEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribIType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void*'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribIPointer',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glVertexAttribL1d' => {
    'aliases' => {
      'glVertexAttribL1dEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL1d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL1dv' => {
    'aliases' => {
      'glVertexAttribL1dvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL1dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL1i64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL1i64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint64EXT* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL1ui64ARB' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewVertexAttribL1ui64ARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL1ui64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL1ui64vARB' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewVertexAttribL1ui64vARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL1ui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* ',
        '1'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:1'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL2d' => {
    'aliases' => {
      'glVertexAttribL2dEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL2dv' => {
    'aliases' => {
      'glVertexAttribL2dvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL2i64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL2i64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint64EXT* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL2ui64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL2ui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* ',
        '2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:2'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL3d' => {
    'aliases' => {
      'glVertexAttribL3dEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL3dv' => {
    'aliases' => {
      'glVertexAttribL3dvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL3i64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL3i64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint64EXT* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL3ui64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL3ui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* ',
        '3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:3'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL4d' => {
    'aliases' => {
      'glVertexAttribL4dEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL4d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL4dv' => {
    'aliases' => {
      'glVertexAttribL4dvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL4dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL4i64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLint64EXT '
      ],
      [
        'y',
        'GLint64EXT '
      ],
      [
        'z',
        'GLint64EXT '
      ],
      [
        'w',
        'GLint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4i64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL4i64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint64EXT* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4i64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribL4ui64NV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLuint64EXT '
      ],
      [
        'y',
        'GLuint64EXT '
      ],
      [
        'z',
        'GLuint64EXT '
      ],
      [
        'w',
        'GLuint64EXT '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4ui64NV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribL4ui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4ui64vNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexAttribLFormat' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribLFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribLFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribLFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribLPointer' => {
    'aliases' => {
      'glVertexAttribLPointerEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribLType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void* '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribLPointer',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glVertexAttribP1ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribP1uiv' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP1uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexAttribP2ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribP2uiv' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexAttribP3ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribP3uiv' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexAttribP4ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribP4uiv' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:3:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexAttribParameteriAMD' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_AMD_interleaved_elements',
    'glewImpl' => '__glewVertexAttribParameteriAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribPointer' => {
    'aliases' => {
      'glVertexAttribPointerARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribPointerType'
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttribPointer',
    'glewtype' => 'fun',
    'ptr_args' => [
      5
    ],
    'restype' => 'void'
  },
  'glVertexAttribPointerNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'fsize',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexAttribEnumNV'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(fsize,type,stride)'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribPointerNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glVertexAttribs1dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs1fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs1hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-1',
      'v' => 'VARARGS:1:n'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs1hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs1svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1svNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs2dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs2fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs2hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-1',
      'v' => 'VARARGS:1:n'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs2hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs2svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*2'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*2'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2svNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs3dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs3fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs3hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-1',
      'v' => 'VARARGS:1:n'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs3hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs3svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*3'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*3'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3svNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs4dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4dvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs4fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4fvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs4hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'dynlang' => {
      'n' => 'items-1',
      'v' => 'VARARGS:1:n'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs4hvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs4svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4svNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexAttribs4ubvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLubyte* ',
        'count*4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:2:count*4'
    },
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4ubvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexBindingDivisor' => {
    'argdata' => [
      [
        'bindingindex',
        'GLuint '
      ],
      [
        'divisor',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexBindingDivisor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexBlendARB' => {
    'argdata' => [
      [
        'count',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewVertexBlendARB',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexBlendEnvfATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexBlendEnvfATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexBlendEnviATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexBlendEnviATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewVertexFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP2ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP2uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP2uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP3uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'dynlang' => {
      'value' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP4uiv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewVertexPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      4
    ],
    'restype' => 'void'
  },
  'glVertexPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewVertexPointerListIBM',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexPointerType'
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewVertexPointervINTEL',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glVertexStream1dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLdouble *',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1dvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream1fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLfloat *',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1fvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream1iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLint *',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1ivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream1sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLshort *',
        '1'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:1'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1svATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream2dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLdouble *',
        '2'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:2'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2dvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream2fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLfloat *',
        '2'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:2'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2fvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream2iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLint *',
        '2'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:2'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2ivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream2sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLshort *',
        '2'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:2'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2svATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream3dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLdouble *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3dvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream3fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLfloat *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3fvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream3iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLint *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3ivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream3sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLshort *',
        '3'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:3'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3svATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream4dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLdouble *',
        '4'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4dvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream4fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLfloat *',
        '4'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4fvATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream4iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLint *',
        '4'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4ivATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexStream4sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum ',
        undef,
        'VertexStreamATI'
      ],
      [
        'coords',
        'const GLshort *',
        '4'
      ]
    ],
    'dynlang' => {
      'coords' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4svATI',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glVertexWeightPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'VertexWeightPointerTypeEXT'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightPointerEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVertexWeightfEXT' => {
    'argdata' => [
      [
        'weight',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexWeightfvEXT' => {
    'argdata' => [
      [
        'weight',
        'GLfloat* ',
        '1'
      ]
    ],
    'dynlang' => {
      'RETVAL' => 'weight'
    },
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightfvEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVertexWeighthNV' => {
    'argdata' => [
      [
        'weight',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexWeighthNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexWeighthvNV' => {
    'argdata' => [
      [
        'weight',
        'const GLhalf* ',
        '1'
      ]
    ],
    'dynlang' => {
      'weight' => 'VARARGS:0:1'
    },
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexWeighthvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glVideoCaptureNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'sequence_num',
        'GLuint* '
      ],
      [
        'capture_time',
        'GLuint64EXT *'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewVideoCaptureNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      1,
      2
    ],
    'restype' => 'GLenum'
  },
  'glVideoCaptureStreamParameterdvNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewVideoCaptureStreamParameterdvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVideoCaptureStreamParameterfvNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewVideoCaptureStreamParameterfvNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glVideoCaptureStreamParameterivNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewVideoCaptureStreamParameterivNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glViewport' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glViewportArrayv' => {
    'aliases' => {
      'glViewportArrayvNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat * ',
        'count'
      ]
    ],
    'dynlang' => {
      'count' => 'items-1',
      'v' => 'VARARGS:1:count'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewViewportArrayv',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glViewportIndexedf' => {
    'aliases' => {
      'glViewportIndexedfNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ],
      [
        'h',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewViewportIndexedf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glViewportIndexedfv' => {
    'aliases' => {
      'glViewportIndexedfvNV' => 'GL_NV_viewport_array'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat * ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:1:4'
    },
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewViewportIndexedfv',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glViewportPositionWScaleNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'xcoeff',
        'GLfloat '
      ],
      [
        'ycoeff',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_clip_space_w_scaling',
    'glewImpl' => '__glewViewportPositionWScaleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glViewportSwizzleNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'swizzlex',
        'GLenum '
      ],
      [
        'swizzley',
        'GLenum '
      ],
      [
        'swizzlez',
        'GLenum '
      ],
      [
        'swizzlew',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_viewport_swizzle',
    'glewImpl' => '__glewViewportSwizzleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWaitSemaphoreEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'numBufferBarriers',
        'GLuint '
      ],
      [
        'buffers',
        'const GLuint* ',
        'COMPSIZE(numBufferBarriers)'
      ],
      [
        'numTextureBarriers',
        'GLuint '
      ],
      [
        'textures',
        'const GLuint *',
        'COMPSIZE(numTextureBarriers)'
      ],
      [
        'srcLayouts',
        'const GLenum *',
        'COMPSIZE(numTextureBarriers)',
        'TextureLayout'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewWaitSemaphoreEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      4,
      5
    ],
    'restype' => 'void'
  },
  'glWaitSemaphoreui64NVX' => {
    'argdata' => [
      [
        'waitGpu',
        'GLuint '
      ],
      [
        'fenceObjectCount',
        'GLsizei '
      ],
      [
        'semaphoreArray',
        'const GLuint* ',
        'fenceObjectCount'
      ],
      [
        'fenceValueArray',
        'const GLuint64 *',
        'fenceObjectCount'
      ]
    ],
    'dynlang' => {
      'fenceObjectCount' => 'LEN:semaphoreArray',
      'fenceValueArray' => 'INARRAY:fenceObjectCount',
      'semaphoreArray' => 'INARRAY:fenceObjectCount'
    },
    'feature' => 'GL_NVX_progress_fence',
    'glewImpl' => '__glewWaitSemaphoreui64NVX',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glWaitSync' => {
    'aliases' => {
      'glWaitSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'sync',
        'GLsync '
      ],
      [
        'flags',
        'GLbitfield ',
        undef,
        'SyncBehaviorFlags'
      ],
      [
        'timeout',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewWaitSync',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWaitVkSemaphoreNV' => {
    'argdata' => [
      [
        'vkSemaphore',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_NV_draw_vulkan_image',
    'glewImpl' => '__glewWaitVkSemaphoreNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWeightPathsNV' => {
    'argdata' => [
      [
        'resultPath',
        'GLuint '
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'paths',
        'const GLuint * ',
        'numPaths'
      ],
      [
        'weights',
        'const GLfloat * ',
        'numPaths'
      ]
    ],
    'dynlang' => {
      'numPaths' => 'LEN:paths',
      'paths' => 'INARRAY:numPaths',
      'weights' => 'INARRAY:numPaths'
    },
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewWeightPathsNV',
    'glewtype' => 'fun',
    'ptr_args' => [
      2,
      3
    ],
    'restype' => 'void'
  },
  'glWeightPointerARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum ',
        undef,
        'WeightPointerTypeARB'
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightPointerARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glWeightPointerOES' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *'
      ]
    ],
    'feature' => 'GL_OES_matrix_palette',
    'glewImpl' => '__glewWeightPointerOES',
    'glewtype' => 'fun',
    'ptr_args' => [
      3
    ],
    'restype' => 'void'
  },
  'glWeightbvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLbyte *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightbvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightdvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLdouble *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightdvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightfvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLfloat *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightfvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLint *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightsvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLshort *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightsvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightubvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLubyte *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightubvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightuivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLuint *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightuivARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWeightusvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLushort *',
        'size'
      ]
    ],
    'dynlang' => {
      'weights' => 'OUTASLIST:size'
    },
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightusvARB',
    'glewtype' => 'fun',
    'ptr_args' => [
      1
    ],
    'restype' => 'void'
  },
  'glWindowPos2d' => {
    'aliases' => {
      'glWindowPos2dARB' => 'GL_ARB_window_pos',
      'glWindowPos2dMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos2dv' => {
    'aliases' => {
      'glWindowPos2dvARB' => 'GL_ARB_window_pos',
      'glWindowPos2dvMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos2f' => {
    'aliases' => {
      'glWindowPos2fARB' => 'GL_ARB_window_pos',
      'glWindowPos2fMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos2fv' => {
    'aliases' => {
      'glWindowPos2fvARB' => 'GL_ARB_window_pos',
      'glWindowPos2fvMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos2i' => {
    'aliases' => {
      'glWindowPos2iARB' => 'GL_ARB_window_pos',
      'glWindowPos2iMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos2iv' => {
    'aliases' => {
      'glWindowPos2ivARB' => 'GL_ARB_window_pos',
      'glWindowPos2ivMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos2s' => {
    'aliases' => {
      'glWindowPos2sARB' => 'GL_ARB_window_pos',
      'glWindowPos2sMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos2sv' => {
    'aliases' => {
      'glWindowPos2svARB' => 'GL_ARB_window_pos',
      'glWindowPos2svMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:2'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos3d' => {
    'aliases' => {
      'glWindowPos3dARB' => 'GL_ARB_window_pos',
      'glWindowPos3dMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3d',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos3dv' => {
    'aliases' => {
      'glWindowPos3dvARB' => 'GL_ARB_window_pos',
      'glWindowPos3dvMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3dv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos3f' => {
    'aliases' => {
      'glWindowPos3fARB' => 'GL_ARB_window_pos',
      'glWindowPos3fMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3f',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos3fv' => {
    'aliases' => {
      'glWindowPos3fvARB' => 'GL_ARB_window_pos',
      'glWindowPos3fvMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3fv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos3i' => {
    'aliases' => {
      'glWindowPos3iARB' => 'GL_ARB_window_pos',
      'glWindowPos3iMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3i',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos3iv' => {
    'aliases' => {
      'glWindowPos3ivARB' => 'GL_ARB_window_pos',
      'glWindowPos3ivMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3iv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos3s' => {
    'aliases' => {
      'glWindowPos3sARB' => 'GL_ARB_window_pos',
      'glWindowPos3sMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3s',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos3sv' => {
    'aliases' => {
      'glWindowPos3svARB' => 'GL_ARB_window_pos',
      'glWindowPos3svMESA' => 'GL_MESA_window_pos'
    },
    'argdata' => [
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'dynlang' => {
      'v' => 'VARARGS:0:3'
    },
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3sv',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos4dMESA' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'param4',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4dMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos4dvMESA' => {
    'argdata' => [
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4dvMESA',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos4fMESA' => {
    'argdata' => [
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4fMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos4fvMESA' => {
    'argdata' => [
      [
        'v',
        'const GLfloat* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4fvMESA',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos4iMESA' => {
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4iMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos4ivMESA' => {
    'argdata' => [
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4ivMESA',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowPos4sMESA' => {
    'argdata' => [
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4sMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos4svMESA' => {
    'argdata' => [
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'dynlang' => {
      'v' => 'VARARGS:0:4'
    },
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4svMESA',
    'glewtype' => 'fun',
    'ptr_args' => [
      0
    ],
    'restype' => 'void'
  },
  'glWindowRectanglesEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'box',
        'const GLint * ',
        'count'
      ]
    ],
    'dynlang' => {
      'box' => 'VARARGS:1:count',
      'count' => 'items-1'
    },
    'feature' => 'GL_EXT_window_rectangles',
    'glewImpl' => '__glewWindowRectanglesEXT',
    'glewtype' => 'fun',
    'ptr_args' => [
      2
    ],
    'restype' => 'void'
  },
  'glWriteMaskEXT' => {
    'argdata' => [
      [
        'res',
        'GLuint '
      ],
      [
        'in',
        'GLuint '
      ],
      [
        'outX',
        'GLenum ',
        undef,
        'VertexShaderWriteMaskEXT'
      ],
      [
        'outY',
        'GLenum ',
        undef,
        'VertexShaderWriteMaskEXT'
      ],
      [
        'outZ',
        'GLenum ',
        undef,
        'VertexShaderWriteMaskEXT'
      ],
      [
        'outW',
        'GLenum ',
        undef,
        'VertexShaderWriteMaskEXT'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewWriteMaskEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  }
);

our @glconstants = qw(
  GLEW_ERROR_GLX_VERSION_11_ONLY
  GLEW_ERROR_GL_VERSION_10_ONLY
  GLEW_ERROR_NO_GLX_DISPLAY
  GLEW_ERROR_NO_GL_CONTEXT
  GLEW_ERROR_NO_GL_VERSION
  GLEW_NO_ERROR
  GLEW_OK
  GLEW_VERSION_MAJOR
  GLEW_VERSION_MICRO
  GLEW_VERSION_MINOR
  GL_1PASS_EXT
  GL_1PASS_SGIS
  GL_2D
  GL_2PASS_0_EXT
  GL_2PASS_0_SGIS
  GL_2PASS_1_EXT
  GL_2PASS_1_SGIS
  GL_2X_BIT_ATI
  GL_2_BYTES
  GL_3D
  GL_3DC_XY_AMD
  GL_3DC_X_AMD
  GL_3DVISION_STEREO_NV
  GL_3D_COLOR
  GL_3D_COLOR_TEXTURE
  GL_3_BYTES
  GL_422_AVERAGE_EXT
  GL_422_EXT
  GL_422_REV_AVERAGE_EXT
  GL_422_REV_EXT
  GL_4D_COLOR_TEXTURE
  GL_4PASS_0_EXT
  GL_4PASS_0_SGIS
  GL_4PASS_1_EXT
  GL_4PASS_1_SGIS
  GL_4PASS_2_EXT
  GL_4PASS_2_SGIS
  GL_4PASS_3_EXT
  GL_4PASS_3_SGIS
  GL_4X_BIT_ATI
  GL_4_BYTES
  GL_8X_BIT_ATI
  GL_ABGR_EXT
  GL_ACCUM
  GL_ACCUM_ADJACENT_PAIRS_NV
  GL_ACCUM_ALPHA_BITS
  GL_ACCUM_BLUE_BITS
  GL_ACCUM_BUFFER_BIT
  GL_ACCUM_CLEAR_VALUE
  GL_ACCUM_GREEN_BITS
  GL_ACCUM_RED_BITS
  GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
  GL_ACTIVE_ATTRIBUTES
  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
  GL_ACTIVE_PROGRAM
  GL_ACTIVE_PROGRAM_EXT
  GL_ACTIVE_RESOURCES
  GL_ACTIVE_STENCIL_FACE_EXT
  GL_ACTIVE_SUBROUTINES
  GL_ACTIVE_SUBROUTINE_MAX_LENGTH
  GL_ACTIVE_SUBROUTINE_UNIFORMS
  GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
  GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
  GL_ACTIVE_TEXTURE
  GL_ACTIVE_TEXTURE_ARB
  GL_ACTIVE_UNIFORMS
  GL_ACTIVE_UNIFORM_BLOCKS
  GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
  GL_ACTIVE_UNIFORM_MAX_LENGTH
  GL_ACTIVE_VARIABLES
  GL_ACTIVE_VARYINGS_NV
  GL_ACTIVE_VARYING_MAX_LENGTH_NV
  GL_ACTIVE_VERTEX_UNITS_ARB
  GL_ADD
  GL_ADD_ATI
  GL_ADD_BLEND_IMG
  GL_ADD_SIGNED
  GL_ADD_SIGNED_ARB
  GL_ADD_SIGNED_EXT
  GL_ADJACENT_PAIRS_NV
  GL_AFFINE_2D_NV
  GL_AFFINE_3D_NV
  GL_ALIASED_LINE_WIDTH_RANGE
  GL_ALIASED_POINT_SIZE_RANGE
  GL_ALLOW_DRAW_FRG_HINT_PGI
  GL_ALLOW_DRAW_MEM_HINT_PGI
  GL_ALLOW_DRAW_OBJ_HINT_PGI
  GL_ALLOW_DRAW_WIN_HINT_PGI
  GL_ALL_ATTRIB_BITS
  GL_ALL_BARRIER_BITS
  GL_ALL_BARRIER_BITS_EXT
  GL_ALL_COMPLETED_NV
  GL_ALL_PIXELS_AMD
  GL_ALL_SHADER_BITS
  GL_ALL_STATIC_DATA_IBM
  GL_ALPHA
  GL_ALPHA12
  GL_ALPHA12_EXT
  GL_ALPHA16
  GL_ALPHA16F_ARB
  GL_ALPHA16F_EXT
  GL_ALPHA16I_EXT
  GL_ALPHA16UI_EXT
  GL_ALPHA16_EXT
  GL_ALPHA16_EXTENDED_RANGE_SGIX
  GL_ALPHA16_ICC_SGIX
  GL_ALPHA16_SIGNED_SGIX
  GL_ALPHA16_SNORM
  GL_ALPHA32F_ARB
  GL_ALPHA32F_EXT
  GL_ALPHA32I_EXT
  GL_ALPHA32UI_EXT
  GL_ALPHA4
  GL_ALPHA4_EXT
  GL_ALPHA8
  GL_ALPHA8I_EXT
  GL_ALPHA8UI_EXT
  GL_ALPHA8_EXT
  GL_ALPHA8_OES
  GL_ALPHA8_SNORM
  GL_ALPHA_BIAS
  GL_ALPHA_BITS
  GL_ALPHA_EXTENDED_RANGE_SGIX
  GL_ALPHA_FLOAT16_APPLE
  GL_ALPHA_FLOAT16_ATI
  GL_ALPHA_FLOAT32_APPLE
  GL_ALPHA_FLOAT32_ATI
  GL_ALPHA_ICC_SGIX
  GL_ALPHA_INTEGER
  GL_ALPHA_INTEGER_EXT
  GL_ALPHA_MAX_CLAMP_INGR
  GL_ALPHA_MAX_SGIX
  GL_ALPHA_MIN_CLAMP_INGR
  GL_ALPHA_MIN_SGIX
  GL_ALPHA_REF_COMMAND_NV
  GL_ALPHA_SCALE
  GL_ALPHA_SIGNED_SGIX
  GL_ALPHA_SNORM
  GL_ALPHA_TEST
  GL_ALPHA_TEST_FUNC
  GL_ALPHA_TEST_FUNC_QCOM
  GL_ALPHA_TEST_QCOM
  GL_ALPHA_TEST_REF
  GL_ALPHA_TEST_REF_QCOM
  GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV
  GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV
  GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV
  GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV
  GL_ALREADY_SIGNALED
  GL_ALREADY_SIGNALED_APPLE
  GL_ALWAYS
  GL_ALWAYS_FAST_HINT_PGI
  GL_ALWAYS_SOFT_HINT_PGI
  GL_AMBIENT
  GL_AMBIENT_AND_DIFFUSE
  GL_AND
  GL_AND_INVERTED
  GL_AND_REVERSE
  GL_ANY_SAMPLES_PASSED
  GL_ANY_SAMPLES_PASSED_CONSERVATIVE
  GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
  GL_ANY_SAMPLES_PASSED_EXT
  GL_ARC_TO_NV
  GL_ARRAY_BUFFER
  GL_ARRAY_BUFFER_ARB
  GL_ARRAY_BUFFER_BINDING
  GL_ARRAY_BUFFER_BINDING_ARB
  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT
  GL_ARRAY_OBJECT_BUFFER_ATI
  GL_ARRAY_OBJECT_OFFSET_ATI
  GL_ARRAY_SIZE
  GL_ARRAY_STRIDE
  GL_ASYNC_DRAW_PIXELS_SGIX
  GL_ASYNC_HISTOGRAM_SGIX
  GL_ASYNC_MARKER_SGIX
  GL_ASYNC_READ_PIXELS_SGIX
  GL_ASYNC_TEX_IMAGE_SGIX
  GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
  GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
  GL_ATC_RGB_AMD
  GL_ATOMIC_COUNTER_BARRIER_BIT
  GL_ATOMIC_COUNTER_BARRIER_BIT_EXT
  GL_ATOMIC_COUNTER_BUFFER
  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
  GL_ATOMIC_COUNTER_BUFFER_BINDING
  GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
  GL_ATOMIC_COUNTER_BUFFER_INDEX
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_EXT
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_EXT
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
  GL_ATOMIC_COUNTER_BUFFER_SIZE
  GL_ATOMIC_COUNTER_BUFFER_START
  GL_ATTACHED_MEMORY_OBJECT_NV
  GL_ATTACHED_MEMORY_OFFSET_NV
  GL_ATTACHED_SHADERS
  GL_ATTENUATION_EXT
  GL_ATTRIBUTE_ADDRESS_COMMAND_NV
  GL_ATTRIB_ARRAY_POINTER_NV
  GL_ATTRIB_ARRAY_SIZE_NV
  GL_ATTRIB_ARRAY_STRIDE_NV
  GL_ATTRIB_ARRAY_TYPE_NV
  GL_ATTRIB_STACK_DEPTH
  GL_AUTO_GENERATE_MIPMAP
  GL_AUTO_NORMAL
  GL_AUX0
  GL_AUX1
  GL_AUX2
  GL_AUX3
  GL_AUX_BUFFERS
  GL_AUX_DEPTH_STENCIL_APPLE
  GL_AVERAGE_EXT
  GL_BACK
  GL_BACK_LEFT
  GL_BACK_NORMALS_HINT_PGI
  GL_BACK_PRIMARY_COLOR_NV
  GL_BACK_RIGHT
  GL_BACK_SECONDARY_COLOR_NV
  GL_BALI_DEPTH_PASS_INSTRUMENT
  GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT
  GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT
  GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT
  GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT
  GL_BALI_NUM_TRIS_CULLED_INSTRUMENT
  GL_BALI_R_CHIP_COUNT
  GL_BEVEL_NV
  GL_BGR
  GL_BGRA
  GL_BGRA8_EXT
  GL_BGRA_EXT
  GL_BGRA_IMG
  GL_BGRA_INTEGER
  GL_BGRA_INTEGER_EXT
  GL_BGR_EXT
  GL_BGR_INTEGER
  GL_BGR_INTEGER_EXT
  GL_BGR_NV
  GL_BIAS_BIT_ATI
  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
  GL_BINNING_CONTROL_HINT_QCOM
  GL_BINORMAL_ARRAY_EXT
  GL_BINORMAL_ARRAY_POINTER_EXT
  GL_BINORMAL_ARRAY_STRIDE_EXT
  GL_BINORMAL_ARRAY_TYPE_EXT
  GL_BITMAP
  GL_BITMAP_TOKEN
  GL_BLACKHOLE_RENDER_INTEL
  GL_BLEND
  GL_BLEND_ADVANCED_COHERENT_KHR
  GL_BLEND_ADVANCED_COHERENT_NV
  GL_BLEND_COLOR
  GL_BLEND_COLOR_COMMAND_NV
  GL_BLEND_COLOR_EXT
  GL_BLEND_DST
  GL_BLEND_DST_ALPHA
  GL_BLEND_DST_ALPHA_EXT
  GL_BLEND_DST_ALPHA_OES
  GL_BLEND_DST_RGB
  GL_BLEND_DST_RGB_EXT
  GL_BLEND_DST_RGB_OES
  GL_BLEND_EQUATION
  GL_BLEND_EQUATION_ALPHA
  GL_BLEND_EQUATION_ALPHA_EXT
  GL_BLEND_EQUATION_ALPHA_OES
  GL_BLEND_EQUATION_EXT
  GL_BLEND_EQUATION_OES
  GL_BLEND_EQUATION_RGB
  GL_BLEND_EQUATION_RGB_EXT
  GL_BLEND_EQUATION_RGB_OES
  GL_BLEND_OVERLAP_NV
  GL_BLEND_PREMULTIPLIED_SRC_NV
  GL_BLEND_SRC
  GL_BLEND_SRC_ALPHA
  GL_BLEND_SRC_ALPHA_EXT
  GL_BLEND_SRC_ALPHA_OES
  GL_BLEND_SRC_RGB
  GL_BLEND_SRC_RGB_EXT
  GL_BLEND_SRC_RGB_OES
  GL_BLOCK_INDEX
  GL_BLUE
  GL_BLUE_BIAS
  GL_BLUE_BITS
  GL_BLUE_BIT_ATI
  GL_BLUE_INTEGER
  GL_BLUE_INTEGER_EXT
  GL_BLUE_MAX_CLAMP_INGR
  GL_BLUE_MIN_CLAMP_INGR
  GL_BLUE_NV
  GL_BLUE_SCALE
  GL_BOLD_BIT_NV
  GL_BOOL
  GL_BOOL_ARB
  GL_BOOL_VEC2
  GL_BOOL_VEC2_ARB
  GL_BOOL_VEC3
  GL_BOOL_VEC3_ARB
  GL_BOOL_VEC4
  GL_BOOL_VEC4_ARB
  GL_BOUNDING_BOX_NV
  GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV
  GL_BUFFER
  GL_BUFFER_ACCESS
  GL_BUFFER_ACCESS_ARB
  GL_BUFFER_ACCESS_FLAGS
  GL_BUFFER_ACCESS_OES
  GL_BUFFER_BINDING
  GL_BUFFER_DATA_SIZE
  GL_BUFFER_FLUSHING_UNMAP_APPLE
  GL_BUFFER_GPU_ADDRESS_NV
  GL_BUFFER_IMMUTABLE_STORAGE
  GL_BUFFER_IMMUTABLE_STORAGE_EXT
  GL_BUFFER_MAPPED
  GL_BUFFER_MAPPED_ARB
  GL_BUFFER_MAPPED_OES
  GL_BUFFER_MAP_LENGTH
  GL_BUFFER_MAP_OFFSET
  GL_BUFFER_MAP_POINTER
  GL_BUFFER_MAP_POINTER_ARB
  GL_BUFFER_MAP_POINTER_OES
  GL_BUFFER_OBJECT_APPLE
  GL_BUFFER_OBJECT_EXT
  GL_BUFFER_SERIALIZED_MODIFY_APPLE
  GL_BUFFER_SIZE
  GL_BUFFER_SIZE_ARB
  GL_BUFFER_STORAGE_FLAGS
  GL_BUFFER_STORAGE_FLAGS_EXT
  GL_BUFFER_UPDATE_BARRIER_BIT
  GL_BUFFER_UPDATE_BARRIER_BIT_EXT
  GL_BUFFER_USAGE
  GL_BUFFER_USAGE_ARB
  GL_BUFFER_VARIABLE
  GL_BUMP_ENVMAP_ATI
  GL_BUMP_NUM_TEX_UNITS_ATI
  GL_BUMP_ROT_MATRIX_ATI
  GL_BUMP_ROT_MATRIX_SIZE_ATI
  GL_BUMP_TARGET_ATI
  GL_BUMP_TEX_UNITS_ATI
  GL_BYTE
  GL_C3F_V3F
  GL_C4F_N3F_V3F
  GL_C4UB_V2F
  GL_C4UB_V3F
  GL_CACHE_REGAL
  GL_CAVEAT_SUPPORT
  GL_CCW
  GL_CG_FRAGMENT_SHADER_EXT
  GL_CG_VERTEX_SHADER_EXT
  GL_CIRCULAR_CCW_ARC_TO_NV
  GL_CIRCULAR_CW_ARC_TO_NV
  GL_CIRCULAR_TANGENT_ARC_TO_NV
  GL_CLAMP
  GL_CLAMP_FRAGMENT_COLOR
  GL_CLAMP_FRAGMENT_COLOR_ARB
  GL_CLAMP_READ_COLOR
  GL_CLAMP_READ_COLOR_ARB
  GL_CLAMP_TO_BORDER
  GL_CLAMP_TO_BORDER_ARB
  GL_CLAMP_TO_BORDER_EXT
  GL_CLAMP_TO_BORDER_NV
  GL_CLAMP_TO_BORDER_OES
  GL_CLAMP_TO_BORDER_SGIS
  GL_CLAMP_TO_EDGE
  GL_CLAMP_TO_EDGE_EXT
  GL_CLAMP_TO_EDGE_SGIS
  GL_CLAMP_VERTEX_COLOR
  GL_CLAMP_VERTEX_COLOR_ARB
  GL_CLEAR
  GL_CLEAR_BUFFER
  GL_CLEAR_TEXTURE
  GL_CLIENT_ACTIVE_TEXTURE
  GL_CLIENT_ACTIVE_TEXTURE_ARB
  GL_CLIENT_ALL_ATTRIB_BITS
  GL_CLIENT_ATTRIB_STACK_DEPTH
  GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
  GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT
  GL_CLIENT_PIXEL_STORE_BIT
  GL_CLIENT_STORAGE_BIT
  GL_CLIENT_STORAGE_BIT_EXT
  GL_CLIENT_VERTEX_ARRAY_BIT
  GL_CLIPPING_INPUT_PRIMITIVES
  GL_CLIPPING_INPUT_PRIMITIVES_ARB
  GL_CLIPPING_OUTPUT_PRIMITIVES
  GL_CLIPPING_OUTPUT_PRIMITIVES_ARB
  GL_CLIP_DEPTH_MODE
  GL_CLIP_DEPTH_MODE_EXT
  GL_CLIP_DISTANCE0
  GL_CLIP_DISTANCE0_APPLE
  GL_CLIP_DISTANCE0_EXT
  GL_CLIP_DISTANCE1
  GL_CLIP_DISTANCE1_APPLE
  GL_CLIP_DISTANCE1_EXT
  GL_CLIP_DISTANCE2
  GL_CLIP_DISTANCE2_APPLE
  GL_CLIP_DISTANCE2_EXT
  GL_CLIP_DISTANCE3
  GL_CLIP_DISTANCE3_APPLE
  GL_CLIP_DISTANCE3_EXT
  GL_CLIP_DISTANCE4
  GL_CLIP_DISTANCE4_APPLE
  GL_CLIP_DISTANCE4_EXT
  GL_CLIP_DISTANCE5
  GL_CLIP_DISTANCE5_APPLE
  GL_CLIP_DISTANCE5_EXT
  GL_CLIP_DISTANCE6_APPLE
  GL_CLIP_DISTANCE6_EXT
  GL_CLIP_DISTANCE7_APPLE
  GL_CLIP_DISTANCE7_EXT
  GL_CLIP_DISTANCE_NV
  GL_CLIP_FAR_HINT_PGI
  GL_CLIP_NEAR_HINT_PGI
  GL_CLIP_ORIGIN
  GL_CLIP_ORIGIN_EXT
  GL_CLIP_PLANE0
  GL_CLIP_PLANE1
  GL_CLIP_PLANE2
  GL_CLIP_PLANE3
  GL_CLIP_PLANE4
  GL_CLIP_PLANE5
  GL_CLIP_VOLUME_CLIPPING_HINT_EXT
  GL_CLOSE_PATH_NV
  GL_CMYKA_EXT
  GL_CMYK_EXT
  GL_CND0_ATI
  GL_CND_ATI
  GL_CODE_REGAL
  GL_COEFF
  GL_COLOR
  GL_COLOR3_BIT_PGI
  GL_COLOR4_BIT_PGI
  GL_COLORBURN_KHR
  GL_COLORBURN_NV
  GL_COLORDODGE_KHR
  GL_COLORDODGE_NV
  GL_COLOR_ALPHA_PAIRING_ATI
  GL_COLOR_ARRAY
  GL_COLOR_ARRAY_ADDRESS_NV
  GL_COLOR_ARRAY_BUFFER_BINDING
  GL_COLOR_ARRAY_BUFFER_BINDING_ARB
  GL_COLOR_ARRAY_COUNT_EXT
  GL_COLOR_ARRAY_EXT
  GL_COLOR_ARRAY_LENGTH_NV
  GL_COLOR_ARRAY_LIST_IBM
  GL_COLOR_ARRAY_LIST_STRIDE_IBM
  GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
  GL_COLOR_ARRAY_POINTER
  GL_COLOR_ARRAY_POINTER_EXT
  GL_COLOR_ARRAY_SIZE
  GL_COLOR_ARRAY_SIZE_EXT
  GL_COLOR_ARRAY_STRIDE
  GL_COLOR_ARRAY_STRIDE_EXT
  GL_COLOR_ARRAY_TYPE
  GL_COLOR_ARRAY_TYPE_EXT
  GL_COLOR_ATTACHMENT0
  GL_COLOR_ATTACHMENT0_EXT
  GL_COLOR_ATTACHMENT0_NV
  GL_COLOR_ATTACHMENT0_OES
  GL_COLOR_ATTACHMENT1
  GL_COLOR_ATTACHMENT10
  GL_COLOR_ATTACHMENT10_EXT
  GL_COLOR_ATTACHMENT10_NV
  GL_COLOR_ATTACHMENT11
  GL_COLOR_ATTACHMENT11_EXT
  GL_COLOR_ATTACHMENT11_NV
  GL_COLOR_ATTACHMENT12
  GL_COLOR_ATTACHMENT12_EXT
  GL_COLOR_ATTACHMENT12_NV
  GL_COLOR_ATTACHMENT13
  GL_COLOR_ATTACHMENT13_EXT
  GL_COLOR_ATTACHMENT13_NV
  GL_COLOR_ATTACHMENT14
  GL_COLOR_ATTACHMENT14_EXT
  GL_COLOR_ATTACHMENT14_NV
  GL_COLOR_ATTACHMENT15
  GL_COLOR_ATTACHMENT15_EXT
  GL_COLOR_ATTACHMENT15_NV
  GL_COLOR_ATTACHMENT1_EXT
  GL_COLOR_ATTACHMENT1_NV
  GL_COLOR_ATTACHMENT2
  GL_COLOR_ATTACHMENT2_EXT
  GL_COLOR_ATTACHMENT2_NV
  GL_COLOR_ATTACHMENT3
  GL_COLOR_ATTACHMENT3_EXT
  GL_COLOR_ATTACHMENT3_NV
  GL_COLOR_ATTACHMENT4
  GL_COLOR_ATTACHMENT4_EXT
  GL_COLOR_ATTACHMENT4_NV
  GL_COLOR_ATTACHMENT5
  GL_COLOR_ATTACHMENT5_EXT
  GL_COLOR_ATTACHMENT5_NV
  GL_COLOR_ATTACHMENT6
  GL_COLOR_ATTACHMENT6_EXT
  GL_COLOR_ATTACHMENT6_NV
  GL_COLOR_ATTACHMENT7
  GL_COLOR_ATTACHMENT7_EXT
  GL_COLOR_ATTACHMENT7_NV
  GL_COLOR_ATTACHMENT8
  GL_COLOR_ATTACHMENT8_EXT
  GL_COLOR_ATTACHMENT8_NV
  GL_COLOR_ATTACHMENT9
  GL_COLOR_ATTACHMENT9_EXT
  GL_COLOR_ATTACHMENT9_NV
  GL_COLOR_ATTACHMENT_EXT
  GL_COLOR_BUFFER_BIT
  GL_COLOR_BUFFER_BIT0_QCOM
  GL_COLOR_BUFFER_BIT1_QCOM
  GL_COLOR_BUFFER_BIT2_QCOM
  GL_COLOR_BUFFER_BIT3_QCOM
  GL_COLOR_BUFFER_BIT4_QCOM
  GL_COLOR_BUFFER_BIT5_QCOM
  GL_COLOR_BUFFER_BIT6_QCOM
  GL_COLOR_BUFFER_BIT7_QCOM
  GL_COLOR_CLEAR_VALUE
  GL_COLOR_COMPONENTS
  GL_COLOR_ENCODING
  GL_COLOR_EXT
  GL_COLOR_FLOAT_APPLE
  GL_COLOR_INDEX
  GL_COLOR_INDEX12_EXT
  GL_COLOR_INDEX16_EXT
  GL_COLOR_INDEX1_EXT
  GL_COLOR_INDEX2_EXT
  GL_COLOR_INDEX4_EXT
  GL_COLOR_INDEX8_EXT
  GL_COLOR_INDEXES
  GL_COLOR_LOGIC_OP
  GL_COLOR_MATERIAL
  GL_COLOR_MATERIAL_FACE
  GL_COLOR_MATERIAL_PARAMETER
  GL_COLOR_MATRIX
  GL_COLOR_MATRIX_HINT
  GL_COLOR_MATRIX_SGI
  GL_COLOR_MATRIX_STACK_DEPTH
  GL_COLOR_MATRIX_STACK_DEPTH_SGI
  GL_COLOR_RENDERABLE
  GL_COLOR_SAMPLES_NV
  GL_COLOR_SUM
  GL_COLOR_SUM_ARB
  GL_COLOR_SUM_CLAMP_NV
  GL_COLOR_SUM_EXT
  GL_COLOR_TABLE
  GL_COLOR_TABLE_ALPHA_SIZE
  GL_COLOR_TABLE_ALPHA_SIZE_EXT
  GL_COLOR_TABLE_ALPHA_SIZE_SGI
  GL_COLOR_TABLE_BIAS
  GL_COLOR_TABLE_BIAS_SGI
  GL_COLOR_TABLE_BLUE_SIZE
  GL_COLOR_TABLE_BLUE_SIZE_EXT
  GL_COLOR_TABLE_BLUE_SIZE_SGI
  GL_COLOR_TABLE_FORMAT
  GL_COLOR_TABLE_FORMAT_EXT
  GL_COLOR_TABLE_FORMAT_SGI
  GL_COLOR_TABLE_GREEN_SIZE
  GL_COLOR_TABLE_GREEN_SIZE_EXT
  GL_COLOR_TABLE_GREEN_SIZE_SGI
  GL_COLOR_TABLE_INTENSITY_SIZE
  GL_COLOR_TABLE_INTENSITY_SIZE_EXT
  GL_COLOR_TABLE_INTENSITY_SIZE_SGI
  GL_COLOR_TABLE_LUMINANCE_SIZE
  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT
  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI
  GL_COLOR_TABLE_RED_SIZE
  GL_COLOR_TABLE_RED_SIZE_EXT
  GL_COLOR_TABLE_RED_SIZE_SGI
  GL_COLOR_TABLE_SCALE
  GL_COLOR_TABLE_SCALE_SGI
  GL_COLOR_TABLE_SGI
  GL_COLOR_TABLE_WIDTH
  GL_COLOR_TABLE_WIDTH_EXT
  GL_COLOR_TABLE_WIDTH_SGI
  GL_COLOR_WRITEMASK
  GL_COMBINE
  GL_COMBINE4_NV
  GL_COMBINER0_NV
  GL_COMBINER1_NV
  GL_COMBINER2_NV
  GL_COMBINER3_NV
  GL_COMBINER4_NV
  GL_COMBINER5_NV
  GL_COMBINER6_NV
  GL_COMBINER7_NV
  GL_COMBINER_AB_DOT_PRODUCT_NV
  GL_COMBINER_AB_OUTPUT_NV
  GL_COMBINER_BIAS_NV
  GL_COMBINER_CD_DOT_PRODUCT_NV
  GL_COMBINER_CD_OUTPUT_NV
  GL_COMBINER_COMPONENT_USAGE_NV
  GL_COMBINER_INPUT_NV
  GL_COMBINER_MAPPING_NV
  GL_COMBINER_MUX_SUM_NV
  GL_COMBINER_SCALE_NV
  GL_COMBINER_SUM_OUTPUT_NV
  GL_COMBINE_ALPHA
  GL_COMBINE_ALPHA_ARB
  GL_COMBINE_ALPHA_EXT
  GL_COMBINE_ARB
  GL_COMBINE_EXT
  GL_COMBINE_RGB
  GL_COMBINE_RGB_ARB
  GL_COMBINE_RGB_EXT
  GL_COMMAND_BARRIER_BIT
  GL_COMMAND_BARRIER_BIT_EXT
  GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
  GL_COMPARE_REF_TO_TEXTURE
  GL_COMPARE_REF_TO_TEXTURE_EXT
  GL_COMPARE_R_TO_TEXTURE
  GL_COMPARE_R_TO_TEXTURE_ARB
  GL_COMPATIBLE_SUBROUTINES
  GL_COMPILE
  GL_COMPILE_AND_EXECUTE
  GL_COMPILE_STATUS
  GL_COMPLETION_STATUS_ARB
  GL_COMPLETION_STATUS_KHR
  GL_COMPLEX_BYTE_SGI
  GL_COMPLEX_FLOAT_SGI
  GL_COMPLEX_INT_SGI
  GL_COMPLEX_SHORT_SGI
  GL_COMPLEX_UNSIGNED_BYTE_SGI
  GL_COMPLEX_UNSIGNED_INT_SGI
  GL_COMPLEX_UNSIGNED_SHORT_SGI
  GL_COMPRESSED_ALPHA
  GL_COMPRESSED_ALPHA_ARB
  GL_COMPRESSED_INTENSITY
  GL_COMPRESSED_INTENSITY_ARB
  GL_COMPRESSED_LUMINANCE
  GL_COMPRESSED_LUMINANCE_ALPHA
  GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI
  GL_COMPRESSED_LUMINANCE_ALPHA_ARB
  GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT
  GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV
  GL_COMPRESSED_LUMINANCE_ARB
  GL_COMPRESSED_LUMINANCE_LATC1_EXT
  GL_COMPRESSED_LUMINANCE_LATC1_NV
  GL_COMPRESSED_R11_EAC
  GL_COMPRESSED_RED
  GL_COMPRESSED_RED_GREEN_RGTC2_EXT
  GL_COMPRESSED_RED_RGTC1
  GL_COMPRESSED_RED_RGTC1_EXT
  GL_COMPRESSED_RG
  GL_COMPRESSED_RG11_EAC
  GL_COMPRESSED_RGB
  GL_COMPRESSED_RGB8_ETC2
  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  GL_COMPRESSED_RGBA
  GL_COMPRESSED_RGBA8_ETC2_EAC
  GL_COMPRESSED_RGBA_ARB
  GL_COMPRESSED_RGBA_ASTC_10x10_KHR
  GL_COMPRESSED_RGBA_ASTC_10x5_KHR
  GL_COMPRESSED_RGBA_ASTC_10x6_KHR
  GL_COMPRESSED_RGBA_ASTC_10x8_KHR
  GL_COMPRESSED_RGBA_ASTC_12x10_KHR
  GL_COMPRESSED_RGBA_ASTC_12x12_KHR
  GL_COMPRESSED_RGBA_ASTC_3x3x3_OES
  GL_COMPRESSED_RGBA_ASTC_4x3x3_OES
  GL_COMPRESSED_RGBA_ASTC_4x4_KHR
  GL_COMPRESSED_RGBA_ASTC_4x4x3_OES
  GL_COMPRESSED_RGBA_ASTC_4x4x4_OES
  GL_COMPRESSED_RGBA_ASTC_5x4_KHR
  GL_COMPRESSED_RGBA_ASTC_5x4x4_OES
  GL_COMPRESSED_RGBA_ASTC_5x5_KHR
  GL_COMPRESSED_RGBA_ASTC_5x5x4_OES
  GL_COMPRESSED_RGBA_ASTC_5x5x5_OES
  GL_COMPRESSED_RGBA_ASTC_6x5_KHR
  GL_COMPRESSED_RGBA_ASTC_6x5x5_OES
  GL_COMPRESSED_RGBA_ASTC_6x6_KHR
  GL_COMPRESSED_RGBA_ASTC_6x6x5_OES
  GL_COMPRESSED_RGBA_ASTC_6x6x6_OES
  GL_COMPRESSED_RGBA_ASTC_8x5_KHR
  GL_COMPRESSED_RGBA_ASTC_8x6_KHR
  GL_COMPRESSED_RGBA_ASTC_8x8_KHR
  GL_COMPRESSED_RGBA_BPTC_UNORM
  GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
  GL_COMPRESSED_RGBA_BPTC_UNORM_EXT
  GL_COMPRESSED_RGBA_FXT1_3DFX
  GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
  GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
  GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
  GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
  GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE
  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
  GL_COMPRESSED_RGBA_S3TC_DXT1_NV
  GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
  GL_COMPRESSED_RGBA_S3TC_DXT3_NV
  GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
  GL_COMPRESSED_RGBA_S3TC_DXT5_NV
  GL_COMPRESSED_RGB_ARB
  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
  GL_COMPRESSED_RGB_FXT1_3DFX
  GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
  GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
  GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE
  GL_COMPRESSED_RGB_S3TC_DXT1_EXT
  GL_COMPRESSED_RGB_S3TC_DXT1_NV
  GL_COMPRESSED_RG_RGTC2
  GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT
  GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV
  GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
  GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV
  GL_COMPRESSED_SIGNED_R11_EAC
  GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
  GL_COMPRESSED_SIGNED_RED_RGTC1
  GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
  GL_COMPRESSED_SIGNED_RG11_EAC
  GL_COMPRESSED_SIGNED_RG_RGTC2
  GL_COMPRESSED_SLUMINANCE
  GL_COMPRESSED_SLUMINANCE_ALPHA
  GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
  GL_COMPRESSED_SLUMINANCE_EXT
  GL_COMPRESSED_SRGB
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  GL_COMPRESSED_SRGB8_ETC2
  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  GL_COMPRESSED_SRGB_ALPHA
  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
  GL_COMPRESSED_SRGB_ALPHA_EXT
  GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT
  GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV
  GL_COMPRESSED_SRGB_EXT
  GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT
  GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT
  GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
  GL_COMPRESSED_SRGB_S3TC_DXT1_NV
  GL_COMPRESSED_TEXTURE_FORMATS
  GL_COMPRESSED_TEXTURE_FORMATS_ARB
  GL_COMPUTE_PROGRAM_NV
  GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
  GL_COMPUTE_SHADER
  GL_COMPUTE_SHADER_BIT
  GL_COMPUTE_SHADER_INVOCATIONS
  GL_COMPUTE_SHADER_INVOCATIONS_ARB
  GL_COMPUTE_SUBROUTINE
  GL_COMPUTE_SUBROUTINE_UNIFORM
  GL_COMPUTE_TEXTURE
  GL_COMPUTE_WORK_GROUP_SIZE
  GL_COMP_BIT_ATI
  GL_CONDITION_SATISFIED
  GL_CONDITION_SATISFIED_APPLE
  GL_CONFORMANT_NV
  GL_CONIC_CURVE_TO_NV
  GL_CONJOINT_NV
  GL_CONSERVATIVE_RASTERIZATION_INTEL
  GL_CONSERVATIVE_RASTERIZATION_NV
  GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV
  GL_CONSERVATIVE_RASTER_DILATE_NV
  GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV
  GL_CONSERVATIVE_RASTER_MODE_NV
  GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV
  GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV
  GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV
  GL_CONSERVE_MEMORY_HINT_PGI
  GL_CONSTANT
  GL_CONSTANT_ALPHA
  GL_CONSTANT_ALPHA_EXT
  GL_CONSTANT_ARB
  GL_CONSTANT_ATTENUATION
  GL_CONSTANT_BORDER
  GL_CONSTANT_COLOR
  GL_CONSTANT_COLOR0_NV
  GL_CONSTANT_COLOR1_NV
  GL_CONSTANT_COLOR_EXT
  GL_CONSTANT_EXT
  GL_CONST_BW_TILING_MESA
  GL_CONST_EYE_NV
  GL_CONTEXT_COMPATIBILITY_PROFILE_BIT
  GL_CONTEXT_CORE_PROFILE_BIT
  GL_CONTEXT_FLAGS
  GL_CONTEXT_FLAG_DEBUG_BIT
  GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT
  GL_CONTEXT_FLAG_NO_ERROR_BIT
  GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR
  GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT
  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT
  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
  GL_CONTEXT_LOST
  GL_CONTEXT_PROFILE_MASK
  GL_CONTEXT_RELEASE_BEHAVIOR
  GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
  GL_CONTEXT_ROBUST_ACCESS
  GL_CONTEXT_ROBUST_ACCESS_EXT
  GL_CONTINUOUS_AMD
  GL_CONTRAST_NV
  GL_CONVEX_HULL_NV
  GL_CONVOLUTION_1D
  GL_CONVOLUTION_1D_EXT
  GL_CONVOLUTION_2D
  GL_CONVOLUTION_2D_EXT
  GL_CONVOLUTION_BORDER_COLOR
  GL_CONVOLUTION_BORDER_MODE
  GL_CONVOLUTION_BORDER_MODE_EXT
  GL_CONVOLUTION_FILTER_BIAS
  GL_CONVOLUTION_FILTER_BIAS_EXT
  GL_CONVOLUTION_FILTER_SCALE
  GL_CONVOLUTION_FILTER_SCALE_EXT
  GL_CONVOLUTION_FORMAT
  GL_CONVOLUTION_FORMAT_EXT
  GL_CONVOLUTION_HEIGHT
  GL_CONVOLUTION_HEIGHT_EXT
  GL_CONVOLUTION_HINT_SGIX
  GL_CONVOLUTION_SGI
  GL_CONVOLUTION_WIDTH
  GL_CONVOLUTION_WIDTH_EXT
  GL_CON_0_ATI
  GL_CON_1_ATI
  GL_CON_2_ATI
  GL_CON_3_ATI
  GL_CON_4_ATI
  GL_CON_5_ATI
  GL_CON_6_ATI
  GL_CON_7_ATI
  GL_COORD_REPLACE
  GL_COORD_REPLACE_ARB
  GL_COORD_REPLACE_NV
  GL_COORD_REPLACE_OES
  GL_COPY
  GL_COPY_INVERTED
  GL_COPY_PIXEL_TOKEN
  GL_COPY_READ_BUFFER
  GL_COPY_READ_BUFFER_BINDING
  GL_COPY_READ_BUFFER_NV
  GL_COPY_WRITE_BUFFER
  GL_COPY_WRITE_BUFFER_BINDING
  GL_COPY_WRITE_BUFFER_NV
  GL_COUNTER_RANGE_AMD
  GL_COUNTER_TYPE_AMD
  GL_COUNT_DOWN_NV
  GL_COUNT_UP_NV
  GL_COVERAGE_MODULATION_NV
  GL_COVERAGE_MODULATION_TABLE_NV
  GL_COVERAGE_MODULATION_TABLE_SIZE_NV
  GL_CPU_OPTIMIZED_QCOM
  GL_CUBE_MAP_BINDING_SGIX
  GL_CUBE_MAP_SGIX
  GL_CUBE_MAP_XN_SGIX
  GL_CUBE_MAP_XP_SGIX
  GL_CUBE_MAP_YN_SGIX
  GL_CUBE_MAP_YP_SGIX
  GL_CUBE_MAP_ZN_SGIX
  GL_CUBE_MAP_ZP_SGIX
  GL_CUBIC_CURVE_TO_NV
  GL_CUBIC_EXT
  GL_CUBIC_IMG
  GL_CUBIC_MIPMAP_LINEAR_IMG
  GL_CUBIC_MIPMAP_NEAREST_IMG
  GL_CULL_FACE
  GL_CULL_FACE_MODE
  GL_CULL_FRAGMENT_NV
  GL_CULL_MODES_NV
  GL_CULL_VERTEX_EXT
  GL_CULL_VERTEX_EYE_POSITION_EXT
  GL_CULL_VERTEX_IBM
  GL_CULL_VERTEX_OBJECT_POSITION_EXT
  GL_CURRENT_ATTRIB_NV
  GL_CURRENT_BINORMAL_EXT
  GL_CURRENT_BIT
  GL_CURRENT_COLOR
  GL_CURRENT_FOG_COORD
  GL_CURRENT_FOG_COORDINATE
  GL_CURRENT_FOG_COORDINATE_EXT
  GL_CURRENT_INDEX
  GL_CURRENT_MATRIX_ARB
  GL_CURRENT_MATRIX_INDEX_ARB
  GL_CURRENT_MATRIX_NV
  GL_CURRENT_MATRIX_STACK_DEPTH_ARB
  GL_CURRENT_MATRIX_STACK_DEPTH_NV
  GL_CURRENT_NORMAL
  GL_CURRENT_OCCLUSION_QUERY_ID_NV
  GL_CURRENT_PALETTE_MATRIX_ARB
  GL_CURRENT_PALETTE_MATRIX_OES
  GL_CURRENT_PROGRAM
  GL_CURRENT_QUERY
  GL_CURRENT_QUERY_ANGLE
  GL_CURRENT_QUERY_ARB
  GL_CURRENT_QUERY_EXT
  GL_CURRENT_RASTER_COLOR
  GL_CURRENT_RASTER_DISTANCE
  GL_CURRENT_RASTER_INDEX
  GL_CURRENT_RASTER_NORMAL_EXT
  GL_CURRENT_RASTER_POSITION
  GL_CURRENT_RASTER_POSITION_VALID
  GL_CURRENT_RASTER_SECONDARY_COLOR
  GL_CURRENT_RASTER_TEXTURE_COORDS
  GL_CURRENT_SAMPLE_COUNT_QUERY_NV
  GL_CURRENT_SECONDARY_COLOR
  GL_CURRENT_SECONDARY_COLOR_EXT
  GL_CURRENT_TANGENT_EXT
  GL_CURRENT_TEXTURE_COORDS
  GL_CURRENT_TIME_NV
  GL_CURRENT_VERTEX_ATTRIB
  GL_CURRENT_VERTEX_ATTRIB_ARB
  GL_CURRENT_VERTEX_EXT
  GL_CURRENT_VERTEX_WEIGHT_EXT
  GL_CURRENT_WEIGHT_ARB
  GL_CW
  GL_D3D12_FENCE_VALUE_EXT
  GL_DARKEN_KHR
  GL_DARKEN_NV
  GL_DATA_BUFFER_AMD
  GL_DEBUG_CALLBACK_FUNCTION
  GL_DEBUG_CALLBACK_FUNCTION_ARB
  GL_DEBUG_CALLBACK_USER_PARAM
  GL_DEBUG_CALLBACK_USER_PARAM_ARB
  GL_DEBUG_CATEGORY_API_ERROR_AMD
  GL_DEBUG_CATEGORY_APPLICATION_AMD
  GL_DEBUG_CATEGORY_DEPRECATION_AMD
  GL_DEBUG_CATEGORY_OTHER_AMD
  GL_DEBUG_CATEGORY_PERFORMANCE_AMD
  GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD
  GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD
  GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD
  GL_DEBUG_GROUP_STACK_DEPTH
  GL_DEBUG_LOGGED_MESSAGES
  GL_DEBUG_LOGGED_MESSAGES_AMD
  GL_DEBUG_LOGGED_MESSAGES_ARB
  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB
  GL_DEBUG_OUTPUT
  GL_DEBUG_OUTPUT_SYNCHRONOUS
  GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
  GL_DEBUG_REGAL
  GL_DEBUG_SEVERITY_HIGH
  GL_DEBUG_SEVERITY_HIGH_AMD
  GL_DEBUG_SEVERITY_HIGH_ARB
  GL_DEBUG_SEVERITY_LOW
  GL_DEBUG_SEVERITY_LOW_AMD
  GL_DEBUG_SEVERITY_LOW_ARB
  GL_DEBUG_SEVERITY_MEDIUM
  GL_DEBUG_SEVERITY_MEDIUM_AMD
  GL_DEBUG_SEVERITY_MEDIUM_ARB
  GL_DEBUG_SEVERITY_NOTIFICATION
  GL_DEBUG_SOURCE_API
  GL_DEBUG_SOURCE_API_ARB
  GL_DEBUG_SOURCE_APPLICATION
  GL_DEBUG_SOURCE_APPLICATION_ARB
  GL_DEBUG_SOURCE_OTHER
  GL_DEBUG_SOURCE_OTHER_ARB
  GL_DEBUG_SOURCE_SHADER_COMPILER
  GL_DEBUG_SOURCE_SHADER_COMPILER_ARB
  GL_DEBUG_SOURCE_THIRD_PARTY
  GL_DEBUG_SOURCE_THIRD_PARTY_ARB
  GL_DEBUG_SOURCE_WINDOW_SYSTEM
  GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB
  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
  GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB
  GL_DEBUG_TYPE_ERROR
  GL_DEBUG_TYPE_ERROR_ARB
  GL_DEBUG_TYPE_MARKER
  GL_DEBUG_TYPE_OTHER
  GL_DEBUG_TYPE_OTHER_ARB
  GL_DEBUG_TYPE_PERFORMANCE
  GL_DEBUG_TYPE_PERFORMANCE_ARB
  GL_DEBUG_TYPE_POP_GROUP
  GL_DEBUG_TYPE_PORTABILITY
  GL_DEBUG_TYPE_PORTABILITY_ARB
  GL_DEBUG_TYPE_PUSH_GROUP
  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
  GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB
  GL_DECAL
  GL_DECODE_EXT
  GL_DECR
  GL_DECR_WRAP
  GL_DECR_WRAP_EXT
  GL_DEDICATED_MEMORY_OBJECT_EXT
  GL_DELETE_STATUS
  GL_DEPENDENT_AR_TEXTURE_2D_NV
  GL_DEPENDENT_GB_TEXTURE_2D_NV
  GL_DEPENDENT_HILO_TEXTURE_2D_NV
  GL_DEPENDENT_RGB_TEXTURE_3D_NV
  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV
  GL_DEPTH
  GL_DEPTH24_STENCIL8
  GL_DEPTH24_STENCIL8_EXT
  GL_DEPTH24_STENCIL8_OES
  GL_DEPTH32F_STENCIL8
  GL_DEPTH32F_STENCIL8_NV
  GL_DEPTH_ATTACHMENT
  GL_DEPTH_ATTACHMENT_EXT
  GL_DEPTH_ATTACHMENT_OES
  GL_DEPTH_BIAS
  GL_DEPTH_BITS
  GL_DEPTH_BOUNDS_EXT
  GL_DEPTH_BOUNDS_TEST_EXT
  GL_DEPTH_BUFFER
  GL_DEPTH_BUFFER_BIT
  GL_DEPTH_BUFFER_BIT0_QCOM
  GL_DEPTH_BUFFER_BIT1_QCOM
  GL_DEPTH_BUFFER_BIT2_QCOM
  GL_DEPTH_BUFFER_BIT3_QCOM
  GL_DEPTH_BUFFER_BIT4_QCOM
  GL_DEPTH_BUFFER_BIT5_QCOM
  GL_DEPTH_BUFFER_BIT6_QCOM
  GL_DEPTH_BUFFER_BIT7_QCOM
  GL_DEPTH_BUFFER_FLOAT_MODE_NV
  GL_DEPTH_CLAMP
  GL_DEPTH_CLAMP_EXT
  GL_DEPTH_CLAMP_FAR_AMD
  GL_DEPTH_CLAMP_NEAR_AMD
  GL_DEPTH_CLAMP_NV
  GL_DEPTH_CLEAR_VALUE
  GL_DEPTH_COMPONENT
  GL_DEPTH_COMPONENT16
  GL_DEPTH_COMPONENT16_ARB
  GL_DEPTH_COMPONENT16_NONLINEAR_NV
  GL_DEPTH_COMPONENT16_OES
  GL_DEPTH_COMPONENT16_SGIX
  GL_DEPTH_COMPONENT24
  GL_DEPTH_COMPONENT24_ARB
  GL_DEPTH_COMPONENT24_OES
  GL_DEPTH_COMPONENT24_SGIX
  GL_DEPTH_COMPONENT32
  GL_DEPTH_COMPONENT32F
  GL_DEPTH_COMPONENT32F_NV
  GL_DEPTH_COMPONENT32_ARB
  GL_DEPTH_COMPONENT32_OES
  GL_DEPTH_COMPONENT32_SGIX
  GL_DEPTH_COMPONENTS
  GL_DEPTH_EXT
  GL_DEPTH_FUNC
  GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX
  GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX
  GL_DEPTH_PASS_INSTRUMENT_SGIX
  GL_DEPTH_RANGE
  GL_DEPTH_RENDERABLE
  GL_DEPTH_SAMPLES_NV
  GL_DEPTH_SCALE
  GL_DEPTH_STENCIL
  GL_DEPTH_STENCIL_ATTACHMENT
  GL_DEPTH_STENCIL_EXT
  GL_DEPTH_STENCIL_NV
  GL_DEPTH_STENCIL_OES
  GL_DEPTH_STENCIL_TEXTURE_MODE
  GL_DEPTH_STENCIL_TO_BGRA_NV
  GL_DEPTH_STENCIL_TO_RGBA_NV
  GL_DEPTH_TEST
  GL_DEPTH_TEXTURE_MODE
  GL_DEPTH_TEXTURE_MODE_ARB
  GL_DEPTH_WRITEMASK
  GL_DETACHED_BUFFERS_NV
  GL_DETACHED_MEMORY_INCARNATION_NV
  GL_DETACHED_TEXTURES_NV
  GL_DEVICE_LUID_EXT
  GL_DEVICE_NODE_MASK_EXT
  GL_DEVICE_UUID_EXT
  GL_DIFFERENCE_KHR
  GL_DIFFERENCE_NV
  GL_DIFFUSE
  GL_DISCARD_ATI
  GL_DISCARD_NV
  GL_DISCRETE_AMD
  GL_DISJOINT_NV
  GL_DISPATCH_INDIRECT_BUFFER
  GL_DISPATCH_INDIRECT_BUFFER_BINDING
  GL_DISPLAY_LIST
  GL_DISTANCE_ATTENUATION_EXT
  GL_DITHER
  GL_DMP_PROGRAM_BINARY_DMP
  GL_DOMAIN
  GL_DONT_CARE
  GL_DOT2_ADD_ATI
  GL_DOT3_ATI
  GL_DOT3_RGB
  GL_DOT3_RGBA
  GL_DOT3_RGBA_ARB
  GL_DOT3_RGBA_EXT
  GL_DOT3_RGBA_IMG
  GL_DOT3_RGB_ARB
  GL_DOT3_RGB_EXT
  GL_DOT4_ATI
  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV
  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV
  GL_DOT_PRODUCT_DEPTH_REPLACE_NV
  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV
  GL_DOT_PRODUCT_NV
  GL_DOT_PRODUCT_PASS_THROUGH_NV
  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV
  GL_DOT_PRODUCT_TEXTURE_1D_NV
  GL_DOT_PRODUCT_TEXTURE_2D_NV
  GL_DOT_PRODUCT_TEXTURE_3D_NV
  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV
  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV
  GL_DOUBLE
  GL_DOUBLEBUFFER
  GL_DOUBLE_EXT
  GL_DOUBLE_MAT2
  GL_DOUBLE_MAT2_EXT
  GL_DOUBLE_MAT2x3
  GL_DOUBLE_MAT2x3_EXT
  GL_DOUBLE_MAT2x4
  GL_DOUBLE_MAT2x4_EXT
  GL_DOUBLE_MAT3
  GL_DOUBLE_MAT3_EXT
  GL_DOUBLE_MAT3x2
  GL_DOUBLE_MAT3x2_EXT
  GL_DOUBLE_MAT3x4
  GL_DOUBLE_MAT3x4_EXT
  GL_DOUBLE_MAT4
  GL_DOUBLE_MAT4_EXT
  GL_DOUBLE_MAT4x2
  GL_DOUBLE_MAT4x2_EXT
  GL_DOUBLE_MAT4x3
  GL_DOUBLE_MAT4x3_EXT
  GL_DOUBLE_VEC2
  GL_DOUBLE_VEC2_EXT
  GL_DOUBLE_VEC3
  GL_DOUBLE_VEC3_EXT
  GL_DOUBLE_VEC4
  GL_DOUBLE_VEC4_EXT
  GL_DOWNSAMPLE_SCALES_IMG
  GL_DRAW_ARRAYS_COMMAND_NV
  GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV
  GL_DRAW_ARRAYS_STRIP_COMMAND_NV
  GL_DRAW_BUFFER
  GL_DRAW_BUFFER0
  GL_DRAW_BUFFER0_ARB
  GL_DRAW_BUFFER0_ATI
  GL_DRAW_BUFFER0_EXT
  GL_DRAW_BUFFER0_NV
  GL_DRAW_BUFFER1
  GL_DRAW_BUFFER10
  GL_DRAW_BUFFER10_ARB
  GL_DRAW_BUFFER10_ATI
  GL_DRAW_BUFFER10_EXT
  GL_DRAW_BUFFER10_NV
  GL_DRAW_BUFFER11
  GL_DRAW_BUFFER11_ARB
  GL_DRAW_BUFFER11_ATI
  GL_DRAW_BUFFER11_EXT
  GL_DRAW_BUFFER11_NV
  GL_DRAW_BUFFER12
  GL_DRAW_BUFFER12_ARB
  GL_DRAW_BUFFER12_ATI
  GL_DRAW_BUFFER12_EXT
  GL_DRAW_BUFFER12_NV
  GL_DRAW_BUFFER13
  GL_DRAW_BUFFER13_ARB
  GL_DRAW_BUFFER13_ATI
  GL_DRAW_BUFFER13_EXT
  GL_DRAW_BUFFER13_NV
  GL_DRAW_BUFFER14
  GL_DRAW_BUFFER14_ARB
  GL_DRAW_BUFFER14_ATI
  GL_DRAW_BUFFER14_EXT
  GL_DRAW_BUFFER14_NV
  GL_DRAW_BUFFER15
  GL_DRAW_BUFFER15_ARB
  GL_DRAW_BUFFER15_ATI
  GL_DRAW_BUFFER15_EXT
  GL_DRAW_BUFFER15_NV
  GL_DRAW_BUFFER1_ARB
  GL_DRAW_BUFFER1_ATI
  GL_DRAW_BUFFER1_EXT
  GL_DRAW_BUFFER1_NV
  GL_DRAW_BUFFER2
  GL_DRAW_BUFFER2_ARB
  GL_DRAW_BUFFER2_ATI
  GL_DRAW_BUFFER2_EXT
  GL_DRAW_BUFFER2_NV
  GL_DRAW_BUFFER3
  GL_DRAW_BUFFER3_ARB
  GL_DRAW_BUFFER3_ATI
  GL_DRAW_BUFFER3_EXT
  GL_DRAW_BUFFER3_NV
  GL_DRAW_BUFFER4
  GL_DRAW_BUFFER4_ARB
  GL_DRAW_BUFFER4_ATI
  GL_DRAW_BUFFER4_EXT
  GL_DRAW_BUFFER4_NV
  GL_DRAW_BUFFER5
  GL_DRAW_BUFFER5_ARB
  GL_DRAW_BUFFER5_ATI
  GL_DRAW_BUFFER5_EXT
  GL_DRAW_BUFFER5_NV
  GL_DRAW_BUFFER6
  GL_DRAW_BUFFER6_ARB
  GL_DRAW_BUFFER6_ATI
  GL_DRAW_BUFFER6_EXT
  GL_DRAW_BUFFER6_NV
  GL_DRAW_BUFFER7
  GL_DRAW_BUFFER7_ARB
  GL_DRAW_BUFFER7_ATI
  GL_DRAW_BUFFER7_EXT
  GL_DRAW_BUFFER7_NV
  GL_DRAW_BUFFER8
  GL_DRAW_BUFFER8_ARB
  GL_DRAW_BUFFER8_ATI
  GL_DRAW_BUFFER8_EXT
  GL_DRAW_BUFFER8_NV
  GL_DRAW_BUFFER9
  GL_DRAW_BUFFER9_ARB
  GL_DRAW_BUFFER9_ATI
  GL_DRAW_BUFFER9_EXT
  GL_DRAW_BUFFER9_NV
  GL_DRAW_BUFFER_EXT
  GL_DRAW_ELEMENTS_COMMAND_NV
  GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV
  GL_DRAW_ELEMENTS_STRIP_COMMAND_NV
  GL_DRAW_FRAMEBUFFER
  GL_DRAW_FRAMEBUFFER_ANGLE
  GL_DRAW_FRAMEBUFFER_APPLE
  GL_DRAW_FRAMEBUFFER_BINDING
  GL_DRAW_FRAMEBUFFER_BINDING_ANGLE
  GL_DRAW_FRAMEBUFFER_BINDING_APPLE
  GL_DRAW_FRAMEBUFFER_BINDING_EXT
  GL_DRAW_FRAMEBUFFER_BINDING_NV
  GL_DRAW_FRAMEBUFFER_EXT
  GL_DRAW_FRAMEBUFFER_NV
  GL_DRAW_INDIRECT_ADDRESS_NV
  GL_DRAW_INDIRECT_BUFFER
  GL_DRAW_INDIRECT_BUFFER_BINDING
  GL_DRAW_INDIRECT_LENGTH_NV
  GL_DRAW_INDIRECT_UNIFIED_NV
  GL_DRAW_PIXELS_APPLE
  GL_DRAW_PIXEL_TOKEN
  GL_DRIVER_REGAL
  GL_DRIVER_UUID_EXT
  GL_DSDT8_MAG8_INTENSITY8_NV
  GL_DSDT8_MAG8_NV
  GL_DSDT8_NV
  GL_DSDT_MAG_INTENSITY_NV
  GL_DSDT_MAG_NV
  GL_DSDT_MAG_VIB_NV
  GL_DSDT_NV
  GL_DST_ALPHA
  GL_DST_ATOP_NV
  GL_DST_COLOR
  GL_DST_IN_NV
  GL_DST_NV
  GL_DST_OUT_NV
  GL_DST_OVER_NV
  GL_DS_BIAS_NV
  GL_DS_SCALE_NV
  GL_DT_BIAS_NV
  GL_DT_SCALE_NV
  GL_DU8DV8_ATI
  GL_DUDV_ATI
  GL_DUP_FIRST_CUBIC_CURVE_TO_NV
  GL_DUP_LAST_CUBIC_CURVE_TO_NV
  GL_DYNAMIC_ATI
  GL_DYNAMIC_COPY
  GL_DYNAMIC_COPY_ARB
  GL_DYNAMIC_DRAW
  GL_DYNAMIC_DRAW_ARB
  GL_DYNAMIC_READ
  GL_DYNAMIC_READ_ARB
  GL_DYNAMIC_STORAGE_BIT
  GL_DYNAMIC_STORAGE_BIT_EXT
  GL_EDGEFLAG_BIT_PGI
  GL_EDGE_FLAG
  GL_EDGE_FLAG_ARRAY
  GL_EDGE_FLAG_ARRAY_ADDRESS_NV
  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
  GL_EDGE_FLAG_ARRAY_COUNT_EXT
  GL_EDGE_FLAG_ARRAY_EXT
  GL_EDGE_FLAG_ARRAY_LENGTH_NV
  GL_EDGE_FLAG_ARRAY_LIST_IBM
  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM
  GL_EDGE_FLAG_ARRAY_POINTER
  GL_EDGE_FLAG_ARRAY_POINTER_EXT
  GL_EDGE_FLAG_ARRAY_STRIDE
  GL_EDGE_FLAG_ARRAY_STRIDE_EXT
  GL_EFFECTIVE_RASTER_SAMPLES_EXT
  GL_EIGHTH_BIT_ATI
  GL_ELEMENT_ADDRESS_COMMAND_NV
  GL_ELEMENT_ARRAY_ADDRESS_NV
  GL_ELEMENT_ARRAY_APPLE
  GL_ELEMENT_ARRAY_ATI
  GL_ELEMENT_ARRAY_BARRIER_BIT
  GL_ELEMENT_ARRAY_BARRIER_BIT_EXT
  GL_ELEMENT_ARRAY_BUFFER
  GL_ELEMENT_ARRAY_BUFFER_ARB
  GL_ELEMENT_ARRAY_BUFFER_BINDING
  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
  GL_ELEMENT_ARRAY_LENGTH_NV
  GL_ELEMENT_ARRAY_POINTER_APPLE
  GL_ELEMENT_ARRAY_POINTER_ATI
  GL_ELEMENT_ARRAY_TYPE_APPLE
  GL_ELEMENT_ARRAY_TYPE_ATI
  GL_ELEMENT_ARRAY_UNIFIED_NV
  GL_EMBOSS_CONSTANT_NV
  GL_EMBOSS_LIGHT_NV
  GL_EMBOSS_MAP_NV
  GL_EMISSION
  GL_EMULATION_REGAL
  GL_ENABLE_BIT
  GL_ENV_MAP_SGIX
  GL_EQUAL
  GL_EQUIV
  GL_ERROR_REGAL
  GL_ETC1_RGB8_OES
  GL_ETC1_SRGB8_NV
  GL_EVAL_2D_NV
  GL_EVAL_BIT
  GL_EVAL_FRACTIONAL_TESSELLATION_NV
  GL_EVAL_TRIANGULAR_2D_NV
  GL_EVAL_VERTEX_ATTRIB0_NV
  GL_EVAL_VERTEX_ATTRIB10_NV
  GL_EVAL_VERTEX_ATTRIB11_NV
  GL_EVAL_VERTEX_ATTRIB12_NV
  GL_EVAL_VERTEX_ATTRIB13_NV
  GL_EVAL_VERTEX_ATTRIB14_NV
  GL_EVAL_VERTEX_ATTRIB15_NV
  GL_EVAL_VERTEX_ATTRIB1_NV
  GL_EVAL_VERTEX_ATTRIB2_NV
  GL_EVAL_VERTEX_ATTRIB3_NV
  GL_EVAL_VERTEX_ATTRIB4_NV
  GL_EVAL_VERTEX_ATTRIB5_NV
  GL_EVAL_VERTEX_ATTRIB6_NV
  GL_EVAL_VERTEX_ATTRIB7_NV
  GL_EVAL_VERTEX_ATTRIB8_NV
  GL_EVAL_VERTEX_ATTRIB9_NV
  GL_EXCLUSION_KHR
  GL_EXCLUSION_NV
  GL_EXCLUSIVE_EXT
  GL_EXP
  GL_EXP2
  GL_EXPAND_NEGATE_NV
  GL_EXPAND_NORMAL_NV
  GL_EXTENDED_RANGE_SGIS
  GL_EXTENSIONS
  GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
  GL_EYE_DISTANCE_TO_LINE_SGIS
  GL_EYE_DISTANCE_TO_POINT_SGIS
  GL_EYE_LINEAR
  GL_EYE_LINE_SGIS
  GL_EYE_PLANE
  GL_EYE_PLANE_ABSOLUTE_NV
  GL_EYE_POINT_SGIS
  GL_EYE_RADIAL_NV
  GL_EYE_SPACE_SGIX
  GL_E_TIMES_F_NV
  GL_FACTOR_ALPHA_MODULATE_IMG
  GL_FACTOR_MAX_AMD
  GL_FACTOR_MIN_AMD
  GL_FAILURE_NV
  GL_FALSE
  GL_FASTEST
  GL_FEEDBACK
  GL_FEEDBACK_BUFFER_POINTER
  GL_FEEDBACK_BUFFER_SIZE
  GL_FEEDBACK_BUFFER_TYPE
  GL_FENCE_APPLE
  GL_FENCE_CONDITION_NV
  GL_FENCE_STATUS_NV
  GL_FETCH_PER_SAMPLE_ARM
  GL_FFT_1D_SGI
  GL_FIELDS_NV
  GL_FIELD_LOWER_NV
  GL_FIELD_UPPER_NV
  GL_FILE_NAME_NV
  GL_FILL
  GL_FILL_NV
  GL_FILL_RECTANGLE_NV
  GL_FILTER
  GL_FIRST_TO_REST_NV
  GL_FIRST_VERTEX_CONVENTION
  GL_FIRST_VERTEX_CONVENTION_EXT
  GL_FIRST_VERTEX_CONVENTION_OES
  GL_FIXED
  GL_FIXED_ONLY
  GL_FIXED_ONLY_ARB
  GL_FLAT
  GL_FLOAT
  GL_FLOAT16_IMAGE_1D_AMD
  GL_FLOAT16_IMAGE_1D_ARRAY_AMD
  GL_FLOAT16_IMAGE_2D_AMD
  GL_FLOAT16_IMAGE_2D_ARRAY_AMD
  GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD
  GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD
  GL_FLOAT16_IMAGE_2D_RECT_AMD
  GL_FLOAT16_IMAGE_3D_AMD
  GL_FLOAT16_IMAGE_BUFFER_AMD
  GL_FLOAT16_IMAGE_CUBE_AMD
  GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD
  GL_FLOAT16_MAT2_AMD
  GL_FLOAT16_MAT2x3_AMD
  GL_FLOAT16_MAT2x4_AMD
  GL_FLOAT16_MAT3_AMD
  GL_FLOAT16_MAT3x2_AMD
  GL_FLOAT16_MAT3x4_AMD
  GL_FLOAT16_MAT4_AMD
  GL_FLOAT16_MAT4x2_AMD
  GL_FLOAT16_MAT4x3_AMD
  GL_FLOAT16_NV
  GL_FLOAT16_SAMPLER_1D_AMD
  GL_FLOAT16_SAMPLER_1D_ARRAY_AMD
  GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD
  GL_FLOAT16_SAMPLER_1D_SHADOW_AMD
  GL_FLOAT16_SAMPLER_2D_AMD
  GL_FLOAT16_SAMPLER_2D_ARRAY_AMD
  GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD
  GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD
  GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD
  GL_FLOAT16_SAMPLER_2D_RECT_AMD
  GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD
  GL_FLOAT16_SAMPLER_2D_SHADOW_AMD
  GL_FLOAT16_SAMPLER_3D_AMD
  GL_FLOAT16_SAMPLER_BUFFER_AMD
  GL_FLOAT16_SAMPLER_CUBE_AMD
  GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD
  GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD
  GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD
  GL_FLOAT16_VEC2_NV
  GL_FLOAT16_VEC3_NV
  GL_FLOAT16_VEC4_NV
  GL_FLOAT_32_UNSIGNED_INT_24_8_REV
  GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
  GL_FLOAT_CLEAR_COLOR_VALUE_NV
  GL_FLOAT_MAT2
  GL_FLOAT_MAT2_ARB
  GL_FLOAT_MAT2x3
  GL_FLOAT_MAT2x3_NV
  GL_FLOAT_MAT2x4
  GL_FLOAT_MAT2x4_NV
  GL_FLOAT_MAT3
  GL_FLOAT_MAT3_ARB
  GL_FLOAT_MAT3x2
  GL_FLOAT_MAT3x2_NV
  GL_FLOAT_MAT3x4
  GL_FLOAT_MAT3x4_NV
  GL_FLOAT_MAT4
  GL_FLOAT_MAT4_ARB
  GL_FLOAT_MAT4x2
  GL_FLOAT_MAT4x2_NV
  GL_FLOAT_MAT4x3
  GL_FLOAT_MAT4x3_NV
  GL_FLOAT_R16_NV
  GL_FLOAT_R32_NV
  GL_FLOAT_RG16_NV
  GL_FLOAT_RG32_NV
  GL_FLOAT_RGB16_NV
  GL_FLOAT_RGB32_NV
  GL_FLOAT_RGBA16_NV
  GL_FLOAT_RGBA32_NV
  GL_FLOAT_RGBA_MODE_NV
  GL_FLOAT_RGBA_NV
  GL_FLOAT_RGB_NV
  GL_FLOAT_RG_NV
  GL_FLOAT_R_NV
  GL_FLOAT_VEC2
  GL_FLOAT_VEC2_ARB
  GL_FLOAT_VEC3
  GL_FLOAT_VEC3_ARB
  GL_FLOAT_VEC4
  GL_FLOAT_VEC4_ARB
  GL_FOG
  GL_FOG_BIT
  GL_FOG_BLEND_ALPHA_SGIX
  GL_FOG_BLEND_COLOR_SGIX
  GL_FOG_COLOR
  GL_FOG_COORD
  GL_FOG_COORDINATE
  GL_FOG_COORDINATE_ARRAY
  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
  GL_FOG_COORDINATE_ARRAY_EXT
  GL_FOG_COORDINATE_ARRAY_LIST_IBM
  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM
  GL_FOG_COORDINATE_ARRAY_POINTER
  GL_FOG_COORDINATE_ARRAY_POINTER_EXT
  GL_FOG_COORDINATE_ARRAY_STRIDE
  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
  GL_FOG_COORDINATE_ARRAY_TYPE
  GL_FOG_COORDINATE_ARRAY_TYPE_EXT
  GL_FOG_COORDINATE_EXT
  GL_FOG_COORDINATE_SOURCE
  GL_FOG_COORDINATE_SOURCE_EXT
  GL_FOG_COORD_ARRAY
  GL_FOG_COORD_ARRAY_ADDRESS_NV
  GL_FOG_COORD_ARRAY_BUFFER_BINDING
  GL_FOG_COORD_ARRAY_LENGTH_NV
  GL_FOG_COORD_ARRAY_POINTER
  GL_FOG_COORD_ARRAY_STRIDE
  GL_FOG_COORD_ARRAY_TYPE
  GL_FOG_COORD_SRC
  GL_FOG_DENSITY
  GL_FOG_DISTANCE_MODE_NV
  GL_FOG_END
  GL_FOG_GROUND_PLANE_SGIX
  GL_FOG_HINT
  GL_FOG_INDEX
  GL_FOG_LAYERS_POINTS_SGIX
  GL_FOG_MODE
  GL_FOG_OFFSET_SGIX
  GL_FOG_OFFSET_VALUE_SGIX
  GL_FOG_SCALE_SGIX
  GL_FOG_SCALE_VALUE_SGIX
  GL_FOG_SPECULAR_TEXTURE_WIN
  GL_FOG_START
  GL_FOG_TYPE_SGIX
  GL_FONT_ASCENDER_BIT_NV
  GL_FONT_DESCENDER_BIT_NV
  GL_FONT_GLYPHS_AVAILABLE_NV
  GL_FONT_HAS_KERNING_BIT_NV
  GL_FONT_HEIGHT_BIT_NV
  GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV
  GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV
  GL_FONT_NUM_GLYPH_INDICES_BIT_NV
  GL_FONT_TARGET_UNAVAILABLE_NV
  GL_FONT_UNAVAILABLE_NV
  GL_FONT_UNDERLINE_POSITION_BIT_NV
  GL_FONT_UNDERLINE_THICKNESS_BIT_NV
  GL_FONT_UNINTELLIGIBLE_NV
  GL_FONT_UNITS_PER_EM_BIT_NV
  GL_FONT_X_MAX_BOUNDS_BIT_NV
  GL_FONT_X_MIN_BOUNDS_BIT_NV
  GL_FONT_Y_MAX_BOUNDS_BIT_NV
  GL_FONT_Y_MIN_BOUNDS_BIT_NV
  GL_FORCE_BLUE_TO_ONE_NV
  GL_FORMAT_SUBSAMPLE_244_244_OML
  GL_FORMAT_SUBSAMPLE_24_24_OML
  GL_FOVEATION_ENABLE_BIT_QCOM
  GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM
  GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM
  GL_FRACTIONAL_EVEN
  GL_FRACTIONAL_EVEN_EXT
  GL_FRACTIONAL_EVEN_OES
  GL_FRACTIONAL_ODD
  GL_FRACTIONAL_ODD_EXT
  GL_FRACTIONAL_ODD_OES
  GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX
  GL_FRAGMENTS_INSTRUMENT_MAX_SGIX
  GL_FRAGMENTS_INSTRUMENT_SGIX
  GL_FRAGMENT_ALPHA_MODULATE_IMG
  GL_FRAGMENT_COLOR_EXT
  GL_FRAGMENT_COLOR_MATERIAL_EXT
  GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT
  GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT
  GL_FRAGMENT_COVERAGE_COLOR_NV
  GL_FRAGMENT_COVERAGE_TO_COLOR_NV
  GL_FRAGMENT_DEPTH
  GL_FRAGMENT_DEPTH_EXT
  GL_FRAGMENT_INPUT_NV
  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES
  GL_FRAGMENT_LIGHT0_EXT
  GL_FRAGMENT_LIGHT7_EXT
  GL_FRAGMENT_LIGHTING_EXT
  GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT
  GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT
  GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT
  GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT
  GL_FRAGMENT_LIGHT_SPACE_SGIX
  GL_FRAGMENT_MATERIAL_EXT
  GL_FRAGMENT_NORMAL_EXT
  GL_FRAGMENT_PROGRAM_ARB
  GL_FRAGMENT_PROGRAM_BINDING_NV
  GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV
  GL_FRAGMENT_PROGRAM_NV
  GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV
  GL_FRAGMENT_SHADER
  GL_FRAGMENT_SHADER_ARB
  GL_FRAGMENT_SHADER_ATI
  GL_FRAGMENT_SHADER_BIT
  GL_FRAGMENT_SHADER_DERIVATIVE_HINT
  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES
  GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT
  GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
  GL_FRAGMENT_SHADER_INVOCATIONS
  GL_FRAGMENT_SHADER_INVOCATIONS_ARB
  GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT
  GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT
  GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT
  GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT
  GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT
  GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT
  GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT
  GL_FRAGMENT_SHADING_RATE_PRIMITIVE_RATE_WITH_MULTI_VIEWPORT_SUPPORTED_EXT
  GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT
  GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT
  GL_FRAGMENT_SUBROUTINE
  GL_FRAGMENT_SUBROUTINE_UNIFORM
  GL_FRAGMENT_TEXTURE
  GL_FRAMEBUFFER
  GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_ANGLE
  GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT
  GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
  GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
  GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_LAYERED
  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES
  GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG
  GL_FRAMEBUFFER_BARRIER_BIT
  GL_FRAMEBUFFER_BARRIER_BIT_EXT
  GL_FRAMEBUFFER_BINDING
  GL_FRAMEBUFFER_BINDING_EXT
  GL_FRAMEBUFFER_BINDING_OES
  GL_FRAMEBUFFER_BLEND
  GL_FRAMEBUFFER_COMPLETE
  GL_FRAMEBUFFER_COMPLETE_EXT
  GL_FRAMEBUFFER_COMPLETE_OES
  GL_FRAMEBUFFER_DEFAULT
  GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
  GL_FRAMEBUFFER_DEFAULT_HEIGHT
  GL_FRAMEBUFFER_DEFAULT_LAYERS
  GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT
  GL_FRAMEBUFFER_DEFAULT_LAYERS_OES
  GL_FRAMEBUFFER_DEFAULT_SAMPLES
  GL_FRAMEBUFFER_DEFAULT_WIDTH
  GL_FRAMEBUFFER_EXT
  GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM
  GL_FRAMEBUFFER_FLIP_X_MESA
  GL_FRAMEBUFFER_FLIP_Y_MESA
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES
  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
  GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM
  GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES
  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES
  GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR
  GL_FRAMEBUFFER_OES
  GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB
  GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV
  GL_FRAMEBUFFER_RENDERABLE
  GL_FRAMEBUFFER_RENDERABLE_LAYERED
  GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB
  GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV
  GL_FRAMEBUFFER_SRGB
  GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
  GL_FRAMEBUFFER_SRGB_EXT
  GL_FRAMEBUFFER_SWAP_XY_MESA
  GL_FRAMEBUFFER_UNDEFINED
  GL_FRAMEBUFFER_UNDEFINED_OES
  GL_FRAMEBUFFER_UNSUPPORTED
  GL_FRAMEBUFFER_UNSUPPORTED_EXT
  GL_FRAMEBUFFER_UNSUPPORTED_OES
  GL_FRAME_NV
  GL_FRONT
  GL_FRONT_AND_BACK
  GL_FRONT_FACE
  GL_FRONT_FACE_COMMAND_NV
  GL_FRONT_LEFT
  GL_FRONT_RIGHT
  GL_FULL_RANGE_EXT
  GL_FULL_STIPPLE_HINT_PGI
  GL_FULL_SUPPORT
  GL_FUNC_ADD
  GL_FUNC_ADD_EXT
  GL_FUNC_ADD_OES
  GL_FUNC_COMPLEX_ADD_EXT
  GL_FUNC_COMPLEX_MULTIPLY_EXT
  GL_FUNC_REVERSE_SUBTRACT
  GL_FUNC_REVERSE_SUBTRACT_EXT
  GL_FUNC_REVERSE_SUBTRACT_OES
  GL_FUNC_SUBTRACT
  GL_FUNC_SUBTRACT_EXT
  GL_FUNC_SUBTRACT_OES
  GL_GCCSO_SHADER_BINARY_FJ
  GL_GENERATE_MIPMAP
  GL_GENERATE_MIPMAP_HINT
  GL_GENERATE_MIPMAP_HINT_SGIS
  GL_GENERATE_MIPMAP_SGIS
  GL_GENERIC_ATTRIB_NV
  GL_GEOMETRY_BIT
  GL_GEOMETRY_DEFORMATION_BIT_SGIX
  GL_GEOMETRY_INPUT_TYPE
  GL_GEOMETRY_INPUT_TYPE_ARB
  GL_GEOMETRY_INPUT_TYPE_EXT
  GL_GEOMETRY_LINKED_INPUT_TYPE_EXT
  GL_GEOMETRY_LINKED_INPUT_TYPE_OES
  GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT
  GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES
  GL_GEOMETRY_LINKED_VERTICES_OUT_EXT
  GL_GEOMETRY_LINKED_VERTICES_OUT_OES
  GL_GEOMETRY_OUTPUT_TYPE
  GL_GEOMETRY_OUTPUT_TYPE_ARB
  GL_GEOMETRY_OUTPUT_TYPE_EXT
  GL_GEOMETRY_PROGRAM_NV
  GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV
  GL_GEOMETRY_SHADER
  GL_GEOMETRY_SHADER_ARB
  GL_GEOMETRY_SHADER_BIT
  GL_GEOMETRY_SHADER_BIT_EXT
  GL_GEOMETRY_SHADER_BIT_OES
  GL_GEOMETRY_SHADER_EXT
  GL_GEOMETRY_SHADER_INVOCATIONS
  GL_GEOMETRY_SHADER_INVOCATIONS_EXT
  GL_GEOMETRY_SHADER_INVOCATIONS_OES
  GL_GEOMETRY_SHADER_OES
  GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED
  GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB
  GL_GEOMETRY_SUBROUTINE
  GL_GEOMETRY_SUBROUTINE_UNIFORM
  GL_GEOMETRY_TEXTURE
  GL_GEOMETRY_VERTICES_OUT
  GL_GEOMETRY_VERTICES_OUT_ARB
  GL_GEOMETRY_VERTICES_OUT_EXT
  GL_GEQUAL
  GL_GET_TEXTURE_IMAGE_FORMAT
  GL_GET_TEXTURE_IMAGE_TYPE
  GL_GLOBAL_ALPHA_FACTOR_SUN
  GL_GLOBAL_ALPHA_SUN
  GL_GLYPH_HAS_KERNING_BIT_NV
  GL_GLYPH_HEIGHT_BIT_NV
  GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV
  GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV
  GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV
  GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV
  GL_GLYPH_VERTICAL_BEARING_X_BIT_NV
  GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV
  GL_GLYPH_WIDTH_BIT_NV
  GL_GPU_ADDRESS_NV
  GL_GPU_DISJOINT_EXT
  GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
  GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
  GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX
  GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX
  GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
  GL_GPU_OPTIMIZED_QCOM
  GL_GREATER
  GL_GREEN
  GL_GREEN_BIAS
  GL_GREEN_BITS
  GL_GREEN_BIT_ATI
  GL_GREEN_INTEGER
  GL_GREEN_INTEGER_EXT
  GL_GREEN_MAX_CLAMP_INGR
  GL_GREEN_MIN_CLAMP_INGR
  GL_GREEN_NV
  GL_GREEN_SCALE
  GL_GUILTY_CONTEXT_RESET
  GL_GUILTY_CONTEXT_RESET_ARB
  GL_GUILTY_CONTEXT_RESET_EXT
  GL_HALF_APPLE
  GL_HALF_BIAS_NEGATE_NV
  GL_HALF_BIAS_NORMAL_NV
  GL_HALF_BIT_ATI
  GL_HALF_FLOAT
  GL_HALF_FLOAT_ARB
  GL_HALF_FLOAT_NV
  GL_HALF_FLOAT_OES
  GL_HANDLE_TYPE_D3D11_IMAGE_EXT
  GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT
  GL_HANDLE_TYPE_D3D12_FENCE_EXT
  GL_HANDLE_TYPE_D3D12_RESOURCE_EXT
  GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT
  GL_HANDLE_TYPE_OPAQUE_FD_EXT
  GL_HANDLE_TYPE_OPAQUE_WIN32_EXT
  GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT
  GL_HARDLIGHT_KHR
  GL_HARDLIGHT_NV
  GL_HARDMIX_NV
  GL_HIGH_FLOAT
  GL_HIGH_INT
  GL_HILO16_NV
  GL_HILO8_NV
  GL_HILO_NV
  GL_HINT_BIT
  GL_HISTOGRAM
  GL_HISTOGRAM_ALPHA_SIZE
  GL_HISTOGRAM_ALPHA_SIZE_EXT
  GL_HISTOGRAM_BLUE_SIZE
  GL_HISTOGRAM_BLUE_SIZE_EXT
  GL_HISTOGRAM_EXT
  GL_HISTOGRAM_FORMAT
  GL_HISTOGRAM_FORMAT_EXT
  GL_HISTOGRAM_GREEN_SIZE
  GL_HISTOGRAM_GREEN_SIZE_EXT
  GL_HISTOGRAM_LUMINANCE_SIZE
  GL_HISTOGRAM_LUMINANCE_SIZE_EXT
  GL_HISTOGRAM_RED_SIZE
  GL_HISTOGRAM_RED_SIZE_EXT
  GL_HISTOGRAM_SINK
  GL_HISTOGRAM_SINK_EXT
  GL_HISTOGRAM_WIDTH
  GL_HISTOGRAM_WIDTH_EXT
  GL_HI_BIAS_NV
  GL_HI_SCALE_NV
  GL_HORIZONTAL_LINE_TO_NV
  GL_HSL_COLOR_KHR
  GL_HSL_COLOR_NV
  GL_HSL_HUE_KHR
  GL_HSL_HUE_NV
  GL_HSL_LUMINOSITY_KHR
  GL_HSL_LUMINOSITY_NV
  GL_HSL_SATURATION_KHR
  GL_HSL_SATURATION_NV
  GL_HUAWEI_PROGRAM_BINARY
  GL_HUAWEI_SHADER_BINARY
  GL_IDENTITY_NV
  GL_IGLOO_COLORNORMAL_SGIX
  GL_IGLOO_FULLSCREEN_SGIX
  GL_IGLOO_IRISGL_MODE_SGIX
  GL_IGLOO_LMC_COLOR_SGIX
  GL_IGLOO_SWAPTMESH_SGIX
  GL_IGLOO_TMESHMODE_SGIX
  GL_IGLOO_VIEWPORT_OFFSET_SGIX
  GL_IGNORE_BORDER
  GL_IMAGE_1D
  GL_IMAGE_1D_ARRAY
  GL_IMAGE_1D_ARRAY_EXT
  GL_IMAGE_1D_EXT
  GL_IMAGE_2D
  GL_IMAGE_2D_ARRAY
  GL_IMAGE_2D_ARRAY_EXT
  GL_IMAGE_2D_EXT
  GL_IMAGE_2D_MULTISAMPLE
  GL_IMAGE_2D_MULTISAMPLE_ARRAY
  GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
  GL_IMAGE_2D_MULTISAMPLE_EXT
  GL_IMAGE_2D_RECT
  GL_IMAGE_2D_RECT_EXT
  GL_IMAGE_3D
  GL_IMAGE_3D_EXT
  GL_IMAGE_BINDING_ACCESS
  GL_IMAGE_BINDING_ACCESS_EXT
  GL_IMAGE_BINDING_FORMAT
  GL_IMAGE_BINDING_FORMAT_EXT
  GL_IMAGE_BINDING_LAYER
  GL_IMAGE_BINDING_LAYERED
  GL_IMAGE_BINDING_LAYERED_EXT
  GL_IMAGE_BINDING_LAYER_EXT
  GL_IMAGE_BINDING_LEVEL
  GL_IMAGE_BINDING_LEVEL_EXT
  GL_IMAGE_BINDING_NAME
  GL_IMAGE_BINDING_NAME_EXT
  GL_IMAGE_BIT
  GL_IMAGE_BUFFER
  GL_IMAGE_BUFFER_EXT
  GL_IMAGE_BUFFER_OES
  GL_IMAGE_CLASS_10_10_10_2
  GL_IMAGE_CLASS_11_11_10
  GL_IMAGE_CLASS_1_X_16
  GL_IMAGE_CLASS_1_X_32
  GL_IMAGE_CLASS_1_X_8
  GL_IMAGE_CLASS_2_X_16
  GL_IMAGE_CLASS_2_X_32
  GL_IMAGE_CLASS_2_X_8
  GL_IMAGE_CLASS_4_X_16
  GL_IMAGE_CLASS_4_X_32
  GL_IMAGE_CLASS_4_X_8
  GL_IMAGE_COMPATIBILITY_CLASS
  GL_IMAGE_CUBE
  GL_IMAGE_CUBE_EXT
  GL_IMAGE_CUBE_MAP_ARRAY
  GL_IMAGE_CUBE_MAP_ARRAY_EXT
  GL_IMAGE_CUBE_MAP_ARRAY_OES
  GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
  GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
  GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
  GL_IMAGE_PIXEL_FORMAT
  GL_IMAGE_PIXEL_TYPE
  GL_IMAGE_TEXEL_SIZE
  GL_IMPLEMENTATION_COLOR_READ_FORMAT
  GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
  GL_IMPLEMENTATION_COLOR_READ_TYPE
  GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
  GL_INCLUSIVE_EXT
  GL_INCR
  GL_INCR_WRAP
  GL_INCR_WRAP_EXT
  GL_INDEX
  GL_INDEX_ARRAY
  GL_INDEX_ARRAY_ADDRESS_NV
  GL_INDEX_ARRAY_BUFFER_BINDING
  GL_INDEX_ARRAY_BUFFER_BINDING_ARB
  GL_INDEX_ARRAY_COUNT_EXT
  GL_INDEX_ARRAY_EXT
  GL_INDEX_ARRAY_LENGTH_NV
  GL_INDEX_ARRAY_LIST_IBM
  GL_INDEX_ARRAY_LIST_STRIDE_IBM
  GL_INDEX_ARRAY_POINTER
  GL_INDEX_ARRAY_POINTER_EXT
  GL_INDEX_ARRAY_STRIDE
  GL_INDEX_ARRAY_STRIDE_EXT
  GL_INDEX_ARRAY_TYPE
  GL_INDEX_ARRAY_TYPE_EXT
  GL_INDEX_BITS
  GL_INDEX_BIT_PGI
  GL_INDEX_CLEAR_VALUE
  GL_INDEX_LOGIC_OP
  GL_INDEX_MODE
  GL_INDEX_OFFSET
  GL_INDEX_SHIFT
  GL_INDEX_WRITEMASK
  GL_INFO_LOG_LENGTH
  GL_INNOCENT_CONTEXT_RESET
  GL_INNOCENT_CONTEXT_RESET_ARB
  GL_INNOCENT_CONTEXT_RESET_EXT
  GL_INT
  GL_INT16_NV
  GL_INT16_VEC2_NV
  GL_INT16_VEC3_NV
  GL_INT16_VEC4_NV
  GL_INT64_ARB
  GL_INT64_NV
  GL_INT64_VEC2_ARB
  GL_INT64_VEC2_NV
  GL_INT64_VEC3_ARB
  GL_INT64_VEC3_NV
  GL_INT64_VEC4_ARB
  GL_INT64_VEC4_NV
  GL_INT8_NV
  GL_INT8_VEC2_NV
  GL_INT8_VEC3_NV
  GL_INT8_VEC4_NV
  GL_INTENSITY
  GL_INTENSITY12
  GL_INTENSITY12_EXT
  GL_INTENSITY16
  GL_INTENSITY16F_ARB
  GL_INTENSITY16I_EXT
  GL_INTENSITY16UI_EXT
  GL_INTENSITY16_EXT
  GL_INTENSITY16_EXTENDED_RANGE_SGIX
  GL_INTENSITY16_ICC_SGIX
  GL_INTENSITY16_SIGNED_SGIX
  GL_INTENSITY16_SNORM
  GL_INTENSITY32F_ARB
  GL_INTENSITY32I_EXT
  GL_INTENSITY32UI_EXT
  GL_INTENSITY4
  GL_INTENSITY4_EXT
  GL_INTENSITY8
  GL_INTENSITY8I_EXT
  GL_INTENSITY8UI_EXT
  GL_INTENSITY8_EXT
  GL_INTENSITY8_SNORM
  GL_INTENSITY_EXT
  GL_INTENSITY_EXTENDED_RANGE_SGIX
  GL_INTENSITY_FLOAT16_APPLE
  GL_INTENSITY_FLOAT16_ATI
  GL_INTENSITY_FLOAT32_APPLE
  GL_INTENSITY_FLOAT32_ATI
  GL_INTENSITY_ICC_SGIX
  GL_INTENSITY_SIGNED_SGIX
  GL_INTENSITY_SNORM
  GL_INTERLACE_OML
  GL_INTERLACE_READ_INGR
  GL_INTERLACE_READ_OML
  GL_INTERLACE_SGIX
  GL_INTERLEAVED_ATTRIBS
  GL_INTERLEAVED_ATTRIBS_EXT
  GL_INTERLEAVED_ATTRIBS_NV
  GL_INTERNALFORMAT_ALPHA_SIZE
  GL_INTERNALFORMAT_ALPHA_TYPE
  GL_INTERNALFORMAT_BLUE_SIZE
  GL_INTERNALFORMAT_BLUE_TYPE
  GL_INTERNALFORMAT_DEPTH_SIZE
  GL_INTERNALFORMAT_DEPTH_TYPE
  GL_INTERNALFORMAT_GREEN_SIZE
  GL_INTERNALFORMAT_GREEN_TYPE
  GL_INTERNALFORMAT_PREFERRED
  GL_INTERNALFORMAT_RED_SIZE
  GL_INTERNALFORMAT_RED_TYPE
  GL_INTERNALFORMAT_SHARED_SIZE
  GL_INTERNALFORMAT_STENCIL_SIZE
  GL_INTERNALFORMAT_STENCIL_TYPE
  GL_INTERNALFORMAT_SUPPORTED
  GL_INTERPOLATE
  GL_INTERPOLATE_ARB
  GL_INTERPOLATE_EXT
  GL_INT_10_10_10_2_OES
  GL_INT_2_10_10_10_REV
  GL_INT_IMAGE_1D
  GL_INT_IMAGE_1D_ARRAY
  GL_INT_IMAGE_1D_ARRAY_EXT
  GL_INT_IMAGE_1D_EXT
  GL_INT_IMAGE_2D
  GL_INT_IMAGE_2D_ARRAY
  GL_INT_IMAGE_2D_ARRAY_EXT
  GL_INT_IMAGE_2D_EXT
  GL_INT_IMAGE_2D_MULTISAMPLE
  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
  GL_INT_IMAGE_2D_MULTISAMPLE_EXT
  GL_INT_IMAGE_2D_RECT
  GL_INT_IMAGE_2D_RECT_EXT
  GL_INT_IMAGE_3D
  GL_INT_IMAGE_3D_EXT
  GL_INT_IMAGE_BUFFER
  GL_INT_IMAGE_BUFFER_EXT
  GL_INT_IMAGE_BUFFER_OES
  GL_INT_IMAGE_CUBE
  GL_INT_IMAGE_CUBE_EXT
  GL_INT_IMAGE_CUBE_MAP_ARRAY
  GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
  GL_INT_IMAGE_CUBE_MAP_ARRAY_OES
  GL_INT_SAMPLER_1D
  GL_INT_SAMPLER_1D_ARRAY
  GL_INT_SAMPLER_1D_ARRAY_EXT
  GL_INT_SAMPLER_1D_EXT
  GL_INT_SAMPLER_2D
  GL_INT_SAMPLER_2D_ARRAY
  GL_INT_SAMPLER_2D_ARRAY_EXT
  GL_INT_SAMPLER_2D_EXT
  GL_INT_SAMPLER_2D_MULTISAMPLE
  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
  GL_INT_SAMPLER_2D_RECT
  GL_INT_SAMPLER_2D_RECT_EXT
  GL_INT_SAMPLER_3D
  GL_INT_SAMPLER_3D_EXT
  GL_INT_SAMPLER_BUFFER
  GL_INT_SAMPLER_BUFFER_AMD
  GL_INT_SAMPLER_BUFFER_EXT
  GL_INT_SAMPLER_BUFFER_OES
  GL_INT_SAMPLER_CUBE
  GL_INT_SAMPLER_CUBE_EXT
  GL_INT_SAMPLER_CUBE_MAP_ARRAY
  GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
  GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
  GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES
  GL_INT_SAMPLER_RENDERBUFFER_NV
  GL_INT_VEC2
  GL_INT_VEC2_ARB
  GL_INT_VEC3
  GL_INT_VEC3_ARB
  GL_INT_VEC4
  GL_INT_VEC4_ARB
  GL_INVALID_ENUM
  GL_INVALID_FRAMEBUFFER_OPERATION
  GL_INVALID_FRAMEBUFFER_OPERATION_EXT
  GL_INVALID_FRAMEBUFFER_OPERATION_OES
  GL_INVALID_INDEX
  GL_INVALID_OPERATION
  GL_INVALID_VALUE
  GL_INVARIANT_DATATYPE_EXT
  GL_INVARIANT_EXT
  GL_INVARIANT_VALUE_EXT
  GL_INVERSE_NV
  GL_INVERSE_TRANSPOSE_NV
  GL_INVERT
  GL_INVERTED_SCREEN_W_REND
  GL_INVERT_OVG_NV
  GL_INVERT_RGB_NV
  GL_ISOLINES
  GL_ISOLINES_EXT
  GL_ISOLINES_OES
  GL_IS_PER_PATCH
  GL_IS_PER_PATCH_EXT
  GL_IS_PER_PATCH_OES
  GL_IS_ROW_MAJOR
  GL_ITALIC_BIT_NV
  GL_KEEP
  GL_KTX_BACK_REGION
  GL_KTX_FRONT_REGION
  GL_KTX_STENCIL_REGION
  GL_KTX_Z_REGION
  GL_LARGE_CCW_ARC_TO_NV
  GL_LARGE_CW_ARC_TO_NV
  GL_LAST_VERTEX_CONVENTION
  GL_LAST_VERTEX_CONVENTION_EXT
  GL_LAST_VERTEX_CONVENTION_OES
  GL_LAST_VIDEO_CAPTURE_STATUS_NV
  GL_LAYERED_SGIX
  GL_LAYER_PROVOKING_VERTEX
  GL_LAYER_PROVOKING_VERTEX_EXT
  GL_LAYER_PROVOKING_VERTEX_OES
  GL_LAYOUT_COLOR_ATTACHMENT_EXT
  GL_LAYOUT_DEFAULT_INTEL
  GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT
  GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT
  GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT
  GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT
  GL_LAYOUT_GENERAL_EXT
  GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
  GL_LAYOUT_SHADER_READ_ONLY_EXT
  GL_LAYOUT_TRANSFER_DST_EXT
  GL_LAYOUT_TRANSFER_SRC_EXT
  GL_LEFT
  GL_LEQUAL
  GL_LERP_ATI
  GL_LESS
  GL_LGPU_SEPARATE_STORAGE_BIT_NVX
  GL_LIGHT0
  GL_LIGHT1
  GL_LIGHT2
  GL_LIGHT3
  GL_LIGHT31
  GL_LIGHT4
  GL_LIGHT5
  GL_LIGHT6
  GL_LIGHT7
  GL_LIGHTEN_KHR
  GL_LIGHTEN_NV
  GL_LIGHTING
  GL_LIGHTING_BIT
  GL_LIGHT_ENV_MODE_EXT
  GL_LIGHT_MODEL_AMBIENT
  GL_LIGHT_MODEL_COLOR_CONTROL
  GL_LIGHT_MODEL_COLOR_CONTROL_EXT
  GL_LIGHT_MODEL_LOCAL_VIEWER
  GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
  GL_LIGHT_MODEL_TWO_SIDE
  GL_LINE
  GL_LINEAR
  GL_LINEARBURN_NV
  GL_LINEARDODGE_NV
  GL_LINEARLIGHT_NV
  GL_LINEAR_ATTENUATION
  GL_LINEAR_MIPMAP_LINEAR
  GL_LINEAR_MIPMAP_NEAREST
  GL_LINEAR_TILING_EXT
  GL_LINES
  GL_LINES_ADJACENCY
  GL_LINES_ADJACENCY_ARB
  GL_LINES_ADJACENCY_EXT
  GL_LINES_ADJACENCY_OES
  GL_LINE_BIT
  GL_LINE_LOOP
  GL_LINE_NV
  GL_LINE_QUALITY_HINT_SGIX
  GL_LINE_RESET_TOKEN
  GL_LINE_SMOOTH
  GL_LINE_SMOOTH_HINT
  GL_LINE_STIPPLE
  GL_LINE_STIPPLE_PATTERN
  GL_LINE_STIPPLE_REPEAT
  GL_LINE_STRIP
  GL_LINE_STRIP_ADJACENCY
  GL_LINE_STRIP_ADJACENCY_ARB
  GL_LINE_STRIP_ADJACENCY_EXT
  GL_LINE_STRIP_ADJACENCY_OES
  GL_LINE_TOKEN
  GL_LINE_TO_NV
  GL_LINE_WIDTH
  GL_LINE_WIDTH_COMMAND_NV
  GL_LINE_WIDTH_GRANULARITY
  GL_LINE_WIDTH_RANGE
  GL_LINK_STATUS
  GL_LIST_BASE
  GL_LIST_BIT
  GL_LIST_INDEX
  GL_LIST_MODE
  GL_LOAD
  GL_LOCAL_CONSTANT_DATATYPE_EXT
  GL_LOCAL_CONSTANT_EXT
  GL_LOCAL_CONSTANT_VALUE_EXT
  GL_LOCAL_EXT
  GL_LOCATION
  GL_LOCATION_COMPONENT
  GL_LOCATION_INDEX
  GL_LOCATION_INDEX_EXT
  GL_LOGIC_OP
  GL_LOGIC_OP_MODE
  GL_LOG_APP_REGAL
  GL_LOG_DEBUG_REGAL
  GL_LOG_DRIVER_REGAL
  GL_LOG_ERROR_REGAL
  GL_LOG_HTTP_REGAL
  GL_LOG_INFO_REGAL
  GL_LOG_INTERNAL_REGAL
  GL_LOG_REGAL
  GL_LOG_STATUS_REGAL
  GL_LOG_WARNING_REGAL
  GL_LOSE_CONTEXT_ON_RESET
  GL_LOSE_CONTEXT_ON_RESET_ARB
  GL_LOSE_CONTEXT_ON_RESET_EXT
  GL_LOWER_LEFT
  GL_LOWER_LEFT_EXT
  GL_LOW_FLOAT
  GL_LOW_INT
  GL_LO_BIAS_NV
  GL_LO_SCALE_NV
  GL_LUID_SIZE_EXT
  GL_LUMINANCE
  GL_LUMINANCE12
  GL_LUMINANCE12_ALPHA12
  GL_LUMINANCE12_ALPHA12_EXT
  GL_LUMINANCE12_ALPHA4
  GL_LUMINANCE12_ALPHA4_EXT
  GL_LUMINANCE12_EXT
  GL_LUMINANCE16
  GL_LUMINANCE16F_ARB
  GL_LUMINANCE16F_EXT
  GL_LUMINANCE16I_EXT
  GL_LUMINANCE16UI_EXT
  GL_LUMINANCE16_ALPHA16
  GL_LUMINANCE16_ALPHA16_EXT
  GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX
  GL_LUMINANCE16_ALPHA16_SIGNED_SGIX
  GL_LUMINANCE16_ALPHA16_SNORM
  GL_LUMINANCE16_ALPHA8_ICC_SGIX
  GL_LUMINANCE16_EXT
  GL_LUMINANCE16_EXTENDED_RANGE_SGIX
  GL_LUMINANCE16_ICC_SGIX
  GL_LUMINANCE16_SIGNED_SGIX
  GL_LUMINANCE16_SNORM
  GL_LUMINANCE32F_ARB
  GL_LUMINANCE32F_EXT
  GL_LUMINANCE32I_EXT
  GL_LUMINANCE32UI_EXT
  GL_LUMINANCE4
  GL_LUMINANCE4_ALPHA4
  GL_LUMINANCE4_ALPHA4_EXT
  GL_LUMINANCE4_ALPHA4_OES
  GL_LUMINANCE4_EXT
  GL_LUMINANCE6_ALPHA2
  GL_LUMINANCE6_ALPHA2_EXT
  GL_LUMINANCE8
  GL_LUMINANCE8I_EXT
  GL_LUMINANCE8UI_EXT
  GL_LUMINANCE8_ALPHA8
  GL_LUMINANCE8_ALPHA8_EXT
  GL_LUMINANCE8_ALPHA8_OES
  GL_LUMINANCE8_ALPHA8_SNORM
  GL_LUMINANCE8_EXT
  GL_LUMINANCE8_OES
  GL_LUMINANCE8_SNORM
  GL_LUMINANCE_ALPHA
  GL_LUMINANCE_ALPHA16F_ARB
  GL_LUMINANCE_ALPHA16F_EXT
  GL_LUMINANCE_ALPHA16I_EXT
  GL_LUMINANCE_ALPHA16UI_EXT
  GL_LUMINANCE_ALPHA32F_ARB
  GL_LUMINANCE_ALPHA32F_EXT
  GL_LUMINANCE_ALPHA32I_EXT
  GL_LUMINANCE_ALPHA32UI_EXT
  GL_LUMINANCE_ALPHA8I_EXT
  GL_LUMINANCE_ALPHA8UI_EXT
  GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX
  GL_LUMINANCE_ALPHA_FLOAT16_APPLE
  GL_LUMINANCE_ALPHA_FLOAT16_ATI
  GL_LUMINANCE_ALPHA_FLOAT32_APPLE
  GL_LUMINANCE_ALPHA_FLOAT32_ATI
  GL_LUMINANCE_ALPHA_ICC_SGIX
  GL_LUMINANCE_ALPHA_INTEGER_EXT
  GL_LUMINANCE_ALPHA_SIGNED_SGIX
  GL_LUMINANCE_ALPHA_SNORM
  GL_LUMINANCE_EXTENDED_RANGE_SGIX
  GL_LUMINANCE_FLOAT16_APPLE
  GL_LUMINANCE_FLOAT16_ATI
  GL_LUMINANCE_FLOAT32_APPLE
  GL_LUMINANCE_FLOAT32_ATI
  GL_LUMINANCE_ICC_SGIX
  GL_LUMINANCE_INTEGER_EXT
  GL_LUMINANCE_SIGNED_SGIX
  GL_LUMINANCE_SNORM
  GL_MAD_ATI
  GL_MAGNITUDE_BIAS_NV
  GL_MAGNITUDE_SCALE_NV
  GL_MAJOR_VERSION
  GL_MALI_PROGRAM_BINARY_ARM
  GL_MALI_SHADER_BINARY_ARM
  GL_MANUAL_GENERATE_MIPMAP
  GL_MAP1_BINORMAL_EXT
  GL_MAP1_COLOR_4
  GL_MAP1_COLOR_4_NURBS_SGIX
  GL_MAP1_GRID_DOMAIN
  GL_MAP1_GRID_SEGMENTS
  GL_MAP1_INDEX
  GL_MAP1_INDEX_NURBS_SGIX
  GL_MAP1_NORMAL
  GL_MAP1_NORMAL_NURBS_SGIX
  GL_MAP1_TANGENT_EXT
  GL_MAP1_TEXTURE_COORD_1
  GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX
  GL_MAP1_TEXTURE_COORD_2
  GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX
  GL_MAP1_TEXTURE_COORD_3
  GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX
  GL_MAP1_TEXTURE_COORD_4
  GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX
  GL_MAP1_VERTEX_3
  GL_MAP1_VERTEX_3_NURBS_SGIX
  GL_MAP1_VERTEX_4
  GL_MAP1_VERTEX_4_NURBS_SGIX
  GL_MAP1_VERTEX_ATTRIB0_4_NV
  GL_MAP1_VERTEX_ATTRIB10_4_NV
  GL_MAP1_VERTEX_ATTRIB11_4_NV
  GL_MAP1_VERTEX_ATTRIB12_4_NV
  GL_MAP1_VERTEX_ATTRIB13_4_NV
  GL_MAP1_VERTEX_ATTRIB14_4_NV
  GL_MAP1_VERTEX_ATTRIB15_4_NV
  GL_MAP1_VERTEX_ATTRIB1_4_NV
  GL_MAP1_VERTEX_ATTRIB2_4_NV
  GL_MAP1_VERTEX_ATTRIB3_4_NV
  GL_MAP1_VERTEX_ATTRIB4_4_NV
  GL_MAP1_VERTEX_ATTRIB5_4_NV
  GL_MAP1_VERTEX_ATTRIB6_4_NV
  GL_MAP1_VERTEX_ATTRIB7_4_NV
  GL_MAP1_VERTEX_ATTRIB8_4_NV
  GL_MAP1_VERTEX_ATTRIB9_4_NV
  GL_MAP2_BINORMAL_EXT
  GL_MAP2_COLOR_4
  GL_MAP2_COLOR_4_NURBS_SGIX
  GL_MAP2_GRID_DOMAIN
  GL_MAP2_GRID_SEGMENTS
  GL_MAP2_INDEX
  GL_MAP2_INDEX_NURBS_SGIX
  GL_MAP2_NORMAL
  GL_MAP2_NORMAL_NURBS_SGIX
  GL_MAP2_TANGENT_EXT
  GL_MAP2_TEXTURE_COORD_1
  GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX
  GL_MAP2_TEXTURE_COORD_2
  GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX
  GL_MAP2_TEXTURE_COORD_3
  GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX
  GL_MAP2_TEXTURE_COORD_4
  GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX
  GL_MAP2_VERTEX_3
  GL_MAP2_VERTEX_3_NURBS_SGIX
  GL_MAP2_VERTEX_4
  GL_MAP2_VERTEX_4_NURBS_SGIX
  GL_MAP2_VERTEX_ATTRIB0_4_NV
  GL_MAP2_VERTEX_ATTRIB10_4_NV
  GL_MAP2_VERTEX_ATTRIB11_4_NV
  GL_MAP2_VERTEX_ATTRIB12_4_NV
  GL_MAP2_VERTEX_ATTRIB13_4_NV
  GL_MAP2_VERTEX_ATTRIB14_4_NV
  GL_MAP2_VERTEX_ATTRIB15_4_NV
  GL_MAP2_VERTEX_ATTRIB1_4_NV
  GL_MAP2_VERTEX_ATTRIB2_4_NV
  GL_MAP2_VERTEX_ATTRIB3_4_NV
  GL_MAP2_VERTEX_ATTRIB4_4_NV
  GL_MAP2_VERTEX_ATTRIB5_4_NV
  GL_MAP2_VERTEX_ATTRIB6_4_NV
  GL_MAP2_VERTEX_ATTRIB7_4_NV
  GL_MAP2_VERTEX_ATTRIB8_4_NV
  GL_MAP2_VERTEX_ATTRIB9_4_NV
  GL_MAP_ATTRIB_U_ORDER_NV
  GL_MAP_ATTRIB_V_ORDER_NV
  GL_MAP_COHERENT_BIT
  GL_MAP_COHERENT_BIT_EXT
  GL_MAP_COLOR
  GL_MAP_FLUSH_EXPLICIT_BIT
  GL_MAP_FLUSH_EXPLICIT_BIT_EXT
  GL_MAP_INVALIDATE_BUFFER_BIT
  GL_MAP_INVALIDATE_BUFFER_BIT_EXT
  GL_MAP_INVALIDATE_RANGE_BIT
  GL_MAP_INVALIDATE_RANGE_BIT_EXT
  GL_MAP_PERSISTENT_BIT
  GL_MAP_PERSISTENT_BIT_EXT
  GL_MAP_READ_BIT
  GL_MAP_READ_BIT_EXT
  GL_MAP_STENCIL
  GL_MAP_TESSELLATION_NV
  GL_MAP_UNSYNCHRONIZED_BIT
  GL_MAP_UNSYNCHRONIZED_BIT_EXT
  GL_MAP_WRITE_BIT
  GL_MAP_WRITE_BIT_EXT
  GL_MATERIAL_SIDE_HINT_PGI
  GL_MATRIX0_ARB
  GL_MATRIX0_NV
  GL_MATRIX10_ARB
  GL_MATRIX11_ARB
  GL_MATRIX12_ARB
  GL_MATRIX13_ARB
  GL_MATRIX14_ARB
  GL_MATRIX15_ARB
  GL_MATRIX16_ARB
  GL_MATRIX17_ARB
  GL_MATRIX18_ARB
  GL_MATRIX19_ARB
  GL_MATRIX1_ARB
  GL_MATRIX1_NV
  GL_MATRIX20_ARB
  GL_MATRIX21_ARB
  GL_MATRIX22_ARB
  GL_MATRIX23_ARB
  GL_MATRIX24_ARB
  GL_MATRIX25_ARB
  GL_MATRIX26_ARB
  GL_MATRIX27_ARB
  GL_MATRIX28_ARB
  GL_MATRIX29_ARB
  GL_MATRIX2_ARB
  GL_MATRIX2_NV
  GL_MATRIX30_ARB
  GL_MATRIX31_ARB
  GL_MATRIX3_ARB
  GL_MATRIX3_NV
  GL_MATRIX4_ARB
  GL_MATRIX4_NV
  GL_MATRIX5_ARB
  GL_MATRIX5_NV
  GL_MATRIX6_ARB
  GL_MATRIX6_NV
  GL_MATRIX7_ARB
  GL_MATRIX7_NV
  GL_MATRIX8_ARB
  GL_MATRIX9_ARB
  GL_MATRIX_EXT
  GL_MATRIX_INDEX_ARRAY_ARB
  GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES
  GL_MATRIX_INDEX_ARRAY_OES
  GL_MATRIX_INDEX_ARRAY_POINTER_ARB
  GL_MATRIX_INDEX_ARRAY_POINTER_OES
  GL_MATRIX_INDEX_ARRAY_SIZE_ARB
  GL_MATRIX_INDEX_ARRAY_SIZE_OES
  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
  GL_MATRIX_INDEX_ARRAY_STRIDE_OES
  GL_MATRIX_INDEX_ARRAY_TYPE_ARB
  GL_MATRIX_INDEX_ARRAY_TYPE_OES
  GL_MATRIX_MODE
  GL_MATRIX_PALETTE_ARB
  GL_MATRIX_PALETTE_OES
  GL_MATRIX_STRIDE
  GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI
  GL_MAT_AMBIENT_BIT_PGI
  GL_MAT_COLOR_INDEXES_BIT_PGI
  GL_MAT_DIFFUSE_BIT_PGI
  GL_MAT_EMISSION_BIT_PGI
  GL_MAT_SHININESS_BIT_PGI
  GL_MAT_SPECULAR_BIT_PGI
  GL_MAX
  GL_MAX_3D_TEXTURE_SIZE
  GL_MAX_3D_TEXTURE_SIZE_EXT
  GL_MAX_3D_TEXTURE_SIZE_OES
  GL_MAX_ACTIVE_LIGHTS_EXT
  GL_MAX_ALPHA_SGIS
  GL_MAX_ARRAY_TEXTURE_LAYERS
  GL_MAX_ARRAY_TEXTURE_LAYERS_EXT
  GL_MAX_ARRAY_TEXTURE_LAYERS_NV
  GL_MAX_ASYNC_DRAW_PIXELS_SGIX
  GL_MAX_ASYNC_HISTOGRAM_SGIX
  GL_MAX_ASYNC_READ_PIXELS_SGIX
  GL_MAX_ASYNC_TEX_IMAGE_SGIX
  GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
  GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
  GL_MAX_ATTRIB_STACK_DEPTH
  GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
  GL_MAX_BLUE_SGIS
  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
  GL_MAX_CLIP_DISTANCES
  GL_MAX_CLIP_DISTANCES_APPLE
  GL_MAX_CLIP_DISTANCES_EXT
  GL_MAX_CLIP_PLANES
  GL_MAX_COARSE_FRAGMENT_SAMPLES_NV
  GL_MAX_COLOR_ATTACHMENTS
  GL_MAX_COLOR_ATTACHMENTS_EXT
  GL_MAX_COLOR_ATTACHMENTS_NV
  GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD
  GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD
  GL_MAX_COLOR_MATRIX_STACK_DEPTH
  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
  GL_MAX_COLOR_TEXTURE_SAMPLES
  GL_MAX_COMBINED_ATOMIC_COUNTERS
  GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
  GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
  GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT
  GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_DIMENSIONS
  GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT
  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES
  GL_MAX_COMBINED_IMAGE_UNIFORMS
  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
  GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_EXT
  GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV
  GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
  GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
  GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_EXT
  GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV
  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES
  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
  GL_MAX_COMBINED_UNIFORM_BLOCKS
  GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
  GL_MAX_COMPUTE_ATOMIC_COUNTERS
  GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
  GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
  GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
  GL_MAX_COMPUTE_IMAGE_UNIFORMS
  GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
  GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
  GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
  GL_MAX_COMPUTE_UNIFORM_BLOCKS
  GL_MAX_COMPUTE_UNIFORM_COMPONENTS
  GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
  GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
  GL_MAX_COMPUTE_WORK_GROUP_COUNT
  GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
  GL_MAX_COMPUTE_WORK_GROUP_SIZE
  GL_MAX_CONVOLUTION_HEIGHT
  GL_MAX_CONVOLUTION_HEIGHT_EXT
  GL_MAX_CONVOLUTION_WIDTH
  GL_MAX_CONVOLUTION_WIDTH_EXT
  GL_MAX_CUBE_MAP_TEXTURE_SIZE
  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
  GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT
  GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES
  GL_MAX_CULL_DISTANCES
  GL_MAX_CULL_DISTANCES_EXT
  GL_MAX_DEBUG_GROUP_STACK_DEPTH
  GL_MAX_DEBUG_LOGGED_MESSAGES
  GL_MAX_DEBUG_LOGGED_MESSAGES_AMD
  GL_MAX_DEBUG_LOGGED_MESSAGES_ARB
  GL_MAX_DEBUG_MESSAGE_LENGTH
  GL_MAX_DEBUG_MESSAGE_LENGTH_AMD
  GL_MAX_DEBUG_MESSAGE_LENGTH_ARB
  GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV
  GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
  GL_MAX_DEPTH
  GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD
  GL_MAX_DEPTH_TEXTURE_SAMPLES
  GL_MAX_DETACHED_BUFFERS_NV
  GL_MAX_DETACHED_TEXTURES_NV
  GL_MAX_DRAW_BUFFERS
  GL_MAX_DRAW_BUFFERS_ARB
  GL_MAX_DRAW_BUFFERS_ATI
  GL_MAX_DRAW_BUFFERS_EXT
  GL_MAX_DRAW_BUFFERS_NV
  GL_MAX_DRAW_MESH_TASKS_COUNT_NV
  GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
  GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT
  GL_MAX_ELEMENTS_INDICES
  GL_MAX_ELEMENTS_INDICES_EXT
  GL_MAX_ELEMENTS_VERTICES
  GL_MAX_ELEMENTS_VERTICES_EXT
  GL_MAX_ELEMENT_INDEX
  GL_MAX_EVAL_ORDER
  GL_MAX_EXT
  GL_MAX_FFT_WIDTH_SGI
  GL_MAX_FOG_LAYERS_POINTS_SGIX
  GL_MAX_FRAGMENT_ATOMIC_COUNTERS
  GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
  GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
  GL_MAX_FRAGMENT_IMAGE_UNIFORMS
  GL_MAX_FRAGMENT_INPUT_COMPONENTS
  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV
  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES
  GL_MAX_FRAGMENT_LIGHTS_EXT
  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
  GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
  GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT
  GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT
  GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT
  GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT
  GL_MAX_FRAGMENT_UNIFORM_BLOCKS
  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
  GL_MAX_FRAGMENT_UNIFORM_VECTORS
  GL_MAX_FRAMEBUFFER_HEIGHT
  GL_MAX_FRAMEBUFFER_LAYERS
  GL_MAX_FRAMEBUFFER_LAYERS_EXT
  GL_MAX_FRAMEBUFFER_LAYERS_OES
  GL_MAX_FRAMEBUFFER_SAMPLES
  GL_MAX_FRAMEBUFFER_WIDTH
  GL_MAX_GENERAL_COMBINERS_NV
  GL_MAX_GEOMETRY_ATOMIC_COUNTERS
  GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT
  GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES
  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES
  GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
  GL_MAX_GEOMETRY_IMAGE_UNIFORMS
  GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT
  GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES
  GL_MAX_GEOMETRY_INPUT_COMPONENTS
  GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES
  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES
  GL_MAX_GEOMETRY_OUTPUT_VERTICES
  GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
  GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
  GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES
  GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
  GL_MAX_GEOMETRY_SHADER_INVOCATIONS
  GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT
  GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES
  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES
  GL_MAX_GEOMETRY_UNIFORM_BLOCKS
  GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT
  GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES
  GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
  GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
  GL_MAX_GREEN_SGIS
  GL_MAX_HEIGHT
  GL_MAX_IMAGE_SAMPLES
  GL_MAX_IMAGE_SAMPLES_EXT
  GL_MAX_IMAGE_UNITS
  GL_MAX_IMAGE_UNITS_EXT
  GL_MAX_INTEGER_SAMPLES
  GL_MAX_INTENSITY_SGIS
  GL_MAX_LABEL_LENGTH
  GL_MAX_LAYERS
  GL_MAX_LGPU_GPUS_NVX
  GL_MAX_LIGHTS
  GL_MAX_LIST_NESTING
  GL_MAX_LUMINANCE_SGIS
  GL_MAX_MAP_TESSELLATION_NV
  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
  GL_MAX_MESH_ATOMIC_COUNTERS_EXT
  GL_MAX_MESH_ATOMIC_COUNTERS_NV
  GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV
  GL_MAX_MESH_IMAGE_UNIFORMS_EXT
  GL_MAX_MESH_IMAGE_UNIFORMS_NV
  GL_MAX_MESH_MULTIVIEW_VIEW_COUNT_EXT
  GL_MAX_MESH_OUTPUT_COMPONENTS_EXT
  GL_MAX_MESH_OUTPUT_LAYERS_EXT
  GL_MAX_MESH_OUTPUT_MEMORY_SIZE_EXT
  GL_MAX_MESH_OUTPUT_PRIMITIVES_EXT
  GL_MAX_MESH_OUTPUT_PRIMITIVES_NV
  GL_MAX_MESH_OUTPUT_VERTICES_EXT
  GL_MAX_MESH_OUTPUT_VERTICES_NV
  GL_MAX_MESH_PAYLOAD_AND_OUTPUT_MEMORY_SIZE_EXT
  GL_MAX_MESH_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT
  GL_MAX_MESH_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV
  GL_MAX_MESH_SHARED_MEMORY_SIZE_EXT
  GL_MAX_MESH_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV
  GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV
  GL_MAX_MESH_UNIFORM_BLOCKS_EXT
  GL_MAX_MESH_UNIFORM_BLOCKS_NV
  GL_MAX_MESH_UNIFORM_COMPONENTS_EXT
  GL_MAX_MESH_UNIFORM_COMPONENTS_NV
  GL_MAX_MESH_VIEWS_NV
  GL_MAX_MESH_WORK_GROUP_COUNT_EXT
  GL_MAX_MESH_WORK_GROUP_INVOCATIONS_EXT
  GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV
  GL_MAX_MESH_WORK_GROUP_SIZE_EXT
  GL_MAX_MESH_WORK_GROUP_SIZE_NV
  GL_MAX_MESH_WORK_GROUP_TOTAL_COUNT_EXT
  GL_MAX_MIPMAP_ANISOTROPY_SGIX
  GL_MAX_MODELVIEW_STACK_DEPTH
  GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV
  GL_MAX_MULTIVIEW_BUFFERS_EXT
  GL_MAX_NAME_LENGTH
  GL_MAX_NAME_STACK_DEPTH
  GL_MAX_NUM_ACTIVE_VARIABLES
  GL_MAX_NUM_COMPATIBLE_SUBROUTINES
  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
  GL_MAX_PALETTE_MATRICES_ARB
  GL_MAX_PALETTE_MATRICES_OES
  GL_MAX_PATCH_VERTICES
  GL_MAX_PATCH_VERTICES_EXT
  GL_MAX_PATCH_VERTICES_OES
  GL_MAX_PIXEL_MAP_TABLE
  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
  GL_MAX_PREFERRED_MESH_WORK_GROUP_INVOCATIONS_EXT
  GL_MAX_PREFERRED_TASK_WORK_GROUP_INVOCATIONS_EXT
  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_ATTRIBS_ARB
  GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
  GL_MAX_PROGRAM_CALL_DEPTH_NV
  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
  GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
  GL_MAX_PROGRAM_GENERIC_RESULTS_NV
  GL_MAX_PROGRAM_IF_DEPTH_NV
  GL_MAX_PROGRAM_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
  GL_MAX_PROGRAM_LOOP_COUNT_NV
  GL_MAX_PROGRAM_LOOP_DEPTH_NV
  GL_MAX_PROGRAM_MATRICES_ARB
  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
  GL_MAX_PROGRAM_PARAMETERS_ARB
  GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV
  GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV
  GL_MAX_PROGRAM_PATCH_ATTRIBS_NV
  GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
  GL_MAX_PROGRAM_TEMPORARIES_ARB
  GL_MAX_PROGRAM_TEXEL_OFFSET
  GL_MAX_PROGRAM_TEXEL_OFFSET_NV
  GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS
  GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV
  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
  GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
  GL_MAX_PROJECTION_STACK_DEPTH
  GL_MAX_RASTER_SAMPLES_EXT
  GL_MAX_RATIONAL_EVAL_ORDER_NV
  GL_MAX_RECTANGLE_TEXTURE_SIZE
  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT
  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
  GL_MAX_RED_SGIS
  GL_MAX_RENDERBUFFER_SIZE
  GL_MAX_RENDERBUFFER_SIZE_EXT
  GL_MAX_RENDERBUFFER_SIZE_OES
  GL_MAX_SAMPLES
  GL_MAX_SAMPLES_ANGLE
  GL_MAX_SAMPLES_APPLE
  GL_MAX_SAMPLES_EXT
  GL_MAX_SAMPLES_IMG
  GL_MAX_SAMPLES_NV
  GL_MAX_SAMPLE_MASK_WORDS
  GL_MAX_SAMPLE_MASK_WORDS_NV
  GL_MAX_SERVER_WAIT_TIMEOUT
  GL_MAX_SERVER_WAIT_TIMEOUT_APPLE
  GL_MAX_SHADER_BUFFER_ADDRESS_NV
  GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT
  GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT
  GL_MAX_SHADER_COMPILER_THREADS_ARB
  GL_MAX_SHADER_COMPILER_THREADS_KHR
  GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT
  GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT
  GL_MAX_SHADER_STORAGE_BLOCK_SIZE
  GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
  GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM
  GL_MAX_SHININESS_NV
  GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD
  GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
  GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT
  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS
  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
  GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT
  GL_MAX_SPARSE_TEXTURE_SIZE_AMD
  GL_MAX_SPARSE_TEXTURE_SIZE_ARB
  GL_MAX_SPARSE_TEXTURE_SIZE_EXT
  GL_MAX_SPOT_EXPONENT_NV
  GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV
  GL_MAX_SUBROUTINES
  GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
  GL_MAX_TASK_ATOMIC_COUNTERS_EXT
  GL_MAX_TASK_ATOMIC_COUNTERS_NV
  GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV
  GL_MAX_TASK_IMAGE_UNIFORMS_EXT
  GL_MAX_TASK_IMAGE_UNIFORMS_NV
  GL_MAX_TASK_OUTPUT_COUNT_NV
  GL_MAX_TASK_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT
  GL_MAX_TASK_PAYLOAD_SIZE_EXT
  GL_MAX_TASK_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV
  GL_MAX_TASK_SHARED_MEMORY_SIZE_EXT
  GL_MAX_TASK_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV
  GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV
  GL_MAX_TASK_UNIFORM_BLOCKS_EXT
  GL_MAX_TASK_UNIFORM_BLOCKS_NV
  GL_MAX_TASK_UNIFORM_COMPONENTS_EXT
  GL_MAX_TASK_UNIFORM_COMPONENTS_NV
  GL_MAX_TASK_WORK_GROUP_COUNT_EXT
  GL_MAX_TASK_WORK_GROUP_INVOCATIONS_EXT
  GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV
  GL_MAX_TASK_WORK_GROUP_SIZE_EXT
  GL_MAX_TASK_WORK_GROUP_SIZE_NV
  GL_MAX_TASK_WORK_GROUP_TOTAL_COUNT_EXT
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES
  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT
  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES
  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT
  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES
  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT
  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES
  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES
  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES
  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT
  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES
  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT
  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES
  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES
  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT
  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES
  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT
  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES
  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT
  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES
  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES
  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES
  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT
  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES
  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
  GL_MAX_TESS_GEN_LEVEL
  GL_MAX_TESS_GEN_LEVEL_EXT
  GL_MAX_TESS_GEN_LEVEL_OES
  GL_MAX_TESS_PATCH_COMPONENTS
  GL_MAX_TESS_PATCH_COMPONENTS_EXT
  GL_MAX_TESS_PATCH_COMPONENTS_OES
  GL_MAX_TEXTURES_SGIS
  GL_MAX_TEXTURE_BUFFER_SIZE
  GL_MAX_TEXTURE_BUFFER_SIZE_ARB
  GL_MAX_TEXTURE_BUFFER_SIZE_EXT
  GL_MAX_TEXTURE_BUFFER_SIZE_OES
  GL_MAX_TEXTURE_COORDS
  GL_MAX_TEXTURE_COORDS_ARB
  GL_MAX_TEXTURE_COORDS_NV
  GL_MAX_TEXTURE_COORD_SETS_SGIS
  GL_MAX_TEXTURE_IMAGE_UNITS
  GL_MAX_TEXTURE_IMAGE_UNITS_ARB
  GL_MAX_TEXTURE_IMAGE_UNITS_NV
  GL_MAX_TEXTURE_LOD_BIAS
  GL_MAX_TEXTURE_LOD_BIAS_EXT
  GL_MAX_TEXTURE_MAX_ANISOTROPY
  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
  GL_MAX_TEXTURE_SIZE
  GL_MAX_TEXTURE_STACK_DEPTH
  GL_MAX_TEXTURE_UNITS
  GL_MAX_TEXTURE_UNITS_ARB
  GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV
  GL_MAX_TRACK_MATRICES_NV
  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
  GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
  GL_MAX_UNIFORM_BLOCK_SIZE
  GL_MAX_UNIFORM_BUFFER_BINDINGS
  GL_MAX_UNIFORM_LOCATIONS
  GL_MAX_VARYING_COMPONENTS
  GL_MAX_VARYING_COMPONENTS_EXT
  GL_MAX_VARYING_FLOATS
  GL_MAX_VARYING_FLOATS_ARB
  GL_MAX_VARYING_VECTORS
  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE
  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV
  GL_MAX_VERTEX_ATOMIC_COUNTERS
  GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
  GL_MAX_VERTEX_ATTRIBS
  GL_MAX_VERTEX_ATTRIBS_ARB
  GL_MAX_VERTEX_ATTRIB_BINDINGS
  GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
  GL_MAX_VERTEX_ATTRIB_STRIDE
  GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
  GL_MAX_VERTEX_HINT_PGI
  GL_MAX_VERTEX_IMAGE_UNIFORMS
  GL_MAX_VERTEX_OUTPUT_COMPONENTS
  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
  GL_MAX_VERTEX_SHADER_LOCALS_EXT
  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
  GL_MAX_VERTEX_SHADER_VARIANTS_EXT
  GL_MAX_VERTEX_STREAMS
  GL_MAX_VERTEX_STREAMS_ATI
  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
  GL_MAX_VERTEX_UNIFORM_BLOCKS
  GL_MAX_VERTEX_UNIFORM_COMPONENTS
  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
  GL_MAX_VERTEX_UNIFORM_VECTORS
  GL_MAX_VERTEX_UNITS_ARB
  GL_MAX_VERTEX_UNITS_OES
  GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
  GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
  GL_MAX_VIEWPORTS
  GL_MAX_VIEWPORTS_NV
  GL_MAX_VIEWPORT_DIMS
  GL_MAX_VIEWS_OVR
  GL_MAX_WIDTH
  GL_MAX_WINDOW_RECTANGLES_EXT
  GL_MEDIUM_FLOAT
  GL_MEDIUM_INT
  GL_MEMORY_ATTACHABLE_ALIGNMENT_NV
  GL_MEMORY_ATTACHABLE_NV
  GL_MEMORY_ATTACHABLE_SIZE_NV
  GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_EXT
  GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV
  GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_EXT
  GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV
  GL_MESH_OUTPUT_TYPE_EXT
  GL_MESH_OUTPUT_TYPE_NV
  GL_MESH_PREFERS_COMPACT_PRIMITIVE_OUTPUT_EXT
  GL_MESH_PREFERS_COMPACT_VERTEX_OUTPUT_EXT
  GL_MESH_PREFERS_LOCAL_INVOCATION_PRIMITIVE_OUTPUT_EXT
  GL_MESH_PREFERS_LOCAL_INVOCATION_VERTEX_OUTPUT_EXT
  GL_MESH_PRIMITIVES_GENERATED_EXT
  GL_MESH_PRIMITIVES_OUT_EXT
  GL_MESH_PRIMITIVES_OUT_NV
  GL_MESH_SHADER_BIT_EXT
  GL_MESH_SHADER_BIT_NV
  GL_MESH_SHADER_EXT
  GL_MESH_SHADER_INVOCATIONS_EXT
  GL_MESH_SHADER_NV
  GL_MESH_SUBROUTINE_EXT
  GL_MESH_SUBROUTINE_NV
  GL_MESH_SUBROUTINE_UNIFORM_EXT
  GL_MESH_SUBROUTINE_UNIFORM_NV
  GL_MESH_VERTICES_OUT_EXT
  GL_MESH_VERTICES_OUT_NV
  GL_MESH_WORK_GROUP_SIZE_EXT
  GL_MESH_WORK_GROUP_SIZE_NV
  GL_MIN
  GL_MINMAX
  GL_MINMAX_EXT
  GL_MINMAX_FORMAT
  GL_MINMAX_FORMAT_EXT
  GL_MINMAX_SINK
  GL_MINMAX_SINK_EXT
  GL_MINOR_VERSION
  GL_MINUS_CLAMPED_NV
  GL_MINUS_NV
  GL_MIN_ALPHA_SGIS
  GL_MIN_BLUE_SGIS
  GL_MIN_EXT
  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV
  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES
  GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT
  GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT
  GL_MIN_GREEN_SGIS
  GL_MIN_INTENSITY_SGIS
  GL_MIN_LOD_WARNING_AMD
  GL_MIN_LUMINANCE_SGIS
  GL_MIN_MAP_BUFFER_ALIGNMENT
  GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE
  GL_MIN_PROGRAM_TEXEL_OFFSET
  GL_MIN_PROGRAM_TEXEL_OFFSET_NV
  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV
  GL_MIN_RED_SGIS
  GL_MIN_SAMPLE_SHADING_VALUE
  GL_MIN_SAMPLE_SHADING_VALUE_ARB
  GL_MIN_SAMPLE_SHADING_VALUE_OES
  GL_MIN_SPARSE_LEVEL_AMD
  GL_MIPMAP
  GL_MIRRORED_REPEAT
  GL_MIRRORED_REPEAT_ARB
  GL_MIRRORED_REPEAT_IBM
  GL_MIRROR_CLAMP_ATI
  GL_MIRROR_CLAMP_EXT
  GL_MIRROR_CLAMP_TO_BORDER_EXT
  GL_MIRROR_CLAMP_TO_EDGE
  GL_MIRROR_CLAMP_TO_EDGE_ATI
  GL_MIRROR_CLAMP_TO_EDGE_EXT
  GL_MISSING_REGAL
  GL_MITER_REVERT_NV
  GL_MITER_TRUNCATE_NV
  GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV
  GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV
  GL_MODELVIEW
  GL_MODELVIEW0_ARB
  GL_MODELVIEW0_EXT
  GL_MODELVIEW0_MATRIX_EXT
  GL_MODELVIEW0_STACK_DEPTH_EXT
  GL_MODELVIEW10_ARB
  GL_MODELVIEW11_ARB
  GL_MODELVIEW12_ARB
  GL_MODELVIEW13_ARB
  GL_MODELVIEW14_ARB
  GL_MODELVIEW15_ARB
  GL_MODELVIEW16_ARB
  GL_MODELVIEW17_ARB
  GL_MODELVIEW18_ARB
  GL_MODELVIEW19_ARB
  GL_MODELVIEW1_ARB
  GL_MODELVIEW1_EXT
  GL_MODELVIEW1_MATRIX_EXT
  GL_MODELVIEW1_STACK_DEPTH_EXT
  GL_MODELVIEW20_ARB
  GL_MODELVIEW21_ARB
  GL_MODELVIEW22_ARB
  GL_MODELVIEW23_ARB
  GL_MODELVIEW24_ARB
  GL_MODELVIEW25_ARB
  GL_MODELVIEW26_ARB
  GL_MODELVIEW27_ARB
  GL_MODELVIEW28_ARB
  GL_MODELVIEW29_ARB
  GL_MODELVIEW2_ARB
  GL_MODELVIEW30_ARB
  GL_MODELVIEW31_ARB
  GL_MODELVIEW3_ARB
  GL_MODELVIEW4_ARB
  GL_MODELVIEW5_ARB
  GL_MODELVIEW6_ARB
  GL_MODELVIEW7_ARB
  GL_MODELVIEW8_ARB
  GL_MODELVIEW9_ARB
  GL_MODELVIEW_MATRIX
  GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES
  GL_MODELVIEW_PROJECTION_NV
  GL_MODELVIEW_STACK_DEPTH
  GL_MODULATE
  GL_MODULATE_ADD_ATI
  GL_MODULATE_ADD_ATIX
  GL_MODULATE_COLOR_IMG
  GL_MODULATE_SIGNED_ADD_ATI
  GL_MODULATE_SIGNED_ADD_ATIX
  GL_MODULATE_SUBTRACT_ATI
  GL_MODULATE_SUBTRACT_ATIX
  GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM
  GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM
  GL_MOVE_TO_CONTINUES_NV
  GL_MOVE_TO_NV
  GL_MOVE_TO_RESETS_NV
  GL_MOV_ATI
  GL_MULT
  GL_MULTICAST_GPUS_NV
  GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV
  GL_MULTIPLY_KHR
  GL_MULTIPLY_NV
  GL_MULTISAMPLE
  GL_MULTISAMPLES_NV
  GL_MULTISAMPLE_3DFX
  GL_MULTISAMPLE_ARB
  GL_MULTISAMPLE_BIT
  GL_MULTISAMPLE_BIT_3DFX
  GL_MULTISAMPLE_BIT_ARB
  GL_MULTISAMPLE_BIT_EXT
  GL_MULTISAMPLE_BUFFER_BIT0_QCOM
  GL_MULTISAMPLE_BUFFER_BIT1_QCOM
  GL_MULTISAMPLE_BUFFER_BIT2_QCOM
  GL_MULTISAMPLE_BUFFER_BIT3_QCOM
  GL_MULTISAMPLE_BUFFER_BIT4_QCOM
  GL_MULTISAMPLE_BUFFER_BIT5_QCOM
  GL_MULTISAMPLE_BUFFER_BIT6_QCOM
  GL_MULTISAMPLE_BUFFER_BIT7_QCOM
  GL_MULTISAMPLE_COVERAGE_MODES_NV
  GL_MULTISAMPLE_EXT
  GL_MULTISAMPLE_FILTER_HINT_NV
  GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB
  GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB
  GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
  GL_MULTISAMPLE_SGIS
  GL_MULTIVIEW_EXT
  GL_MUL_ATI
  GL_MVP_MATRIX_EXT
  GL_N3F_V3F
  GL_NAMED_STRING_LENGTH_ARB
  GL_NAMED_STRING_TYPE_ARB
  GL_NAME_LENGTH
  GL_NAME_STACK_DEPTH
  GL_NAND
  GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
  GL_NATIVE_GRAPHICS_END_HINT_PGI
  GL_NATIVE_GRAPHICS_HANDLE_PGI
  GL_NEAREST
  GL_NEAREST_MIPMAP_LINEAR
  GL_NEAREST_MIPMAP_NEAREST
  GL_NEGATE_BIT_ATI
  GL_NEGATIVE_ONE_EXT
  GL_NEGATIVE_ONE_TO_ONE
  GL_NEGATIVE_ONE_TO_ONE_EXT
  GL_NEGATIVE_W_EXT
  GL_NEGATIVE_X_EXT
  GL_NEGATIVE_Y_EXT
  GL_NEGATIVE_Z_EXT
  GL_NEVER
  GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
  GL_NICEST
  GL_NONE
  GL_NONE_OES
  GL_NOOP
  GL_NOP_COMMAND_NV
  GL_NOR
  GL_NORMALIZE
  GL_NORMALIZED_RANGE_EXT
  GL_NORMAL_ARRAY
  GL_NORMAL_ARRAY_ADDRESS_NV
  GL_NORMAL_ARRAY_BUFFER_BINDING
  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
  GL_NORMAL_ARRAY_COUNT_EXT
  GL_NORMAL_ARRAY_EXT
  GL_NORMAL_ARRAY_LENGTH_NV
  GL_NORMAL_ARRAY_LIST_IBM
  GL_NORMAL_ARRAY_LIST_STRIDE_IBM
  GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
  GL_NORMAL_ARRAY_POINTER
  GL_NORMAL_ARRAY_POINTER_EXT
  GL_NORMAL_ARRAY_STRIDE
  GL_NORMAL_ARRAY_STRIDE_EXT
  GL_NORMAL_ARRAY_TYPE
  GL_NORMAL_ARRAY_TYPE_EXT
  GL_NORMAL_BIT_PGI
  GL_NORMAL_MAP
  GL_NORMAL_MAP_ARB
  GL_NORMAL_MAP_EXT
  GL_NORMAL_MAP_NV
  GL_NORMAL_MAP_OES
  GL_NOTEQUAL
  GL_NO_ERROR
  GL_NO_RESET_NOTIFICATION
  GL_NO_RESET_NOTIFICATION_ARB
  GL_NO_RESET_NOTIFICATION_EXT
  GL_NUM_ACTIVE_VARIABLES
  GL_NUM_COMPATIBLE_SUBROUTINES
  GL_NUM_COMPRESSED_TEXTURE_FORMATS
  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
  GL_NUM_DEVICE_UUIDS_EXT
  GL_NUM_DOWNSAMPLE_SCALES_IMG
  GL_NUM_EXTENSIONS
  GL_NUM_FILL_STREAMS_NV
  GL_NUM_FRAGMENT_CONSTANTS_ATI
  GL_NUM_FRAGMENT_REGISTERS_ATI
  GL_NUM_GENERAL_COMBINERS_NV
  GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
  GL_NUM_INSTRUCTIONS_PER_PASS_ATI
  GL_NUM_INSTRUCTIONS_TOTAL_ATI
  GL_NUM_LOOPBACK_COMPONENTS_ATI
  GL_NUM_PASSES_ATI
  GL_NUM_PROGRAM_BINARY_FORMATS
  GL_NUM_PROGRAM_BINARY_FORMATS_OES
  GL_NUM_SAMPLE_COUNTS
  GL_NUM_SHADER_BINARY_FORMATS
  GL_NUM_SHADING_LANGUAGE_VERSIONS
  GL_NUM_SPARSE_LEVELS_ARB
  GL_NUM_SPARSE_LEVELS_EXT
  GL_NUM_SPIR_V_EXTENSIONS
  GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD
  GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT
  GL_NUM_TILING_TYPES_EXT
  GL_NUM_VIDEO_CAPTURE_STREAMS_NV
  GL_NUM_VIRTUAL_PAGE_SIZES_ARB
  GL_NUM_VIRTUAL_PAGE_SIZES_EXT
  GL_NUM_WINDOW_RECTANGLES_EXT
  GL_NURBS_KNOT_COUNT_SGIX
  GL_NURBS_KNOT_VECTOR_SGIX
  GL_NVIDIA_PLATFORM_BINARY_NV
  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
  GL_OBJECT_ACTIVE_UNIFORMS_ARB
  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
  GL_OBJECT_ATTACHED_OBJECTS_ARB
  GL_OBJECT_BUFFER_SIZE_ATI
  GL_OBJECT_BUFFER_USAGE_ATI
  GL_OBJECT_COMPILE_STATUS_ARB
  GL_OBJECT_DELETE_STATUS_ARB
  GL_OBJECT_DISTANCE_TO_LINE_SGIS
  GL_OBJECT_DISTANCE_TO_POINT_SGIS
  GL_OBJECT_INFO_LOG_LENGTH_ARB
  GL_OBJECT_LINEAR
  GL_OBJECT_LINE_SGIS
  GL_OBJECT_LINK_STATUS_ARB
  GL_OBJECT_PLANE
  GL_OBJECT_POINT_SGIS
  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
  GL_OBJECT_SPACE_SGIX
  GL_OBJECT_SUBTYPE_ARB
  GL_OBJECT_TYPE
  GL_OBJECT_TYPE_APPLE
  GL_OBJECT_TYPE_ARB
  GL_OBJECT_VALIDATE_STATUS_ARB
  GL_OCCLUSION_INSTRUMENT_SGIX
  GL_OCCLUSION_QUERY_EVENT_MASK_AMD
  GL_OFFSET
  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV
  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV
  GL_OFFSET_HILO_TEXTURE_2D_NV
  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV
  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV
  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV
  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV
  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV
  GL_OFFSET_TEXTURE_2D_BIAS_NV
  GL_OFFSET_TEXTURE_2D_MATRIX_NV
  GL_OFFSET_TEXTURE_2D_NV
  GL_OFFSET_TEXTURE_2D_SCALE_NV
  GL_OFFSET_TEXTURE_BIAS_NV
  GL_OFFSET_TEXTURE_MATRIX_NV
  GL_OFFSET_TEXTURE_RECTANGLE_NV
  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV
  GL_OFFSET_TEXTURE_SCALE_NV
  GL_ONE
  GL_ONE_EXT
  GL_ONE_MINUS_CONSTANT_ALPHA
  GL_ONE_MINUS_CONSTANT_ALPHA_EXT
  GL_ONE_MINUS_CONSTANT_COLOR
  GL_ONE_MINUS_CONSTANT_COLOR_EXT
  GL_ONE_MINUS_DST_ALPHA
  GL_ONE_MINUS_DST_COLOR
  GL_ONE_MINUS_SRC1_ALPHA
  GL_ONE_MINUS_SRC1_ALPHA_EXT
  GL_ONE_MINUS_SRC1_COLOR
  GL_ONE_MINUS_SRC1_COLOR_EXT
  GL_ONE_MINUS_SRC_ALPHA
  GL_ONE_MINUS_SRC_COLOR
  GL_OPERAND0_ALPHA
  GL_OPERAND0_ALPHA_ARB
  GL_OPERAND0_ALPHA_EXT
  GL_OPERAND0_RGB
  GL_OPERAND0_RGB_ARB
  GL_OPERAND0_RGB_EXT
  GL_OPERAND1_ALPHA
  GL_OPERAND1_ALPHA_ARB
  GL_OPERAND1_ALPHA_EXT
  GL_OPERAND1_RGB
  GL_OPERAND1_RGB_ARB
  GL_OPERAND1_RGB_EXT
  GL_OPERAND2_ALPHA
  GL_OPERAND2_ALPHA_ARB
  GL_OPERAND2_ALPHA_EXT
  GL_OPERAND2_RGB
  GL_OPERAND2_RGB_ARB
  GL_OPERAND2_RGB_EXT
  GL_OPERAND3_ALPHA_NV
  GL_OPERAND3_RGB_NV
  GL_OPTIMAL_TILING_EXT
  GL_OP_ADD_EXT
  GL_OP_CLAMP_EXT
  GL_OP_CROSS_PRODUCT_EXT
  GL_OP_DOT3_EXT
  GL_OP_DOT4_EXT
  GL_OP_EXP_BASE_2_EXT
  GL_OP_FLOOR_EXT
  GL_OP_FRAC_EXT
  GL_OP_INDEX_EXT
  GL_OP_LOG_BASE_2_EXT
  GL_OP_MADD_EXT
  GL_OP_MAX_EXT
  GL_OP_MIN_EXT
  GL_OP_MOV_EXT
  GL_OP_MULTIPLY_MATRIX_EXT
  GL_OP_MUL_EXT
  GL_OP_NEGATE_EXT
  GL_OP_POWER_EXT
  GL_OP_RECIP_EXT
  GL_OP_RECIP_SQRT_EXT
  GL_OP_ROUND_EXT
  GL_OP_SET_GE_EXT
  GL_OP_SET_LT_EXT
  GL_OP_SUB_EXT
  GL_OR
  GL_ORDER
  GL_OR_INVERTED
  GL_OR_REVERSE
  GL_OUTPUT_COLOR0_EXT
  GL_OUTPUT_COLOR1_EXT
  GL_OUTPUT_FOG_EXT
  GL_OUTPUT_POINT_SIZE_ATIX
  GL_OUTPUT_TEXTURE_COORD0_EXT
  GL_OUTPUT_TEXTURE_COORD10_EXT
  GL_OUTPUT_TEXTURE_COORD11_EXT
  GL_OUTPUT_TEXTURE_COORD12_EXT
  GL_OUTPUT_TEXTURE_COORD13_EXT
  GL_OUTPUT_TEXTURE_COORD14_EXT
  GL_OUTPUT_TEXTURE_COORD15_EXT
  GL_OUTPUT_TEXTURE_COORD16_EXT
  GL_OUTPUT_TEXTURE_COORD17_EXT
  GL_OUTPUT_TEXTURE_COORD18_EXT
  GL_OUTPUT_TEXTURE_COORD19_EXT
  GL_OUTPUT_TEXTURE_COORD1_EXT
  GL_OUTPUT_TEXTURE_COORD20_EXT
  GL_OUTPUT_TEXTURE_COORD21_EXT
  GL_OUTPUT_TEXTURE_COORD22_EXT
  GL_OUTPUT_TEXTURE_COORD23_EXT
  GL_OUTPUT_TEXTURE_COORD24_EXT
  GL_OUTPUT_TEXTURE_COORD25_EXT
  GL_OUTPUT_TEXTURE_COORD26_EXT
  GL_OUTPUT_TEXTURE_COORD27_EXT
  GL_OUTPUT_TEXTURE_COORD28_EXT
  GL_OUTPUT_TEXTURE_COORD29_EXT
  GL_OUTPUT_TEXTURE_COORD2_EXT
  GL_OUTPUT_TEXTURE_COORD30_EXT
  GL_OUTPUT_TEXTURE_COORD31_EXT
  GL_OUTPUT_TEXTURE_COORD3_EXT
  GL_OUTPUT_TEXTURE_COORD4_EXT
  GL_OUTPUT_TEXTURE_COORD5_EXT
  GL_OUTPUT_TEXTURE_COORD6_EXT
  GL_OUTPUT_TEXTURE_COORD7_EXT
  GL_OUTPUT_TEXTURE_COORD8_EXT
  GL_OUTPUT_TEXTURE_COORD9_EXT
  GL_OUTPUT_VERTEX_EXT
  GL_OUT_OF_MEMORY
  GL_OVERLAY_KHR
  GL_OVERLAY_NV
  GL_PACK_ALIGNMENT
  GL_PACK_CMYK_HINT_EXT
  GL_PACK_COMPRESSED_BLOCK_DEPTH
  GL_PACK_COMPRESSED_BLOCK_HEIGHT
  GL_PACK_COMPRESSED_BLOCK_SIZE
  GL_PACK_COMPRESSED_BLOCK_WIDTH
  GL_PACK_IMAGE_HEIGHT
  GL_PACK_IMAGE_HEIGHT_EXT
  GL_PACK_INVERT_MESA
  GL_PACK_LSB_FIRST
  GL_PACK_MAX_COMPRESSED_SIZE_SGIX
  GL_PACK_RESAMPLE_OML
  GL_PACK_RESAMPLE_SGIX
  GL_PACK_REVERSE_ROW_ORDER_ANGLE
  GL_PACK_ROW_BYTES_APPLE
  GL_PACK_ROW_LENGTH
  GL_PACK_ROW_LENGTH_NV
  GL_PACK_SKIP_IMAGES
  GL_PACK_SKIP_IMAGES_EXT
  GL_PACK_SKIP_PIXELS
  GL_PACK_SKIP_PIXELS_NV
  GL_PACK_SKIP_ROWS
  GL_PACK_SKIP_ROWS_NV
  GL_PACK_SUBSAMPLE_RATE_SGIX
  GL_PACK_SWAP_BYTES
  GL_PALETTE4_R5_G6_B5_OES
  GL_PALETTE4_RGB5_A1_OES
  GL_PALETTE4_RGB8_OES
  GL_PALETTE4_RGBA4_OES
  GL_PALETTE4_RGBA8_OES
  GL_PALETTE8_R5_G6_B5_OES
  GL_PALETTE8_RGB5_A1_OES
  GL_PALETTE8_RGB8_OES
  GL_PALETTE8_RGBA4_OES
  GL_PALETTE8_RGBA8_OES
  GL_PARALLEL_ARRAYS_INTEL
  GL_PARAMETER_BUFFER
  GL_PARAMETER_BUFFER_ARB
  GL_PARAMETER_BUFFER_BINDING
  GL_PARAMETER_BUFFER_BINDING_ARB
  GL_PARTIAL_SUCCESS_NV
  GL_PASS_THROUGH_NV
  GL_PASS_THROUGH_TOKEN
  GL_PATCHES
  GL_PATCHES_EXT
  GL_PATCHES_OES
  GL_PATCH_DEFAULT_INNER_LEVEL
  GL_PATCH_DEFAULT_OUTER_LEVEL
  GL_PATCH_VERTICES
  GL_PATCH_VERTICES_EXT
  GL_PATCH_VERTICES_OES
  GL_PATH_CLIENT_LENGTH_NV
  GL_PATH_COMMAND_COUNT_NV
  GL_PATH_COMPUTED_LENGTH_NV
  GL_PATH_COORD_COUNT_NV
  GL_PATH_COVER_DEPTH_FUNC_NV
  GL_PATH_DASH_ARRAY_COUNT_NV
  GL_PATH_DASH_CAPS_NV
  GL_PATH_DASH_OFFSET_NV
  GL_PATH_DASH_OFFSET_RESET_NV
  GL_PATH_END_CAPS_NV
  GL_PATH_ERROR_POSITION_NV
  GL_PATH_FILL_BOUNDING_BOX_NV
  GL_PATH_FILL_COVER_MODE_NV
  GL_PATH_FILL_MASK_NV
  GL_PATH_FILL_MODE_NV
  GL_PATH_FOG_GEN_MODE_NV
  GL_PATH_FORMAT_PS_NV
  GL_PATH_FORMAT_SVG_NV
  GL_PATH_GEN_COEFF_NV
  GL_PATH_GEN_COLOR_FORMAT_NV
  GL_PATH_GEN_COMPONENTS_NV
  GL_PATH_GEN_MODE_NV
  GL_PATH_INITIAL_DASH_CAP_NV
  GL_PATH_INITIAL_END_CAP_NV
  GL_PATH_JOIN_STYLE_NV
  GL_PATH_MITER_LIMIT_NV
  GL_PATH_OBJECT_BOUNDING_BOX_NV
  GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV
  GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV
  GL_PATH_STENCIL_FUNC_NV
  GL_PATH_STENCIL_REF_NV
  GL_PATH_STENCIL_VALUE_MASK_NV
  GL_PATH_STROKE_BOUNDING_BOX_NV
  GL_PATH_STROKE_BOUND_NV
  GL_PATH_STROKE_COVER_MODE_NV
  GL_PATH_STROKE_MASK_NV
  GL_PATH_STROKE_WIDTH_NV
  GL_PATH_TERMINAL_DASH_CAP_NV
  GL_PATH_TERMINAL_END_CAP_NV
  GL_PERCENTAGE_AMD
  GL_PERFMON_GLOBAL_MODE_QCOM
  GL_PERFMON_RESULT_AMD
  GL_PERFMON_RESULT_AVAILABLE_AMD
  GL_PERFMON_RESULT_SIZE_AMD
  GL_PERFORMANCE_MONITOR_AMD
  GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
  GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
  GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
  GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
  GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
  GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
  GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
  GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
  GL_PERFQUERY_COUNTER_EVENT_INTEL
  GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
  GL_PERFQUERY_COUNTER_RAW_INTEL
  GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
  GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
  GL_PERFQUERY_DONOT_FLUSH_INTEL
  GL_PERFQUERY_FLUSH_INTEL
  GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
  GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
  GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
  GL_PERFQUERY_SINGLE_CONTEXT_INTEL
  GL_PERFQUERY_WAIT_INTEL
  GL_PERSPECTIVE_CORRECTION_HINT
  GL_PERTURB_EXT
  GL_PER_GPU_STORAGE_BIT_NV
  GL_PER_GPU_STORAGE_NV
  GL_PER_STAGE_CONSTANTS_NV
  GL_PHASE_SGIX
  GL_PHONG_HINT_WIN
  GL_PHONG_WIN
  GL_PINLIGHT_NV
  GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD
  GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD
  GL_PIXEL_BUFFER_BARRIER_BIT
  GL_PIXEL_BUFFER_BARRIER_BIT_EXT
  GL_PIXEL_COUNTER_BITS_NV
  GL_PIXEL_COUNT_AVAILABLE_NV
  GL_PIXEL_COUNT_NV
  GL_PIXEL_CUBIC_WEIGHT_EXT
  GL_PIXEL_MAG_FILTER_EXT
  GL_PIXEL_MAP_A_TO_A
  GL_PIXEL_MAP_A_TO_A_SIZE
  GL_PIXEL_MAP_B_TO_B
  GL_PIXEL_MAP_B_TO_B_SIZE
  GL_PIXEL_MAP_G_TO_G
  GL_PIXEL_MAP_G_TO_G_SIZE
  GL_PIXEL_MAP_I_TO_A
  GL_PIXEL_MAP_I_TO_A_SIZE
  GL_PIXEL_MAP_I_TO_B
  GL_PIXEL_MAP_I_TO_B_SIZE
  GL_PIXEL_MAP_I_TO_G
  GL_PIXEL_MAP_I_TO_G_SIZE
  GL_PIXEL_MAP_I_TO_I
  GL_PIXEL_MAP_I_TO_I_SIZE
  GL_PIXEL_MAP_I_TO_R
  GL_PIXEL_MAP_I_TO_R_SIZE
  GL_PIXEL_MAP_R_TO_R
  GL_PIXEL_MAP_R_TO_R_SIZE
  GL_PIXEL_MAP_S_TO_S
  GL_PIXEL_MAP_S_TO_S_SIZE
  GL_PIXEL_MIN_FILTER_EXT
  GL_PIXEL_MODE_BIT
  GL_PIXEL_PACK_BUFFER
  GL_PIXEL_PACK_BUFFER_ARB
  GL_PIXEL_PACK_BUFFER_BINDING
  GL_PIXEL_PACK_BUFFER_BINDING_ARB
  GL_PIXEL_PACK_BUFFER_BINDING_EXT
  GL_PIXEL_PACK_BUFFER_BINDING_NV
  GL_PIXEL_PACK_BUFFER_EXT
  GL_PIXEL_PACK_BUFFER_NV
  GL_PIXEL_SUBSAMPLE_2424_SGIX
  GL_PIXEL_SUBSAMPLE_4242_SGIX
  GL_PIXEL_SUBSAMPLE_4444_SGIX
  GL_PIXEL_TRANSFORM_2D_EXT
  GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
  GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
  GL_PIXEL_TRANSFORM_OPERATOR_SGI
  GL_PIXEL_TRANSFORM_SGI
  GL_PIXEL_UNPACK_BUFFER
  GL_PIXEL_UNPACK_BUFFER_ARB
  GL_PIXEL_UNPACK_BUFFER_BINDING
  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
  GL_PIXEL_UNPACK_BUFFER_BINDING_NV
  GL_PIXEL_UNPACK_BUFFER_EXT
  GL_PIXEL_UNPACK_BUFFER_NV
  GL_PLUS_CLAMPED_ALPHA_NV
  GL_PLUS_CLAMPED_NV
  GL_PLUS_DARKER_NV
  GL_PLUS_NV
  GL_PN_TRIANGLES_ATI
  GL_PN_TRIANGLES_NORMAL_MODE_ATI
  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI
  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI
  GL_PN_TRIANGLES_POINT_MODE_ATI
  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI
  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI
  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI
  GL_POINT
  GL_POINTS
  GL_POINT_BIT
  GL_POINT_DISTANCE_ATTENUATION
  GL_POINT_DISTANCE_ATTENUATION_ARB
  GL_POINT_FADE_THRESHOLD_SIZE
  GL_POINT_FADE_THRESHOLD_SIZE_ARB
  GL_POINT_FADE_THRESHOLD_SIZE_EXT
  GL_POINT_NV
  GL_POINT_SIZE
  GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES
  GL_POINT_SIZE_ARRAY_OES
  GL_POINT_SIZE_ARRAY_POINTER_OES
  GL_POINT_SIZE_ARRAY_STRIDE_OES
  GL_POINT_SIZE_ARRAY_TYPE_OES
  GL_POINT_SIZE_GRANULARITY
  GL_POINT_SIZE_MAX
  GL_POINT_SIZE_MAX_ARB
  GL_POINT_SIZE_MAX_EXT
  GL_POINT_SIZE_MIN
  GL_POINT_SIZE_MIN_ARB
  GL_POINT_SIZE_MIN_EXT
  GL_POINT_SIZE_RANGE
  GL_POINT_SMOOTH
  GL_POINT_SMOOTH_HINT
  GL_POINT_SPRITE
  GL_POINT_SPRITE_ARB
  GL_POINT_SPRITE_COORD_ORIGIN
  GL_POINT_SPRITE_CULL_CENTER_ATIX
  GL_POINT_SPRITE_CULL_CLIP_ATIX
  GL_POINT_SPRITE_CULL_MODE_ATIX
  GL_POINT_SPRITE_NV
  GL_POINT_SPRITE_OES
  GL_POINT_SPRITE_R_MODE_NV
  GL_POINT_TOKEN
  GL_POLYGON
  GL_POLYGON_BIT
  GL_POLYGON_MODE
  GL_POLYGON_MODE_NV
  GL_POLYGON_OFFSET_BIAS_EXT
  GL_POLYGON_OFFSET_CLAMP
  GL_POLYGON_OFFSET_CLAMP_EXT
  GL_POLYGON_OFFSET_COMMAND_NV
  GL_POLYGON_OFFSET_EXT
  GL_POLYGON_OFFSET_FACTOR
  GL_POLYGON_OFFSET_FACTOR_EXT
  GL_POLYGON_OFFSET_FILL
  GL_POLYGON_OFFSET_LINE
  GL_POLYGON_OFFSET_LINE_NV
  GL_POLYGON_OFFSET_POINT
  GL_POLYGON_OFFSET_POINT_NV
  GL_POLYGON_OFFSET_UNITS
  GL_POLYGON_SMOOTH
  GL_POLYGON_SMOOTH_HINT
  GL_POLYGON_STIPPLE
  GL_POLYGON_STIPPLE_BIT
  GL_POLYGON_TOKEN
  GL_POSITION
  GL_POST_COLOR_MATRIX_ALPHA_BIAS
  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
  GL_POST_COLOR_MATRIX_ALPHA_SCALE
  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
  GL_POST_COLOR_MATRIX_BLUE_BIAS
  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
  GL_POST_COLOR_MATRIX_BLUE_SCALE
  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
  GL_POST_COLOR_MATRIX_COLOR_TABLE
  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
  GL_POST_COLOR_MATRIX_GREEN_BIAS
  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
  GL_POST_COLOR_MATRIX_GREEN_SCALE
  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
  GL_POST_COLOR_MATRIX_RED_BIAS
  GL_POST_COLOR_MATRIX_RED_BIAS_SGI
  GL_POST_COLOR_MATRIX_RED_SCALE
  GL_POST_COLOR_MATRIX_RED_SCALE_SGI
  GL_POST_CONVOLUTION_ALPHA_BIAS
  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
  GL_POST_CONVOLUTION_ALPHA_SCALE
  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
  GL_POST_CONVOLUTION_BLUE_BIAS
  GL_POST_CONVOLUTION_BLUE_BIAS_EXT
  GL_POST_CONVOLUTION_BLUE_SCALE
  GL_POST_CONVOLUTION_BLUE_SCALE_EXT
  GL_POST_CONVOLUTION_COLOR_TABLE
  GL_POST_CONVOLUTION_COLOR_TABLE_SGI
  GL_POST_CONVOLUTION_GREEN_BIAS
  GL_POST_CONVOLUTION_GREEN_BIAS_EXT
  GL_POST_CONVOLUTION_GREEN_SCALE
  GL_POST_CONVOLUTION_GREEN_SCALE_EXT
  GL_POST_CONVOLUTION_RED_BIAS
  GL_POST_CONVOLUTION_RED_BIAS_EXT
  GL_POST_CONVOLUTION_RED_SCALE
  GL_POST_CONVOLUTION_RED_SCALE_EXT
  GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
  GL_POST_TEXTURE_FILTER_BIAS_SGIX
  GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
  GL_POST_TEXTURE_FILTER_SCALE_SGIX
  GL_PREFER_DOUBLEBUFFER_HINT_PGI
  GL_PRESENT_DURATION_NV
  GL_PRESENT_TIME_NV
  GL_PRESERVE_ATI
  GL_PREVIOUS
  GL_PREVIOUS_ARB
  GL_PREVIOUS_EXT
  GL_PREVIOUS_TEXTURE_INPUT_NV
  GL_PRIMARY_COLOR
  GL_PRIMARY_COLOR_ARB
  GL_PRIMARY_COLOR_EXT
  GL_PRIMARY_COLOR_NV
  GL_PRIMITIVES_GENERATED
  GL_PRIMITIVES_GENERATED_EXT
  GL_PRIMITIVES_GENERATED_NV
  GL_PRIMITIVES_GENERATED_OES
  GL_PRIMITIVES_SUBMITTED
  GL_PRIMITIVES_SUBMITTED_ARB
  GL_PRIMITIVE_BOUNDING_BOX_ARB
  GL_PRIMITIVE_BOUNDING_BOX_EXT
  GL_PRIMITIVE_ID_NV
  GL_PRIMITIVE_RESTART
  GL_PRIMITIVE_RESTART_FIXED_INDEX
  GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
  GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES
  GL_PRIMITIVE_RESTART_INDEX
  GL_PRIMITIVE_RESTART_INDEX_NV
  GL_PRIMITIVE_RESTART_NV
  GL_PROGRAM
  GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB
  GL_PROGRAMMABLE_SAMPLE_LOCATION_NV
  GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB
  GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV
  GL_PROGRAM_ADDRESS_REGISTERS_ARB
  GL_PROGRAM_ALU_INSTRUCTIONS_ARB
  GL_PROGRAM_ATTRIBS_ARB
  GL_PROGRAM_ATTRIB_COMPONENTS_NV
  GL_PROGRAM_BINARY_ANGLE
  GL_PROGRAM_BINARY_FORMATS
  GL_PROGRAM_BINARY_FORMATS_OES
  GL_PROGRAM_BINARY_FORMAT_MESA
  GL_PROGRAM_BINARY_LENGTH
  GL_PROGRAM_BINARY_LENGTH_OES
  GL_PROGRAM_BINARY_RETRIEVABLE_HINT
  GL_PROGRAM_BINDING_ARB
  GL_PROGRAM_ERROR_POSITION_ARB
  GL_PROGRAM_ERROR_POSITION_NV
  GL_PROGRAM_ERROR_STRING_ARB
  GL_PROGRAM_ERROR_STRING_NV
  GL_PROGRAM_FORMAT_ARB
  GL_PROGRAM_FORMAT_ASCII_ARB
  GL_PROGRAM_INPUT
  GL_PROGRAM_INSTRUCTIONS_ARB
  GL_PROGRAM_LENGTH_ARB
  GL_PROGRAM_LENGTH_NV
  GL_PROGRAM_MATRIX_EXT
  GL_PROGRAM_MATRIX_STACK_DEPTH_EXT
  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
  GL_PROGRAM_NATIVE_ATTRIBS_ARB
  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
  GL_PROGRAM_NATIVE_PARAMETERS_ARB
  GL_PROGRAM_NATIVE_TEMPORARIES_ARB
  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
  GL_PROGRAM_OBJECT_ARB
  GL_PROGRAM_OBJECT_EXT
  GL_PROGRAM_OUTPUT
  GL_PROGRAM_PARAMETERS_ARB
  GL_PROGRAM_PARAMETER_NV
  GL_PROGRAM_PIPELINE
  GL_PROGRAM_PIPELINE_BINDING
  GL_PROGRAM_PIPELINE_OBJECT_EXT
  GL_PROGRAM_POINT_SIZE
  GL_PROGRAM_POINT_SIZE_ARB
  GL_PROGRAM_POINT_SIZE_EXT
  GL_PROGRAM_RESIDENT_NV
  GL_PROGRAM_RESULT_COMPONENTS_NV
  GL_PROGRAM_SEPARABLE
  GL_PROGRAM_STRING_ARB
  GL_PROGRAM_STRING_NV
  GL_PROGRAM_TARGET_NV
  GL_PROGRAM_TEMPORARIES_ARB
  GL_PROGRAM_TEX_INDIRECTIONS_ARB
  GL_PROGRAM_TEX_INSTRUCTIONS_ARB
  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
  GL_PROJECTION
  GL_PROJECTION_MATRIX
  GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES
  GL_PROJECTION_STACK_DEPTH
  GL_PROTECTED_MEMORY_OBJECT_EXT
  GL_PROVOKING_VERTEX
  GL_PROVOKING_VERTEX_EXT
  GL_PROXY_COLOR_TABLE
  GL_PROXY_COLOR_TABLE_SGI
  GL_PROXY_HISTOGRAM
  GL_PROXY_HISTOGRAM_EXT
  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE
  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI
  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE
  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI
  GL_PROXY_TEXTURE_1D
  GL_PROXY_TEXTURE_1D_ARRAY
  GL_PROXY_TEXTURE_1D_ARRAY_EXT
  GL_PROXY_TEXTURE_1D_EXT
  GL_PROXY_TEXTURE_1D_STACK_MESAX
  GL_PROXY_TEXTURE_2D
  GL_PROXY_TEXTURE_2D_ARRAY
  GL_PROXY_TEXTURE_2D_ARRAY_EXT
  GL_PROXY_TEXTURE_2D_EXT
  GL_PROXY_TEXTURE_2D_MULTISAMPLE
  GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
  GL_PROXY_TEXTURE_2D_STACK_MESAX
  GL_PROXY_TEXTURE_3D
  GL_PROXY_TEXTURE_3D_EXT
  GL_PROXY_TEXTURE_COLOR_TABLE_SGI
  GL_PROXY_TEXTURE_CUBE_MAP
  GL_PROXY_TEXTURE_CUBE_MAP_ARB
  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY
  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB
  GL_PROXY_TEXTURE_CUBE_MAP_EXT
  GL_PROXY_TEXTURE_RECTANGLE
  GL_PROXY_TEXTURE_RECTANGLE_ARB
  GL_PROXY_TEXTURE_RECTANGLE_EXT
  GL_PROXY_TEXTURE_RECTANGLE_NV
  GL_PURGEABLE_APPLE
  GL_PURGED_CONTEXT_RESET_NV
  GL_PVRIC_SIGNATURE_MISMATCH_IMG
  GL_Q
  GL_QUADRATIC_ATTENUATION
  GL_QUADRATIC_CURVE_TO_NV
  GL_QUADS
  GL_QUADS_EXT
  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
  GL_QUADS_OES
  GL_QUAD_MESH_SUN
  GL_QUAD_STRIP
  GL_QUARTER_BIT_ATI
  GL_QUERY
  GL_QUERY_ALL_EVENT_BITS_AMD
  GL_QUERY_BUFFER
  GL_QUERY_BUFFER_AMD
  GL_QUERY_BUFFER_BARRIER_BIT
  GL_QUERY_BUFFER_BINDING
  GL_QUERY_BUFFER_BINDING_AMD
  GL_QUERY_BY_REGION_NO_WAIT
  GL_QUERY_BY_REGION_NO_WAIT_INVERTED
  GL_QUERY_BY_REGION_NO_WAIT_NV
  GL_QUERY_BY_REGION_WAIT
  GL_QUERY_BY_REGION_WAIT_INVERTED
  GL_QUERY_BY_REGION_WAIT_NV
  GL_QUERY_COUNTER_BITS
  GL_QUERY_COUNTER_BITS_ANGLE
  GL_QUERY_COUNTER_BITS_ARB
  GL_QUERY_COUNTER_BITS_EXT
  GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
  GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
  GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
  GL_QUERY_NO_WAIT
  GL_QUERY_NO_WAIT_INVERTED
  GL_QUERY_NO_WAIT_NV
  GL_QUERY_OBJECT_AMD
  GL_QUERY_OBJECT_EXT
  GL_QUERY_RESULT
  GL_QUERY_RESULT_ANGLE
  GL_QUERY_RESULT_ARB
  GL_QUERY_RESULT_AVAILABLE
  GL_QUERY_RESULT_AVAILABLE_ANGLE
  GL_QUERY_RESULT_AVAILABLE_ARB
  GL_QUERY_RESULT_AVAILABLE_EXT
  GL_QUERY_RESULT_AVAILABLE_NV
  GL_QUERY_RESULT_EXT
  GL_QUERY_RESULT_NO_WAIT
  GL_QUERY_RESULT_NO_WAIT_AMD
  GL_QUERY_RESULT_NV
  GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
  GL_QUERY_TARGET
  GL_QUERY_WAIT
  GL_QUERY_WAIT_INVERTED
  GL_QUERY_WAIT_NV
  GL_R
  GL_R11F_G11F_B10F
  GL_R11F_G11F_B10F_APPLE
  GL_R11F_G11F_B10F_EXT
  GL_R11F_G11F_B10F_NV
  GL_R16
  GL_R16F
  GL_R16F_EXT
  GL_R16I
  GL_R16UI
  GL_R16_EXT
  GL_R16_SNORM
  GL_R16_SNORM_EXT
  GL_R1UI_C3F_V3F_SUN
  GL_R1UI_C4F_N3F_V3F_SUN
  GL_R1UI_C4UB_V3F_SUN
  GL_R1UI_N3F_V3F_SUN
  GL_R1UI_T2F_C4F_N3F_V3F_SUN
  GL_R1UI_T2F_N3F_V3F_SUN
  GL_R1UI_T2F_V3F_SUN
  GL_R1UI_V3F_SUN
  GL_R32F
  GL_R32F_EXT
  GL_R32I
  GL_R32UI
  GL_R3_G3_B2
  GL_R5_G6_B5_A8_ICC_SGIX
  GL_R5_G6_B5_ICC_SGIX
  GL_R8
  GL_R8I
  GL_R8UI
  GL_R8_EXT
  GL_R8_SNORM
  GL_RASTERIZER_DISCARD
  GL_RASTERIZER_DISCARD_EXT
  GL_RASTERIZER_DISCARD_NV
  GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
  GL_RASTER_MULTISAMPLE_EXT
  GL_RASTER_POSITION_UNCLIPPED_IBM
  GL_RASTER_SAMPLES_EXT
  GL_READ_BUFFER
  GL_READ_BUFFER_EXT
  GL_READ_BUFFER_NV
  GL_READ_FRAMEBUFFER
  GL_READ_FRAMEBUFFER_ANGLE
  GL_READ_FRAMEBUFFER_APPLE
  GL_READ_FRAMEBUFFER_BINDING
  GL_READ_FRAMEBUFFER_BINDING_ANGLE
  GL_READ_FRAMEBUFFER_BINDING_APPLE
  GL_READ_FRAMEBUFFER_BINDING_EXT
  GL_READ_FRAMEBUFFER_BINDING_NV
  GL_READ_FRAMEBUFFER_EXT
  GL_READ_FRAMEBUFFER_NV
  GL_READ_ONLY
  GL_READ_ONLY_ARB
  GL_READ_PIXELS
  GL_READ_PIXELS_FORMAT
  GL_READ_PIXELS_TYPE
  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV
  GL_READ_PIXEL_DATA_RANGE_NV
  GL_READ_PIXEL_DATA_RANGE_POINTER_NV
  GL_READ_WRITE
  GL_READ_WRITE_ARB
  GL_RECIP_ADD_SIGNED_ALPHA_IMG
  GL_RECLAIM_MEMORY_HINT_PGI
  GL_RECT_NV
  GL_RED
  GL_REDUCE
  GL_REDUCE_EXT
  GL_RED_BIAS
  GL_RED_BITS
  GL_RED_BIT_ATI
  GL_RED_EXT
  GL_RED_INTEGER
  GL_RED_INTEGER_EXT
  GL_RED_MAX_CLAMP_INGR
  GL_RED_MIN_CLAMP_INGR
  GL_RED_NV
  GL_RED_SCALE
  GL_RED_SNORM
  GL_REFERENCED_BY_COMPUTE_SHADER
  GL_REFERENCED_BY_FRAGMENT_SHADER
  GL_REFERENCED_BY_GEOMETRY_SHADER
  GL_REFERENCED_BY_GEOMETRY_SHADER_EXT
  GL_REFERENCED_BY_GEOMETRY_SHADER_OES
  GL_REFERENCED_BY_MESH_SHADER_EXT
  GL_REFERENCED_BY_MESH_SHADER_NV
  GL_REFERENCED_BY_TASK_SHADER_EXT
  GL_REFERENCED_BY_TASK_SHADER_NV
  GL_REFERENCED_BY_TESS_CONTROL_SHADER
  GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT
  GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES
  GL_REFERENCED_BY_TESS_EVALUATION_SHADER
  GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT
  GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES
  GL_REFERENCED_BY_VERTEX_SHADER
  GL_REFLECTION_MAP
  GL_REFLECTION_MAP_ARB
  GL_REFLECTION_MAP_EXT
  GL_REFLECTION_MAP_NV
  GL_REFLECTION_MAP_OES
  GL_REGISTER_COMBINERS_NV
  GL_REG_0_ATI
  GL_REG_1_ATI
  GL_REG_2_ATI
  GL_REG_3_ATI
  GL_REG_4_ATI
  GL_REG_5_ATI
  GL_RELATIVE_ARC_TO_NV
  GL_RELATIVE_CONIC_CURVE_TO_NV
  GL_RELATIVE_CUBIC_CURVE_TO_NV
  GL_RELATIVE_HORIZONTAL_LINE_TO_NV
  GL_RELATIVE_LARGE_CCW_ARC_TO_NV
  GL_RELATIVE_LARGE_CW_ARC_TO_NV
  GL_RELATIVE_LINE_TO_NV
  GL_RELATIVE_MOVE_TO_NV
  GL_RELATIVE_QUADRATIC_CURVE_TO_NV
  GL_RELATIVE_RECT_NV
  GL_RELATIVE_ROUNDED_RECT2_NV
  GL_RELATIVE_ROUNDED_RECT4_NV
  GL_RELATIVE_ROUNDED_RECT8_NV
  GL_RELATIVE_ROUNDED_RECT_NV
  GL_RELATIVE_SMALL_CCW_ARC_TO_NV
  GL_RELATIVE_SMALL_CW_ARC_TO_NV
  GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV
  GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV
  GL_RELATIVE_VERTICAL_LINE_TO_NV
  GL_RELEASED_APPLE
  GL_RENDER
  GL_RENDERBUFFER
  GL_RENDERBUFFER_ALPHA_SIZE
  GL_RENDERBUFFER_ALPHA_SIZE_EXT
  GL_RENDERBUFFER_ALPHA_SIZE_OES
  GL_RENDERBUFFER_BINDING
  GL_RENDERBUFFER_BINDING_EXT
  GL_RENDERBUFFER_BINDING_OES
  GL_RENDERBUFFER_BLUE_SIZE
  GL_RENDERBUFFER_BLUE_SIZE_EXT
  GL_RENDERBUFFER_BLUE_SIZE_OES
  GL_RENDERBUFFER_COLOR_SAMPLES_NV
  GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
  GL_RENDERBUFFER_DEPTH_SIZE
  GL_RENDERBUFFER_DEPTH_SIZE_EXT
  GL_RENDERBUFFER_DEPTH_SIZE_OES
  GL_RENDERBUFFER_EXT
  GL_RENDERBUFFER_FREE_MEMORY_ATI
  GL_RENDERBUFFER_GREEN_SIZE
  GL_RENDERBUFFER_GREEN_SIZE_EXT
  GL_RENDERBUFFER_GREEN_SIZE_OES
  GL_RENDERBUFFER_HEIGHT
  GL_RENDERBUFFER_HEIGHT_EXT
  GL_RENDERBUFFER_HEIGHT_OES
  GL_RENDERBUFFER_INTERNAL_FORMAT
  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
  GL_RENDERBUFFER_INTERNAL_FORMAT_OES
  GL_RENDERBUFFER_OES
  GL_RENDERBUFFER_RED_SIZE
  GL_RENDERBUFFER_RED_SIZE_EXT
  GL_RENDERBUFFER_RED_SIZE_OES
  GL_RENDERBUFFER_SAMPLES
  GL_RENDERBUFFER_SAMPLES_ANGLE
  GL_RENDERBUFFER_SAMPLES_APPLE
  GL_RENDERBUFFER_SAMPLES_EXT
  GL_RENDERBUFFER_SAMPLES_IMG
  GL_RENDERBUFFER_SAMPLES_NV
  GL_RENDERBUFFER_STENCIL_SIZE
  GL_RENDERBUFFER_STENCIL_SIZE_EXT
  GL_RENDERBUFFER_STENCIL_SIZE_OES
  GL_RENDERBUFFER_STORAGE_SAMPLES_AMD
  GL_RENDERBUFFER_WIDTH
  GL_RENDERBUFFER_WIDTH_EXT
  GL_RENDERBUFFER_WIDTH_OES
  GL_RENDERER
  GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM
  GL_RENDER_GPU_MASK_NV
  GL_RENDER_MODE
  GL_REPEAT
  GL_REPLACE
  GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
  GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
  GL_REPLACEMENT_CODE_ARRAY_SUN
  GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
  GL_REPLACEMENT_CODE_SUN
  GL_REPLACE_EXT
  GL_REPLACE_MIDDLE_SUN
  GL_REPLACE_OLDEST_SUN
  GL_REPLACE_VALUE_AMD
  GL_REPLICATE_BORDER
  GL_REPRESENTATIVE_FRAGMENT_TEST_NV
  GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
  GL_RESAMPLE_AVERAGE_OML
  GL_RESAMPLE_DECIMATE_OML
  GL_RESAMPLE_DECIMATE_SGIX
  GL_RESAMPLE_REPLICATE_OML
  GL_RESAMPLE_REPLICATE_SGIX
  GL_RESAMPLE_ZERO_FILL_OML
  GL_RESAMPLE_ZERO_FILL_SGIX
  GL_RESCALE_NORMAL
  GL_RESCALE_NORMAL_EXT
  GL_RESET_NOTIFICATION_STRATEGY
  GL_RESET_NOTIFICATION_STRATEGY_ARB
  GL_RESET_NOTIFICATION_STRATEGY_EXT
  GL_RESTART_PATH_NV
  GL_RESTART_SUN
  GL_RETAINED_APPLE
  GL_RETURN
  GL_RG
  GL_RG16
  GL_RG16F
  GL_RG16F_EXT
  GL_RG16I
  GL_RG16UI
  GL_RG16_EXT
  GL_RG16_SNORM
  GL_RG16_SNORM_EXT
  GL_RG32F
  GL_RG32F_EXT
  GL_RG32I
  GL_RG32UI
  GL_RG8
  GL_RG8I
  GL_RG8UI
  GL_RG8_EXT
  GL_RG8_SNORM
  GL_RGB
  GL_RGB10
  GL_RGB10_A2
  GL_RGB10_A2UI
  GL_RGB10_A2_EXT
  GL_RGB10_EXT
  GL_RGB12
  GL_RGB12_EXT
  GL_RGB16
  GL_RGB16F
  GL_RGB16F_ARB
  GL_RGB16F_EXT
  GL_RGB16I
  GL_RGB16I_EXT
  GL_RGB16UI
  GL_RGB16UI_EXT
  GL_RGB16_EXT
  GL_RGB16_EXTENDED_RANGE_SGIX
  GL_RGB16_SIGNED_SGIX
  GL_RGB16_SNORM
  GL_RGB16_SNORM_EXT
  GL_RGB2_EXT
  GL_RGB32F
  GL_RGB32F_ARB
  GL_RGB32F_EXT
  GL_RGB32I
  GL_RGB32I_EXT
  GL_RGB32UI
  GL_RGB32UI_EXT
  GL_RGB4
  GL_RGB4_EXT
  GL_RGB4_S3TC
  GL_RGB5
  GL_RGB565
  GL_RGB565_OES
  GL_RGB5_A1
  GL_RGB5_A1_EXT
  GL_RGB5_A1_OES
  GL_RGB5_EXT
  GL_RGB8
  GL_RGB8I
  GL_RGB8I_EXT
  GL_RGB8UI
  GL_RGB8UI_EXT
  GL_RGB8_EXT
  GL_RGB8_OES
  GL_RGB8_SNORM
  GL_RGB9_E5
  GL_RGB9_E5_APPLE
  GL_RGB9_E5_EXT
  GL_RGBA
  GL_RGBA12
  GL_RGBA12_EXT
  GL_RGBA16
  GL_RGBA16F
  GL_RGBA16F_ARB
  GL_RGBA16F_EXT
  GL_RGBA16I
  GL_RGBA16I_EXT
  GL_RGBA16UI
  GL_RGBA16UI_EXT
  GL_RGBA16_EXT
  GL_RGBA16_EXTENDED_RANGE_SGIX
  GL_RGBA16_SIGNED_SGIX
  GL_RGBA16_SNORM
  GL_RGBA16_SNORM_EXT
  GL_RGBA2
  GL_RGBA2_EXT
  GL_RGBA32F
  GL_RGBA32F_ARB
  GL_RGBA32F_EXT
  GL_RGBA32I
  GL_RGBA32I_EXT
  GL_RGBA32UI
  GL_RGBA32UI_EXT
  GL_RGBA4
  GL_RGBA4_DXT5_S3TC
  GL_RGBA4_EXT
  GL_RGBA4_OES
  GL_RGBA4_S3TC
  GL_RGBA8
  GL_RGBA8I
  GL_RGBA8I_EXT
  GL_RGBA8UI
  GL_RGBA8UI_EXT
  GL_RGBA8_EXT
  GL_RGBA8_OES
  GL_RGBA8_SNORM
  GL_RGBA_DXT5_S3TC
  GL_RGBA_EXTENDED_RANGE_SGIX
  GL_RGBA_FLOAT16_APPLE
  GL_RGBA_FLOAT16_ATI
  GL_RGBA_FLOAT32_APPLE
  GL_RGBA_FLOAT32_ATI
  GL_RGBA_FLOAT_MODE_ARB
  GL_RGBA_ICC_SGIX
  GL_RGBA_INTEGER
  GL_RGBA_INTEGER_EXT
  GL_RGBA_INTEGER_MODE_EXT
  GL_RGBA_MODE
  GL_RGBA_S3TC
  GL_RGBA_SIGNED_COMPONENTS_EXT
  GL_RGBA_SIGNED_SGIX
  GL_RGBA_SNORM
  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV
  GL_RGB_422_APPLE
  GL_RGB_EXTENDED_RANGE_SGIX
  GL_RGB_FLOAT16_APPLE
  GL_RGB_FLOAT16_ATI
  GL_RGB_FLOAT32_APPLE
  GL_RGB_FLOAT32_ATI
  GL_RGB_ICC_SGIX
  GL_RGB_INTEGER
  GL_RGB_INTEGER_EXT
  GL_RGB_RAW_422_APPLE
  GL_RGB_S3TC
  GL_RGB_SCALE
  GL_RGB_SCALE_ARB
  GL_RGB_SCALE_EXT
  GL_RGB_SIGNED_SGIX
  GL_RGB_SNORM
  GL_RG_EXT
  GL_RG_INTEGER
  GL_RG_SNORM
  GL_RIGHT
  GL_ROUNDED_RECT2_NV
  GL_ROUNDED_RECT4_NV
  GL_ROUNDED_RECT8_NV
  GL_ROUNDED_RECT_NV
  GL_ROUND_NV
  GL_S
  GL_SAMPLER
  GL_SAMPLER_1D
  GL_SAMPLER_1D_ARB
  GL_SAMPLER_1D_ARRAY
  GL_SAMPLER_1D_ARRAY_EXT
  GL_SAMPLER_1D_ARRAY_SHADOW
  GL_SAMPLER_1D_ARRAY_SHADOW_EXT
  GL_SAMPLER_1D_SHADOW
  GL_SAMPLER_1D_SHADOW_ARB
  GL_SAMPLER_2D
  GL_SAMPLER_2D_ARB
  GL_SAMPLER_2D_ARRAY
  GL_SAMPLER_2D_ARRAY_EXT
  GL_SAMPLER_2D_ARRAY_NV
  GL_SAMPLER_2D_ARRAY_SHADOW
  GL_SAMPLER_2D_ARRAY_SHADOW_EXT
  GL_SAMPLER_2D_ARRAY_SHADOW_NV
  GL_SAMPLER_2D_MULTISAMPLE
  GL_SAMPLER_2D_MULTISAMPLE_ARRAY
  GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
  GL_SAMPLER_2D_RECT
  GL_SAMPLER_2D_RECT_ARB
  GL_SAMPLER_2D_RECT_SHADOW
  GL_SAMPLER_2D_RECT_SHADOW_ARB
  GL_SAMPLER_2D_SHADOW
  GL_SAMPLER_2D_SHADOW_ARB
  GL_SAMPLER_2D_SHADOW_EXT
  GL_SAMPLER_3D
  GL_SAMPLER_3D_ARB
  GL_SAMPLER_BINDING
  GL_SAMPLER_BUFFER
  GL_SAMPLER_BUFFER_AMD
  GL_SAMPLER_BUFFER_EXT
  GL_SAMPLER_BUFFER_OES
  GL_SAMPLER_CUBE
  GL_SAMPLER_CUBE_ARB
  GL_SAMPLER_CUBE_MAP_ARRAY
  GL_SAMPLER_CUBE_MAP_ARRAY_ARB
  GL_SAMPLER_CUBE_MAP_ARRAY_EXT
  GL_SAMPLER_CUBE_MAP_ARRAY_OES
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES
  GL_SAMPLER_CUBE_SHADOW
  GL_SAMPLER_CUBE_SHADOW_EXT
  GL_SAMPLER_CUBE_SHADOW_NV
  GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT
  GL_SAMPLER_EXTERNAL_OES
  GL_SAMPLER_OBJECT_AMD
  GL_SAMPLER_RENDERBUFFER_NV
  GL_SAMPLES
  GL_SAMPLES_3DFX
  GL_SAMPLES_ARB
  GL_SAMPLES_EXT
  GL_SAMPLES_PASSED
  GL_SAMPLES_PASSED_ARB
  GL_SAMPLES_SGIS
  GL_SAMPLE_ALPHA_TO_COVERAGE
  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
  GL_SAMPLE_ALPHA_TO_MASK_EXT
  GL_SAMPLE_ALPHA_TO_MASK_SGIS
  GL_SAMPLE_ALPHA_TO_ONE
  GL_SAMPLE_ALPHA_TO_ONE_ARB
  GL_SAMPLE_ALPHA_TO_ONE_EXT
  GL_SAMPLE_ALPHA_TO_ONE_SGIS
  GL_SAMPLE_BUFFERS
  GL_SAMPLE_BUFFERS_3DFX
  GL_SAMPLE_BUFFERS_ARB
  GL_SAMPLE_BUFFERS_EXT
  GL_SAMPLE_BUFFERS_SGIS
  GL_SAMPLE_COUNT_BITS_NV
  GL_SAMPLE_COUNT_NV
  GL_SAMPLE_COVERAGE
  GL_SAMPLE_COVERAGE_ARB
  GL_SAMPLE_COVERAGE_INVERT
  GL_SAMPLE_COVERAGE_INVERT_ARB
  GL_SAMPLE_COVERAGE_VALUE
  GL_SAMPLE_COVERAGE_VALUE_ARB
  GL_SAMPLE_LOCATION_ARB
  GL_SAMPLE_LOCATION_NV
  GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB
  GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV
  GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB
  GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV
  GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB
  GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV
  GL_SAMPLE_MASK
  GL_SAMPLE_MASK_EXT
  GL_SAMPLE_MASK_INVERT_EXT
  GL_SAMPLE_MASK_INVERT_SGIS
  GL_SAMPLE_MASK_NV
  GL_SAMPLE_MASK_SGIS
  GL_SAMPLE_MASK_VALUE
  GL_SAMPLE_MASK_VALUE_EXT
  GL_SAMPLE_MASK_VALUE_NV
  GL_SAMPLE_MASK_VALUE_SGIS
  GL_SAMPLE_PATTERN_EXT
  GL_SAMPLE_PATTERN_SGIS
  GL_SAMPLE_POSITION
  GL_SAMPLE_POSITION_NV
  GL_SAMPLE_SHADING
  GL_SAMPLE_SHADING_ARB
  GL_SAMPLE_SHADING_OES
  GL_SATURATE_BIT_ATI
  GL_SCALAR_EXT
  GL_SCALEBIAS_HINT_SGIX
  GL_SCALED_RESOLVE_FASTEST_EXT
  GL_SCALED_RESOLVE_NICEST_EXT
  GL_SCALE_BY_FOUR_NV
  GL_SCALE_BY_ONE_HALF_NV
  GL_SCALE_BY_TWO_NV
  GL_SCISSOR_BIT
  GL_SCISSOR_BOX
  GL_SCISSOR_BOX_EXCLUSIVE_NV
  GL_SCISSOR_COMMAND_NV
  GL_SCISSOR_TEST
  GL_SCISSOR_TEST_EXCLUSIVE_NV
  GL_SCREEN_COORDINATES_REND
  GL_SCREEN_KHR
  GL_SCREEN_NV
  GL_SECONDARY_COLOR_ARRAY
  GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV
  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
  GL_SECONDARY_COLOR_ARRAY_EXT
  GL_SECONDARY_COLOR_ARRAY_LENGTH_NV
  GL_SECONDARY_COLOR_ARRAY_LIST_IBM
  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM
  GL_SECONDARY_COLOR_ARRAY_POINTER
  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
  GL_SECONDARY_COLOR_ARRAY_SIZE
  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
  GL_SECONDARY_COLOR_ARRAY_STRIDE
  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
  GL_SECONDARY_COLOR_ARRAY_TYPE
  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT
  GL_SECONDARY_COLOR_ATIX
  GL_SECONDARY_COLOR_NV
  GL_SECONDARY_INTERPOLATOR_ATI
  GL_SELECT
  GL_SELECTED_TEXTURE_COORD_SET_SGIS
  GL_SELECTED_TEXTURE_SGIS
  GL_SELECTED_TEXTURE_TRANSFORM_SGIS
  GL_SELECTION_BUFFER_POINTER
  GL_SELECTION_BUFFER_SIZE
  GL_SEMAPHORE_TYPE_BINARY_NV
  GL_SEMAPHORE_TYPE_NV
  GL_SEMAPHORE_TYPE_TIMELINE_NV
  GL_SEPARABLE_2D
  GL_SEPARABLE_2D_EXT
  GL_SEPARATE_ATTRIBS
  GL_SEPARATE_ATTRIBS_EXT
  GL_SEPARATE_ATTRIBS_NV
  GL_SEPARATE_SPECULAR_COLOR
  GL_SEPARATE_SPECULAR_COLOR_EXT
  GL_SET
  GL_SET_AMD
  GL_SGX_BINARY_IMG
  GL_SGX_PROGRAM_BINARY_IMG
  GL_SHADER
  GL_SHADER_BINARY_DMP
  GL_SHADER_BINARY_FORMATS
  GL_SHADER_BINARY_FORMAT_SPIR_V
  GL_SHADER_BINARY_FORMAT_SPIR_V_ARB
  GL_SHADER_BINARY_VIV
  GL_SHADER_COMPILER
  GL_SHADER_CONSISTENT_NV
  GL_SHADER_CORE_ACTIVE_COUNT_ARM
  GL_SHADER_CORE_COUNT_ARM
  GL_SHADER_CORE_FMA_RATE_ARM
  GL_SHADER_CORE_MAX_WARP_COUNT_ARM
  GL_SHADER_CORE_PIXEL_RATE_ARM
  GL_SHADER_CORE_PRESENT_MASK_ARM
  GL_SHADER_CORE_TEXEL_RATE_ARM
  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT
  GL_SHADER_IMAGE_ATOMIC
  GL_SHADER_IMAGE_LOAD
  GL_SHADER_IMAGE_STORE
  GL_SHADER_INCLUDE_ARB
  GL_SHADER_OBJECT_ARB
  GL_SHADER_OBJECT_EXT
  GL_SHADER_OPERATION_NV
  GL_SHADER_PIXEL_LOCAL_STORAGE_EXT
  GL_SHADER_SOURCE_LENGTH
  GL_SHADER_STORAGE_BARRIER_BIT
  GL_SHADER_STORAGE_BLOCK
  GL_SHADER_STORAGE_BUFFER
  GL_SHADER_STORAGE_BUFFER_BINDING
  GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
  GL_SHADER_STORAGE_BUFFER_SIZE
  GL_SHADER_STORAGE_BUFFER_START
  GL_SHADER_TYPE
  GL_SHADE_MODEL
  GL_SHADING_LANGUAGE_VERSION
  GL_SHADING_LANGUAGE_VERSION_ARB
  GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV
  GL_SHADING_RATE_1X1_PIXELS_EXT
  GL_SHADING_RATE_1X1_PIXELS_QCOM
  GL_SHADING_RATE_1X2_PIXELS_EXT
  GL_SHADING_RATE_1X2_PIXELS_QCOM
  GL_SHADING_RATE_1X4_PIXELS_EXT
  GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV
  GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
  GL_SHADING_RATE_2X1_PIXELS_EXT
  GL_SHADING_RATE_2X1_PIXELS_QCOM
  GL_SHADING_RATE_2X2_PIXELS_EXT
  GL_SHADING_RATE_2X2_PIXELS_QCOM
  GL_SHADING_RATE_2X4_PIXELS_EXT
  GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV
  GL_SHADING_RATE_4X1_PIXELS_EXT
  GL_SHADING_RATE_4X2_PIXELS_EXT
  GL_SHADING_RATE_4X2_PIXELS_QCOM
  GL_SHADING_RATE_4X4_PIXELS_EXT
  GL_SHADING_RATE_4X4_PIXELS_QCOM
  GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV
  GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV
  GL_SHADING_RATE_ATTACHMENT_EXT
  GL_SHADING_RATE_EXT
  GL_SHADING_RATE_IMAGE_BINDING_NV
  GL_SHADING_RATE_IMAGE_NV
  GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV
  GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV
  GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV
  GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV
  GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV
  GL_SHADING_RATE_NO_INVOCATIONS_NV
  GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM
  GL_SHADING_RATE_QCOM
  GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV
  GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV
  GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV
  GL_SHADOW_AMBIENT_SGIX
  GL_SHADOW_ATTENUATION_EXT
  GL_SHARED_EDGE_NV
  GL_SHARED_TEXTURE_PALETTE_EXT
  GL_SHININESS
  GL_SHORT
  GL_SIGNALED
  GL_SIGNALED_APPLE
  GL_SIGNED_ALPHA8_NV
  GL_SIGNED_ALPHA_NV
  GL_SIGNED_HILO16_NV
  GL_SIGNED_HILO8_NV
  GL_SIGNED_HILO_NV
  GL_SIGNED_IDENTITY_NV
  GL_SIGNED_INTENSITY8_NV
  GL_SIGNED_INTENSITY_NV
  GL_SIGNED_LUMINANCE8_ALPHA8_NV
  GL_SIGNED_LUMINANCE8_NV
  GL_SIGNED_LUMINANCE_ALPHA_NV
  GL_SIGNED_LUMINANCE_NV
  GL_SIGNED_NEGATE_NV
  GL_SIGNED_NORMALIZED
  GL_SIGNED_RGB8_NV
  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV
  GL_SIGNED_RGBA8_NV
  GL_SIGNED_RGBA_NV
  GL_SIGNED_RGB_NV
  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV
  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
  GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
  GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
  GL_SINGLE_COLOR
  GL_SINGLE_COLOR_EXT
  GL_SKIP_DECODE_EXT
  GL_SKIP_MISSING_GLYPH_NV
  GL_SLICE_ACCUM_SUN
  GL_SLIM10U_SGIX
  GL_SLIM12S_SGIX
  GL_SLIM8U_SGIX
  GL_SLUMINANCE
  GL_SLUMINANCE8
  GL_SLUMINANCE8_ALPHA8
  GL_SLUMINANCE8_ALPHA8_EXT
  GL_SLUMINANCE8_ALPHA8_NV
  GL_SLUMINANCE8_EXT
  GL_SLUMINANCE8_NV
  GL_SLUMINANCE_ALPHA
  GL_SLUMINANCE_ALPHA_EXT
  GL_SLUMINANCE_ALPHA_NV
  GL_SLUMINANCE_EXT
  GL_SLUMINANCE_NV
  GL_SMALL_CCW_ARC_TO_NV
  GL_SMALL_CW_ARC_TO_NV
  GL_SMAPHS30_PROGRAM_BINARY_DMP
  GL_SMAPHS_PROGRAM_BINARY_DMP
  GL_SMOOTH
  GL_SMOOTH_CUBIC_CURVE_TO_NV
  GL_SMOOTH_LINE_WIDTH_GRANULARITY
  GL_SMOOTH_LINE_WIDTH_RANGE
  GL_SMOOTH_POINT_SIZE_GRANULARITY
  GL_SMOOTH_POINT_SIZE_RANGE
  GL_SMOOTH_QUADRATIC_CURVE_TO_NV
  GL_SM_COUNT_NV
  GL_SOFTLIGHT_KHR
  GL_SOFTLIGHT_NV
  GL_SOURCE0_ALPHA
  GL_SOURCE0_ALPHA_ARB
  GL_SOURCE0_ALPHA_EXT
  GL_SOURCE0_RGB
  GL_SOURCE0_RGB_ARB
  GL_SOURCE0_RGB_EXT
  GL_SOURCE1_ALPHA
  GL_SOURCE1_ALPHA_ARB
  GL_SOURCE1_ALPHA_EXT
  GL_SOURCE1_RGB
  GL_SOURCE1_RGB_ARB
  GL_SOURCE1_RGB_EXT
  GL_SOURCE2_ALPHA
  GL_SOURCE2_ALPHA_ARB
  GL_SOURCE2_ALPHA_EXT
  GL_SOURCE2_RGB
  GL_SOURCE2_RGB_ARB
  GL_SOURCE2_RGB_EXT
  GL_SOURCE3_ALPHA_NV
  GL_SOURCE3_RGB_NV
  GL_SPARE0_NV
  GL_SPARE0_PLUS_SECONDARY_COLOR_NV
  GL_SPARE1_NV
  GL_SPARSE_BUFFER_PAGE_SIZE_ARB
  GL_SPARSE_STORAGE_BIT_ARB
  GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
  GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT
  GL_SPECULAR
  GL_SPHERE_MAP
  GL_SPIR_V_BINARY
  GL_SPIR_V_BINARY_ARB
  GL_SPIR_V_EXTENSIONS
  GL_SPOT_CUTOFF
  GL_SPOT_CUTOFF_DELTA_SGIX
  GL_SPOT_DIRECTION
  GL_SPOT_EXPONENT
  GL_SQUARE_NV
  GL_SR8_EXT
  GL_SRC0_ALPHA
  GL_SRC0_RGB
  GL_SRC1_ALPHA
  GL_SRC1_ALPHA_EXT
  GL_SRC1_COLOR
  GL_SRC1_COLOR_EXT
  GL_SRC1_RGB
  GL_SRC2_ALPHA
  GL_SRC2_RGB
  GL_SRC_ALPHA
  GL_SRC_ALPHA_SATURATE
  GL_SRC_ALPHA_SATURATE_EXT
  GL_SRC_ATOP_NV
  GL_SRC_COLOR
  GL_SRC_IN_NV
  GL_SRC_NV
  GL_SRC_OUT_NV
  GL_SRC_OVER_NV
  GL_SRG8_EXT
  GL_SRGB
  GL_SRGB8
  GL_SRGB8_ALPHA8
  GL_SRGB8_ALPHA8_EXT
  GL_SRGB8_EXT
  GL_SRGB8_NV
  GL_SRGB_ALPHA
  GL_SRGB_ALPHA_EXT
  GL_SRGB_DECODE_ARB
  GL_SRGB_EXT
  GL_SRGB_READ
  GL_SRGB_WRITE
  GL_STACK_OVERFLOW
  GL_STACK_UNDERFLOW
  GL_STANDARD_FONT_FORMAT_NV
  GL_STANDARD_FONT_NAME_NV
  GL_STATE_RESTORE
  GL_STATIC_ATI
  GL_STATIC_COPY
  GL_STATIC_COPY_ARB
  GL_STATIC_DRAW
  GL_STATIC_DRAW_ARB
  GL_STATIC_READ
  GL_STATIC_READ_ARB
  GL_STATIC_VERTEX_ARRAY_IBM
  GL_STATISTICS_REGAL
  GL_STENCIL
  GL_STENCIL_ATTACHMENT
  GL_STENCIL_ATTACHMENT_EXT
  GL_STENCIL_ATTACHMENT_OES
  GL_STENCIL_BACK_FAIL
  GL_STENCIL_BACK_FAIL_ATI
  GL_STENCIL_BACK_FUNC
  GL_STENCIL_BACK_FUNC_ATI
  GL_STENCIL_BACK_OP_VALUE_AMD
  GL_STENCIL_BACK_PASS_DEPTH_FAIL
  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI
  GL_STENCIL_BACK_PASS_DEPTH_PASS
  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI
  GL_STENCIL_BACK_REF
  GL_STENCIL_BACK_VALUE_MASK
  GL_STENCIL_BACK_WRITEMASK
  GL_STENCIL_BITS
  GL_STENCIL_BUFFER
  GL_STENCIL_BUFFER_BIT
  GL_STENCIL_BUFFER_BIT0_QCOM
  GL_STENCIL_BUFFER_BIT1_QCOM
  GL_STENCIL_BUFFER_BIT2_QCOM
  GL_STENCIL_BUFFER_BIT3_QCOM
  GL_STENCIL_BUFFER_BIT4_QCOM
  GL_STENCIL_BUFFER_BIT5_QCOM
  GL_STENCIL_BUFFER_BIT6_QCOM
  GL_STENCIL_BUFFER_BIT7_QCOM
  GL_STENCIL_CLEAR_TAG_VALUE_EXT
  GL_STENCIL_CLEAR_VALUE
  GL_STENCIL_COMPONENTS
  GL_STENCIL_EXT
  GL_STENCIL_FAIL
  GL_STENCIL_FUNC
  GL_STENCIL_INDEX
  GL_STENCIL_INDEX1
  GL_STENCIL_INDEX16
  GL_STENCIL_INDEX16_EXT
  GL_STENCIL_INDEX1_EXT
  GL_STENCIL_INDEX1_OES
  GL_STENCIL_INDEX4
  GL_STENCIL_INDEX4_EXT
  GL_STENCIL_INDEX4_OES
  GL_STENCIL_INDEX8
  GL_STENCIL_INDEX8_EXT
  GL_STENCIL_INDEX8_OES
  GL_STENCIL_OP_VALUE_AMD
  GL_STENCIL_PASS_DEPTH_FAIL
  GL_STENCIL_PASS_DEPTH_PASS
  GL_STENCIL_REF
  GL_STENCIL_REF_COMMAND_NV
  GL_STENCIL_RENDERABLE
  GL_STENCIL_SAMPLES_NV
  GL_STENCIL_TAG_BITS_EXT
  GL_STENCIL_TEST
  GL_STENCIL_TEST_TWO_SIDE_EXT
  GL_STENCIL_VALUE_MASK
  GL_STENCIL_WRITEMASK
  GL_STEREO
  GL_STEREO_CONVERGENCE_NV
  GL_STEREO_CUTOFF_NV
  GL_STEREO_PROJECTION_NV
  GL_STEREO_PROJECTION_ORTHO_NV
  GL_STEREO_PROJECTION_PERSPECTIVE_NV
  GL_STEREO_SEPARATION_NV
  GL_STORAGE_CACHED_APPLE
  GL_STORAGE_CLIENT_APPLE
  GL_STORAGE_PRIVATE_APPLE
  GL_STORAGE_SHARED_APPLE
  GL_STREAM_COPY
  GL_STREAM_COPY_ARB
  GL_STREAM_DRAW
  GL_STREAM_DRAW_ARB
  GL_STREAM_RASTERIZATION_AMD
  GL_STREAM_READ
  GL_STREAM_READ_ARB
  GL_STRICT_DEPTHFUNC_HINT_PGI
  GL_STRICT_LIGHTING_HINT_PGI
  GL_STRICT_SCISSOR_HINT_PGI
  GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR
  GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR
  GL_SUBGROUP_FEATURE_BASIC_BIT_KHR
  GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR
  GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
  GL_SUBGROUP_FEATURE_QUAD_BIT_KHR
  GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR
  GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR
  GL_SUBGROUP_FEATURE_VOTE_BIT_KHR
  GL_SUBGROUP_QUAD_ALL_STAGES_KHR
  GL_SUBGROUP_SIZE_KHR
  GL_SUBGROUP_SUPPORTED_FEATURES_KHR
  GL_SUBGROUP_SUPPORTED_STAGES_KHR
  GL_SUBPIXEL_BITS
  GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV
  GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV
  GL_SUBSAMPLE_DISTANCE_AMD
  GL_SUBTRACT
  GL_SUBTRACT_ARB
  GL_SUB_ATI
  GL_SUCCESS_NV
  GL_SUPERSAMPLE_SCALE_X_NV
  GL_SUPERSAMPLE_SCALE_Y_NV
  GL_SUPPORTED_MULTISAMPLE_MODES_AMD
  GL_SURFACE_COMPRESSION_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT
  GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT
  GL_SURFACE_MAPPED_NV
  GL_SURFACE_REGISTERED_NV
  GL_SURFACE_STATE_NV
  GL_SWIZZLE_STQ_ATI
  GL_SWIZZLE_STQ_DQ_ATI
  GL_SWIZZLE_STRQ_ATI
  GL_SWIZZLE_STRQ_DQ_ATI
  GL_SWIZZLE_STR_ATI
  GL_SWIZZLE_STR_DR_ATI
  GL_SYNC_CL_EVENT_ARB
  GL_SYNC_CL_EVENT_COMPLETE_ARB
  GL_SYNC_CONDITION
  GL_SYNC_CONDITION_APPLE
  GL_SYNC_FENCE
  GL_SYNC_FENCE_APPLE
  GL_SYNC_FLAGS
  GL_SYNC_FLAGS_APPLE
  GL_SYNC_FLUSH_COMMANDS_BIT
  GL_SYNC_FLUSH_COMMANDS_BIT_APPLE
  GL_SYNC_GPU_COMMANDS_COMPLETE
  GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE
  GL_SYNC_OBJECT_APPLE
  GL_SYNC_STATUS
  GL_SYNC_STATUS_APPLE
  GL_SYNC_X11_FENCE_EXT
  GL_SYSTEM_FONT_NAME_NV
  GL_T
  GL_T2F_C3F_V3F
  GL_T2F_C4F_N3F_V3F
  GL_T2F_C4UB_V3F
  GL_T2F_N3F_V3F
  GL_T2F_V3F
  GL_T4F_C4F_N3F_V4F
  GL_T4F_V4F
  GL_TABLE_TOO_LARGE
  GL_TANGENT_ARRAY_EXT
  GL_TANGENT_ARRAY_POINTER_EXT
  GL_TANGENT_ARRAY_STRIDE_EXT
  GL_TANGENT_ARRAY_TYPE_EXT
  GL_TANGENT_SPACE_SGIX
  GL_TASK_SHADER_BIT_EXT
  GL_TASK_SHADER_BIT_NV
  GL_TASK_SHADER_EXT
  GL_TASK_SHADER_INVOCATIONS_EXT
  GL_TASK_SHADER_NV
  GL_TASK_SUBROUTINE_EXT
  GL_TASK_SUBROUTINE_NV
  GL_TASK_SUBROUTINE_UNIFORM_EXT
  GL_TASK_SUBROUTINE_UNIFORM_NV
  GL_TASK_WORK_GROUP_SIZE_EXT
  GL_TASK_WORK_GROUP_SIZE_NV
  GL_TERMINATE_SEQUENCE_COMMAND_NV
  GL_TESSELLATION_FACTOR_AMD
  GL_TESSELLATION_MODE_AMD
  GL_TESS_CONTROL_OUTPUT_VERTICES
  GL_TESS_CONTROL_OUTPUT_VERTICES_EXT
  GL_TESS_CONTROL_OUTPUT_VERTICES_OES
  GL_TESS_CONTROL_PROGRAM_NV
  GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV
  GL_TESS_CONTROL_SHADER
  GL_TESS_CONTROL_SHADER_BIT
  GL_TESS_CONTROL_SHADER_BIT_EXT
  GL_TESS_CONTROL_SHADER_BIT_OES
  GL_TESS_CONTROL_SHADER_EXT
  GL_TESS_CONTROL_SHADER_OES
  GL_TESS_CONTROL_SHADER_PATCHES
  GL_TESS_CONTROL_SHADER_PATCHES_ARB
  GL_TESS_CONTROL_SUBROUTINE
  GL_TESS_CONTROL_SUBROUTINE_UNIFORM
  GL_TESS_CONTROL_TEXTURE
  GL_TESS_EVALUATION_PROGRAM_NV
  GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
  GL_TESS_EVALUATION_SHADER
  GL_TESS_EVALUATION_SHADER_BIT
  GL_TESS_EVALUATION_SHADER_BIT_EXT
  GL_TESS_EVALUATION_SHADER_BIT_OES
  GL_TESS_EVALUATION_SHADER_EXT
  GL_TESS_EVALUATION_SHADER_INVOCATIONS
  GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
  GL_TESS_EVALUATION_SHADER_OES
  GL_TESS_EVALUATION_SUBROUTINE
  GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
  GL_TESS_EVALUATION_TEXTURE
  GL_TESS_GEN_MODE
  GL_TESS_GEN_MODE_EXT
  GL_TESS_GEN_MODE_OES
  GL_TESS_GEN_POINT_MODE
  GL_TESS_GEN_POINT_MODE_EXT
  GL_TESS_GEN_POINT_MODE_OES
  GL_TESS_GEN_SPACING
  GL_TESS_GEN_SPACING_EXT
  GL_TESS_GEN_SPACING_OES
  GL_TESS_GEN_VERTEX_ORDER
  GL_TESS_GEN_VERTEX_ORDER_EXT
  GL_TESS_GEN_VERTEX_ORDER_OES
  GL_TEXCOORD1_BIT_PGI
  GL_TEXCOORD2_BIT_PGI
  GL_TEXCOORD3_BIT_PGI
  GL_TEXCOORD4_BIT_PGI
  GL_TEXTURE
  GL_TEXTURE0
  GL_TEXTURE0_ARB
  GL_TEXTURE0_SGIS
  GL_TEXTURE1
  GL_TEXTURE10
  GL_TEXTURE10_ARB
  GL_TEXTURE11
  GL_TEXTURE11_ARB
  GL_TEXTURE12
  GL_TEXTURE12_ARB
  GL_TEXTURE13
  GL_TEXTURE13_ARB
  GL_TEXTURE14
  GL_TEXTURE14_ARB
  GL_TEXTURE15
  GL_TEXTURE15_ARB
  GL_TEXTURE16
  GL_TEXTURE16_ARB
  GL_TEXTURE17
  GL_TEXTURE17_ARB
  GL_TEXTURE18
  GL_TEXTURE18_ARB
  GL_TEXTURE19
  GL_TEXTURE19_ARB
  GL_TEXTURE1_ARB
  GL_TEXTURE1_SGIS
  GL_TEXTURE2
  GL_TEXTURE20
  GL_TEXTURE20_ARB
  GL_TEXTURE21
  GL_TEXTURE21_ARB
  GL_TEXTURE22
  GL_TEXTURE22_ARB
  GL_TEXTURE23
  GL_TEXTURE23_ARB
  GL_TEXTURE24
  GL_TEXTURE24_ARB
  GL_TEXTURE25
  GL_TEXTURE25_ARB
  GL_TEXTURE26
  GL_TEXTURE26_ARB
  GL_TEXTURE27
  GL_TEXTURE27_ARB
  GL_TEXTURE28
  GL_TEXTURE28_ARB
  GL_TEXTURE29
  GL_TEXTURE29_ARB
  GL_TEXTURE2_ARB
  GL_TEXTURE2_SGIS
  GL_TEXTURE3
  GL_TEXTURE30
  GL_TEXTURE30_ARB
  GL_TEXTURE31
  GL_TEXTURE31_ARB
  GL_TEXTURE3_ARB
  GL_TEXTURE3_SGIS
  GL_TEXTURE4
  GL_TEXTURE4_ARB
  GL_TEXTURE5
  GL_TEXTURE5_ARB
  GL_TEXTURE6
  GL_TEXTURE6_ARB
  GL_TEXTURE7
  GL_TEXTURE7_ARB
  GL_TEXTURE8
  GL_TEXTURE8_ARB
  GL_TEXTURE9
  GL_TEXTURE9_ARB
  GL_TEXTURE_1D
  GL_TEXTURE_1D_ARRAY
  GL_TEXTURE_1D_ARRAY_EXT
  GL_TEXTURE_1D_BINDING_EXT
  GL_TEXTURE_1D_STACK_BINDING_MESAX
  GL_TEXTURE_1D_STACK_MESAX
  GL_TEXTURE_2D
  GL_TEXTURE_2D_ARRAY
  GL_TEXTURE_2D_ARRAY_EXT
  GL_TEXTURE_2D_ARRAY_NV
  GL_TEXTURE_2D_BINDING_EXT
  GL_TEXTURE_2D_MULTISAMPLE
  GL_TEXTURE_2D_MULTISAMPLE_ARRAY
  GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES
  GL_TEXTURE_2D_STACK_BINDING_MESAX
  GL_TEXTURE_2D_STACK_MESAX
  GL_TEXTURE_3D
  GL_TEXTURE_3D_BINDING_EXT
  GL_TEXTURE_3D_EXT
  GL_TEXTURE_3D_OES
  GL_TEXTURE_ALPHA_MODULATE_IMG
  GL_TEXTURE_ALPHA_SIZE
  GL_TEXTURE_ALPHA_SIZE_EXT
  GL_TEXTURE_ALPHA_TYPE
  GL_TEXTURE_ALPHA_TYPE_ARB
  GL_TEXTURE_APPLICATION_MODE_EXT
  GL_TEXTURE_ASTC_DECODE_PRECISION_EXT
  GL_TEXTURE_BASE_LEVEL
  GL_TEXTURE_BASE_LEVEL_SGIS
  GL_TEXTURE_BINDING_1D
  GL_TEXTURE_BINDING_1D_ARRAY
  GL_TEXTURE_BINDING_1D_ARRAY_EXT
  GL_TEXTURE_BINDING_2D
  GL_TEXTURE_BINDING_2D_ARRAY
  GL_TEXTURE_BINDING_2D_ARRAY_EXT
  GL_TEXTURE_BINDING_2D_ARRAY_NV
  GL_TEXTURE_BINDING_2D_MULTISAMPLE
  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES
  GL_TEXTURE_BINDING_3D
  GL_TEXTURE_BINDING_3D_OES
  GL_TEXTURE_BINDING_BUFFER
  GL_TEXTURE_BINDING_BUFFER_ARB
  GL_TEXTURE_BINDING_BUFFER_EXT
  GL_TEXTURE_BINDING_BUFFER_OES
  GL_TEXTURE_BINDING_CUBE_MAP
  GL_TEXTURE_BINDING_CUBE_MAP_ARB
  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB
  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT
  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES
  GL_TEXTURE_BINDING_CUBE_MAP_EXT
  GL_TEXTURE_BINDING_CUBE_MAP_OES
  GL_TEXTURE_BINDING_EXTERNAL_OES
  GL_TEXTURE_BINDING_RECTANGLE
  GL_TEXTURE_BINDING_RECTANGLE_ARB
  GL_TEXTURE_BINDING_RECTANGLE_EXT
  GL_TEXTURE_BINDING_RECTANGLE_NV
  GL_TEXTURE_BINDING_RENDERBUFFER_NV
  GL_TEXTURE_BIT
  GL_TEXTURE_BLUE_SIZE
  GL_TEXTURE_BLUE_SIZE_EXT
  GL_TEXTURE_BLUE_TYPE
  GL_TEXTURE_BLUE_TYPE_ARB
  GL_TEXTURE_BORDER
  GL_TEXTURE_BORDER_COLOR
  GL_TEXTURE_BORDER_COLOR_EXT
  GL_TEXTURE_BORDER_COLOR_NV
  GL_TEXTURE_BORDER_COLOR_OES
  GL_TEXTURE_BORDER_VALUES_NV
  GL_TEXTURE_BUFFER
  GL_TEXTURE_BUFFER_ARB
  GL_TEXTURE_BUFFER_BINDING
  GL_TEXTURE_BUFFER_BINDING_EXT
  GL_TEXTURE_BUFFER_BINDING_OES
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES
  GL_TEXTURE_BUFFER_EXT
  GL_TEXTURE_BUFFER_FORMAT
  GL_TEXTURE_BUFFER_FORMAT_ARB
  GL_TEXTURE_BUFFER_FORMAT_EXT
  GL_TEXTURE_BUFFER_OES
  GL_TEXTURE_BUFFER_OFFSET
  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT
  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES
  GL_TEXTURE_BUFFER_OFFSET_EXT
  GL_TEXTURE_BUFFER_OFFSET_OES
  GL_TEXTURE_BUFFER_SIZE
  GL_TEXTURE_BUFFER_SIZE_EXT
  GL_TEXTURE_BUFFER_SIZE_OES
  GL_TEXTURE_CBCR_DEGAMMA_QCOM
  GL_TEXTURE_COLOR_SAMPLES_NV
  GL_TEXTURE_COLOR_TABLE_SGI
  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
  GL_TEXTURE_COMPARE_FUNC
  GL_TEXTURE_COMPARE_FUNC_ARB
  GL_TEXTURE_COMPARE_FUNC_EXT
  GL_TEXTURE_COMPARE_MODE
  GL_TEXTURE_COMPARE_MODE_ARB
  GL_TEXTURE_COMPARE_MODE_EXT
  GL_TEXTURE_COMPARE_OPERATOR_SGIX
  GL_TEXTURE_COMPARE_SGIX
  GL_TEXTURE_COMPONENTS
  GL_TEXTURE_COMPRESSED
  GL_TEXTURE_COMPRESSED_ARB
  GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
  GL_TEXTURE_COMPRESSED_BLOCK_SIZE
  GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
  GL_TEXTURE_COMPRESSED_IMAGE_SIZE
  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB
  GL_TEXTURE_COMPRESSION_HINT
  GL_TEXTURE_COMPRESSION_HINT_ARB
  GL_TEXTURE_CONSTANT_DATA_SUNX
  GL_TEXTURE_COORD_ARRAY
  GL_TEXTURE_COORD_ARRAY_ADDRESS_NV
  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
  GL_TEXTURE_COORD_ARRAY_COUNT_EXT
  GL_TEXTURE_COORD_ARRAY_EXT
  GL_TEXTURE_COORD_ARRAY_LENGTH_NV
  GL_TEXTURE_COORD_ARRAY_LIST_IBM
  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM
  GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
  GL_TEXTURE_COORD_ARRAY_POINTER
  GL_TEXTURE_COORD_ARRAY_POINTER_EXT
  GL_TEXTURE_COORD_ARRAY_SIZE
  GL_TEXTURE_COORD_ARRAY_SIZE_EXT
  GL_TEXTURE_COORD_ARRAY_STRIDE
  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT
  GL_TEXTURE_COORD_ARRAY_TYPE
  GL_TEXTURE_COORD_ARRAY_TYPE_EXT
  GL_TEXTURE_COORD_NV
  GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS
  GL_TEXTURE_COVERAGE_SAMPLES_NV
  GL_TEXTURE_CROP_RECT_OES
  GL_TEXTURE_CUBE_MAP
  GL_TEXTURE_CUBE_MAP_ARB
  GL_TEXTURE_CUBE_MAP_ARRAY
  GL_TEXTURE_CUBE_MAP_ARRAY_ARB
  GL_TEXTURE_CUBE_MAP_ARRAY_EXT
  GL_TEXTURE_CUBE_MAP_ARRAY_OES
  GL_TEXTURE_CUBE_MAP_EXT
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES
  GL_TEXTURE_CUBE_MAP_OES
  GL_TEXTURE_CUBE_MAP_POSITIVE_X
  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
  GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
  GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES
  GL_TEXTURE_CUBE_MAP_SEAMLESS
  GL_TEXTURE_DEFORMATION_BIT_SGIX
  GL_TEXTURE_DEPTH
  GL_TEXTURE_DEPTH_EXT
  GL_TEXTURE_DEPTH_QCOM
  GL_TEXTURE_DEPTH_SIZE
  GL_TEXTURE_DEPTH_SIZE_ARB
  GL_TEXTURE_DEPTH_TYPE
  GL_TEXTURE_DEPTH_TYPE_ARB
  GL_TEXTURE_DS_SIZE_NV
  GL_TEXTURE_DT_SIZE_NV
  GL_TEXTURE_ENV
  GL_TEXTURE_ENV_COLOR
  GL_TEXTURE_ENV_COORD_SET_SGIS
  GL_TEXTURE_ENV_MODE
  GL_TEXTURE_EXTERNAL_OES
  GL_TEXTURE_FETCH_BARRIER_BIT
  GL_TEXTURE_FETCH_BARRIER_BIT_EXT
  GL_TEXTURE_FILTER_CONTROL
  GL_TEXTURE_FILTER_CONTROL_EXT
  GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
  GL_TEXTURE_FLOAT_COMPONENTS_NV
  GL_TEXTURE_FORMAT_QCOM
  GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT
  GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM
  GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM
  GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM
  GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM
  GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM
  GL_TEXTURE_FREE_MEMORY_ATI
  GL_TEXTURE_GATHER
  GL_TEXTURE_GATHER_SHADOW
  GL_TEXTURE_GEN_MODE
  GL_TEXTURE_GEN_MODE_OES
  GL_TEXTURE_GEN_Q
  GL_TEXTURE_GEN_R
  GL_TEXTURE_GEN_S
  GL_TEXTURE_GEN_STR_OES
  GL_TEXTURE_GEN_T
  GL_TEXTURE_GEQUAL_R_SGIX
  GL_TEXTURE_GREEN_SIZE
  GL_TEXTURE_GREEN_SIZE_EXT
  GL_TEXTURE_GREEN_TYPE
  GL_TEXTURE_GREEN_TYPE_ARB
  GL_TEXTURE_HEIGHT
  GL_TEXTURE_HEIGHT_QCOM
  GL_TEXTURE_HI_SIZE_NV
  GL_TEXTURE_IMAGE_FORMAT
  GL_TEXTURE_IMAGE_TYPE
  GL_TEXTURE_IMAGE_VALID_QCOM
  GL_TEXTURE_IMMUTABLE_FORMAT
  GL_TEXTURE_IMMUTABLE_FORMAT_EXT
  GL_TEXTURE_IMMUTABLE_LEVELS
  GL_TEXTURE_INDEX_SIZE_EXT
  GL_TEXTURE_INTENSITY_SIZE
  GL_TEXTURE_INTENSITY_SIZE_EXT
  GL_TEXTURE_INTENSITY_TYPE
  GL_TEXTURE_INTENSITY_TYPE_ARB
  GL_TEXTURE_INTERNAL_FORMAT
  GL_TEXTURE_INTERNAL_FORMAT_QCOM
  GL_TEXTURE_LEQUAL_R_SGIX
  GL_TEXTURE_LIGHT_EXT
  GL_TEXTURE_LOD_BIAS
  GL_TEXTURE_LOD_BIAS_EXT
  GL_TEXTURE_LOD_BIAS_QCOM
  GL_TEXTURE_LO_SIZE_NV
  GL_TEXTURE_LUMINANCE_SIZE
  GL_TEXTURE_LUMINANCE_SIZE_EXT
  GL_TEXTURE_LUMINANCE_TYPE
  GL_TEXTURE_LUMINANCE_TYPE_ARB
  GL_TEXTURE_MAG_FILTER
  GL_TEXTURE_MAG_SIZE_NV
  GL_TEXTURE_MATERIAL_FACE_EXT
  GL_TEXTURE_MATERIAL_PARAMETER_EXT
  GL_TEXTURE_MATRIX
  GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES
  GL_TEXTURE_MAX_ANISOTROPY
  GL_TEXTURE_MAX_ANISOTROPY_EXT
  GL_TEXTURE_MAX_CLAMP_R_SGIX
  GL_TEXTURE_MAX_CLAMP_S_SGIX
  GL_TEXTURE_MAX_CLAMP_T_SGIX
  GL_TEXTURE_MAX_LEVEL
  GL_TEXTURE_MAX_LEVEL_APPLE
  GL_TEXTURE_MAX_LEVEL_SGIS
  GL_TEXTURE_MAX_LOD
  GL_TEXTURE_MAX_LOD_SGIS
  GL_TEXTURE_MEMORY_LAYOUT_INTEL
  GL_TEXTURE_MIN_FILTER
  GL_TEXTURE_MIN_LOD
  GL_TEXTURE_MIN_LOD_SGIS
  GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX
  GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
  GL_TEXTURE_NORMAL_EXT
  GL_TEXTURE_NUM_LEVELS_QCOM
  GL_TEXTURE_OBJECT_VALID_QCOM
  GL_TEXTURE_OUTPUT_ALPHA_ATIX
  GL_TEXTURE_OUTPUT_RGB_ATIX
  GL_TEXTURE_POINT_MODE_ATIX
  GL_TEXTURE_POINT_ONE_COORD_ATIX
  GL_TEXTURE_POINT_SPRITE_ATIX
  GL_TEXTURE_PRIORITY
  GL_TEXTURE_PRIORITY_EXT
  GL_TEXTURE_PROTECTED_EXT
  GL_TEXTURE_RANGE_LENGTH_APPLE
  GL_TEXTURE_RANGE_POINTER_APPLE
  GL_TEXTURE_RECTANGLE
  GL_TEXTURE_RECTANGLE_ARB
  GL_TEXTURE_RECTANGLE_EXT
  GL_TEXTURE_RECTANGLE_NV
  GL_TEXTURE_REDUCTION_MODE_ARB
  GL_TEXTURE_REDUCTION_MODE_EXT
  GL_TEXTURE_RED_SIZE
  GL_TEXTURE_RED_SIZE_EXT
  GL_TEXTURE_RED_TYPE
  GL_TEXTURE_RED_TYPE_ARB
  GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
  GL_TEXTURE_RENDERBUFFER_NV
  GL_TEXTURE_RESIDENT
  GL_TEXTURE_RESIDENT_EXT
  GL_TEXTURE_SAMPLES
  GL_TEXTURE_SAMPLES_IMG
  GL_TEXTURE_SHADER_NV
  GL_TEXTURE_SHADOW
  GL_TEXTURE_SHARED_SIZE
  GL_TEXTURE_SHARED_SIZE_EXT
  GL_TEXTURE_SPARSE_ARB
  GL_TEXTURE_SPARSE_EXT
  GL_TEXTURE_SRGB_DECODE_EXT
  GL_TEXTURE_STACK_DEPTH
  GL_TEXTURE_STENCIL_SIZE
  GL_TEXTURE_STENCIL_SIZE_EXT
  GL_TEXTURE_STORAGE_HINT_APPLE
  GL_TEXTURE_STORAGE_SPARSE_BIT_AMD
  GL_TEXTURE_SWIZZLE_A
  GL_TEXTURE_SWIZZLE_A_EXT
  GL_TEXTURE_SWIZZLE_B
  GL_TEXTURE_SWIZZLE_B_EXT
  GL_TEXTURE_SWIZZLE_G
  GL_TEXTURE_SWIZZLE_G_EXT
  GL_TEXTURE_SWIZZLE_R
  GL_TEXTURE_SWIZZLE_RGBA
  GL_TEXTURE_SWIZZLE_RGBA_EXT
  GL_TEXTURE_SWIZZLE_R_EXT
  GL_TEXTURE_TARGET
  GL_TEXTURE_TARGET_QCOM
  GL_TEXTURE_TILING_EXT
  GL_TEXTURE_TYPE_QCOM
  GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM
  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
  GL_TEXTURE_UPDATE_BARRIER_BIT
  GL_TEXTURE_UPDATE_BARRIER_BIT_EXT
  GL_TEXTURE_USAGE_ANGLE
  GL_TEXTURE_VIEW
  GL_TEXTURE_VIEW_MIN_LAYER
  GL_TEXTURE_VIEW_MIN_LAYER_EXT
  GL_TEXTURE_VIEW_MIN_LAYER_OES
  GL_TEXTURE_VIEW_MIN_LEVEL
  GL_TEXTURE_VIEW_MIN_LEVEL_EXT
  GL_TEXTURE_VIEW_MIN_LEVEL_OES
  GL_TEXTURE_VIEW_NUM_LAYERS
  GL_TEXTURE_VIEW_NUM_LAYERS_EXT
  GL_TEXTURE_VIEW_NUM_LAYERS_OES
  GL_TEXTURE_VIEW_NUM_LEVELS
  GL_TEXTURE_VIEW_NUM_LEVELS_EXT
  GL_TEXTURE_VIEW_NUM_LEVELS_OES
  GL_TEXTURE_WIDTH
  GL_TEXTURE_WIDTH_QCOM
  GL_TEXTURE_WRAP_R
  GL_TEXTURE_WRAP_R_EXT
  GL_TEXTURE_WRAP_R_OES
  GL_TEXTURE_WRAP_S
  GL_TEXTURE_WRAP_T
  GL_TEXTURE_Y_DEGAMMA_QCOM
  GL_TEXT_FRAGMENT_SHADER_ATI
  GL_TILING_TYPES_EXT
  GL_TIMELINE_SEMAPHORE_VALUE_NV
  GL_TIMEOUT_EXPIRED
  GL_TIMEOUT_EXPIRED_APPLE
  GL_TIMEOUT_IGNORED
  GL_TIMEOUT_IGNORED_APPLE
  GL_TIMESTAMP
  GL_TIMESTAMP_ANGLE
  GL_TIMESTAMP_EXT
  GL_TIME_ELAPSED
  GL_TIME_ELAPSED_ANGLE
  GL_TIME_ELAPSED_EXT
  GL_TOP_LEVEL_ARRAY_SIZE
  GL_TOP_LEVEL_ARRAY_STRIDE
  GL_TRACE_REGAL
  GL_TRACK_MATRIX_NV
  GL_TRACK_MATRIX_TRANSFORM_NV
  GL_TRANSFORM_BIT
  GL_TRANSFORM_FEEDBACK
  GL_TRANSFORM_FEEDBACK_ACTIVE
  GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
  GL_TRANSFORM_FEEDBACK_BARRIER_BIT
  GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT
  GL_TRANSFORM_FEEDBACK_BINDING
  GL_TRANSFORM_FEEDBACK_BINDING_NV
  GL_TRANSFORM_FEEDBACK_BUFFER
  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_EXT
  GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
  GL_TRANSFORM_FEEDBACK_BUFFER_MODE
  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_START
  GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
  GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
  GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
  GL_TRANSFORM_FEEDBACK_NV
  GL_TRANSFORM_FEEDBACK_OVERFLOW
  GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB
  GL_TRANSFORM_FEEDBACK_PAUSED
  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
  GL_TRANSFORM_FEEDBACK_RECORD_NV
  GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW
  GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
  GL_TRANSFORM_FEEDBACK_VARYING
  GL_TRANSFORM_FEEDBACK_VARYINGS
  GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
  GL_TRANSFORM_FEEDBACK_VARYINGS_NV
  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT
  GL_TRANSFORM_HINT_APPLE
  GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
  GL_TRANSLATE_2D_NV
  GL_TRANSLATE_3D_NV
  GL_TRANSLATE_X_NV
  GL_TRANSLATE_Y_NV
  GL_TRANSPOSE_AFFINE_2D_NV
  GL_TRANSPOSE_AFFINE_3D_NV
  GL_TRANSPOSE_COLOR_MATRIX
  GL_TRANSPOSE_COLOR_MATRIX_ARB
  GL_TRANSPOSE_CURRENT_MATRIX_ARB
  GL_TRANSPOSE_MODELVIEW_MATRIX
  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
  GL_TRANSPOSE_NV
  GL_TRANSPOSE_PROGRAM_MATRIX_EXT
  GL_TRANSPOSE_PROJECTION_MATRIX
  GL_TRANSPOSE_PROJECTION_MATRIX_ARB
  GL_TRANSPOSE_TEXTURE_MATRIX
  GL_TRANSPOSE_TEXTURE_MATRIX_ARB
  GL_TRIANGLES
  GL_TRIANGLES_ADJACENCY
  GL_TRIANGLES_ADJACENCY_ARB
  GL_TRIANGLES_ADJACENCY_EXT
  GL_TRIANGLES_ADJACENCY_OES
  GL_TRIANGLE_FAN
  GL_TRIANGLE_LIST_SUN
  GL_TRIANGLE_MESH_SUN
  GL_TRIANGLE_STRIP
  GL_TRIANGLE_STRIP_ADJACENCY
  GL_TRIANGLE_STRIP_ADJACENCY_ARB
  GL_TRIANGLE_STRIP_ADJACENCY_EXT
  GL_TRIANGLE_STRIP_ADJACENCY_OES
  GL_TRIANGULAR_NV
  GL_TRP_ERROR_CONTEXT_RESET_IMG
  GL_TRP_IMG
  GL_TRP_UNSUPPORTED_CONTEXT_IMG
  GL_TRUE
  GL_TYPE
  GL_UNCORRELATED_NV
  GL_UNDEFINED_APPLE
  GL_UNDEFINED_VERTEX
  GL_UNDEFINED_VERTEX_EXT
  GL_UNDEFINED_VERTEX_OES
  GL_UNIFORM
  GL_UNIFORM_ADDRESS_COMMAND_NV
  GL_UNIFORM_ARRAY_STRIDE
  GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
  GL_UNIFORM_BARRIER_BIT
  GL_UNIFORM_BARRIER_BIT_EXT
  GL_UNIFORM_BLOCK
  GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
  GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
  GL_UNIFORM_BLOCK_BINDING
  GL_UNIFORM_BLOCK_DATA_SIZE
  GL_UNIFORM_BLOCK_INDEX
  GL_UNIFORM_BLOCK_NAME_LENGTH
  GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
  GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
  GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
  GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_EXT
  GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV
  GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_EXT
  GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV
  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
  GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
  GL_UNIFORM_BUFFER
  GL_UNIFORM_BUFFER_ADDRESS_NV
  GL_UNIFORM_BUFFER_BINDING
  GL_UNIFORM_BUFFER_BINDING_EXT
  GL_UNIFORM_BUFFER_EXT
  GL_UNIFORM_BUFFER_LENGTH_NV
  GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
  GL_UNIFORM_BUFFER_SIZE
  GL_UNIFORM_BUFFER_START
  GL_UNIFORM_BUFFER_UNIFIED_NV
  GL_UNIFORM_IS_ROW_MAJOR
  GL_UNIFORM_MATRIX_STRIDE
  GL_UNIFORM_NAME_LENGTH
  GL_UNIFORM_OFFSET
  GL_UNIFORM_SGIX
  GL_UNIFORM_SIZE
  GL_UNIFORM_TYPE
  GL_UNKNOWN_CONTEXT_RESET
  GL_UNKNOWN_CONTEXT_RESET_ARB
  GL_UNKNOWN_CONTEXT_RESET_EXT
  GL_UNPACK_ALIGNMENT
  GL_UNPACK_CLIENT_STORAGE_APPLE
  GL_UNPACK_CMYK_HINT_EXT
  GL_UNPACK_COMPRESSED_BLOCK_DEPTH
  GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
  GL_UNPACK_COMPRESSED_BLOCK_SIZE
  GL_UNPACK_COMPRESSED_BLOCK_WIDTH
  GL_UNPACK_CONSTANT_DATA_SUNX
  GL_UNPACK_IMAGE_HEIGHT
  GL_UNPACK_IMAGE_HEIGHT_EXT
  GL_UNPACK_IMAGE_HEIGHT_NV
  GL_UNPACK_LSB_FIRST
  GL_UNPACK_RESAMPLE_OML
  GL_UNPACK_RESAMPLE_SGIX
  GL_UNPACK_ROW_BYTES_APPLE
  GL_UNPACK_ROW_LENGTH
  GL_UNPACK_ROW_LENGTH_EXT
  GL_UNPACK_SKIP_IMAGES
  GL_UNPACK_SKIP_IMAGES_EXT
  GL_UNPACK_SKIP_IMAGES_NV
  GL_UNPACK_SKIP_PIXELS
  GL_UNPACK_SKIP_PIXELS_EXT
  GL_UNPACK_SKIP_ROWS
  GL_UNPACK_SKIP_ROWS_EXT
  GL_UNPACK_SUBSAMPLE_RATE_SGIX
  GL_UNPACK_SWAP_BYTES
  GL_UNSIGNALED
  GL_UNSIGNALED_APPLE
  GL_UNSIGNED_BYTE
  GL_UNSIGNED_BYTE_2_3_3_REV
  GL_UNSIGNED_BYTE_3_3_2
  GL_UNSIGNED_BYTE_3_3_2_EXT
  GL_UNSIGNED_IDENTITY_NV
  GL_UNSIGNED_INT
  GL_UNSIGNED_INT16_NV
  GL_UNSIGNED_INT16_VEC2_NV
  GL_UNSIGNED_INT16_VEC3_NV
  GL_UNSIGNED_INT16_VEC4_NV
  GL_UNSIGNED_INT64_AMD
  GL_UNSIGNED_INT64_ARB
  GL_UNSIGNED_INT64_NV
  GL_UNSIGNED_INT64_VEC2_ARB
  GL_UNSIGNED_INT64_VEC2_NV
  GL_UNSIGNED_INT64_VEC3_ARB
  GL_UNSIGNED_INT64_VEC3_NV
  GL_UNSIGNED_INT64_VEC4_ARB
  GL_UNSIGNED_INT64_VEC4_NV
  GL_UNSIGNED_INT8_NV
  GL_UNSIGNED_INT8_VEC2_NV
  GL_UNSIGNED_INT8_VEC3_NV
  GL_UNSIGNED_INT8_VEC4_NV
  GL_UNSIGNED_INT_10F_11F_11F_REV
  GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE
  GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
  GL_UNSIGNED_INT_10F_11F_11F_REV_NV
  GL_UNSIGNED_INT_10_10_10_2
  GL_UNSIGNED_INT_10_10_10_2_EXT
  GL_UNSIGNED_INT_10_10_10_2_OES
  GL_UNSIGNED_INT_24_8
  GL_UNSIGNED_INT_24_8_EXT
  GL_UNSIGNED_INT_24_8_NV
  GL_UNSIGNED_INT_24_8_OES
  GL_UNSIGNED_INT_2_10_10_10_REV
  GL_UNSIGNED_INT_2_10_10_10_REV_EXT
  GL_UNSIGNED_INT_5_9_9_9_REV
  GL_UNSIGNED_INT_5_9_9_9_REV_APPLE
  GL_UNSIGNED_INT_5_9_9_9_REV_EXT
  GL_UNSIGNED_INT_8_8_8_8
  GL_UNSIGNED_INT_8_8_8_8_EXT
  GL_UNSIGNED_INT_8_8_8_8_REV
  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
  GL_UNSIGNED_INT_ATOMIC_COUNTER
  GL_UNSIGNED_INT_IMAGE_1D
  GL_UNSIGNED_INT_IMAGE_1D_ARRAY
  GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT
  GL_UNSIGNED_INT_IMAGE_1D_EXT
  GL_UNSIGNED_INT_IMAGE_2D
  GL_UNSIGNED_INT_IMAGE_2D_ARRAY
  GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT
  GL_UNSIGNED_INT_IMAGE_2D_EXT
  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT
  GL_UNSIGNED_INT_IMAGE_2D_RECT
  GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT
  GL_UNSIGNED_INT_IMAGE_3D
  GL_UNSIGNED_INT_IMAGE_3D_EXT
  GL_UNSIGNED_INT_IMAGE_BUFFER
  GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
  GL_UNSIGNED_INT_IMAGE_BUFFER_OES
  GL_UNSIGNED_INT_IMAGE_CUBE
  GL_UNSIGNED_INT_IMAGE_CUBE_EXT
  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES
  GL_UNSIGNED_INT_S8_S8_8_8_NV
  GL_UNSIGNED_INT_SAMPLER_1D
  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT
  GL_UNSIGNED_INT_SAMPLER_1D_EXT
  GL_UNSIGNED_INT_SAMPLER_2D
  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT
  GL_UNSIGNED_INT_SAMPLER_2D_EXT
  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
  GL_UNSIGNED_INT_SAMPLER_2D_RECT
  GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT
  GL_UNSIGNED_INT_SAMPLER_3D
  GL_UNSIGNED_INT_SAMPLER_3D_EXT
  GL_UNSIGNED_INT_SAMPLER_BUFFER
  GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD
  GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT
  GL_UNSIGNED_INT_SAMPLER_BUFFER_OES
  GL_UNSIGNED_INT_SAMPLER_CUBE
  GL_UNSIGNED_INT_SAMPLER_CUBE_EXT
  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES
  GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV
  GL_UNSIGNED_INT_VEC2
  GL_UNSIGNED_INT_VEC2_EXT
  GL_UNSIGNED_INT_VEC3
  GL_UNSIGNED_INT_VEC3_EXT
  GL_UNSIGNED_INT_VEC4
  GL_UNSIGNED_INT_VEC4_EXT
  GL_UNSIGNED_INVERT_NV
  GL_UNSIGNED_NORMALIZED
  GL_UNSIGNED_NORMALIZED_ARB
  GL_UNSIGNED_NORMALIZED_EXT
  GL_UNSIGNED_SHORT
  GL_UNSIGNED_SHORT_1_5_5_5_REV
  GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
  GL_UNSIGNED_SHORT_4_4_4_4
  GL_UNSIGNED_SHORT_4_4_4_4_EXT
  GL_UNSIGNED_SHORT_4_4_4_4_REV
  GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
  GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG
  GL_UNSIGNED_SHORT_5_5_5_1
  GL_UNSIGNED_SHORT_5_5_5_1_EXT
  GL_UNSIGNED_SHORT_5_6_5
  GL_UNSIGNED_SHORT_5_6_5_REV
  GL_UNSIGNED_SHORT_8_8_APPLE
  GL_UNSIGNED_SHORT_8_8_MESA
  GL_UNSIGNED_SHORT_8_8_REV_APPLE
  GL_UNSIGNED_SHORT_8_8_REV_MESA
  GL_UPLOAD_GPU_MASK_NVX
  GL_UPPER_LEFT
  GL_UPPER_LEFT_EXT
  GL_USE_MISSING_GLYPH_NV
  GL_UTF16_NV
  GL_UTF8_NV
  GL_UUID_SIZE_EXT
  GL_V2F
  GL_V3F
  GL_VALIDATE_STATUS
  GL_VARIABLE_A_NV
  GL_VARIABLE_B_NV
  GL_VARIABLE_C_NV
  GL_VARIABLE_D_NV
  GL_VARIABLE_E_NV
  GL_VARIABLE_F_NV
  GL_VARIABLE_G_NV
  GL_VARIANT_ARRAY_EXT
  GL_VARIANT_ARRAY_POINTER_EXT
  GL_VARIANT_ARRAY_STRIDE_EXT
  GL_VARIANT_ARRAY_TYPE_EXT
  GL_VARIANT_DATATYPE_EXT
  GL_VARIANT_EXT
  GL_VARIANT_VALUE_EXT
  GL_VBO_FREE_MEMORY_ATI
  GL_VECTOR_EXT
  GL_VENDOR
  GL_VERSION
  GL_VERTEX23_BIT_PGI
  GL_VERTEX4_BIT_PGI
  GL_VERTEX_ARRAY
  GL_VERTEX_ARRAY_ADDRESS_NV
  GL_VERTEX_ARRAY_BINDING
  GL_VERTEX_ARRAY_BINDING_APPLE
  GL_VERTEX_ARRAY_BINDING_OES
  GL_VERTEX_ARRAY_BUFFER_BINDING
  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
  GL_VERTEX_ARRAY_COUNT_EXT
  GL_VERTEX_ARRAY_EXT
  GL_VERTEX_ARRAY_LENGTH_NV
  GL_VERTEX_ARRAY_LIST_IBM
  GL_VERTEX_ARRAY_LIST_STRIDE_IBM
  GL_VERTEX_ARRAY_OBJECT_AMD
  GL_VERTEX_ARRAY_OBJECT_EXT
  GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
  GL_VERTEX_ARRAY_POINTER
  GL_VERTEX_ARRAY_POINTER_EXT
  GL_VERTEX_ARRAY_RANGE_APPLE
  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE
  GL_VERTEX_ARRAY_RANGE_LENGTH_NV
  GL_VERTEX_ARRAY_RANGE_NV
  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE
  GL_VERTEX_ARRAY_RANGE_POINTER_NV
  GL_VERTEX_ARRAY_RANGE_VALID_NV
  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
  GL_VERTEX_ARRAY_SIZE
  GL_VERTEX_ARRAY_SIZE_EXT
  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE
  GL_VERTEX_ARRAY_STRIDE
  GL_VERTEX_ARRAY_STRIDE_EXT
  GL_VERTEX_ARRAY_TYPE
  GL_VERTEX_ARRAY_TYPE_EXT
  GL_VERTEX_ATTRIB_ARRAY0_NV
  GL_VERTEX_ATTRIB_ARRAY10_NV
  GL_VERTEX_ATTRIB_ARRAY11_NV
  GL_VERTEX_ATTRIB_ARRAY12_NV
  GL_VERTEX_ATTRIB_ARRAY13_NV
  GL_VERTEX_ATTRIB_ARRAY14_NV
  GL_VERTEX_ATTRIB_ARRAY15_NV
  GL_VERTEX_ATTRIB_ARRAY1_NV
  GL_VERTEX_ATTRIB_ARRAY2_NV
  GL_VERTEX_ATTRIB_ARRAY3_NV
  GL_VERTEX_ATTRIB_ARRAY4_NV
  GL_VERTEX_ATTRIB_ARRAY5_NV
  GL_VERTEX_ATTRIB_ARRAY6_NV
  GL_VERTEX_ATTRIB_ARRAY7_NV
  GL_VERTEX_ATTRIB_ARRAY8_NV
  GL_VERTEX_ATTRIB_ARRAY9_NV
  GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV
  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT
  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
  GL_VERTEX_ATTRIB_ARRAY_DIVISOR
  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE
  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB
  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT
  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV
  GL_VERTEX_ATTRIB_ARRAY_ENABLED
  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
  GL_VERTEX_ATTRIB_ARRAY_INTEGER
  GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT
  GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
  GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV
  GL_VERTEX_ATTRIB_ARRAY_LONG
  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
  GL_VERTEX_ATTRIB_ARRAY_POINTER
  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
  GL_VERTEX_ATTRIB_ARRAY_SIZE
  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
  GL_VERTEX_ATTRIB_ARRAY_STRIDE
  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
  GL_VERTEX_ATTRIB_ARRAY_TYPE
  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
  GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV
  GL_VERTEX_ATTRIB_BINDING
  GL_VERTEX_ATTRIB_MAP1_APPLE
  GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE
  GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE
  GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE
  GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE
  GL_VERTEX_ATTRIB_MAP2_APPLE
  GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE
  GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE
  GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE
  GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE
  GL_VERTEX_ATTRIB_RELATIVE_OFFSET
  GL_VERTEX_BINDING_BUFFER
  GL_VERTEX_BINDING_DIVISOR
  GL_VERTEX_BINDING_OFFSET
  GL_VERTEX_BINDING_STRIDE
  GL_VERTEX_BLEND_ARB
  GL_VERTEX_CONSISTENT_HINT_PGI
  GL_VERTEX_DATA_HINT_PGI
  GL_VERTEX_ELEMENT_SWIZZLE_AMD
  GL_VERTEX_ID_NV
  GL_VERTEX_ID_SWIZZLE_AMD
  GL_VERTEX_PRECLIP_HINT_SGIX
  GL_VERTEX_PRECLIP_SGIX
  GL_VERTEX_PROGRAM_ARB
  GL_VERTEX_PROGRAM_BINDING_NV
  GL_VERTEX_PROGRAM_NV
  GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV
  GL_VERTEX_PROGRAM_POINT_SIZE
  GL_VERTEX_PROGRAM_POINT_SIZE_ARB
  GL_VERTEX_PROGRAM_POINT_SIZE_NV
  GL_VERTEX_PROGRAM_TWO_SIDE
  GL_VERTEX_PROGRAM_TWO_SIDE_ARB
  GL_VERTEX_PROGRAM_TWO_SIDE_NV
  GL_VERTEX_SHADER
  GL_VERTEX_SHADER_ARB
  GL_VERTEX_SHADER_BINDING_EXT
  GL_VERTEX_SHADER_BIT
  GL_VERTEX_SHADER_EXT
  GL_VERTEX_SHADER_INSTRUCTIONS_EXT
  GL_VERTEX_SHADER_INVARIANTS_EXT
  GL_VERTEX_SHADER_INVOCATIONS
  GL_VERTEX_SHADER_INVOCATIONS_ARB
  GL_VERTEX_SHADER_LOCALS_EXT
  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
  GL_VERTEX_SHADER_OPTIMIZED_EXT
  GL_VERTEX_SHADER_VARIANTS_EXT
  GL_VERTEX_SOURCE_ATI
  GL_VERTEX_STATE_PROGRAM_NV
  GL_VERTEX_STREAM0_ATI
  GL_VERTEX_STREAM1_ATI
  GL_VERTEX_STREAM2_ATI
  GL_VERTEX_STREAM3_ATI
  GL_VERTEX_STREAM4_ATI
  GL_VERTEX_STREAM5_ATI
  GL_VERTEX_STREAM6_ATI
  GL_VERTEX_STREAM7_ATI
  GL_VERTEX_SUBROUTINE
  GL_VERTEX_SUBROUTINE_UNIFORM
  GL_VERTEX_TEXTURE
  GL_VERTEX_WEIGHTING_EXT
  GL_VERTEX_WEIGHT_ARRAY_EXT
  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT
  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT
  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT
  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT
  GL_VERTICAL_LINE_TO_NV
  GL_VERTICES_SUBMITTED
  GL_VERTICES_SUBMITTED_ARB
  GL_VIBRANCE_BIAS_NV
  GL_VIBRANCE_SCALE_NV
  GL_VIDEO_BUFFER_BINDING_NV
  GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
  GL_VIDEO_BUFFER_NV
  GL_VIDEO_BUFFER_PITCH_NV
  GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
  GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
  GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
  GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
  GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
  GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
  GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
  GL_VIDEO_COLOR_CONVERSION_MAX_NV
  GL_VIDEO_COLOR_CONVERSION_MIN_NV
  GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
  GL_VIEWPORT
  GL_VIEWPORT_BIT
  GL_VIEWPORT_BOUNDS_RANGE
  GL_VIEWPORT_BOUNDS_RANGE_NV
  GL_VIEWPORT_COMMAND_NV
  GL_VIEWPORT_INDEX_PROVOKING_VERTEX
  GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV
  GL_VIEWPORT_POSITION_W_SCALE_NV
  GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV
  GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV
  GL_VIEWPORT_SUBPIXEL_BITS
  GL_VIEWPORT_SUBPIXEL_BITS_NV
  GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV
  GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV
  GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV
  GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV
  GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV
  GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV
  GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV
  GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV
  GL_VIEWPORT_SWIZZLE_W_NV
  GL_VIEWPORT_SWIZZLE_X_NV
  GL_VIEWPORT_SWIZZLE_Y_NV
  GL_VIEWPORT_SWIZZLE_Z_NV
  GL_VIEW_CLASS_128_BITS
  GL_VIEW_CLASS_16_BITS
  GL_VIEW_CLASS_24_BITS
  GL_VIEW_CLASS_32_BITS
  GL_VIEW_CLASS_48_BITS
  GL_VIEW_CLASS_64_BITS
  GL_VIEW_CLASS_8_BITS
  GL_VIEW_CLASS_96_BITS
  GL_VIEW_CLASS_BPTC_FLOAT
  GL_VIEW_CLASS_BPTC_UNORM
  GL_VIEW_CLASS_RGTC1_RED
  GL_VIEW_CLASS_RGTC2_RG
  GL_VIEW_CLASS_S3TC_DXT1_RGB
  GL_VIEW_CLASS_S3TC_DXT1_RGBA
  GL_VIEW_CLASS_S3TC_DXT3_RGBA
  GL_VIEW_CLASS_S3TC_DXT5_RGBA
  GL_VIEW_COMPATIBILITY_CLASS
  GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
  GL_VIRTUAL_PAGE_SIZE_INDEX_EXT
  GL_VIRTUAL_PAGE_SIZE_X_AMD
  GL_VIRTUAL_PAGE_SIZE_X_ARB
  GL_VIRTUAL_PAGE_SIZE_X_EXT
  GL_VIRTUAL_PAGE_SIZE_Y_AMD
  GL_VIRTUAL_PAGE_SIZE_Y_ARB
  GL_VIRTUAL_PAGE_SIZE_Y_EXT
  GL_VIRTUAL_PAGE_SIZE_Z_AMD
  GL_VIRTUAL_PAGE_SIZE_Z_ARB
  GL_VIRTUAL_PAGE_SIZE_Z_EXT
  GL_VIVIDLIGHT_NV
  GL_VOLATILE_APPLE
  GL_WAIT_FAILED
  GL_WAIT_FAILED_APPLE
  GL_WARPS_PER_SM_NV
  GL_WARP_SIZE_NV
  GL_WEIGHTED_AVERAGE_ARB
  GL_WEIGHTED_AVERAGE_EXT
  GL_WEIGHT_ARRAY_ARB
  GL_WEIGHT_ARRAY_BUFFER_BINDING
  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB
  GL_WEIGHT_ARRAY_BUFFER_BINDING_OES
  GL_WEIGHT_ARRAY_OES
  GL_WEIGHT_ARRAY_POINTER_ARB
  GL_WEIGHT_ARRAY_POINTER_OES
  GL_WEIGHT_ARRAY_SIZE_ARB
  GL_WEIGHT_ARRAY_SIZE_OES
  GL_WEIGHT_ARRAY_STRIDE_ARB
  GL_WEIGHT_ARRAY_STRIDE_OES
  GL_WEIGHT_ARRAY_TYPE_ARB
  GL_WEIGHT_ARRAY_TYPE_OES
  GL_WEIGHT_SUM_UNITY_ARB
  GL_WIDE_LINE_HINT_PGI
  GL_WINDOW_RECTANGLE_EXT
  GL_WINDOW_RECTANGLE_MODE_EXT
  GL_WRAP_BORDER
  GL_WRAP_BORDER_SUN
  GL_WRITEONLY_RENDERING_QCOM
  GL_WRITE_DISCARD_NV
  GL_WRITE_ONLY
  GL_WRITE_ONLY_ARB
  GL_WRITE_ONLY_OES
  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV
  GL_WRITE_PIXEL_DATA_RANGE_NV
  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV
  GL_W_EXT
  GL_XOR
  GL_XOR_NV
  GL_X_EXT
  GL_YCBAYCR8A_4224_NV
  GL_YCBCR_422_APPLE
  GL_YCBCR_MESA
  GL_YCBYCR8_422_NV
  GL_YCRCBA_SGIX
  GL_YCRCB_SGIX
  GL_Y_EXT
  GL_Z400_BINARY_AMD
  GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
  GL_Z4Y12Z4CB12Z4CR12_444_NV
  GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
  GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
  GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
  GL_ZERO
  GL_ZERO_EXT
  GL_ZERO_TO_ONE
  GL_ZERO_TO_ONE_EXT
  GL_ZOOM_X
  GL_ZOOM_Y
  GL_Z_EXT
);

our %features = (
  'GL_3DFX_tbuffer' => [
    'glTbufferMask3DFX'
  ],
  'GL_AMD_debug_output' => [
    'glDebugMessageCallbackAMD',
    'glDebugMessageEnableAMD',
    'glDebugMessageInsertAMD',
    'glGetDebugMessageLogAMD'
  ],
  'GL_AMD_draw_buffers_blend' => [
    'glBlendEquationIndexedAMD',
    'glBlendEquationSeparateIndexedAMD',
    'glBlendFuncIndexedAMD',
    'glBlendFuncSeparateIndexedAMD'
  ],
  'GL_AMD_framebuffer_multisample_advanced' => [
    'glNamedRenderbufferStorageMultisampleAdvancedAMD',
    'glRenderbufferStorageMultisampleAdvancedAMD'
  ],
  'GL_AMD_framebuffer_sample_positions' => [
    'glFramebufferSamplePositionsfvAMD',
    'glGetFramebufferParameterfvAMD',
    'glGetNamedFramebufferParameterfvAMD',
    'glNamedFramebufferSamplePositionsfvAMD'
  ],
  'GL_AMD_interleaved_elements' => [
    'glVertexAttribParameteriAMD'
  ],
  'GL_AMD_multi_draw_indirect' => [
    'glMultiDrawArraysIndirectAMD',
    'glMultiDrawElementsIndirectAMD'
  ],
  'GL_AMD_name_gen_delete' => [
    'glDeleteNamesAMD',
    'glGenNamesAMD',
    'glIsNameAMD'
  ],
  'GL_AMD_occlusion_query_event' => [
    'glQueryObjectParameteruiAMD'
  ],
  'GL_AMD_performance_monitor' => [
    'glBeginPerfMonitorAMD',
    'glDeletePerfMonitorsAMD',
    'glEndPerfMonitorAMD',
    'glGenPerfMonitorsAMD',
    'glGetPerfMonitorCounterDataAMD',
    'glGetPerfMonitorCounterInfoAMD',
    'glGetPerfMonitorCounterStringAMD',
    'glGetPerfMonitorCountersAMD',
    'glGetPerfMonitorGroupStringAMD',
    'glGetPerfMonitorGroupsAMD',
    'glSelectPerfMonitorCountersAMD'
  ],
  'GL_AMD_sample_positions' => [
    'glSetMultisamplefvAMD'
  ],
  'GL_AMD_sparse_texture' => [
    'glTexStorageSparseAMD',
    'glTextureStorageSparseAMD'
  ],
  'GL_AMD_stencil_operation_extended' => [
    'glStencilOpValueAMD'
  ],
  'GL_AMD_vertex_shader_tessellator' => [
    'glTessellationFactorAMD',
    'glTessellationModeAMD'
  ],
  'GL_ANGLE_framebuffer_blit' => [
    'glBlitFramebufferANGLE'
  ],
  'GL_ANGLE_framebuffer_multisample' => [
    'glRenderbufferStorageMultisampleANGLE'
  ],
  'GL_ANGLE_instanced_arrays' => [
    'glDrawArraysInstancedANGLE',
    'glDrawElementsInstancedANGLE',
    'glVertexAttribDivisorANGLE'
  ],
  'GL_ANGLE_timer_query' => [
    'glBeginQueryANGLE',
    'glDeleteQueriesANGLE',
    'glEndQueryANGLE',
    'glGenQueriesANGLE',
    'glGetQueryObjecti64vANGLE',
    'glGetQueryObjectivANGLE',
    'glGetQueryObjectui64vANGLE',
    'glGetQueryObjectuivANGLE',
    'glGetQueryivANGLE',
    'glIsQueryANGLE',
    'glQueryCounterANGLE'
  ],
  'GL_ANGLE_translated_shader_source' => [
    'glGetTranslatedShaderSourceANGLE'
  ],
  'GL_APPLE_copy_texture_levels' => [
    'glCopyTextureLevelsAPPLE'
  ],
  'GL_APPLE_element_array' => [
    'glDrawElementArrayAPPLE',
    'glDrawRangeElementArrayAPPLE',
    'glElementPointerAPPLE',
    'glMultiDrawElementArrayAPPLE',
    'glMultiDrawRangeElementArrayAPPLE'
  ],
  'GL_APPLE_fence' => [
    'glDeleteFencesAPPLE',
    'glFinishFenceAPPLE',
    'glFinishObjectAPPLE',
    'glGenFencesAPPLE',
    'glIsFenceAPPLE',
    'glSetFenceAPPLE',
    'glTestFenceAPPLE',
    'glTestObjectAPPLE'
  ],
  'GL_APPLE_flush_buffer_range' => [
    'glBufferParameteriAPPLE',
    'glFlushMappedBufferRangeAPPLE'
  ],
  'GL_APPLE_framebuffer_multisample' => [
    'glRenderbufferStorageMultisampleAPPLE',
    'glResolveMultisampleFramebufferAPPLE'
  ],
  'GL_APPLE_object_purgeable' => [
    'glGetObjectParameterivAPPLE',
    'glObjectPurgeableAPPLE',
    'glObjectUnpurgeableAPPLE'
  ],
  'GL_APPLE_sync' => [
    'glClientWaitSyncAPPLE',
    'glDeleteSyncAPPLE',
    'glFenceSyncAPPLE',
    'glGetInteger64vAPPLE',
    'glGetSyncivAPPLE',
    'glIsSyncAPPLE',
    'glWaitSyncAPPLE'
  ],
  'GL_APPLE_texture_range' => [
    'glGetTexParameterPointervAPPLE',
    'glTextureRangeAPPLE'
  ],
  'GL_APPLE_vertex_array_object' => [
    'glBindVertexArrayAPPLE',
    'glDeleteVertexArraysAPPLE',
    'glGenVertexArraysAPPLE',
    'glIsVertexArrayAPPLE'
  ],
  'GL_APPLE_vertex_array_range' => [
    'glFlushVertexArrayRangeAPPLE',
    'glVertexArrayParameteriAPPLE',
    'glVertexArrayRangeAPPLE'
  ],
  'GL_APPLE_vertex_program_evaluators' => [
    'glDisableVertexAttribAPPLE',
    'glEnableVertexAttribAPPLE',
    'glIsVertexAttribEnabledAPPLE',
    'glMapVertexAttrib1dAPPLE',
    'glMapVertexAttrib1fAPPLE',
    'glMapVertexAttrib2dAPPLE',
    'glMapVertexAttrib2fAPPLE'
  ],
  'GL_ARB_ES2_compatibility' => [
    'glClearDepthf',
    'glDepthRangef',
    'glGetShaderPrecisionFormat',
    'glReleaseShaderCompiler',
    'glShaderBinary'
  ],
  'GL_ARB_ES3_1_compatibility' => [
    'glMemoryBarrierByRegion'
  ],
  'GL_ARB_ES3_2_compatibility' => [
    'glPrimitiveBoundingBoxARB'
  ],
  'GL_ARB_base_instance' => [
    'glDrawArraysInstancedBaseInstance',
    'glDrawElementsInstancedBaseInstance',
    'glDrawElementsInstancedBaseVertexBaseInstance'
  ],
  'GL_ARB_bindless_texture' => [
    'glGetImageHandleARB',
    'glGetTextureHandleARB',
    'glGetTextureSamplerHandleARB',
    'glGetVertexAttribLui64vARB',
    'glIsImageHandleResidentARB',
    'glIsTextureHandleResidentARB',
    'glMakeImageHandleNonResidentARB',
    'glMakeImageHandleResidentARB',
    'glMakeTextureHandleNonResidentARB',
    'glMakeTextureHandleResidentARB',
    'glProgramUniformHandleui64ARB',
    'glProgramUniformHandleui64vARB',
    'glUniformHandleui64ARB',
    'glUniformHandleui64vARB',
    'glVertexAttribL1ui64ARB',
    'glVertexAttribL1ui64vARB'
  ],
  'GL_ARB_blend_func_extended' => [
    'glBindFragDataLocationIndexed',
    'glGetFragDataIndex'
  ],
  'GL_ARB_buffer_storage' => [
    'glBufferStorage'
  ],
  'GL_ARB_cl_event' => [
    'glCreateSyncFromCLeventARB'
  ],
  'GL_ARB_clear_buffer_object' => [
    'glClearBufferData',
    'glClearBufferSubData',
    'glClearNamedBufferDataEXT',
    'glClearNamedBufferSubDataEXT'
  ],
  'GL_ARB_clear_texture' => [
    'glClearTexImage',
    'glClearTexSubImage'
  ],
  'GL_ARB_clip_control' => [
    'glClipControl'
  ],
  'GL_ARB_color_buffer_float' => [
    'glClampColorARB'
  ],
  'GL_ARB_compute_shader' => [
    'glDispatchCompute',
    'glDispatchComputeIndirect'
  ],
  'GL_ARB_compute_variable_group_size' => [
    'glDispatchComputeGroupSizeARB'
  ],
  'GL_ARB_copy_buffer' => [
    'glCopyBufferSubData'
  ],
  'GL_ARB_copy_image' => [
    'glCopyImageSubData'
  ],
  'GL_ARB_debug_output' => [
    'glDebugMessageCallbackARB',
    'glDebugMessageControlARB',
    'glDebugMessageInsertARB',
    'glGetDebugMessageLogARB'
  ],
  'GL_ARB_direct_state_access' => [
    'glBindTextureUnit',
    'glBlitNamedFramebuffer',
    'glCheckNamedFramebufferStatus',
    'glClearNamedBufferData',
    'glClearNamedBufferSubData',
    'glClearNamedFramebufferfi',
    'glClearNamedFramebufferfv',
    'glClearNamedFramebufferiv',
    'glClearNamedFramebufferuiv',
    'glCompressedTextureSubImage1D',
    'glCompressedTextureSubImage2D',
    'glCompressedTextureSubImage3D',
    'glCopyNamedBufferSubData',
    'glCopyTextureSubImage1D',
    'glCopyTextureSubImage2D',
    'glCopyTextureSubImage3D',
    'glCreateBuffers',
    'glCreateFramebuffers',
    'glCreateProgramPipelines',
    'glCreateQueries',
    'glCreateRenderbuffers',
    'glCreateSamplers',
    'glCreateTextures',
    'glCreateTransformFeedbacks',
    'glCreateVertexArrays',
    'glDisableVertexArrayAttrib',
    'glEnableVertexArrayAttrib',
    'glFlushMappedNamedBufferRange',
    'glGenerateTextureMipmap',
    'glGetCompressedTextureImage',
    'glGetNamedBufferParameteri64v',
    'glGetNamedBufferParameteriv',
    'glGetNamedBufferPointerv',
    'glGetNamedBufferSubData',
    'glGetNamedFramebufferAttachmentParameteriv',
    'glGetNamedFramebufferParameteriv',
    'glGetNamedRenderbufferParameteriv',
    'glGetQueryBufferObjecti64v',
    'glGetQueryBufferObjectiv',
    'glGetQueryBufferObjectui64v',
    'glGetQueryBufferObjectuiv',
    'glGetTextureImage',
    'glGetTextureLevelParameterfv',
    'glGetTextureLevelParameteriv',
    'glGetTextureParameterIiv',
    'glGetTextureParameterIuiv',
    'glGetTextureParameterfv',
    'glGetTextureParameteriv',
    'glGetTransformFeedbacki64_v',
    'glGetTransformFeedbacki_v',
    'glGetTransformFeedbackiv',
    'glGetVertexArrayIndexed64iv',
    'glGetVertexArrayIndexediv',
    'glGetVertexArrayiv',
    'glInvalidateNamedFramebufferData',
    'glInvalidateNamedFramebufferSubData',
    'glMapNamedBuffer',
    'glMapNamedBufferRange',
    'glNamedBufferData',
    'glNamedBufferStorage',
    'glNamedBufferSubData',
    'glNamedFramebufferDrawBuffer',
    'glNamedFramebufferDrawBuffers',
    'glNamedFramebufferParameteri',
    'glNamedFramebufferReadBuffer',
    'glNamedFramebufferRenderbuffer',
    'glNamedFramebufferTexture',
    'glNamedFramebufferTextureLayer',
    'glNamedRenderbufferStorage',
    'glNamedRenderbufferStorageMultisample',
    'glTextureBuffer',
    'glTextureBufferRange',
    'glTextureParameterIiv',
    'glTextureParameterIuiv',
    'glTextureParameterf',
    'glTextureParameterfv',
    'glTextureParameteri',
    'glTextureParameteriv',
    'glTextureStorage1D',
    'glTextureStorage2D',
    'glTextureStorage2DMultisample',
    'glTextureStorage3D',
    'glTextureStorage3DMultisample',
    'glTextureSubImage1D',
    'glTextureSubImage2D',
    'glTextureSubImage3D',
    'glTransformFeedbackBufferBase',
    'glTransformFeedbackBufferRange',
    'glUnmapNamedBuffer',
    'glVertexArrayAttribBinding',
    'glVertexArrayAttribFormat',
    'glVertexArrayAttribIFormat',
    'glVertexArrayAttribLFormat',
    'glVertexArrayBindingDivisor',
    'glVertexArrayElementBuffer',
    'glVertexArrayVertexBuffer',
    'glVertexArrayVertexBuffers'
  ],
  'GL_ARB_draw_buffers' => [
    'glDrawBuffersARB'
  ],
  'GL_ARB_draw_buffers_blend' => [
    'glBlendEquationSeparateiARB',
    'glBlendEquationiARB',
    'glBlendFuncSeparateiARB',
    'glBlendFunciARB'
  ],
  'GL_ARB_draw_elements_base_vertex' => [
    'glDrawElementsBaseVertex',
    'glDrawElementsInstancedBaseVertex',
    'glDrawRangeElementsBaseVertex',
    'glMultiDrawElementsBaseVertex'
  ],
  'GL_ARB_draw_indirect' => [
    'glDrawArraysIndirect',
    'glDrawElementsIndirect'
  ],
  'GL_ARB_framebuffer_no_attachments' => [
    'glFramebufferParameteri',
    'glGetFramebufferParameteriv',
    'glGetNamedFramebufferParameterivEXT',
    'glNamedFramebufferParameteriEXT'
  ],
  'GL_ARB_framebuffer_object' => [
    'glBindFramebuffer',
    'glBindRenderbuffer',
    'glBlitFramebuffer',
    'glCheckFramebufferStatus',
    'glDeleteFramebuffers',
    'glDeleteRenderbuffers',
    'glFramebufferRenderbuffer',
    'glFramebufferTexture1D',
    'glFramebufferTexture2D',
    'glFramebufferTexture3D',
    'glFramebufferTextureLayer',
    'glGenFramebuffers',
    'glGenRenderbuffers',
    'glGenerateMipmap',
    'glGetFramebufferAttachmentParameteriv',
    'glGetRenderbufferParameteriv',
    'glIsFramebuffer',
    'glIsRenderbuffer',
    'glRenderbufferStorage',
    'glRenderbufferStorageMultisample'
  ],
  'GL_ARB_geometry_shader4' => [
    'glFramebufferTextureARB',
    'glFramebufferTextureFaceARB',
    'glFramebufferTextureLayerARB',
    'glProgramParameteriARB'
  ],
  'GL_ARB_get_program_binary' => [
    'glGetProgramBinary',
    'glProgramBinary',
    'glProgramParameteri'
  ],
  'GL_ARB_get_texture_sub_image' => [
    'glGetCompressedTextureSubImage',
    'glGetTextureSubImage'
  ],
  'GL_ARB_gl_spirv' => [
    'glSpecializeShaderARB'
  ],
  'GL_ARB_gpu_shader_fp64' => [
    'glGetUniformdv',
    'glUniform1d',
    'glUniform1dv',
    'glUniform2d',
    'glUniform2dv',
    'glUniform3d',
    'glUniform3dv',
    'glUniform4d',
    'glUniform4dv',
    'glUniformMatrix2dv',
    'glUniformMatrix2x3dv',
    'glUniformMatrix2x4dv',
    'glUniformMatrix3dv',
    'glUniformMatrix3x2dv',
    'glUniformMatrix3x4dv',
    'glUniformMatrix4dv',
    'glUniformMatrix4x2dv',
    'glUniformMatrix4x3dv'
  ],
  'GL_ARB_gpu_shader_int64' => [
    'glGetUniformi64vARB',
    'glGetUniformui64vARB',
    'glGetnUniformi64vARB',
    'glGetnUniformui64vARB',
    'glProgramUniform1i64ARB',
    'glProgramUniform1i64vARB',
    'glProgramUniform1ui64ARB',
    'glProgramUniform1ui64vARB',
    'glProgramUniform2i64ARB',
    'glProgramUniform2i64vARB',
    'glProgramUniform2ui64ARB',
    'glProgramUniform2ui64vARB',
    'glProgramUniform3i64ARB',
    'glProgramUniform3i64vARB',
    'glProgramUniform3ui64ARB',
    'glProgramUniform3ui64vARB',
    'glProgramUniform4i64ARB',
    'glProgramUniform4i64vARB',
    'glProgramUniform4ui64ARB',
    'glProgramUniform4ui64vARB',
    'glUniform1i64ARB',
    'glUniform1i64vARB',
    'glUniform1ui64ARB',
    'glUniform1ui64vARB',
    'glUniform2i64ARB',
    'glUniform2i64vARB',
    'glUniform2ui64ARB',
    'glUniform2ui64vARB',
    'glUniform3i64ARB',
    'glUniform3i64vARB',
    'glUniform3ui64ARB',
    'glUniform3ui64vARB',
    'glUniform4i64ARB',
    'glUniform4i64vARB',
    'glUniform4ui64ARB',
    'glUniform4ui64vARB'
  ],
  'GL_ARB_imaging' => [
    'glColorSubTable',
    'glColorTable',
    'glColorTableParameterfv',
    'glColorTableParameteriv',
    'glConvolutionFilter1D',
    'glConvolutionFilter2D',
    'glConvolutionParameterf',
    'glConvolutionParameterfv',
    'glConvolutionParameteri',
    'glConvolutionParameteriv',
    'glCopyColorSubTable',
    'glCopyColorTable',
    'glCopyConvolutionFilter1D',
    'glCopyConvolutionFilter2D',
    'glGetColorTable',
    'glGetColorTableParameterfv',
    'glGetColorTableParameteriv',
    'glGetConvolutionFilter',
    'glGetConvolutionParameterfv',
    'glGetConvolutionParameteriv',
    'glGetHistogram',
    'glGetHistogramParameterfv',
    'glGetHistogramParameteriv',
    'glGetMinmax',
    'glGetMinmaxParameterfv',
    'glGetMinmaxParameteriv',
    'glGetSeparableFilter',
    'glHistogram',
    'glMinmax',
    'glResetHistogram',
    'glResetMinmax',
    'glSeparableFilter2D'
  ],
  'GL_ARB_indirect_parameters' => [
    'glMultiDrawArraysIndirectCountARB',
    'glMultiDrawElementsIndirectCountARB'
  ],
  'GL_ARB_instanced_arrays' => [
    'glDrawArraysInstancedARB',
    'glDrawElementsInstancedARB',
    'glVertexAttribDivisorARB'
  ],
  'GL_ARB_internalformat_query' => [
    'glGetInternalformativ'
  ],
  'GL_ARB_internalformat_query2' => [
    'glGetInternalformati64v'
  ],
  'GL_ARB_invalidate_subdata' => [
    'glInvalidateBufferData',
    'glInvalidateBufferSubData',
    'glInvalidateFramebuffer',
    'glInvalidateSubFramebuffer',
    'glInvalidateTexImage',
    'glInvalidateTexSubImage'
  ],
  'GL_ARB_map_buffer_range' => [
    'glFlushMappedBufferRange',
    'glMapBufferRange'
  ],
  'GL_ARB_matrix_palette' => [
    'glCurrentPaletteMatrixARB',
    'glMatrixIndexPointerARB',
    'glMatrixIndexubvARB',
    'glMatrixIndexuivARB',
    'glMatrixIndexusvARB'
  ],
  'GL_ARB_multi_bind' => [
    'glBindBuffersBase',
    'glBindBuffersRange',
    'glBindImageTextures',
    'glBindSamplers',
    'glBindTextures',
    'glBindVertexBuffers'
  ],
  'GL_ARB_multi_draw_indirect' => [
    'glMultiDrawArraysIndirect',
    'glMultiDrawElementsIndirect'
  ],
  'GL_ARB_multisample' => [
    'glSampleCoverageARB'
  ],
  'GL_ARB_multitexture' => [
    'glActiveTextureARB',
    'glClientActiveTextureARB',
    'glMultiTexCoord1dARB',
    'glMultiTexCoord1dvARB',
    'glMultiTexCoord1fARB',
    'glMultiTexCoord1fvARB',
    'glMultiTexCoord1iARB',
    'glMultiTexCoord1ivARB',
    'glMultiTexCoord1sARB',
    'glMultiTexCoord1svARB',
    'glMultiTexCoord2dARB',
    'glMultiTexCoord2dvARB',
    'glMultiTexCoord2fARB',
    'glMultiTexCoord2fvARB',
    'glMultiTexCoord2iARB',
    'glMultiTexCoord2ivARB',
    'glMultiTexCoord2sARB',
    'glMultiTexCoord2svARB',
    'glMultiTexCoord3dARB',
    'glMultiTexCoord3dvARB',
    'glMultiTexCoord3fARB',
    'glMultiTexCoord3fvARB',
    'glMultiTexCoord3iARB',
    'glMultiTexCoord3ivARB',
    'glMultiTexCoord3sARB',
    'glMultiTexCoord3svARB',
    'glMultiTexCoord4dARB',
    'glMultiTexCoord4dvARB',
    'glMultiTexCoord4fARB',
    'glMultiTexCoord4fvARB',
    'glMultiTexCoord4iARB',
    'glMultiTexCoord4ivARB',
    'glMultiTexCoord4sARB',
    'glMultiTexCoord4svARB'
  ],
  'GL_ARB_occlusion_query' => [
    'glBeginQueryARB',
    'glDeleteQueriesARB',
    'glEndQueryARB',
    'glGenQueriesARB',
    'glGetQueryObjectivARB',
    'glGetQueryObjectuivARB',
    'glGetQueryivARB',
    'glIsQueryARB'
  ],
  'GL_ARB_parallel_shader_compile' => [
    'glMaxShaderCompilerThreadsARB'
  ],
  'GL_ARB_point_parameters' => [
    'glPointParameterfARB',
    'glPointParameterfvARB'
  ],
  'GL_ARB_polygon_offset_clamp' => [
    'glPolygonOffsetClamp'
  ],
  'GL_ARB_program_interface_query' => [
    'glGetProgramInterfaceiv',
    'glGetProgramResourceIndex',
    'glGetProgramResourceLocation',
    'glGetProgramResourceLocationIndex',
    'glGetProgramResourceName',
    'glGetProgramResourceiv'
  ],
  'GL_ARB_provoking_vertex' => [
    'glProvokingVertex'
  ],
  'GL_ARB_robustness' => [
    'glGetGraphicsResetStatusARB',
    'glGetnColorTableARB',
    'glGetnCompressedTexImageARB',
    'glGetnConvolutionFilterARB',
    'glGetnHistogramARB',
    'glGetnMapdvARB',
    'glGetnMapfvARB',
    'glGetnMapivARB',
    'glGetnMinmaxARB',
    'glGetnPixelMapfvARB',
    'glGetnPixelMapuivARB',
    'glGetnPixelMapusvARB',
    'glGetnPolygonStippleARB',
    'glGetnSeparableFilterARB',
    'glGetnTexImageARB',
    'glGetnUniformdvARB',
    'glGetnUniformfvARB',
    'glGetnUniformivARB',
    'glGetnUniformuivARB',
    'glReadnPixelsARB'
  ],
  'GL_ARB_sample_locations' => [
    'glEvaluateDepthValuesARB',
    'glFramebufferSampleLocationsfvARB',
    'glNamedFramebufferSampleLocationsfvARB'
  ],
  'GL_ARB_sample_shading' => [
    'glMinSampleShadingARB'
  ],
  'GL_ARB_sampler_objects' => [
    'glBindSampler',
    'glDeleteSamplers',
    'glGenSamplers',
    'glGetSamplerParameterIiv',
    'glGetSamplerParameterIuiv',
    'glGetSamplerParameterfv',
    'glGetSamplerParameteriv',
    'glIsSampler',
    'glSamplerParameterIiv',
    'glSamplerParameterIuiv',
    'glSamplerParameterf',
    'glSamplerParameterfv',
    'glSamplerParameteri',
    'glSamplerParameteriv'
  ],
  'GL_ARB_separate_shader_objects' => [
    'glActiveShaderProgram',
    'glBindProgramPipeline',
    'glCreateShaderProgramv',
    'glDeleteProgramPipelines',
    'glGenProgramPipelines',
    'glGetProgramPipelineInfoLog',
    'glGetProgramPipelineiv',
    'glIsProgramPipeline',
    'glProgramUniform1d',
    'glProgramUniform1dv',
    'glProgramUniform1f',
    'glProgramUniform1fv',
    'glProgramUniform1i',
    'glProgramUniform1iv',
    'glProgramUniform1ui',
    'glProgramUniform1uiv',
    'glProgramUniform2d',
    'glProgramUniform2dv',
    'glProgramUniform2f',
    'glProgramUniform2fv',
    'glProgramUniform2i',
    'glProgramUniform2iv',
    'glProgramUniform2ui',
    'glProgramUniform2uiv',
    'glProgramUniform3d',
    'glProgramUniform3dv',
    'glProgramUniform3f',
    'glProgramUniform3fv',
    'glProgramUniform3i',
    'glProgramUniform3iv',
    'glProgramUniform3ui',
    'glProgramUniform3uiv',
    'glProgramUniform4d',
    'glProgramUniform4dv',
    'glProgramUniform4f',
    'glProgramUniform4fv',
    'glProgramUniform4i',
    'glProgramUniform4iv',
    'glProgramUniform4ui',
    'glProgramUniform4uiv',
    'glProgramUniformMatrix2dv',
    'glProgramUniformMatrix2fv',
    'glProgramUniformMatrix2x3dv',
    'glProgramUniformMatrix2x3fv',
    'glProgramUniformMatrix2x4dv',
    'glProgramUniformMatrix2x4fv',
    'glProgramUniformMatrix3dv',
    'glProgramUniformMatrix3fv',
    'glProgramUniformMatrix3x2dv',
    'glProgramUniformMatrix3x2fv',
    'glProgramUniformMatrix3x4dv',
    'glProgramUniformMatrix3x4fv',
    'glProgramUniformMatrix4dv',
    'glProgramUniformMatrix4fv',
    'glProgramUniformMatrix4x2dv',
    'glProgramUniformMatrix4x2fv',
    'glProgramUniformMatrix4x3dv',
    'glProgramUniformMatrix4x3fv',
    'glUseProgramStages',
    'glValidateProgramPipeline'
  ],
  'GL_ARB_shader_atomic_counters' => [
    'glGetActiveAtomicCounterBufferiv'
  ],
  'GL_ARB_shader_image_load_store' => [
    'glBindImageTexture',
    'glMemoryBarrier'
  ],
  'GL_ARB_shader_objects' => [
    'glAttachObjectARB',
    'glCompileShaderARB',
    'glCreateProgramObjectARB',
    'glCreateShaderObjectARB',
    'glDeleteObjectARB',
    'glDetachObjectARB',
    'glGetActiveUniformARB',
    'glGetAttachedObjectsARB',
    'glGetHandleARB',
    'glGetInfoLogARB',
    'glGetObjectParameterfvARB',
    'glGetObjectParameterivARB',
    'glGetShaderSourceARB',
    'glGetUniformLocationARB',
    'glGetUniformfvARB',
    'glGetUniformivARB',
    'glLinkProgramARB',
    'glShaderSourceARB',
    'glUniform1fARB',
    'glUniform1fvARB',
    'glUniform1iARB',
    'glUniform1ivARB',
    'glUniform2fARB',
    'glUniform2fvARB',
    'glUniform2iARB',
    'glUniform2ivARB',
    'glUniform3fARB',
    'glUniform3fvARB',
    'glUniform3iARB',
    'glUniform3ivARB',
    'glUniform4fARB',
    'glUniform4fvARB',
    'glUniform4iARB',
    'glUniform4ivARB',
    'glUniformMatrix2fvARB',
    'glUniformMatrix3fvARB',
    'glUniformMatrix4fvARB',
    'glUseProgramObjectARB',
    'glValidateProgramARB'
  ],
  'GL_ARB_shader_storage_buffer_object' => [
    'glShaderStorageBlockBinding'
  ],
  'GL_ARB_shader_subroutine' => [
    'glGetActiveSubroutineName',
    'glGetActiveSubroutineUniformName',
    'glGetActiveSubroutineUniformiv',
    'glGetProgramStageiv',
    'glGetSubroutineIndex',
    'glGetSubroutineUniformLocation',
    'glGetUniformSubroutineuiv',
    'glUniformSubroutinesuiv'
  ],
  'GL_ARB_shading_language_include' => [
    'glCompileShaderIncludeARB',
    'glDeleteNamedStringARB',
    'glGetNamedStringARB',
    'glGetNamedStringivARB',
    'glIsNamedStringARB',
    'glNamedStringARB'
  ],
  'GL_ARB_sparse_buffer' => [
    'glBufferPageCommitmentARB'
  ],
  'GL_ARB_sparse_texture' => [
    'glTexPageCommitmentARB'
  ],
  'GL_ARB_sync' => [
    'glClientWaitSync',
    'glDeleteSync',
    'glFenceSync',
    'glGetInteger64v',
    'glGetSynciv',
    'glIsSync',
    'glWaitSync'
  ],
  'GL_ARB_tessellation_shader' => [
    'glPatchParameterfv',
    'glPatchParameteri'
  ],
  'GL_ARB_texture_barrier' => [
    'glTextureBarrier'
  ],
  'GL_ARB_texture_buffer_object' => [
    'glTexBufferARB'
  ],
  'GL_ARB_texture_buffer_range' => [
    'glTexBufferRange',
    'glTextureBufferRangeEXT'
  ],
  'GL_ARB_texture_compression' => [
    'glCompressedTexImage1DARB',
    'glCompressedTexImage2DARB',
    'glCompressedTexImage3DARB',
    'glCompressedTexSubImage1DARB',
    'glCompressedTexSubImage2DARB',
    'glCompressedTexSubImage3DARB',
    'glGetCompressedTexImageARB'
  ],
  'GL_ARB_texture_multisample' => [
    'glGetMultisamplefv',
    'glSampleMaski',
    'glTexImage2DMultisample',
    'glTexImage3DMultisample'
  ],
  'GL_ARB_texture_storage' => [
    'glTexStorage1D',
    'glTexStorage2D',
    'glTexStorage3D'
  ],
  'GL_ARB_texture_storage_multisample' => [
    'glTexStorage2DMultisample',
    'glTexStorage3DMultisample',
    'glTextureStorage2DMultisampleEXT',
    'glTextureStorage3DMultisampleEXT'
  ],
  'GL_ARB_texture_view' => [
    'glTextureView'
  ],
  'GL_ARB_timer_query' => [
    'glGetQueryObjecti64v',
    'glGetQueryObjectui64v',
    'glQueryCounter'
  ],
  'GL_ARB_transform_feedback2' => [
    'glBindTransformFeedback',
    'glDeleteTransformFeedbacks',
    'glDrawTransformFeedback',
    'glGenTransformFeedbacks',
    'glIsTransformFeedback',
    'glPauseTransformFeedback',
    'glResumeTransformFeedback'
  ],
  'GL_ARB_transform_feedback3' => [
    'glBeginQueryIndexed',
    'glDrawTransformFeedbackStream',
    'glEndQueryIndexed',
    'glGetQueryIndexediv'
  ],
  'GL_ARB_transform_feedback_instanced' => [
    'glDrawTransformFeedbackInstanced',
    'glDrawTransformFeedbackStreamInstanced'
  ],
  'GL_ARB_transpose_matrix' => [
    'glLoadTransposeMatrixdARB',
    'glLoadTransposeMatrixfARB',
    'glMultTransposeMatrixdARB',
    'glMultTransposeMatrixfARB'
  ],
  'GL_ARB_uniform_buffer_object' => [
    'glBindBufferBase',
    'glBindBufferRange',
    'glGetActiveUniformBlockName',
    'glGetActiveUniformBlockiv',
    'glGetActiveUniformName',
    'glGetActiveUniformsiv',
    'glGetIntegeri_v',
    'glGetUniformBlockIndex',
    'glGetUniformIndices',
    'glUniformBlockBinding'
  ],
  'GL_ARB_vertex_array_object' => [
    'glBindVertexArray',
    'glDeleteVertexArrays',
    'glGenVertexArrays',
    'glIsVertexArray'
  ],
  'GL_ARB_vertex_attrib_64bit' => [
    'glGetVertexAttribLdv',
    'glVertexAttribL1d',
    'glVertexAttribL1dv',
    'glVertexAttribL2d',
    'glVertexAttribL2dv',
    'glVertexAttribL3d',
    'glVertexAttribL3dv',
    'glVertexAttribL4d',
    'glVertexAttribL4dv',
    'glVertexAttribLPointer'
  ],
  'GL_ARB_vertex_attrib_binding' => [
    'glBindVertexBuffer',
    'glVertexArrayBindVertexBufferEXT',
    'glVertexArrayVertexAttribBindingEXT',
    'glVertexArrayVertexAttribFormatEXT',
    'glVertexArrayVertexAttribIFormatEXT',
    'glVertexArrayVertexAttribLFormatEXT',
    'glVertexArrayVertexBindingDivisorEXT',
    'glVertexAttribBinding',
    'glVertexAttribFormat',
    'glVertexAttribIFormat',
    'glVertexAttribLFormat',
    'glVertexBindingDivisor'
  ],
  'GL_ARB_vertex_blend' => [
    'glVertexBlendARB',
    'glWeightPointerARB',
    'glWeightbvARB',
    'glWeightdvARB',
    'glWeightfvARB',
    'glWeightivARB',
    'glWeightsvARB',
    'glWeightubvARB',
    'glWeightuivARB',
    'glWeightusvARB'
  ],
  'GL_ARB_vertex_buffer_object' => [
    'glBindBufferARB',
    'glBufferDataARB',
    'glBufferSubDataARB',
    'glDeleteBuffersARB',
    'glGenBuffersARB',
    'glGetBufferParameterivARB',
    'glGetBufferPointervARB',
    'glGetBufferSubDataARB',
    'glIsBufferARB',
    'glMapBufferARB',
    'glUnmapBufferARB'
  ],
  'GL_ARB_vertex_program' => [
    'glBindProgramARB',
    'glDeleteProgramsARB',
    'glDisableVertexAttribArrayARB',
    'glEnableVertexAttribArrayARB',
    'glGenProgramsARB',
    'glGetProgramEnvParameterdvARB',
    'glGetProgramEnvParameterfvARB',
    'glGetProgramLocalParameterdvARB',
    'glGetProgramLocalParameterfvARB',
    'glGetProgramStringARB',
    'glGetProgramivARB',
    'glGetVertexAttribPointervARB',
    'glGetVertexAttribdvARB',
    'glGetVertexAttribfvARB',
    'glGetVertexAttribivARB',
    'glIsProgramARB',
    'glProgramEnvParameter4dARB',
    'glProgramEnvParameter4dvARB',
    'glProgramEnvParameter4fARB',
    'glProgramEnvParameter4fvARB',
    'glProgramLocalParameter4dARB',
    'glProgramLocalParameter4dvARB',
    'glProgramLocalParameter4fARB',
    'glProgramLocalParameter4fvARB',
    'glProgramStringARB',
    'glVertexAttrib1dARB',
    'glVertexAttrib1dvARB',
    'glVertexAttrib1fARB',
    'glVertexAttrib1fvARB',
    'glVertexAttrib1sARB',
    'glVertexAttrib1svARB',
    'glVertexAttrib2dARB',
    'glVertexAttrib2dvARB',
    'glVertexAttrib2fARB',
    'glVertexAttrib2fvARB',
    'glVertexAttrib2sARB',
    'glVertexAttrib2svARB',
    'glVertexAttrib3dARB',
    'glVertexAttrib3dvARB',
    'glVertexAttrib3fARB',
    'glVertexAttrib3fvARB',
    'glVertexAttrib3sARB',
    'glVertexAttrib3svARB',
    'glVertexAttrib4NbvARB',
    'glVertexAttrib4NivARB',
    'glVertexAttrib4NsvARB',
    'glVertexAttrib4NubARB',
    'glVertexAttrib4NubvARB',
    'glVertexAttrib4NuivARB',
    'glVertexAttrib4NusvARB',
    'glVertexAttrib4bvARB',
    'glVertexAttrib4dARB',
    'glVertexAttrib4dvARB',
    'glVertexAttrib4fARB',
    'glVertexAttrib4fvARB',
    'glVertexAttrib4ivARB',
    'glVertexAttrib4sARB',
    'glVertexAttrib4svARB',
    'glVertexAttrib4ubvARB',
    'glVertexAttrib4uivARB',
    'glVertexAttrib4usvARB',
    'glVertexAttribPointerARB'
  ],
  'GL_ARB_vertex_shader' => [
    'glBindAttribLocationARB',
    'glGetActiveAttribARB',
    'glGetAttribLocationARB'
  ],
  'GL_ARB_vertex_type_2_10_10_10_rev' => [
    'glColorP3ui',
    'glColorP3uiv',
    'glColorP4ui',
    'glColorP4uiv',
    'glMultiTexCoordP1ui',
    'glMultiTexCoordP1uiv',
    'glMultiTexCoordP2ui',
    'glMultiTexCoordP2uiv',
    'glMultiTexCoordP3ui',
    'glMultiTexCoordP3uiv',
    'glMultiTexCoordP4ui',
    'glMultiTexCoordP4uiv',
    'glNormalP3ui',
    'glNormalP3uiv',
    'glSecondaryColorP3ui',
    'glSecondaryColorP3uiv',
    'glTexCoordP1ui',
    'glTexCoordP1uiv',
    'glTexCoordP2ui',
    'glTexCoordP2uiv',
    'glTexCoordP3ui',
    'glTexCoordP3uiv',
    'glTexCoordP4ui',
    'glTexCoordP4uiv',
    'glVertexAttribP1ui',
    'glVertexAttribP1uiv',
    'glVertexAttribP2ui',
    'glVertexAttribP2uiv',
    'glVertexAttribP3ui',
    'glVertexAttribP3uiv',
    'glVertexAttribP4ui',
    'glVertexAttribP4uiv',
    'glVertexP2ui',
    'glVertexP2uiv',
    'glVertexP3ui',
    'glVertexP3uiv',
    'glVertexP4ui',
    'glVertexP4uiv'
  ],
  'GL_ARB_viewport_array' => [
    'glDepthRangeArrayv',
    'glDepthRangeIndexed',
    'glGetDoublei_v',
    'glGetFloati_v',
    'glScissorArrayv',
    'glScissorIndexed',
    'glScissorIndexedv',
    'glViewportArrayv',
    'glViewportIndexedf',
    'glViewportIndexedfv'
  ],
  'GL_ARB_window_pos' => [
    'glWindowPos2dARB',
    'glWindowPos2dvARB',
    'glWindowPos2fARB',
    'glWindowPos2fvARB',
    'glWindowPos2iARB',
    'glWindowPos2ivARB',
    'glWindowPos2sARB',
    'glWindowPos2svARB',
    'glWindowPos3dARB',
    'glWindowPos3dvARB',
    'glWindowPos3fARB',
    'glWindowPos3fvARB',
    'glWindowPos3iARB',
    'glWindowPos3ivARB',
    'glWindowPos3sARB',
    'glWindowPos3svARB'
  ],
  'GL_ARM_shader_core_properties' => [
    'glMaxActiveShaderCoresARM'
  ],
  'GL_ATI_draw_buffers' => [
    'glDrawBuffersATI'
  ],
  'GL_ATI_element_array' => [
    'glDrawElementArrayATI',
    'glDrawRangeElementArrayATI',
    'glElementPointerATI'
  ],
  'GL_ATI_envmap_bumpmap' => [
    'glGetTexBumpParameterfvATI',
    'glGetTexBumpParameterivATI',
    'glTexBumpParameterfvATI',
    'glTexBumpParameterivATI'
  ],
  'GL_ATI_fragment_shader' => [
    'glAlphaFragmentOp1ATI',
    'glAlphaFragmentOp2ATI',
    'glAlphaFragmentOp3ATI',
    'glBeginFragmentShaderATI',
    'glBindFragmentShaderATI',
    'glColorFragmentOp1ATI',
    'glColorFragmentOp2ATI',
    'glColorFragmentOp3ATI',
    'glDeleteFragmentShaderATI',
    'glEndFragmentShaderATI',
    'glGenFragmentShadersATI',
    'glPassTexCoordATI',
    'glSampleMapATI',
    'glSetFragmentShaderConstantATI'
  ],
  'GL_ATI_map_object_buffer' => [
    'glMapObjectBufferATI',
    'glUnmapObjectBufferATI'
  ],
  'GL_ATI_pn_triangles' => [
    'glPNTrianglesfATI',
    'glPNTrianglesiATI'
  ],
  'GL_ATI_separate_stencil' => [
    'glStencilFuncSeparateATI',
    'glStencilOpSeparateATI'
  ],
  'GL_ATI_vertex_array_object' => [
    'glArrayObjectATI',
    'glFreeObjectBufferATI',
    'glGetArrayObjectfvATI',
    'glGetArrayObjectivATI',
    'glGetObjectBufferfvATI',
    'glGetObjectBufferivATI',
    'glGetVariantArrayObjectfvATI',
    'glGetVariantArrayObjectivATI',
    'glIsObjectBufferATI',
    'glNewObjectBufferATI',
    'glUpdateObjectBufferATI',
    'glVariantArrayObjectATI'
  ],
  'GL_ATI_vertex_attrib_array_object' => [
    'glGetVertexAttribArrayObjectfvATI',
    'glGetVertexAttribArrayObjectivATI',
    'glVertexAttribArrayObjectATI'
  ],
  'GL_ATI_vertex_streams' => [
    'glClientActiveVertexStreamATI',
    'glNormalStream3bATI',
    'glNormalStream3bvATI',
    'glNormalStream3dATI',
    'glNormalStream3dvATI',
    'glNormalStream3fATI',
    'glNormalStream3fvATI',
    'glNormalStream3iATI',
    'glNormalStream3ivATI',
    'glNormalStream3sATI',
    'glNormalStream3svATI',
    'glVertexBlendEnvfATI',
    'glVertexBlendEnviATI',
    'glVertexStream1dATI',
    'glVertexStream1dvATI',
    'glVertexStream1fATI',
    'glVertexStream1fvATI',
    'glVertexStream1iATI',
    'glVertexStream1ivATI',
    'glVertexStream1sATI',
    'glVertexStream1svATI',
    'glVertexStream2dATI',
    'glVertexStream2dvATI',
    'glVertexStream2fATI',
    'glVertexStream2fvATI',
    'glVertexStream2iATI',
    'glVertexStream2ivATI',
    'glVertexStream2sATI',
    'glVertexStream2svATI',
    'glVertexStream3dATI',
    'glVertexStream3dvATI',
    'glVertexStream3fATI',
    'glVertexStream3fvATI',
    'glVertexStream3iATI',
    'glVertexStream3ivATI',
    'glVertexStream3sATI',
    'glVertexStream3svATI',
    'glVertexStream4dATI',
    'glVertexStream4dvATI',
    'glVertexStream4fATI',
    'glVertexStream4fvATI',
    'glVertexStream4iATI',
    'glVertexStream4ivATI',
    'glVertexStream4sATI',
    'glVertexStream4svATI'
  ],
  'GL_EXT_EGL_image_storage' => [
    'glEGLImageTargetTexStorageEXT',
    'glEGLImageTargetTextureStorageEXT'
  ],
  'GL_EXT_base_instance' => [
    'glDrawArraysInstancedBaseInstanceEXT',
    'glDrawElementsInstancedBaseInstanceEXT',
    'glDrawElementsInstancedBaseVertexBaseInstanceEXT'
  ],
  'GL_EXT_bindable_uniform' => [
    'glGetUniformBufferSizeEXT',
    'glGetUniformOffsetEXT',
    'glUniformBufferEXT'
  ],
  'GL_EXT_blend_color' => [
    'glBlendColorEXT'
  ],
  'GL_EXT_blend_equation_separate' => [
    'glBlendEquationSeparateEXT'
  ],
  'GL_EXT_blend_func_extended' => [
    'glBindFragDataLocationIndexedEXT',
    'glGetFragDataIndexEXT',
    'glGetProgramResourceLocationIndexEXT'
  ],
  'GL_EXT_blend_func_separate' => [
    'glBlendFuncSeparateEXT'
  ],
  'GL_EXT_blend_minmax' => [
    'glBlendEquationEXT'
  ],
  'GL_EXT_buffer_storage' => [
    'glBufferStorageEXT'
  ],
  'GL_EXT_clear_texture' => [
    'glClearTexImageEXT',
    'glClearTexSubImageEXT'
  ],
  'GL_EXT_clip_control' => [
    'glClipControlEXT'
  ],
  'GL_EXT_color_subtable' => [
    'glColorSubTableEXT',
    'glCopyColorSubTableEXT'
  ],
  'GL_EXT_compiled_vertex_array' => [
    'glLockArraysEXT',
    'glUnlockArraysEXT'
  ],
  'GL_EXT_convolution' => [
    'glConvolutionFilter1DEXT',
    'glConvolutionFilter2DEXT',
    'glConvolutionParameterfEXT',
    'glConvolutionParameterfvEXT',
    'glConvolutionParameteriEXT',
    'glConvolutionParameterivEXT',
    'glCopyConvolutionFilter1DEXT',
    'glCopyConvolutionFilter2DEXT',
    'glGetConvolutionFilterEXT',
    'glGetConvolutionParameterfvEXT',
    'glGetConvolutionParameterivEXT',
    'glGetSeparableFilterEXT',
    'glSeparableFilter2DEXT'
  ],
  'GL_EXT_coordinate_frame' => [
    'glBinormalPointerEXT',
    'glTangentPointerEXT'
  ],
  'GL_EXT_copy_image' => [
    'glCopyImageSubDataEXT'
  ],
  'GL_EXT_copy_texture' => [
    'glCopyTexImage1DEXT',
    'glCopyTexImage2DEXT',
    'glCopyTexSubImage1DEXT',
    'glCopyTexSubImage2DEXT',
    'glCopyTexSubImage3DEXT'
  ],
  'GL_EXT_cull_vertex' => [
    'glCullParameterdvEXT',
    'glCullParameterfvEXT'
  ],
  'GL_EXT_debug_label' => [
    'glGetObjectLabelEXT',
    'glLabelObjectEXT'
  ],
  'GL_EXT_debug_marker' => [
    'glInsertEventMarkerEXT',
    'glPopGroupMarkerEXT',
    'glPushGroupMarkerEXT'
  ],
  'GL_EXT_depth_bounds_test' => [
    'glDepthBoundsEXT'
  ],
  'GL_EXT_direct_state_access' => [
    'glBindMultiTextureEXT',
    'glCheckNamedFramebufferStatusEXT',
    'glClientAttribDefaultEXT',
    'glCompressedMultiTexImage1DEXT',
    'glCompressedMultiTexImage2DEXT',
    'glCompressedMultiTexImage3DEXT',
    'glCompressedMultiTexSubImage1DEXT',
    'glCompressedMultiTexSubImage2DEXT',
    'glCompressedMultiTexSubImage3DEXT',
    'glCompressedTextureImage1DEXT',
    'glCompressedTextureImage2DEXT',
    'glCompressedTextureImage3DEXT',
    'glCompressedTextureSubImage1DEXT',
    'glCompressedTextureSubImage2DEXT',
    'glCompressedTextureSubImage3DEXT',
    'glCopyMultiTexImage1DEXT',
    'glCopyMultiTexImage2DEXT',
    'glCopyMultiTexSubImage1DEXT',
    'glCopyMultiTexSubImage2DEXT',
    'glCopyMultiTexSubImage3DEXT',
    'glCopyTextureImage1DEXT',
    'glCopyTextureImage2DEXT',
    'glCopyTextureSubImage1DEXT',
    'glCopyTextureSubImage2DEXT',
    'glCopyTextureSubImage3DEXT',
    'glDisableClientStateIndexedEXT',
    'glDisableClientStateiEXT',
    'glDisableVertexArrayAttribEXT',
    'glDisableVertexArrayEXT',
    'glEnableClientStateIndexedEXT',
    'glEnableClientStateiEXT',
    'glEnableVertexArrayAttribEXT',
    'glEnableVertexArrayEXT',
    'glFlushMappedNamedBufferRangeEXT',
    'glFramebufferDrawBufferEXT',
    'glFramebufferDrawBuffersEXT',
    'glFramebufferReadBufferEXT',
    'glGenerateMultiTexMipmapEXT',
    'glGenerateTextureMipmapEXT',
    'glGetCompressedMultiTexImageEXT',
    'glGetCompressedTextureImageEXT',
    'glGetDoubleIndexedvEXT',
    'glGetDoublei_vEXT',
    'glGetFloatIndexedvEXT',
    'glGetFloati_vEXT',
    'glGetFramebufferParameterivEXT',
    'glGetMultiTexEnvfvEXT',
    'glGetMultiTexEnvivEXT',
    'glGetMultiTexGendvEXT',
    'glGetMultiTexGenfvEXT',
    'glGetMultiTexGenivEXT',
    'glGetMultiTexImageEXT',
    'glGetMultiTexLevelParameterfvEXT',
    'glGetMultiTexLevelParameterivEXT',
    'glGetMultiTexParameterIivEXT',
    'glGetMultiTexParameterIuivEXT',
    'glGetMultiTexParameterfvEXT',
    'glGetMultiTexParameterivEXT',
    'glGetNamedBufferParameterivEXT',
    'glGetNamedBufferPointervEXT',
    'glGetNamedBufferSubDataEXT',
    'glGetNamedFramebufferAttachmentParameterivEXT',
    'glGetNamedProgramLocalParameterIivEXT',
    'glGetNamedProgramLocalParameterIuivEXT',
    'glGetNamedProgramLocalParameterdvEXT',
    'glGetNamedProgramLocalParameterfvEXT',
    'glGetNamedProgramStringEXT',
    'glGetNamedProgramivEXT',
    'glGetNamedRenderbufferParameterivEXT',
    'glGetPointerIndexedvEXT',
    'glGetPointeri_vEXT',
    'glGetTextureImageEXT',
    'glGetTextureLevelParameterfvEXT',
    'glGetTextureLevelParameterivEXT',
    'glGetTextureParameterIivEXT',
    'glGetTextureParameterIuivEXT',
    'glGetTextureParameterfvEXT',
    'glGetTextureParameterivEXT',
    'glGetVertexArrayIntegeri_vEXT',
    'glGetVertexArrayIntegervEXT',
    'glGetVertexArrayPointeri_vEXT',
    'glGetVertexArrayPointervEXT',
    'glMapNamedBufferEXT',
    'glMapNamedBufferRangeEXT',
    'glMatrixFrustumEXT',
    'glMatrixLoadIdentityEXT',
    'glMatrixLoadTransposedEXT',
    'glMatrixLoadTransposefEXT',
    'glMatrixLoaddEXT',
    'glMatrixLoadfEXT',
    'glMatrixMultTransposedEXT',
    'glMatrixMultTransposefEXT',
    'glMatrixMultdEXT',
    'glMatrixMultfEXT',
    'glMatrixOrthoEXT',
    'glMatrixPopEXT',
    'glMatrixPushEXT',
    'glMatrixRotatedEXT',
    'glMatrixRotatefEXT',
    'glMatrixScaledEXT',
    'glMatrixScalefEXT',
    'glMatrixTranslatedEXT',
    'glMatrixTranslatefEXT',
    'glMultiTexBufferEXT',
    'glMultiTexCoordPointerEXT',
    'glMultiTexEnvfEXT',
    'glMultiTexEnvfvEXT',
    'glMultiTexEnviEXT',
    'glMultiTexEnvivEXT',
    'glMultiTexGendEXT',
    'glMultiTexGendvEXT',
    'glMultiTexGenfEXT',
    'glMultiTexGenfvEXT',
    'glMultiTexGeniEXT',
    'glMultiTexGenivEXT',
    'glMultiTexImage1DEXT',
    'glMultiTexImage2DEXT',
    'glMultiTexImage3DEXT',
    'glMultiTexParameterIivEXT',
    'glMultiTexParameterIuivEXT',
    'glMultiTexParameterfEXT',
    'glMultiTexParameterfvEXT',
    'glMultiTexParameteriEXT',
    'glMultiTexParameterivEXT',
    'glMultiTexRenderbufferEXT',
    'glMultiTexSubImage1DEXT',
    'glMultiTexSubImage2DEXT',
    'glMultiTexSubImage3DEXT',
    'glNamedBufferDataEXT',
    'glNamedBufferStorageEXT',
    'glNamedBufferSubDataEXT',
    'glNamedCopyBufferSubDataEXT',
    'glNamedFramebufferRenderbufferEXT',
    'glNamedFramebufferTexture1DEXT',
    'glNamedFramebufferTexture2DEXT',
    'glNamedFramebufferTexture3DEXT',
    'glNamedFramebufferTextureEXT',
    'glNamedFramebufferTextureFaceEXT',
    'glNamedFramebufferTextureLayerEXT',
    'glNamedProgramLocalParameter4dEXT',
    'glNamedProgramLocalParameter4dvEXT',
    'glNamedProgramLocalParameter4fEXT',
    'glNamedProgramLocalParameter4fvEXT',
    'glNamedProgramLocalParameterI4iEXT',
    'glNamedProgramLocalParameterI4ivEXT',
    'glNamedProgramLocalParameterI4uiEXT',
    'glNamedProgramLocalParameterI4uivEXT',
    'glNamedProgramLocalParameters4fvEXT',
    'glNamedProgramLocalParametersI4ivEXT',
    'glNamedProgramLocalParametersI4uivEXT',
    'glNamedProgramStringEXT',
    'glNamedRenderbufferStorageEXT',
    'glNamedRenderbufferStorageMultisampleCoverageEXT',
    'glNamedRenderbufferStorageMultisampleEXT',
    'glProgramUniform1fEXT',
    'glProgramUniform1fvEXT',
    'glProgramUniform1iEXT',
    'glProgramUniform1ivEXT',
    'glProgramUniform1uiEXT',
    'glProgramUniform1uivEXT',
    'glProgramUniform2fEXT',
    'glProgramUniform2fvEXT',
    'glProgramUniform2iEXT',
    'glProgramUniform2ivEXT',
    'glProgramUniform2uiEXT',
    'glProgramUniform2uivEXT',
    'glProgramUniform3fEXT',
    'glProgramUniform3fvEXT',
    'glProgramUniform3iEXT',
    'glProgramUniform3ivEXT',
    'glProgramUniform3uiEXT',
    'glProgramUniform3uivEXT',
    'glProgramUniform4fEXT',
    'glProgramUniform4fvEXT',
    'glProgramUniform4iEXT',
    'glProgramUniform4ivEXT',
    'glProgramUniform4uiEXT',
    'glProgramUniform4uivEXT',
    'glProgramUniformMatrix2fvEXT',
    'glProgramUniformMatrix2x3fvEXT',
    'glProgramUniformMatrix2x4fvEXT',
    'glProgramUniformMatrix3fvEXT',
    'glProgramUniformMatrix3x2fvEXT',
    'glProgramUniformMatrix3x4fvEXT',
    'glProgramUniformMatrix4fvEXT',
    'glProgramUniformMatrix4x2fvEXT',
    'glProgramUniformMatrix4x3fvEXT',
    'glPushClientAttribDefaultEXT',
    'glTextureBufferEXT',
    'glTextureImage1DEXT',
    'glTextureImage2DEXT',
    'glTextureImage3DEXT',
    'glTexturePageCommitmentEXT',
    'glTextureParameterIivEXT',
    'glTextureParameterIuivEXT',
    'glTextureParameterfEXT',
    'glTextureParameterfvEXT',
    'glTextureParameteriEXT',
    'glTextureParameterivEXT',
    'glTextureRenderbufferEXT',
    'glTextureSubImage1DEXT',
    'glTextureSubImage2DEXT',
    'glTextureSubImage3DEXT',
    'glUnmapNamedBufferEXT',
    'glVertexArrayColorOffsetEXT',
    'glVertexArrayEdgeFlagOffsetEXT',
    'glVertexArrayFogCoordOffsetEXT',
    'glVertexArrayIndexOffsetEXT',
    'glVertexArrayMultiTexCoordOffsetEXT',
    'glVertexArrayNormalOffsetEXT',
    'glVertexArraySecondaryColorOffsetEXT',
    'glVertexArrayTexCoordOffsetEXT',
    'glVertexArrayVertexAttribDivisorEXT',
    'glVertexArrayVertexAttribIOffsetEXT',
    'glVertexArrayVertexAttribOffsetEXT',
    'glVertexArrayVertexOffsetEXT'
  ],
  'GL_EXT_discard_framebuffer' => [
    'glDiscardFramebufferEXT'
  ],
  'GL_EXT_disjoint_timer_query' => [
    'glBeginQueryEXT',
    'glDeleteQueriesEXT',
    'glEndQueryEXT',
    'glGenQueriesEXT',
    'glGetInteger64vEXT',
    'glGetQueryObjectivEXT',
    'glGetQueryObjectuivEXT',
    'glGetQueryivEXT',
    'glIsQueryEXT',
    'glQueryCounterEXT'
  ],
  'GL_EXT_draw_buffers' => [
    'glDrawBuffersEXT'
  ],
  'GL_EXT_draw_buffers2' => [
    'glColorMaskIndexedEXT',
    'glDisableIndexedEXT',
    'glEnableIndexedEXT',
    'glGetBooleanIndexedvEXT',
    'glGetIntegerIndexedvEXT',
    'glIsEnabledIndexedEXT'
  ],
  'GL_EXT_draw_buffers_indexed' => [
    'glBlendEquationSeparateiEXT',
    'glBlendEquationiEXT',
    'glBlendFuncSeparateiEXT',
    'glBlendFunciEXT',
    'glColorMaskiEXT',
    'glDisableiEXT',
    'glEnableiEXT',
    'glIsEnablediEXT'
  ],
  'GL_EXT_draw_elements_base_vertex' => [
    'glDrawElementsBaseVertexEXT',
    'glDrawElementsInstancedBaseVertexEXT',
    'glDrawRangeElementsBaseVertexEXT',
    'glMultiDrawElementsBaseVertexEXT'
  ],
  'GL_EXT_draw_instanced' => [
    'glDrawArraysInstancedEXT',
    'glDrawElementsInstancedEXT'
  ],
  'GL_EXT_draw_range_elements' => [
    'glDrawRangeElementsEXT'
  ],
  'GL_EXT_draw_transform_feedback' => [
    'glDrawTransformFeedbackEXT',
    'glDrawTransformFeedbackInstancedEXT'
  ],
  'GL_EXT_external_buffer' => [
    'glBufferStorageExternalEXT',
    'glNamedBufferStorageExternalEXT'
  ],
  'GL_EXT_fog_coord' => [
    'glFogCoordPointerEXT',
    'glFogCoorddEXT',
    'glFogCoorddvEXT',
    'glFogCoordfEXT',
    'glFogCoordfvEXT'
  ],
  'GL_EXT_fragment_lighting' => [
    'glFragmentColorMaterialEXT',
    'glFragmentLightModelfEXT',
    'glFragmentLightModelfvEXT',
    'glFragmentLightModeliEXT',
    'glFragmentLightModelivEXT',
    'glFragmentLightfEXT',
    'glFragmentLightfvEXT',
    'glFragmentLightiEXT',
    'glFragmentLightivEXT',
    'glFragmentMaterialfEXT',
    'glFragmentMaterialfvEXT',
    'glFragmentMaterialiEXT',
    'glFragmentMaterialivEXT',
    'glGetFragmentLightfvEXT',
    'glGetFragmentLightivEXT',
    'glGetFragmentMaterialfvEXT',
    'glGetFragmentMaterialivEXT',
    'glLightEnviEXT'
  ],
  'GL_EXT_fragment_shading_rate' => [
    'glFramebufferShadingRateEXT',
    'glGetFragmentShadingRatesEXT',
    'glShadingRateCombinerOpsEXT',
    'glShadingRateEXT'
  ],
  'GL_EXT_framebuffer_blit' => [
    'glBlitFramebufferEXT'
  ],
  'GL_EXT_framebuffer_blit_layers' => [
    'glBlitFramebufferLayerEXT',
    'glBlitFramebufferLayersEXT'
  ],
  'GL_EXT_framebuffer_multisample' => [
    'glRenderbufferStorageMultisampleEXT'
  ],
  'GL_EXT_framebuffer_object' => [
    'glBindFramebufferEXT',
    'glBindRenderbufferEXT',
    'glCheckFramebufferStatusEXT',
    'glDeleteFramebuffersEXT',
    'glDeleteRenderbuffersEXT',
    'glFramebufferRenderbufferEXT',
    'glFramebufferTexture1DEXT',
    'glFramebufferTexture2DEXT',
    'glFramebufferTexture3DEXT',
    'glGenFramebuffersEXT',
    'glGenRenderbuffersEXT',
    'glGenerateMipmapEXT',
    'glGetFramebufferAttachmentParameterivEXT',
    'glGetRenderbufferParameterivEXT',
    'glIsFramebufferEXT',
    'glIsRenderbufferEXT',
    'glRenderbufferStorageEXT'
  ],
  'GL_EXT_geometry_shader4' => [
    'glFramebufferTextureEXT',
    'glFramebufferTextureFaceEXT',
    'glProgramParameteriEXT'
  ],
  'GL_EXT_gpu_program_parameters' => [
    'glProgramEnvParameters4fvEXT',
    'glProgramLocalParameters4fvEXT'
  ],
  'GL_EXT_gpu_shader4' => [
    'glBindFragDataLocationEXT',
    'glGetFragDataLocationEXT',
    'glGetUniformuivEXT',
    'glGetVertexAttribIivEXT',
    'glGetVertexAttribIuivEXT',
    'glUniform1uiEXT',
    'glUniform1uivEXT',
    'glUniform2uiEXT',
    'glUniform2uivEXT',
    'glUniform3uiEXT',
    'glUniform3uivEXT',
    'glUniform4uiEXT',
    'glUniform4uivEXT',
    'glVertexAttribI1iEXT',
    'glVertexAttribI1ivEXT',
    'glVertexAttribI1uiEXT',
    'glVertexAttribI1uivEXT',
    'glVertexAttribI2iEXT',
    'glVertexAttribI2ivEXT',
    'glVertexAttribI2uiEXT',
    'glVertexAttribI2uivEXT',
    'glVertexAttribI3iEXT',
    'glVertexAttribI3ivEXT',
    'glVertexAttribI3uiEXT',
    'glVertexAttribI3uivEXT',
    'glVertexAttribI4bvEXT',
    'glVertexAttribI4iEXT',
    'glVertexAttribI4ivEXT',
    'glVertexAttribI4svEXT',
    'glVertexAttribI4ubvEXT',
    'glVertexAttribI4uiEXT',
    'glVertexAttribI4uivEXT',
    'glVertexAttribI4usvEXT',
    'glVertexAttribIPointerEXT'
  ],
  'GL_EXT_histogram' => [
    'glGetHistogramEXT',
    'glGetHistogramParameterfvEXT',
    'glGetHistogramParameterivEXT',
    'glGetMinmaxEXT',
    'glGetMinmaxParameterfvEXT',
    'glGetMinmaxParameterivEXT',
    'glHistogramEXT',
    'glMinmaxEXT',
    'glResetHistogramEXT',
    'glResetMinmaxEXT'
  ],
  'GL_EXT_index_func' => [
    'glIndexFuncEXT'
  ],
  'GL_EXT_index_material' => [
    'glIndexMaterialEXT'
  ],
  'GL_EXT_instanced_arrays' => [
    'glVertexAttribDivisorEXT'
  ],
  'GL_EXT_light_texture' => [
    'glApplyTextureEXT',
    'glTextureLightEXT',
    'glTextureMaterialEXT'
  ],
  'GL_EXT_map_buffer_range' => [
    'glFlushMappedBufferRangeEXT',
    'glMapBufferRangeEXT'
  ],
  'GL_EXT_memory_object' => [
    'glBufferStorageMemEXT',
    'glCreateMemoryObjectsEXT',
    'glDeleteMemoryObjectsEXT',
    'glGetMemoryObjectParameterivEXT',
    'glGetUnsignedBytei_vEXT',
    'glGetUnsignedBytevEXT',
    'glIsMemoryObjectEXT',
    'glMemoryObjectParameterivEXT',
    'glNamedBufferStorageMemEXT',
    'glTexStorageMem1DEXT',
    'glTexStorageMem2DEXT',
    'glTexStorageMem2DMultisampleEXT',
    'glTexStorageMem3DEXT',
    'glTexStorageMem3DMultisampleEXT',
    'glTextureStorageMem1DEXT',
    'glTextureStorageMem2DEXT',
    'glTextureStorageMem2DMultisampleEXT',
    'glTextureStorageMem3DEXT',
    'glTextureStorageMem3DMultisampleEXT'
  ],
  'GL_EXT_memory_object_fd' => [
    'glImportMemoryFdEXT'
  ],
  'GL_EXT_memory_object_win32' => [
    'glImportMemoryWin32HandleEXT',
    'glImportMemoryWin32NameEXT'
  ],
  'GL_EXT_mesh_shader' => [
    'glDrawMeshTasksEXT',
    'glDrawMeshTasksIndirectEXT',
    'glMultiDrawMeshTasksIndirectCountEXT',
    'glMultiDrawMeshTasksIndirectEXT'
  ],
  'GL_EXT_multi_draw_arrays' => [
    'glMultiDrawArraysEXT',
    'glMultiDrawElementsEXT'
  ],
  'GL_EXT_multi_draw_indirect' => [
    'glMultiDrawArraysIndirectEXT',
    'glMultiDrawElementsIndirectEXT'
  ],
  'GL_EXT_multisample' => [
    'glSampleMaskEXT',
    'glSamplePatternEXT'
  ],
  'GL_EXT_multisampled_render_to_texture' => [
    'glFramebufferTexture2DMultisampleEXT'
  ],
  'GL_EXT_multiview_draw_buffers' => [
    'glDrawBuffersIndexedEXT',
    'glGetIntegeri_vEXT',
    'glReadBufferIndexedEXT'
  ],
  'GL_EXT_paletted_texture' => [
    'glColorTableEXT',
    'glGetColorTableEXT',
    'glGetColorTableParameterfvEXT',
    'glGetColorTableParameterivEXT'
  ],
  'GL_EXT_pixel_transform' => [
    'glGetPixelTransformParameterfvEXT',
    'glGetPixelTransformParameterivEXT',
    'glPixelTransformParameterfEXT',
    'glPixelTransformParameterfvEXT',
    'glPixelTransformParameteriEXT',
    'glPixelTransformParameterivEXT'
  ],
  'GL_EXT_point_parameters' => [
    'glPointParameterfEXT',
    'glPointParameterfvEXT'
  ],
  'GL_EXT_polygon_offset' => [
    'glPolygonOffsetEXT'
  ],
  'GL_EXT_polygon_offset_clamp' => [
    'glPolygonOffsetClampEXT'
  ],
  'GL_EXT_primitive_bounding_box' => [
    'glPrimitiveBoundingBoxEXT'
  ],
  'GL_EXT_provoking_vertex' => [
    'glProvokingVertexEXT'
  ],
  'GL_EXT_raster_multisample' => [
    'glCoverageModulationNV',
    'glCoverageModulationTableNV',
    'glGetCoverageModulationTableNV',
    'glRasterSamplesEXT'
  ],
  'GL_EXT_robustness' => [
    'glGetGraphicsResetStatusEXT',
    'glGetnUniformfvEXT',
    'glGetnUniformivEXT',
    'glReadnPixelsEXT'
  ],
  'GL_EXT_scene_marker' => [
    'glBeginSceneEXT',
    'glEndSceneEXT'
  ],
  'GL_EXT_secondary_color' => [
    'glSecondaryColor3bEXT',
    'glSecondaryColor3bvEXT',
    'glSecondaryColor3dEXT',
    'glSecondaryColor3dvEXT',
    'glSecondaryColor3fEXT',
    'glSecondaryColor3fvEXT',
    'glSecondaryColor3iEXT',
    'glSecondaryColor3ivEXT',
    'glSecondaryColor3sEXT',
    'glSecondaryColor3svEXT',
    'glSecondaryColor3ubEXT',
    'glSecondaryColor3ubvEXT',
    'glSecondaryColor3uiEXT',
    'glSecondaryColor3uivEXT',
    'glSecondaryColor3usEXT',
    'glSecondaryColor3usvEXT',
    'glSecondaryColorPointerEXT'
  ],
  'GL_EXT_semaphore' => [
    'glDeleteSemaphoresEXT',
    'glGenSemaphoresEXT',
    'glGetSemaphoreParameterui64vEXT',
    'glIsSemaphoreEXT',
    'glSemaphoreParameterui64vEXT',
    'glSignalSemaphoreEXT',
    'glWaitSemaphoreEXT'
  ],
  'GL_EXT_semaphore_fd' => [
    'glImportSemaphoreFdEXT'
  ],
  'GL_EXT_semaphore_win32' => [
    'glImportSemaphoreWin32HandleEXT',
    'glImportSemaphoreWin32NameEXT'
  ],
  'GL_EXT_separate_shader_objects' => [
    'glActiveProgramEXT',
    'glCreateShaderProgramEXT',
    'glUseShaderProgramEXT'
  ],
  'GL_EXT_shader_framebuffer_fetch' => [
    'glFramebufferFetchBarrierEXT'
  ],
  'GL_EXT_shader_image_load_store' => [
    'glBindImageTextureEXT',
    'glMemoryBarrierEXT'
  ],
  'GL_EXT_shader_pixel_local_storage2' => [
    'glClearPixelLocalStorageuiEXT',
    'glFramebufferPixelLocalStorageSizeEXT',
    'glGetFramebufferPixelLocalStorageSizeEXT'
  ],
  'GL_EXT_sparse_texture' => [
    'glTexPageCommitmentEXT'
  ],
  'GL_EXT_stencil_two_side' => [
    'glActiveStencilFaceEXT'
  ],
  'GL_EXT_subtexture' => [
    'glTexSubImage1DEXT',
    'glTexSubImage2DEXT',
    'glTexSubImage3DEXT'
  ],
  'GL_EXT_tessellation_point_size' => [
    'glPatchParameteriEXT'
  ],
  'GL_EXT_texture3D' => [
    'glTexImage3DEXT'
  ],
  'GL_EXT_texture_array' => [
    'glFramebufferTextureLayerEXT'
  ],
  'GL_EXT_texture_border_clamp' => [
    'glGetSamplerParameterIivEXT',
    'glGetSamplerParameterIuivEXT',
    'glSamplerParameterIivEXT',
    'glSamplerParameterIuivEXT'
  ],
  'GL_EXT_texture_buffer_object' => [
    'glTexBufferEXT'
  ],
  'GL_EXT_texture_integer' => [
    'glClearColorIiEXT',
    'glClearColorIuiEXT',
    'glGetTexParameterIivEXT',
    'glGetTexParameterIuivEXT',
    'glTexParameterIivEXT',
    'glTexParameterIuivEXT'
  ],
  'GL_EXT_texture_object' => [
    'glAreTexturesResidentEXT',
    'glBindTextureEXT',
    'glDeleteTexturesEXT',
    'glGenTexturesEXT',
    'glIsTextureEXT',
    'glPrioritizeTexturesEXT'
  ],
  'GL_EXT_texture_perturb_normal' => [
    'glTextureNormalEXT'
  ],
  'GL_EXT_texture_storage' => [
    'glTexStorage1DEXT',
    'glTexStorage2DEXT',
    'glTexStorage3DEXT',
    'glTextureStorage1DEXT',
    'glTextureStorage2DEXT',
    'glTextureStorage3DEXT'
  ],
  'GL_EXT_texture_storage_compression' => [
    'glTexStorageAttribs2DEXT',
    'glTexStorageAttribs3DEXT'
  ],
  'GL_EXT_texture_view' => [
    'glTextureViewEXT'
  ],
  'GL_EXT_timer_query' => [
    'glGetQueryObjecti64vEXT',
    'glGetQueryObjectui64vEXT'
  ],
  'GL_EXT_transform_feedback' => [
    'glBeginTransformFeedbackEXT',
    'glBindBufferBaseEXT',
    'glBindBufferOffsetEXT',
    'glBindBufferRangeEXT',
    'glEndTransformFeedbackEXT',
    'glGetTransformFeedbackVaryingEXT',
    'glTransformFeedbackVaryingsEXT'
  ],
  'GL_EXT_vertex_array' => [
    'glArrayElementEXT',
    'glColorPointerEXT',
    'glDrawArraysEXT',
    'glEdgeFlagPointerEXT',
    'glIndexPointerEXT',
    'glNormalPointerEXT',
    'glTexCoordPointerEXT',
    'glVertexPointerEXT'
  ],
  'GL_EXT_vertex_array_setXXX' => [
    'glBindArraySetEXT',
    'glDeleteArraySetsEXT'
  ],
  'GL_EXT_vertex_attrib_64bit' => [
    'glGetVertexAttribLdvEXT',
    'glVertexArrayVertexAttribLOffsetEXT',
    'glVertexAttribL1dEXT',
    'glVertexAttribL1dvEXT',
    'glVertexAttribL2dEXT',
    'glVertexAttribL2dvEXT',
    'glVertexAttribL3dEXT',
    'glVertexAttribL3dvEXT',
    'glVertexAttribL4dEXT',
    'glVertexAttribL4dvEXT',
    'glVertexAttribLPointerEXT'
  ],
  'GL_EXT_vertex_shader' => [
    'glBeginVertexShaderEXT',
    'glBindLightParameterEXT',
    'glBindMaterialParameterEXT',
    'glBindParameterEXT',
    'glBindTexGenParameterEXT',
    'glBindTextureUnitParameterEXT',
    'glBindVertexShaderEXT',
    'glDeleteVertexShaderEXT',
    'glDisableVariantClientStateEXT',
    'glEnableVariantClientStateEXT',
    'glEndVertexShaderEXT',
    'glExtractComponentEXT',
    'glGenSymbolsEXT',
    'glGenVertexShadersEXT',
    'glGetInvariantBooleanvEXT',
    'glGetInvariantFloatvEXT',
    'glGetInvariantIntegervEXT',
    'glGetLocalConstantBooleanvEXT',
    'glGetLocalConstantFloatvEXT',
    'glGetLocalConstantIntegervEXT',
    'glGetVariantBooleanvEXT',
    'glGetVariantFloatvEXT',
    'glGetVariantIntegervEXT',
    'glGetVariantPointervEXT',
    'glInsertComponentEXT',
    'glIsVariantEnabledEXT',
    'glSetInvariantEXT',
    'glSetLocalConstantEXT',
    'glShaderOp1EXT',
    'glShaderOp2EXT',
    'glShaderOp3EXT',
    'glSwizzleEXT',
    'glVariantPointerEXT',
    'glVariantbvEXT',
    'glVariantdvEXT',
    'glVariantfvEXT',
    'glVariantivEXT',
    'glVariantsvEXT',
    'glVariantubvEXT',
    'glVariantuivEXT',
    'glVariantusvEXT',
    'glWriteMaskEXT'
  ],
  'GL_EXT_vertex_weighting' => [
    'glVertexWeightPointerEXT',
    'glVertexWeightfEXT',
    'glVertexWeightfvEXT'
  ],
  'GL_EXT_win32_keyed_mutex' => [
    'glAcquireKeyedMutexWin32EXT',
    'glReleaseKeyedMutexWin32EXT'
  ],
  'GL_EXT_window_rectangles' => [
    'glWindowRectanglesEXT'
  ],
  'GL_EXT_x11_sync_object' => [
    'glImportSyncEXT'
  ],
  'GL_GREMEDY_frame_terminator' => [
    'glFrameTerminatorGREMEDY'
  ],
  'GL_GREMEDY_string_marker' => [
    'glStringMarkerGREMEDY'
  ],
  'GL_HP_image_transform' => [
    'glGetImageTransformParameterfvHP',
    'glGetImageTransformParameterivHP',
    'glImageTransformParameterfHP',
    'glImageTransformParameterfvHP',
    'glImageTransformParameteriHP',
    'glImageTransformParameterivHP'
  ],
  'GL_IBM_multimode_draw_arrays' => [
    'glMultiModeDrawArraysIBM',
    'glMultiModeDrawElementsIBM'
  ],
  'GL_IBM_vertex_array_lists' => [
    'glColorPointerListIBM',
    'glEdgeFlagPointerListIBM',
    'glFogCoordPointerListIBM',
    'glIndexPointerListIBM',
    'glNormalPointerListIBM',
    'glSecondaryColorPointerListIBM',
    'glTexCoordPointerListIBM',
    'glVertexPointerListIBM'
  ],
  'GL_IMG_bindless_texture' => [
    'glGetTextureHandleIMG',
    'glGetTextureSamplerHandleIMG',
    'glProgramUniformHandleui64IMG',
    'glProgramUniformHandleui64vIMG',
    'glUniformHandleui64IMG',
    'glUniformHandleui64vIMG'
  ],
  'GL_IMG_framebuffer_downsample' => [
    'glFramebufferTexture2DDownsampleIMG',
    'glFramebufferTextureLayerDownsampleIMG'
  ],
  'GL_IMG_multisampled_render_to_texture' => [
    'glFramebufferTexture2DMultisampleIMG',
    'glRenderbufferStorageMultisampleIMG'
  ],
  'GL_INTEL_framebuffer_CMAA' => [
    'glApplyFramebufferAttachmentCMAAINTEL'
  ],
  'GL_INTEL_parallel_arrays' => [
    'glColorPointervINTEL',
    'glNormalPointervINTEL',
    'glTexCoordPointervINTEL',
    'glVertexPointervINTEL'
  ],
  'GL_INTEL_performance_query' => [
    'glBeginPerfQueryINTEL',
    'glCreatePerfQueryINTEL',
    'glDeletePerfQueryINTEL',
    'glEndPerfQueryINTEL',
    'glGetFirstPerfQueryIdINTEL',
    'glGetNextPerfQueryIdINTEL',
    'glGetPerfCounterInfoINTEL',
    'glGetPerfQueryDataINTEL',
    'glGetPerfQueryIdByNameINTEL',
    'glGetPerfQueryInfoINTEL'
  ],
  'GL_INTEL_texture_scissor' => [
    'glTexScissorFuncINTEL',
    'glTexScissorINTEL'
  ],
  'GL_KHR_blend_equation_advanced' => [
    'glBlendBarrierKHR'
  ],
  'GL_KHR_debug' => [
    'glDebugMessageCallback',
    'glDebugMessageControl',
    'glDebugMessageInsert',
    'glGetDebugMessageLog',
    'glGetObjectLabel',
    'glGetObjectPtrLabel',
    'glObjectLabel',
    'glObjectPtrLabel',
    'glPopDebugGroup',
    'glPushDebugGroup'
  ],
  'GL_KHR_parallel_shader_compile' => [
    'glMaxShaderCompilerThreadsKHR'
  ],
  'GL_KHR_robustness' => [
    'glGetnUniformfv',
    'glGetnUniformiv',
    'glGetnUniformuiv',
    'glReadnPixels'
  ],
  'GL_KTX_buffer_region' => [
    'glBufferRegionEnabled',
    'glDeleteBufferRegion',
    'glDrawBufferRegion',
    'glNewBufferRegion',
    'glReadBufferRegion'
  ],
  'GL_LAYOUT_LINEAR_INTEL' => [
    'glMapTexture2DINTEL',
    'glSyncTextureINTEL',
    'glUnmapTexture2DINTEL'
  ],
  'GL_MESA_framebuffer_flip_y' => [
    'glFramebufferParameteriMESA',
    'glGetFramebufferParameterivMESA'
  ],
  'GL_MESA_resize_buffers' => [
    'glResizeBuffersMESA'
  ],
  'GL_MESA_window_pos' => [
    'glWindowPos2dMESA',
    'glWindowPos2dvMESA',
    'glWindowPos2fMESA',
    'glWindowPos2fvMESA',
    'glWindowPos2iMESA',
    'glWindowPos2ivMESA',
    'glWindowPos2sMESA',
    'glWindowPos2svMESA',
    'glWindowPos3dMESA',
    'glWindowPos3dvMESA',
    'glWindowPos3fMESA',
    'glWindowPos3fvMESA',
    'glWindowPos3iMESA',
    'glWindowPos3ivMESA',
    'glWindowPos3sMESA',
    'glWindowPos3svMESA',
    'glWindowPos4dMESA',
    'glWindowPos4dvMESA',
    'glWindowPos4fMESA',
    'glWindowPos4fvMESA',
    'glWindowPos4iMESA',
    'glWindowPos4ivMESA',
    'glWindowPos4sMESA',
    'glWindowPos4svMESA'
  ],
  'GL_NVX_conditional_render' => [
    'glBeginConditionalRenderNVX',
    'glEndConditionalRenderNVX'
  ],
  'GL_NVX_gpu_multicast2' => [
    'glAsyncCopyBufferSubDataNVX',
    'glAsyncCopyImageSubDataNVX',
    'glMulticastScissorArrayvNVX',
    'glMulticastViewportArrayvNVX',
    'glMulticastViewportPositionWScaleNVX',
    'glUploadGpuMaskNVX'
  ],
  'GL_NVX_linked_gpu_multicast' => [
    'glLGPUCopyImageSubDataNVX',
    'glLGPUInterlockNVX',
    'glLGPUNamedBufferSubDataNVX'
  ],
  'GL_NVX_progress_fence' => [
    'glClientWaitSemaphoreui64NVX',
    'glCreateProgressFenceNVX',
    'glSignalSemaphoreui64NVX',
    'glWaitSemaphoreui64NVX'
  ],
  'GL_NV_3dvision_settings' => [
    'glStereoParameterfNV',
    'glStereoParameteriNV'
  ],
  'GL_NV_alpha_to_coverage_dither_control' => [
    'glAlphaToCoverageDitherControlNV'
  ],
  'GL_NV_bindless_multi_draw_indirect' => [
    'glMultiDrawArraysIndirectBindlessNV',
    'glMultiDrawElementsIndirectBindlessNV'
  ],
  'GL_NV_bindless_multi_draw_indirect_count' => [
    'glMultiDrawArraysIndirectBindlessCountNV',
    'glMultiDrawElementsIndirectBindlessCountNV'
  ],
  'GL_NV_bindless_texture' => [
    'glGetImageHandleNV',
    'glGetTextureHandleNV',
    'glGetTextureSamplerHandleNV',
    'glIsImageHandleResidentNV',
    'glIsTextureHandleResidentNV',
    'glMakeImageHandleNonResidentNV',
    'glMakeImageHandleResidentNV',
    'glMakeTextureHandleNonResidentNV',
    'glMakeTextureHandleResidentNV',
    'glProgramUniformHandleui64NV',
    'glProgramUniformHandleui64vNV',
    'glUniformHandleui64NV',
    'glUniformHandleui64vNV'
  ],
  'GL_NV_blend_equation_advanced' => [
    'glBlendBarrierNV',
    'glBlendParameteriNV'
  ],
  'GL_NV_clip_space_w_scaling' => [
    'glViewportPositionWScaleNV'
  ],
  'GL_NV_command_list' => [
    'glCallCommandListNV',
    'glCommandListSegmentsNV',
    'glCompileCommandListNV',
    'glCreateCommandListsNV',
    'glCreateStatesNV',
    'glDeleteCommandListsNV',
    'glDeleteStatesNV',
    'glDrawCommandsAddressNV',
    'glDrawCommandsNV',
    'glDrawCommandsStatesAddressNV',
    'glDrawCommandsStatesNV',
    'glGetCommandHeaderNV',
    'glGetStageIndexNV',
    'glIsCommandListNV',
    'glIsStateNV',
    'glListDrawCommandsStatesClientNV',
    'glStateCaptureNV'
  ],
  'GL_NV_conditional_render' => [
    'glBeginConditionalRenderNV',
    'glEndConditionalRenderNV'
  ],
  'GL_NV_conservative_raster' => [
    'glSubpixelPrecisionBiasNV'
  ],
  'GL_NV_conservative_raster_dilate' => [
    'glConservativeRasterParameterfNV'
  ],
  'GL_NV_conservative_raster_pre_snap_triangles' => [
    'glConservativeRasterParameteriNV'
  ],
  'GL_NV_copy_buffer' => [
    'glCopyBufferSubDataNV'
  ],
  'GL_NV_copy_image' => [
    'glCopyImageSubDataNV'
  ],
  'GL_NV_depth_buffer_float' => [
    'glClearDepthdNV',
    'glDepthBoundsdNV',
    'glDepthRangedNV'
  ],
  'GL_NV_draw_buffers' => [
    'glDrawBuffersNV'
  ],
  'GL_NV_draw_instanced' => [
    'glDrawArraysInstancedNV',
    'glDrawElementsInstancedNV'
  ],
  'GL_NV_draw_texture' => [
    'glDrawTextureNV'
  ],
  'GL_NV_draw_vulkan_image' => [
    'glDrawVkImageNV',
    'glGetVkProcAddrNV',
    'glSignalVkFenceNV',
    'glSignalVkSemaphoreNV',
    'glWaitVkSemaphoreNV'
  ],
  'GL_NV_evaluators' => [
    'glEvalMapsNV',
    'glGetMapAttribParameterfvNV',
    'glGetMapAttribParameterivNV',
    'glGetMapControlPointsNV',
    'glGetMapParameterfvNV',
    'glGetMapParameterivNV',
    'glMapControlPointsNV',
    'glMapParameterfvNV',
    'glMapParameterivNV'
  ],
  'GL_NV_explicit_multisample' => [
    'glGetMultisamplefvNV',
    'glSampleMaskIndexedNV',
    'glTexRenderbufferNV'
  ],
  'GL_NV_fence' => [
    'glDeleteFencesNV',
    'glFinishFenceNV',
    'glGenFencesNV',
    'glGetFenceivNV',
    'glIsFenceNV',
    'glSetFenceNV',
    'glTestFenceNV'
  ],
  'GL_NV_fragment_coverage_to_color' => [
    'glFragmentCoverageColorNV'
  ],
  'GL_NV_fragment_program' => [
    'glGetProgramNamedParameterdvNV',
    'glGetProgramNamedParameterfvNV',
    'glProgramNamedParameter4dNV',
    'glProgramNamedParameter4dvNV',
    'glProgramNamedParameter4fNV',
    'glProgramNamedParameter4fvNV'
  ],
  'GL_NV_framebuffer_blit' => [
    'glBlitFramebufferNV'
  ],
  'GL_NV_framebuffer_multisample' => [
    'glRenderbufferStorageMultisampleNV'
  ],
  'GL_NV_framebuffer_multisample_coverage' => [
    'glRenderbufferStorageMultisampleCoverageNV'
  ],
  'GL_NV_geometry_program4' => [
    'glProgramVertexLimitNV'
  ],
  'GL_NV_gpu_multicast' => [
    'glMulticastBarrierNV',
    'glMulticastBlitFramebufferNV',
    'glMulticastBufferSubDataNV',
    'glMulticastCopyBufferSubDataNV',
    'glMulticastCopyImageSubDataNV',
    'glMulticastFramebufferSampleLocationsfvNV',
    'glMulticastGetQueryObjecti64vNV',
    'glMulticastGetQueryObjectivNV',
    'glMulticastGetQueryObjectui64vNV',
    'glMulticastGetQueryObjectuivNV',
    'glMulticastWaitSyncNV',
    'glRenderGpuMaskNV'
  ],
  'GL_NV_gpu_program4' => [
    'glProgramEnvParameterI4iNV',
    'glProgramEnvParameterI4ivNV',
    'glProgramEnvParameterI4uiNV',
    'glProgramEnvParameterI4uivNV',
    'glProgramEnvParametersI4ivNV',
    'glProgramEnvParametersI4uivNV',
    'glProgramLocalParameterI4iNV',
    'glProgramLocalParameterI4ivNV',
    'glProgramLocalParameterI4uiNV',
    'glProgramLocalParameterI4uivNV',
    'glProgramLocalParametersI4ivNV',
    'glProgramLocalParametersI4uivNV'
  ],
  'GL_NV_gpu_shader5' => [
    'glGetUniformi64vNV',
    'glGetUniformui64vNV',
    'glProgramUniform1i64NV',
    'glProgramUniform1i64vNV',
    'glProgramUniform1ui64NV',
    'glProgramUniform1ui64vNV',
    'glProgramUniform2i64NV',
    'glProgramUniform2i64vNV',
    'glProgramUniform2ui64NV',
    'glProgramUniform2ui64vNV',
    'glProgramUniform3i64NV',
    'glProgramUniform3i64vNV',
    'glProgramUniform3ui64NV',
    'glProgramUniform3ui64vNV',
    'glProgramUniform4i64NV',
    'glProgramUniform4i64vNV',
    'glProgramUniform4ui64NV',
    'glProgramUniform4ui64vNV',
    'glUniform1i64NV',
    'glUniform1i64vNV',
    'glUniform1ui64NV',
    'glUniform1ui64vNV',
    'glUniform2i64NV',
    'glUniform2i64vNV',
    'glUniform2ui64NV',
    'glUniform2ui64vNV',
    'glUniform3i64NV',
    'glUniform3i64vNV',
    'glUniform3ui64NV',
    'glUniform3ui64vNV',
    'glUniform4i64NV',
    'glUniform4i64vNV',
    'glUniform4ui64NV',
    'glUniform4ui64vNV'
  ],
  'GL_NV_half_float' => [
    'glColor3hNV',
    'glColor3hvNV',
    'glColor4hNV',
    'glColor4hvNV',
    'glFogCoordhNV',
    'glFogCoordhvNV',
    'glMultiTexCoord1hNV',
    'glMultiTexCoord1hvNV',
    'glMultiTexCoord2hNV',
    'glMultiTexCoord2hvNV',
    'glMultiTexCoord3hNV',
    'glMultiTexCoord3hvNV',
    'glMultiTexCoord4hNV',
    'glMultiTexCoord4hvNV',
    'glNormal3hNV',
    'glNormal3hvNV',
    'glSecondaryColor3hNV',
    'glSecondaryColor3hvNV',
    'glTexCoord1hNV',
    'glTexCoord1hvNV',
    'glTexCoord2hNV',
    'glTexCoord2hvNV',
    'glTexCoord3hNV',
    'glTexCoord3hvNV',
    'glTexCoord4hNV',
    'glTexCoord4hvNV',
    'glVertex2hNV',
    'glVertex2hvNV',
    'glVertex3hNV',
    'glVertex3hvNV',
    'glVertex4hNV',
    'glVertex4hvNV',
    'glVertexAttrib1hNV',
    'glVertexAttrib1hvNV',
    'glVertexAttrib2hNV',
    'glVertexAttrib2hvNV',
    'glVertexAttrib3hNV',
    'glVertexAttrib3hvNV',
    'glVertexAttrib4hNV',
    'glVertexAttrib4hvNV',
    'glVertexAttribs1hvNV',
    'glVertexAttribs2hvNV',
    'glVertexAttribs3hvNV',
    'glVertexAttribs4hvNV',
    'glVertexWeighthNV',
    'glVertexWeighthvNV'
  ],
  'GL_NV_instanced_arrays' => [
    'glVertexAttribDivisorNV'
  ],
  'GL_NV_internalformat_sample_query' => [
    'glGetInternalformatSampleivNV'
  ],
  'GL_NV_memory_attachment' => [
    'glBufferAttachMemoryNV',
    'glGetMemoryObjectDetachedResourcesuivNV',
    'glNamedBufferAttachMemoryNV',
    'glResetMemoryObjectParameterNV',
    'glTexAttachMemoryNV',
    'glTextureAttachMemoryNV'
  ],
  'GL_NV_memory_object_sparse' => [
    'glBufferPageCommitmentMemNV',
    'glNamedBufferPageCommitmentMemNV',
    'glTexPageCommitmentMemNV',
    'glTexturePageCommitmentMemNV'
  ],
  'GL_NV_mesh_shader' => [
    'glDrawMeshTasksIndirectNV',
    'glDrawMeshTasksNV',
    'glMultiDrawMeshTasksIndirectCountNV',
    'glMultiDrawMeshTasksIndirectNV'
  ],
  'GL_NV_non_square_matrices' => [
    'glUniformMatrix2x3fvNV',
    'glUniformMatrix2x4fvNV',
    'glUniformMatrix3x2fvNV',
    'glUniformMatrix3x4fvNV',
    'glUniformMatrix4x2fvNV',
    'glUniformMatrix4x3fvNV'
  ],
  'GL_NV_occlusion_query' => [
    'glBeginOcclusionQueryNV',
    'glDeleteOcclusionQueriesNV',
    'glEndOcclusionQueryNV',
    'glGenOcclusionQueriesNV',
    'glGetOcclusionQueryivNV',
    'glGetOcclusionQueryuivNV',
    'glIsOcclusionQueryNV'
  ],
  'GL_NV_parameter_buffer_object' => [
    'glProgramBufferParametersIivNV',
    'glProgramBufferParametersIuivNV',
    'glProgramBufferParametersfvNV'
  ],
  'GL_NV_path_rendering' => [
    'glCopyPathNV',
    'glCoverFillPathInstancedNV',
    'glCoverFillPathNV',
    'glCoverStrokePathInstancedNV',
    'glCoverStrokePathNV',
    'glDeletePathsNV',
    'glGenPathsNV',
    'glGetPathColorGenfvNV',
    'glGetPathColorGenivNV',
    'glGetPathCommandsNV',
    'glGetPathCoordsNV',
    'glGetPathDashArrayNV',
    'glGetPathLengthNV',
    'glGetPathMetricRangeNV',
    'glGetPathMetricsNV',
    'glGetPathParameterfvNV',
    'glGetPathParameterivNV',
    'glGetPathSpacingNV',
    'glGetPathTexGenfvNV',
    'glGetPathTexGenivNV',
    'glGetProgramResourcefvNV',
    'glInterpolatePathsNV',
    'glIsPathNV',
    'glIsPointInFillPathNV',
    'glIsPointInStrokePathNV',
    'glMatrixLoad3x2fNV',
    'glMatrixLoad3x3fNV',
    'glMatrixLoadTranspose3x3fNV',
    'glMatrixMult3x2fNV',
    'glMatrixMult3x3fNV',
    'glMatrixMultTranspose3x3fNV',
    'glPathColorGenNV',
    'glPathCommandsNV',
    'glPathCoordsNV',
    'glPathCoverDepthFuncNV',
    'glPathDashArrayNV',
    'glPathFogGenNV',
    'glPathGlyphIndexArrayNV',
    'glPathGlyphIndexRangeNV',
    'glPathGlyphRangeNV',
    'glPathGlyphsNV',
    'glPathMemoryGlyphIndexArrayNV',
    'glPathParameterfNV',
    'glPathParameterfvNV',
    'glPathParameteriNV',
    'glPathParameterivNV',
    'glPathStencilDepthOffsetNV',
    'glPathStencilFuncNV',
    'glPathStringNV',
    'glPathSubCommandsNV',
    'glPathSubCoordsNV',
    'glPathTexGenNV',
    'glPointAlongPathNV',
    'glProgramPathFragmentInputGenNV',
    'glStencilFillPathInstancedNV',
    'glStencilFillPathNV',
    'glStencilStrokePathInstancedNV',
    'glStencilStrokePathNV',
    'glStencilThenCoverFillPathInstancedNV',
    'glStencilThenCoverFillPathNV',
    'glStencilThenCoverStrokePathInstancedNV',
    'glStencilThenCoverStrokePathNV',
    'glTransformPathNV',
    'glWeightPathsNV'
  ],
  'GL_NV_pixel_data_range' => [
    'glFlushPixelDataRangeNV',
    'glPixelDataRangeNV'
  ],
  'GL_NV_point_sprite' => [
    'glPointParameteriNV',
    'glPointParameterivNV'
  ],
  'GL_NV_polygon_mode' => [
    'glPolygonModeNV'
  ],
  'GL_NV_present_video' => [
    'glGetVideoi64vNV',
    'glGetVideoivNV',
    'glGetVideoui64vNV',
    'glGetVideouivNV',
    'glPresentFrameDualFillNV',
    'glPresentFrameKeyedNV'
  ],
  'GL_NV_primitive_restart' => [
    'glPrimitiveRestartIndexNV',
    'glPrimitiveRestartNV'
  ],
  'GL_NV_read_buffer' => [
    'glReadBufferNV'
  ],
  'GL_NV_register_combiners' => [
    'glCombinerInputNV',
    'glCombinerOutputNV',
    'glCombinerParameterfNV',
    'glCombinerParameterfvNV',
    'glCombinerParameteriNV',
    'glCombinerParameterivNV',
    'glFinalCombinerInputNV',
    'glGetCombinerInputParameterfvNV',
    'glGetCombinerInputParameterivNV',
    'glGetCombinerOutputParameterfvNV',
    'glGetCombinerOutputParameterivNV',
    'glGetFinalCombinerInputParameterfvNV',
    'glGetFinalCombinerInputParameterivNV'
  ],
  'GL_NV_register_combiners2' => [
    'glCombinerStageParameterfvNV',
    'glGetCombinerStageParameterfvNV'
  ],
  'GL_NV_sample_locations' => [
    'glFramebufferSampleLocationsfvNV',
    'glNamedFramebufferSampleLocationsfvNV',
    'glResolveDepthValuesNV'
  ],
  'GL_NV_scissor_exclusive' => [
    'glScissorExclusiveArrayvNV',
    'glScissorExclusiveNV'
  ],
  'GL_NV_shader_buffer_load' => [
    'glGetBufferParameterui64vNV',
    'glGetIntegerui64vNV',
    'glGetNamedBufferParameterui64vNV',
    'glIsBufferResidentNV',
    'glIsNamedBufferResidentNV',
    'glMakeBufferNonResidentNV',
    'glMakeBufferResidentNV',
    'glMakeNamedBufferNonResidentNV',
    'glMakeNamedBufferResidentNV',
    'glProgramUniformui64NV',
    'glProgramUniformui64vNV',
    'glUniformui64NV',
    'glUniformui64vNV'
  ],
  'GL_NV_shading_rate_image' => [
    'glBindShadingRateImageNV',
    'glGetShadingRateImagePaletteNV',
    'glGetShadingRateSampleLocationivNV',
    'glShadingRateImageBarrierNV',
    'glShadingRateImagePaletteNV',
    'glShadingRateSampleOrderCustomNV',
    'glShadingRateSampleOrderNV'
  ],
  'GL_NV_texture_array' => [
    'glCompressedTexImage3DNV',
    'glCompressedTexSubImage3DNV',
    'glCopyTexSubImage3DNV',
    'glFramebufferTextureLayerNV',
    'glTexImage3DNV',
    'glTexSubImage3DNV'
  ],
  'GL_NV_texture_barrier' => [
    'glTextureBarrierNV'
  ],
  'GL_NV_texture_multisample' => [
    'glTexImage2DMultisampleCoverageNV',
    'glTexImage3DMultisampleCoverageNV',
    'glTextureImage2DMultisampleCoverageNV',
    'glTextureImage2DMultisampleNV',
    'glTextureImage3DMultisampleCoverageNV',
    'glTextureImage3DMultisampleNV'
  ],
  'GL_NV_timeline_semaphore' => [
    'glCreateSemaphoresNV',
    'glGetSemaphoreParameterivNV',
    'glSemaphoreParameterivNV'
  ],
  'GL_NV_transform_feedback' => [
    'glActiveVaryingNV',
    'glBeginTransformFeedbackNV',
    'glBindBufferBaseNV',
    'glBindBufferOffsetNV',
    'glBindBufferRangeNV',
    'glEndTransformFeedbackNV',
    'glGetActiveVaryingNV',
    'glGetTransformFeedbackVaryingNV',
    'glGetVaryingLocationNV',
    'glTransformFeedbackAttribsNV',
    'glTransformFeedbackVaryingsNV'
  ],
  'GL_NV_transform_feedback2' => [
    'glBindTransformFeedbackNV',
    'glDeleteTransformFeedbacksNV',
    'glDrawTransformFeedbackNV',
    'glGenTransformFeedbacksNV',
    'glIsTransformFeedbackNV',
    'glPauseTransformFeedbackNV',
    'glResumeTransformFeedbackNV'
  ],
  'GL_NV_vdpau_interop' => [
    'glVDPAUFiniNV',
    'glVDPAUGetSurfaceivNV',
    'glVDPAUInitNV',
    'glVDPAUIsSurfaceNV',
    'glVDPAUMapSurfacesNV',
    'glVDPAURegisterOutputSurfaceNV',
    'glVDPAURegisterVideoSurfaceNV',
    'glVDPAUSurfaceAccessNV',
    'glVDPAUUnmapSurfacesNV',
    'glVDPAUUnregisterSurfaceNV'
  ],
  'GL_NV_vdpau_interop2' => [
    'glVDPAURegisterVideoSurfaceWithPictureStructureNV'
  ],
  'GL_NV_vertex_array_range' => [
    'glFlushVertexArrayRangeNV',
    'glVertexArrayRangeNV'
  ],
  'GL_NV_vertex_attrib_integer_64bit' => [
    'glGetVertexAttribLi64vNV',
    'glGetVertexAttribLui64vNV',
    'glVertexAttribL1i64NV',
    'glVertexAttribL1i64vNV',
    'glVertexAttribL1ui64NV',
    'glVertexAttribL1ui64vNV',
    'glVertexAttribL2i64NV',
    'glVertexAttribL2i64vNV',
    'glVertexAttribL2ui64NV',
    'glVertexAttribL2ui64vNV',
    'glVertexAttribL3i64NV',
    'glVertexAttribL3i64vNV',
    'glVertexAttribL3ui64NV',
    'glVertexAttribL3ui64vNV',
    'glVertexAttribL4i64NV',
    'glVertexAttribL4i64vNV',
    'glVertexAttribL4ui64NV',
    'glVertexAttribL4ui64vNV',
    'glVertexAttribLFormatNV'
  ],
  'GL_NV_vertex_buffer_unified_memory' => [
    'glBufferAddressRangeNV',
    'glColorFormatNV',
    'glEdgeFlagFormatNV',
    'glFogCoordFormatNV',
    'glGetIntegerui64i_vNV',
    'glIndexFormatNV',
    'glNormalFormatNV',
    'glSecondaryColorFormatNV',
    'glTexCoordFormatNV',
    'glVertexAttribFormatNV',
    'glVertexAttribIFormatNV',
    'glVertexFormatNV'
  ],
  'GL_NV_vertex_program' => [
    'glAreProgramsResidentNV',
    'glBindProgramNV',
    'glDeleteProgramsNV',
    'glExecuteProgramNV',
    'glGenProgramsNV',
    'glGetProgramParameterdvNV',
    'glGetProgramParameterfvNV',
    'glGetProgramStringNV',
    'glGetProgramivNV',
    'glGetTrackMatrixivNV',
    'glGetVertexAttribPointervNV',
    'glGetVertexAttribdvNV',
    'glGetVertexAttribfvNV',
    'glGetVertexAttribivNV',
    'glIsProgramNV',
    'glLoadProgramNV',
    'glProgramParameter4dNV',
    'glProgramParameter4dvNV',
    'glProgramParameter4fNV',
    'glProgramParameter4fvNV',
    'glProgramParameters4dvNV',
    'glProgramParameters4fvNV',
    'glRequestResidentProgramsNV',
    'glTrackMatrixNV',
    'glVertexAttrib1dNV',
    'glVertexAttrib1dvNV',
    'glVertexAttrib1fNV',
    'glVertexAttrib1fvNV',
    'glVertexAttrib1sNV',
    'glVertexAttrib1svNV',
    'glVertexAttrib2dNV',
    'glVertexAttrib2dvNV',
    'glVertexAttrib2fNV',
    'glVertexAttrib2fvNV',
    'glVertexAttrib2sNV',
    'glVertexAttrib2svNV',
    'glVertexAttrib3dNV',
    'glVertexAttrib3dvNV',
    'glVertexAttrib3fNV',
    'glVertexAttrib3fvNV',
    'glVertexAttrib3sNV',
    'glVertexAttrib3svNV',
    'glVertexAttrib4dNV',
    'glVertexAttrib4dvNV',
    'glVertexAttrib4fNV',
    'glVertexAttrib4fvNV',
    'glVertexAttrib4sNV',
    'glVertexAttrib4svNV',
    'glVertexAttrib4ubNV',
    'glVertexAttrib4ubvNV',
    'glVertexAttribPointerNV',
    'glVertexAttribs1dvNV',
    'glVertexAttribs1fvNV',
    'glVertexAttribs1svNV',
    'glVertexAttribs2dvNV',
    'glVertexAttribs2fvNV',
    'glVertexAttribs2svNV',
    'glVertexAttribs3dvNV',
    'glVertexAttribs3fvNV',
    'glVertexAttribs3svNV',
    'glVertexAttribs4dvNV',
    'glVertexAttribs4fvNV',
    'glVertexAttribs4svNV',
    'glVertexAttribs4ubvNV'
  ],
  'GL_NV_video_capture' => [
    'glBeginVideoCaptureNV',
    'glBindVideoCaptureStreamBufferNV',
    'glBindVideoCaptureStreamTextureNV',
    'glEndVideoCaptureNV',
    'glGetVideoCaptureStreamdvNV',
    'glGetVideoCaptureStreamfvNV',
    'glGetVideoCaptureStreamivNV',
    'glGetVideoCaptureivNV',
    'glVideoCaptureNV',
    'glVideoCaptureStreamParameterdvNV',
    'glVideoCaptureStreamParameterfvNV',
    'glVideoCaptureStreamParameterivNV'
  ],
  'GL_NV_viewport_array' => [
    'glDepthRangeArrayfvNV',
    'glDepthRangeIndexedfNV',
    'glDisableiNV',
    'glEnableiNV',
    'glGetFloati_vNV',
    'glIsEnablediNV',
    'glScissorArrayvNV',
    'glScissorIndexedNV',
    'glScissorIndexedvNV',
    'glViewportArrayvNV',
    'glViewportIndexedfNV',
    'glViewportIndexedfvNV'
  ],
  'GL_NV_viewport_swizzle' => [
    'glViewportSwizzleNV'
  ],
  'GL_OES_EGL_image' => [
    'glEGLImageTargetRenderbufferStorageOES',
    'glEGLImageTargetTexture2DOES'
  ],
  'GL_OES_blend_equation_separate' => [
    'glBlendEquationSeparateOES'
  ],
  'GL_OES_blend_func_separate' => [
    'glBlendFuncSeparateOES'
  ],
  'GL_OES_blend_subtract' => [
    'glBlendEquationOES'
  ],
  'GL_OES_copy_image' => [
    'glCopyImageSubDataOES'
  ],
  'GL_OES_draw_buffers_indexed' => [
    'glBlendEquationSeparateiOES',
    'glBlendEquationiOES',
    'glBlendFuncSeparateiOES',
    'glBlendFunciOES',
    'glColorMaskiOES',
    'glDisableiOES',
    'glEnableiOES',
    'glIsEnablediOES'
  ],
  'GL_OES_framebuffer_object' => [
    'glBindFramebufferOES',
    'glBindRenderbufferOES',
    'glCheckFramebufferStatusOES',
    'glDeleteFramebuffersOES',
    'glDeleteRenderbuffersOES',
    'glFramebufferRenderbufferOES',
    'glFramebufferTexture2DOES',
    'glGenFramebuffersOES',
    'glGenRenderbuffersOES',
    'glGenerateMipmapOES',
    'glGetFramebufferAttachmentParameterivOES',
    'glGetRenderbufferParameterivOES',
    'glIsFramebufferOES',
    'glIsRenderbufferOES',
    'glRenderbufferStorageOES'
  ],
  'GL_OES_get_program_binary' => [
    'glGetProgramBinaryOES',
    'glProgramBinaryOES'
  ],
  'GL_OES_mapbuffer' => [
    'glGetBufferPointervOES',
    'glMapBufferOES',
    'glUnmapBufferOES'
  ],
  'GL_OES_matrix_palette' => [
    'glCurrentPaletteMatrixOES',
    'glLoadPaletteFromModelViewMatrixOES',
    'glMatrixIndexPointerOES',
    'glWeightPointerOES'
  ],
  'GL_OES_sample_shading' => [
    'glMinSampleShadingOES'
  ],
  'GL_OES_single_precision' => [
    'glClearDepthfOES',
    'glClipPlanefOES',
    'glDepthRangefOES',
    'glFrustumfOES',
    'glGetClipPlanefOES',
    'glOrthofOES'
  ],
  'GL_OES_texture_3D' => [
    'glCompressedTexImage3DOES',
    'glCompressedTexSubImage3DOES',
    'glCopyTexSubImage3DOES',
    'glFramebufferTexture3DOES',
    'glTexImage3DOES',
    'glTexSubImage3DOES'
  ],
  'GL_OES_texture_border_clamp' => [
    'glGetSamplerParameterIivOES',
    'glGetSamplerParameterIuivOES',
    'glGetTexParameterIivOES',
    'glGetTexParameterIuivOES',
    'glSamplerParameterIivOES',
    'glSamplerParameterIuivOES',
    'glTexParameterIivOES',
    'glTexParameterIuivOES'
  ],
  'GL_OES_texture_buffer' => [
    'glTexBufferOES',
    'glTexBufferRangeOES'
  ],
  'GL_OES_texture_cube_map' => [
    'glGetTexGenfvOES',
    'glGetTexGenivOES',
    'glGetTexGenxvOES',
    'glTexGenfOES',
    'glTexGenfvOES',
    'glTexGeniOES',
    'glTexGenivOES',
    'glTexGenxOES',
    'glTexGenxvOES'
  ],
  'GL_OES_texture_storage_multisample_2d_array' => [
    'glTexStorage3DMultisampleOES'
  ],
  'GL_OES_texture_view' => [
    'glTextureViewOES'
  ],
  'GL_OES_vertex_array_object' => [
    'glBindVertexArrayOES',
    'glDeleteVertexArraysOES',
    'glGenVertexArraysOES',
    'glIsVertexArrayOES'
  ],
  'GL_OVR_multiview' => [
    'glFramebufferTextureMultiviewOVR',
    'glNamedFramebufferTextureMultiviewOVR'
  ],
  'GL_OVR_multiview_multisampled_render_to_texture' => [
    'glFramebufferTextureMultisampleMultiviewOVR'
  ],
  'GL_QCOM_alpha_test' => [
    'glAlphaFuncQCOM'
  ],
  'GL_QCOM_driver_control' => [
    'glDisableDriverControlQCOM',
    'glEnableDriverControlQCOM',
    'glGetDriverControlStringQCOM',
    'glGetDriverControlsQCOM'
  ],
  'GL_QCOM_extended_get' => [
    'glExtGetBufferPointervQCOM',
    'glExtGetBuffersQCOM',
    'glExtGetFramebuffersQCOM',
    'glExtGetRenderbuffersQCOM',
    'glExtGetTexLevelParameterivQCOM',
    'glExtGetTexSubImageQCOM',
    'glExtGetTexturesQCOM',
    'glExtTexObjectStateOverrideiQCOM'
  ],
  'GL_QCOM_extended_get2' => [
    'glExtGetProgramBinarySourceQCOM',
    'glExtGetProgramsQCOM',
    'glExtGetShadersQCOM',
    'glExtIsProgramBinaryQCOM'
  ],
  'GL_QCOM_frame_extrapolation' => [
    'glExtrapolateTex2DQCOM'
  ],
  'GL_QCOM_framebuffer_foveated' => [
    'glFramebufferFoveationConfigQCOM',
    'glFramebufferFoveationParametersQCOM'
  ],
  'GL_QCOM_motion_estimation' => [
    'glTexEstimateMotionQCOM',
    'glTexEstimateMotionRegionsQCOM'
  ],
  'GL_QCOM_shader_framebuffer_fetch_noncoherent' => [
    'glFramebufferFetchBarrierQCOM'
  ],
  'GL_QCOM_shading_rate' => [
    'glShadingRateQCOM'
  ],
  'GL_QCOM_texture_foveated' => [
    'glTextureFoveationParametersQCOM'
  ],
  'GL_QCOM_tiled_rendering' => [
    'glEndTilingQCOM',
    'glStartTilingQCOM'
  ],
  'GL_REGAL_ES1_0_compatibility' => [
    'glAlphaFuncx',
    'glClearColorx',
    'glClearDepthx',
    'glColor4x',
    'glDepthRangex',
    'glFogx',
    'glFogxv',
    'glFrustumf',
    'glFrustumx',
    'glLightModelx',
    'glLightModelxv',
    'glLightx',
    'glLightxv',
    'glLineWidthx',
    'glLoadMatrixx',
    'glMaterialx',
    'glMaterialxv',
    'glMultMatrixx',
    'glMultiTexCoord4x',
    'glNormal3x',
    'glOrthof',
    'glOrthox',
    'glPointSizex',
    'glPolygonOffsetx',
    'glRotatex',
    'glSampleCoveragex',
    'glScalex',
    'glTexEnvx',
    'glTexEnvxv',
    'glTexParameterx',
    'glTranslatex'
  ],
  'GL_REGAL_ES1_1_compatibility' => [
    'glClipPlanef',
    'glClipPlanex',
    'glGetClipPlanef',
    'glGetClipPlanex',
    'glGetFixedv',
    'glGetLightxv',
    'glGetMaterialxv',
    'glGetTexEnvxv',
    'glGetTexParameterxv',
    'glPointParameterx',
    'glPointParameterxv',
    'glPointSizePointerOES',
    'glTexParameterxv'
  ],
  'GL_REGAL_extension_query' => [
    'glGetExtensionREGAL',
    'glIsSupportedREGAL'
  ],
  'GL_REGAL_log' => [
    'glLogMessageCallbackREGAL'
  ],
  'GL_REGAL_proc_address' => [
    'glGetProcAddressREGAL'
  ],
  'GL_SGIS_detail_texture' => [
    'glDetailTexFuncSGIS',
    'glGetDetailTexFuncSGIS'
  ],
  'GL_SGIS_fog_function' => [
    'glFogFuncSGIS',
    'glGetFogFuncSGIS'
  ],
  'GL_SGIS_multisample' => [
    'glSampleMaskSGIS',
    'glSamplePatternSGIS'
  ],
  'GL_SGIS_multitexture' => [
    'glInterleavedTextureCoordSetsSGIS',
    'glSelectTextureCoordSetSGIS',
    'glSelectTextureSGIS',
    'glSelectTextureTransformSGIS'
  ],
  'GL_SGIS_shared_multisample' => [
    'glMultisampleSubRectPosSGIS'
  ],
  'GL_SGIS_sharpen_texture' => [
    'glGetSharpenTexFuncSGIS',
    'glSharpenTexFuncSGIS'
  ],
  'GL_SGIS_texture4D' => [
    'glTexImage4DSGIS',
    'glTexSubImage4DSGIS'
  ],
  'GL_SGIS_texture_filter4' => [
    'glGetTexFilterFuncSGIS',
    'glTexFilterFuncSGIS'
  ],
  'GL_SGIX_async' => [
    'glAsyncMarkerSGIX',
    'glDeleteAsyncMarkersSGIX',
    'glFinishAsyncSGIX',
    'glGenAsyncMarkersSGIX',
    'glIsAsyncMarkerSGIX',
    'glPollAsyncSGIX'
  ],
  'GL_SGIX_datapipe' => [
    'glAddressSpace',
    'glDataPipe'
  ],
  'GL_SGIX_flush_raster' => [
    'glFlushRasterSGIX'
  ],
  'GL_SGIX_fog_layers' => [
    'glFogLayersSGIX',
    'glGetFogLayersSGIX'
  ],
  'GL_SGIX_fog_texture' => [
    'glTextureFogSGIX'
  ],
  'GL_SGIX_fragment_specular_lighting' => [
    'glFragmentColorMaterialSGIX',
    'glFragmentLightModelfSGIX',
    'glFragmentLightModelfvSGIX',
    'glFragmentLightModeliSGIX',
    'glFragmentLightModelivSGIX',
    'glFragmentLightfSGIX',
    'glFragmentLightfvSGIX',
    'glFragmentLightiSGIX',
    'glFragmentLightivSGIX',
    'glFragmentMaterialfSGIX',
    'glFragmentMaterialfvSGIX',
    'glFragmentMaterialiSGIX',
    'glFragmentMaterialivSGIX',
    'glGetFragmentLightfvSGIX',
    'glGetFragmentLightivSGIX',
    'glGetFragmentMaterialfvSGIX',
    'glGetFragmentMaterialivSGIX'
  ],
  'GL_SGIX_framezoom' => [
    'glFrameZoomSGIX'
  ],
  'GL_SGIX_igloo_interface' => [
    'glIglooInterfaceSGIX'
  ],
  'GL_SGIX_mpeg1' => [
    'glAllocMPEGPredictorsSGIX',
    'glDeleteMPEGPredictorsSGIX',
    'glGenMPEGPredictorsSGIX',
    'glGetMPEGParameterfvSGIX',
    'glGetMPEGParameterivSGIX',
    'glGetMPEGPredictorSGIX',
    'glGetMPEGQuantTableubv',
    'glIsMPEGPredictorSGIX',
    'glMPEGPredictorSGIX',
    'glMPEGQuantTableubv',
    'glSwapMPEGPredictorsSGIX'
  ],
  'GL_SGIX_nonlinear_lighting_pervertex' => [
    'glGetNonlinLightfvSGIX',
    'glGetNonlinMaterialfvSGIX',
    'glNonlinLightfvSGIX',
    'glNonlinMaterialfvSGIX'
  ],
  'GL_SGIX_pixel_texture' => [
    'glPixelTexGenSGIX'
  ],
  'GL_SGIX_polynomial_ffd' => [
    'glDeformSGIX',
    'glLoadIdentityDeformationMapSGIX'
  ],
  'GL_SGIX_quad_mesh' => [
    'glMeshBreadthSGIX',
    'glMeshStrideSGIX'
  ],
  'GL_SGIX_reference_plane' => [
    'glReferencePlaneSGIX'
  ],
  'GL_SGIX_sprite' => [
    'glSpriteParameterfSGIX',
    'glSpriteParameterfvSGIX',
    'glSpriteParameteriSGIX',
    'glSpriteParameterivSGIX'
  ],
  'GL_SGIX_tag_sample_buffer' => [
    'glTagSampleBufferSGIX'
  ],
  'GL_SGIX_vector_ops' => [
    'glGetVectorOperationSGIX',
    'glVectorOperationSGIX'
  ],
  'GL_SGIX_vertex_array_object' => [
    'glAreVertexArraysResidentSGIX',
    'glBindVertexArraySGIX',
    'glDeleteVertexArraysSGIX',
    'glGenVertexArraysSGIX',
    'glIsVertexArraySGIX',
    'glPrioritizeVertexArraysSGIX'
  ],
  'GL_SGI_color_table' => [
    'glColorTableParameterfvSGI',
    'glColorTableParameterivSGI',
    'glColorTableSGI',
    'glCopyColorTableSGI',
    'glGetColorTableParameterfvSGI',
    'glGetColorTableParameterivSGI',
    'glGetColorTableSGI'
  ],
  'GL_SGI_fft' => [
    'glGetPixelTransformParameterfvSGI',
    'glGetPixelTransformParameterivSGI',
    'glPixelTransformParameterfSGI',
    'glPixelTransformParameterfvSGI',
    'glPixelTransformParameteriSGI',
    'glPixelTransformParameterivSGI',
    'glPixelTransformSGI'
  ],
  'GL_SUNX_constant_data' => [
    'glFinishTextureSUNX'
  ],
  'GL_SUN_global_alpha' => [
    'glGlobalAlphaFactorbSUN',
    'glGlobalAlphaFactordSUN',
    'glGlobalAlphaFactorfSUN',
    'glGlobalAlphaFactoriSUN',
    'glGlobalAlphaFactorsSUN',
    'glGlobalAlphaFactorubSUN',
    'glGlobalAlphaFactoruiSUN',
    'glGlobalAlphaFactorusSUN'
  ],
  'GL_SUN_read_video_pixels' => [
    'glReadVideoPixelsSUN'
  ],
  'GL_SUN_triangle_list' => [
    'glReplacementCodePointerSUN',
    'glReplacementCodeubSUN',
    'glReplacementCodeubvSUN',
    'glReplacementCodeuiSUN',
    'glReplacementCodeuivSUN',
    'glReplacementCodeusSUN',
    'glReplacementCodeusvSUN'
  ],
  'GL_SUN_vertex' => [
    'glColor3fVertex3fSUN',
    'glColor3fVertex3fvSUN',
    'glColor4fNormal3fVertex3fSUN',
    'glColor4fNormal3fVertex3fvSUN',
    'glColor4ubVertex2fSUN',
    'glColor4ubVertex2fvSUN',
    'glColor4ubVertex3fSUN',
    'glColor4ubVertex3fvSUN',
    'glNormal3fVertex3fSUN',
    'glNormal3fVertex3fvSUN',
    'glReplacementCodeuiColor3fVertex3fSUN',
    'glReplacementCodeuiColor3fVertex3fvSUN',
    'glReplacementCodeuiColor4fNormal3fVertex3fSUN',
    'glReplacementCodeuiColor4fNormal3fVertex3fvSUN',
    'glReplacementCodeuiColor4ubVertex3fSUN',
    'glReplacementCodeuiColor4ubVertex3fvSUN',
    'glReplacementCodeuiNormal3fVertex3fSUN',
    'glReplacementCodeuiNormal3fVertex3fvSUN',
    'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN',
    'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN',
    'glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN',
    'glReplacementCodeuiTexCoord2fVertex3fSUN',
    'glReplacementCodeuiTexCoord2fVertex3fvSUN',
    'glReplacementCodeuiVertex3fSUN',
    'glReplacementCodeuiVertex3fvSUN',
    'glTexCoord2fColor3fVertex3fSUN',
    'glTexCoord2fColor3fVertex3fvSUN',
    'glTexCoord2fColor4fNormal3fVertex3fSUN',
    'glTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glTexCoord2fColor4ubVertex3fSUN',
    'glTexCoord2fColor4ubVertex3fvSUN',
    'glTexCoord2fNormal3fVertex3fSUN',
    'glTexCoord2fNormal3fVertex3fvSUN',
    'glTexCoord2fVertex3fSUN',
    'glTexCoord2fVertex3fvSUN',
    'glTexCoord4fColor4fNormal3fVertex4fSUN',
    'glTexCoord4fColor4fNormal3fVertex4fvSUN',
    'glTexCoord4fVertex4fSUN',
    'glTexCoord4fVertex4fvSUN'
  ],
  'GL_VERSION_1_1' => [
    'glAccum',
    'glAlphaFunc',
    'glAreTexturesResident',
    'glArrayElement',
    'glBegin',
    'glBindTexture',
    'glBitmap',
    'glBlendFunc',
    'glCallList',
    'glCallLists',
    'glClear',
    'glClearAccum',
    'glClearColor',
    'glClearDepth',
    'glClearIndex',
    'glClearStencil',
    'glClipPlane',
    'glColor3b',
    'glColor3bv',
    'glColor3d',
    'glColor3dv',
    'glColor3f',
    'glColor3fv',
    'glColor3i',
    'glColor3iv',
    'glColor3s',
    'glColor3sv',
    'glColor3ub',
    'glColor3ubv',
    'glColor3ui',
    'glColor3uiv',
    'glColor3us',
    'glColor3usv',
    'glColor4b',
    'glColor4bv',
    'glColor4d',
    'glColor4dv',
    'glColor4f',
    'glColor4fv',
    'glColor4i',
    'glColor4iv',
    'glColor4s',
    'glColor4sv',
    'glColor4ub',
    'glColor4ubv',
    'glColor4ui',
    'glColor4uiv',
    'glColor4us',
    'glColor4usv',
    'glColorMask',
    'glColorMaterial',
    'glColorPointer',
    'glCopyPixels',
    'glCopyTexImage1D',
    'glCopyTexImage2D',
    'glCopyTexSubImage1D',
    'glCopyTexSubImage2D',
    'glCullFace',
    'glDeleteLists',
    'glDeleteTextures',
    'glDepthFunc',
    'glDepthMask',
    'glDepthRange',
    'glDisable',
    'glDisableClientState',
    'glDrawArrays',
    'glDrawBuffer',
    'glDrawElements',
    'glDrawPixels',
    'glEdgeFlag',
    'glEdgeFlagPointer',
    'glEdgeFlagv',
    'glEnable',
    'glEnableClientState',
    'glEnd',
    'glEndList',
    'glEvalCoord1d',
    'glEvalCoord1dv',
    'glEvalCoord1f',
    'glEvalCoord1fv',
    'glEvalCoord2d',
    'glEvalCoord2dv',
    'glEvalCoord2f',
    'glEvalCoord2fv',
    'glEvalMesh1',
    'glEvalMesh2',
    'glEvalPoint1',
    'glEvalPoint2',
    'glFeedbackBuffer',
    'glFinish',
    'glFlush',
    'glFogf',
    'glFogfv',
    'glFogi',
    'glFogiv',
    'glFrontFace',
    'glFrustum',
    'glGenLists',
    'glGenTextures',
    'glGetBooleanv',
    'glGetClipPlane',
    'glGetDoublev',
    'glGetError',
    'glGetFloatv',
    'glGetIntegerv',
    'glGetLightfv',
    'glGetLightiv',
    'glGetMapdv',
    'glGetMapfv',
    'glGetMapiv',
    'glGetMaterialfv',
    'glGetMaterialiv',
    'glGetPixelMapfv',
    'glGetPixelMapuiv',
    'glGetPixelMapusv',
    'glGetPointerv',
    'glGetPolygonStipple',
    'glGetString',
    'glGetTexEnvfv',
    'glGetTexEnviv',
    'glGetTexGendv',
    'glGetTexGenfv',
    'glGetTexGeniv',
    'glGetTexImage',
    'glGetTexLevelParameterfv',
    'glGetTexLevelParameteriv',
    'glGetTexParameterfv',
    'glGetTexParameteriv',
    'glHint',
    'glIndexMask',
    'glIndexPointer',
    'glIndexd',
    'glIndexdv',
    'glIndexf',
    'glIndexfv',
    'glIndexi',
    'glIndexiv',
    'glIndexs',
    'glIndexsv',
    'glIndexub',
    'glIndexubv',
    'glInitNames',
    'glInterleavedArrays',
    'glIsEnabled',
    'glIsList',
    'glIsTexture',
    'glLightModelf',
    'glLightModelfv',
    'glLightModeli',
    'glLightModeliv',
    'glLightf',
    'glLightfv',
    'glLighti',
    'glLightiv',
    'glLineStipple',
    'glLineWidth',
    'glListBase',
    'glLoadIdentity',
    'glLoadMatrixd',
    'glLoadMatrixf',
    'glLoadName',
    'glLogicOp',
    'glMap1d',
    'glMap1f',
    'glMap2d',
    'glMap2f',
    'glMapGrid1d',
    'glMapGrid1f',
    'glMapGrid2d',
    'glMapGrid2f',
    'glMaterialf',
    'glMaterialfv',
    'glMateriali',
    'glMaterialiv',
    'glMatrixMode',
    'glMultMatrixd',
    'glMultMatrixf',
    'glNewList',
    'glNormal3b',
    'glNormal3bv',
    'glNormal3d',
    'glNormal3dv',
    'glNormal3f',
    'glNormal3fv',
    'glNormal3i',
    'glNormal3iv',
    'glNormal3s',
    'glNormal3sv',
    'glNormalPointer',
    'glOrtho',
    'glPassThrough',
    'glPixelMapfv',
    'glPixelMapuiv',
    'glPixelMapusv',
    'glPixelStoref',
    'glPixelStorei',
    'glPixelTransferf',
    'glPixelTransferi',
    'glPixelZoom',
    'glPointSize',
    'glPolygonMode',
    'glPolygonOffset',
    'glPolygonStipple',
    'glPopAttrib',
    'glPopClientAttrib',
    'glPopMatrix',
    'glPopName',
    'glPrioritizeTextures',
    'glPushAttrib',
    'glPushClientAttrib',
    'glPushMatrix',
    'glPushName',
    'glRasterPos2d',
    'glRasterPos2dv',
    'glRasterPos2f',
    'glRasterPos2fv',
    'glRasterPos2i',
    'glRasterPos2iv',
    'glRasterPos2s',
    'glRasterPos2sv',
    'glRasterPos3d',
    'glRasterPos3dv',
    'glRasterPos3f',
    'glRasterPos3fv',
    'glRasterPos3i',
    'glRasterPos3iv',
    'glRasterPos3s',
    'glRasterPos3sv',
    'glRasterPos4d',
    'glRasterPos4dv',
    'glRasterPos4f',
    'glRasterPos4fv',
    'glRasterPos4i',
    'glRasterPos4iv',
    'glRasterPos4s',
    'glRasterPos4sv',
    'glReadBuffer',
    'glReadPixels',
    'glRectd',
    'glRectdv',
    'glRectf',
    'glRectfv',
    'glRecti',
    'glRectiv',
    'glRects',
    'glRectsv',
    'glRenderMode',
    'glRotated',
    'glRotatef',
    'glScaled',
    'glScalef',
    'glScissor',
    'glSelectBuffer',
    'glShadeModel',
    'glStencilFunc',
    'glStencilMask',
    'glStencilOp',
    'glTexCoord1d',
    'glTexCoord1dv',
    'glTexCoord1f',
    'glTexCoord1fv',
    'glTexCoord1i',
    'glTexCoord1iv',
    'glTexCoord1s',
    'glTexCoord1sv',
    'glTexCoord2d',
    'glTexCoord2dv',
    'glTexCoord2f',
    'glTexCoord2fv',
    'glTexCoord2i',
    'glTexCoord2iv',
    'glTexCoord2s',
    'glTexCoord2sv',
    'glTexCoord3d',
    'glTexCoord3dv',
    'glTexCoord3f',
    'glTexCoord3fv',
    'glTexCoord3i',
    'glTexCoord3iv',
    'glTexCoord3s',
    'glTexCoord3sv',
    'glTexCoord4d',
    'glTexCoord4dv',
    'glTexCoord4f',
    'glTexCoord4fv',
    'glTexCoord4i',
    'glTexCoord4iv',
    'glTexCoord4s',
    'glTexCoord4sv',
    'glTexCoordPointer',
    'glTexEnvf',
    'glTexEnvfv',
    'glTexEnvi',
    'glTexEnviv',
    'glTexGend',
    'glTexGendv',
    'glTexGenf',
    'glTexGenfv',
    'glTexGeni',
    'glTexGeniv',
    'glTexImage1D',
    'glTexImage2D',
    'glTexParameterf',
    'glTexParameterfv',
    'glTexParameteri',
    'glTexParameteriv',
    'glTexSubImage1D',
    'glTexSubImage2D',
    'glTranslated',
    'glTranslatef',
    'glVertex2d',
    'glVertex2dv',
    'glVertex2f',
    'glVertex2fv',
    'glVertex2i',
    'glVertex2iv',
    'glVertex2s',
    'glVertex2sv',
    'glVertex3d',
    'glVertex3dv',
    'glVertex3f',
    'glVertex3fv',
    'glVertex3i',
    'glVertex3iv',
    'glVertex3s',
    'glVertex3sv',
    'glVertex4d',
    'glVertex4dv',
    'glVertex4f',
    'glVertex4fv',
    'glVertex4i',
    'glVertex4iv',
    'glVertex4s',
    'glVertex4sv',
    'glVertexPointer',
    'glViewport'
  ],
  'GL_VERSION_1_2' => [
    'glCopyTexSubImage3D',
    'glDrawRangeElements',
    'glTexImage3D',
    'glTexSubImage3D'
  ],
  'GL_VERSION_1_3' => [
    'glActiveTexture',
    'glClientActiveTexture',
    'glCompressedTexImage1D',
    'glCompressedTexImage2D',
    'glCompressedTexImage3D',
    'glCompressedTexSubImage1D',
    'glCompressedTexSubImage2D',
    'glCompressedTexSubImage3D',
    'glGetCompressedTexImage',
    'glLoadTransposeMatrixd',
    'glLoadTransposeMatrixf',
    'glMultTransposeMatrixd',
    'glMultTransposeMatrixf',
    'glMultiTexCoord1d',
    'glMultiTexCoord1dv',
    'glMultiTexCoord1f',
    'glMultiTexCoord1fv',
    'glMultiTexCoord1i',
    'glMultiTexCoord1iv',
    'glMultiTexCoord1s',
    'glMultiTexCoord1sv',
    'glMultiTexCoord2d',
    'glMultiTexCoord2dv',
    'glMultiTexCoord2f',
    'glMultiTexCoord2fv',
    'glMultiTexCoord2i',
    'glMultiTexCoord2iv',
    'glMultiTexCoord2s',
    'glMultiTexCoord2sv',
    'glMultiTexCoord3d',
    'glMultiTexCoord3dv',
    'glMultiTexCoord3f',
    'glMultiTexCoord3fv',
    'glMultiTexCoord3i',
    'glMultiTexCoord3iv',
    'glMultiTexCoord3s',
    'glMultiTexCoord3sv',
    'glMultiTexCoord4d',
    'glMultiTexCoord4dv',
    'glMultiTexCoord4f',
    'glMultiTexCoord4fv',
    'glMultiTexCoord4i',
    'glMultiTexCoord4iv',
    'glMultiTexCoord4s',
    'glMultiTexCoord4sv',
    'glSampleCoverage'
  ],
  'GL_VERSION_1_4' => [
    'glBlendColor',
    'glBlendEquation',
    'glBlendFuncSeparate',
    'glFogCoordPointer',
    'glFogCoordd',
    'glFogCoorddv',
    'glFogCoordf',
    'glFogCoordfv',
    'glMultiDrawArrays',
    'glMultiDrawElements',
    'glPointParameterf',
    'glPointParameterfv',
    'glPointParameteri',
    'glPointParameteriv',
    'glSecondaryColor3b',
    'glSecondaryColor3bv',
    'glSecondaryColor3d',
    'glSecondaryColor3dv',
    'glSecondaryColor3f',
    'glSecondaryColor3fv',
    'glSecondaryColor3i',
    'glSecondaryColor3iv',
    'glSecondaryColor3s',
    'glSecondaryColor3sv',
    'glSecondaryColor3ub',
    'glSecondaryColor3ubv',
    'glSecondaryColor3ui',
    'glSecondaryColor3uiv',
    'glSecondaryColor3us',
    'glSecondaryColor3usv',
    'glSecondaryColorPointer',
    'glWindowPos2d',
    'glWindowPos2dv',
    'glWindowPos2f',
    'glWindowPos2fv',
    'glWindowPos2i',
    'glWindowPos2iv',
    'glWindowPos2s',
    'glWindowPos2sv',
    'glWindowPos3d',
    'glWindowPos3dv',
    'glWindowPos3f',
    'glWindowPos3fv',
    'glWindowPos3i',
    'glWindowPos3iv',
    'glWindowPos3s',
    'glWindowPos3sv'
  ],
  'GL_VERSION_1_5' => [
    'glBeginQuery',
    'glBindBuffer',
    'glBufferData',
    'glBufferSubData',
    'glDeleteBuffers',
    'glDeleteQueries',
    'glEndQuery',
    'glGenBuffers',
    'glGenQueries',
    'glGetBufferParameteriv',
    'glGetBufferPointerv',
    'glGetBufferSubData',
    'glGetQueryObjectiv',
    'glGetQueryObjectuiv',
    'glGetQueryiv',
    'glIsBuffer',
    'glIsQuery',
    'glMapBuffer',
    'glUnmapBuffer'
  ],
  'GL_VERSION_2_0' => [
    'glAttachShader',
    'glBindAttribLocation',
    'glBlendEquationSeparate',
    'glCompileShader',
    'glCreateProgram',
    'glCreateShader',
    'glDeleteProgram',
    'glDeleteShader',
    'glDetachShader',
    'glDisableVertexAttribArray',
    'glDrawBuffers',
    'glEnableVertexAttribArray',
    'glGetActiveAttrib',
    'glGetActiveUniform',
    'glGetAttachedShaders',
    'glGetAttribLocation',
    'glGetProgramInfoLog',
    'glGetProgramiv',
    'glGetShaderInfoLog',
    'glGetShaderSource',
    'glGetShaderiv',
    'glGetUniformLocation',
    'glGetUniformfv',
    'glGetUniformiv',
    'glGetVertexAttribPointerv',
    'glGetVertexAttribdv',
    'glGetVertexAttribfv',
    'glGetVertexAttribiv',
    'glIsProgram',
    'glIsShader',
    'glLinkProgram',
    'glShaderSource',
    'glStencilFuncSeparate',
    'glStencilMaskSeparate',
    'glStencilOpSeparate',
    'glUniform1f',
    'glUniform1fv',
    'glUniform1i',
    'glUniform1iv',
    'glUniform2f',
    'glUniform2fv',
    'glUniform2i',
    'glUniform2iv',
    'glUniform3f',
    'glUniform3fv',
    'glUniform3i',
    'glUniform3iv',
    'glUniform4f',
    'glUniform4fv',
    'glUniform4i',
    'glUniform4iv',
    'glUniformMatrix2fv',
    'glUniformMatrix3fv',
    'glUniformMatrix4fv',
    'glUseProgram',
    'glValidateProgram',
    'glVertexAttrib1d',
    'glVertexAttrib1dv',
    'glVertexAttrib1f',
    'glVertexAttrib1fv',
    'glVertexAttrib1s',
    'glVertexAttrib1sv',
    'glVertexAttrib2d',
    'glVertexAttrib2dv',
    'glVertexAttrib2f',
    'glVertexAttrib2fv',
    'glVertexAttrib2s',
    'glVertexAttrib2sv',
    'glVertexAttrib3d',
    'glVertexAttrib3dv',
    'glVertexAttrib3f',
    'glVertexAttrib3fv',
    'glVertexAttrib3s',
    'glVertexAttrib3sv',
    'glVertexAttrib4Nbv',
    'glVertexAttrib4Niv',
    'glVertexAttrib4Nsv',
    'glVertexAttrib4Nub',
    'glVertexAttrib4Nubv',
    'glVertexAttrib4Nuiv',
    'glVertexAttrib4Nusv',
    'glVertexAttrib4bv',
    'glVertexAttrib4d',
    'glVertexAttrib4dv',
    'glVertexAttrib4f',
    'glVertexAttrib4fv',
    'glVertexAttrib4iv',
    'glVertexAttrib4s',
    'glVertexAttrib4sv',
    'glVertexAttrib4ubv',
    'glVertexAttrib4uiv',
    'glVertexAttrib4usv',
    'glVertexAttribPointer'
  ],
  'GL_VERSION_2_1' => [
    'glUniformMatrix2x3fv',
    'glUniformMatrix2x4fv',
    'glUniformMatrix3x2fv',
    'glUniformMatrix3x4fv',
    'glUniformMatrix4x2fv',
    'glUniformMatrix4x3fv'
  ],
  'GL_VERSION_3_0' => [
    'glBeginConditionalRender',
    'glBeginTransformFeedback',
    'glBindFragDataLocation',
    'glBindFramebuffer',
    'glBindRenderbuffer',
    'glBindVertexArray',
    'glBlitFramebuffer',
    'glCheckFramebufferStatus',
    'glClampColor',
    'glClearBufferfi',
    'glClearBufferfv',
    'glClearBufferiv',
    'glClearBufferuiv',
    'glColorMaski',
    'glDeleteFramebuffers',
    'glDeleteRenderbuffers',
    'glDeleteVertexArrays',
    'glDisablei',
    'glEnablei',
    'glEndConditionalRender',
    'glEndTransformFeedback',
    'glFlushMappedBufferRange',
    'glFramebufferRenderbuffer',
    'glFramebufferTexture1D',
    'glFramebufferTexture2D',
    'glFramebufferTexture3D',
    'glFramebufferTextureLayer',
    'glGenFramebuffers',
    'glGenRenderbuffers',
    'glGenVertexArrays',
    'glGenerateMipmap',
    'glGetBooleani_v',
    'glGetFragDataLocation',
    'glGetFramebufferAttachmentParameteriv',
    'glGetRenderbufferParameteriv',
    'glGetTexParameterIiv',
    'glGetTexParameterIuiv',
    'glGetTransformFeedbackVarying',
    'glGetUniformuiv',
    'glGetVertexAttribIiv',
    'glGetVertexAttribIuiv',
    'glIsEnabledi',
    'glIsFramebuffer',
    'glIsRenderbuffer',
    'glIsVertexArray',
    'glMapBufferRange',
    'glRenderbufferStorage',
    'glRenderbufferStorageMultisample',
    'glTexParameterIiv',
    'glTexParameterIuiv',
    'glTransformFeedbackVaryings',
    'glUniform1ui',
    'glUniform1uiv',
    'glUniform2ui',
    'glUniform2uiv',
    'glUniform3ui',
    'glUniform3uiv',
    'glUniform4ui',
    'glUniform4uiv',
    'glVertexAttribI1i',
    'glVertexAttribI1iv',
    'glVertexAttribI1ui',
    'glVertexAttribI1uiv',
    'glVertexAttribI2i',
    'glVertexAttribI2iv',
    'glVertexAttribI2ui',
    'glVertexAttribI2uiv',
    'glVertexAttribI3i',
    'glVertexAttribI3iv',
    'glVertexAttribI3ui',
    'glVertexAttribI3uiv',
    'glVertexAttribI4bv',
    'glVertexAttribI4i',
    'glVertexAttribI4iv',
    'glVertexAttribI4sv',
    'glVertexAttribI4ubv',
    'glVertexAttribI4ui',
    'glVertexAttribI4uiv',
    'glVertexAttribI4usv',
    'glVertexAttribIPointer'
  ],
  'GL_VERSION_3_1' => [
    'glBindBufferBase',
    'glBindBufferRange',
    'glCopyBufferSubData',
    'glDrawArraysInstanced',
    'glDrawElementsInstanced',
    'glGetActiveUniformBlockName',
    'glGetActiveUniformBlockiv',
    'glGetActiveUniformName',
    'glGetActiveUniformsiv',
    'glGetIntegeri_v',
    'glGetUniformBlockIndex',
    'glGetUniformIndices',
    'glPrimitiveRestartIndex',
    'glTexBuffer',
    'glUniformBlockBinding'
  ],
  'GL_VERSION_3_2' => [
    'glClientWaitSync',
    'glDeleteSync',
    'glDrawElementsBaseVertex',
    'glDrawElementsInstancedBaseVertex',
    'glDrawRangeElementsBaseVertex',
    'glFenceSync',
    'glFramebufferTexture',
    'glGetBufferParameteri64v',
    'glGetInteger64i_v',
    'glGetInteger64v',
    'glGetMultisamplefv',
    'glGetSynciv',
    'glIsSync',
    'glMultiDrawElementsBaseVertex',
    'glProvokingVertex',
    'glSampleMaski',
    'glTexImage2DMultisample',
    'glTexImage3DMultisample',
    'glWaitSync'
  ],
  'GL_VERSION_3_3' => [
    'glBindFragDataLocationIndexed',
    'glBindSampler',
    'glColorP3ui',
    'glColorP3uiv',
    'glColorP4ui',
    'glColorP4uiv',
    'glDeleteSamplers',
    'glGenSamplers',
    'glGetFragDataIndex',
    'glGetQueryObjecti64v',
    'glGetQueryObjectui64v',
    'glGetSamplerParameterIiv',
    'glGetSamplerParameterIuiv',
    'glGetSamplerParameterfv',
    'glGetSamplerParameteriv',
    'glIsSampler',
    'glMultiTexCoordP1ui',
    'glMultiTexCoordP1uiv',
    'glMultiTexCoordP2ui',
    'glMultiTexCoordP2uiv',
    'glMultiTexCoordP3ui',
    'glMultiTexCoordP3uiv',
    'glMultiTexCoordP4ui',
    'glMultiTexCoordP4uiv',
    'glNormalP3ui',
    'glNormalP3uiv',
    'glQueryCounter',
    'glSamplerParameterIiv',
    'glSamplerParameterIuiv',
    'glSamplerParameterf',
    'glSamplerParameterfv',
    'glSamplerParameteri',
    'glSamplerParameteriv',
    'glSecondaryColorP3ui',
    'glSecondaryColorP3uiv',
    'glTexCoordP1ui',
    'glTexCoordP1uiv',
    'glTexCoordP2ui',
    'glTexCoordP2uiv',
    'glTexCoordP3ui',
    'glTexCoordP3uiv',
    'glTexCoordP4ui',
    'glTexCoordP4uiv',
    'glVertexAttribDivisor',
    'glVertexAttribP1ui',
    'glVertexAttribP1uiv',
    'glVertexAttribP2ui',
    'glVertexAttribP2uiv',
    'glVertexAttribP3ui',
    'glVertexAttribP3uiv',
    'glVertexAttribP4ui',
    'glVertexAttribP4uiv',
    'glVertexP2ui',
    'glVertexP2uiv',
    'glVertexP3ui',
    'glVertexP3uiv',
    'glVertexP4ui',
    'glVertexP4uiv'
  ],
  'GL_VERSION_4_0' => [
    'glBeginQueryIndexed',
    'glBindTransformFeedback',
    'glBlendEquationSeparatei',
    'glBlendEquationSeparateiARB',
    'glBlendEquationi',
    'glBlendEquationiARB',
    'glBlendFuncSeparatei',
    'glBlendFuncSeparateiARB',
    'glBlendFunci',
    'glBlendFunciARB',
    'glDeleteTransformFeedbacks',
    'glDrawArraysIndirect',
    'glDrawElementsIndirect',
    'glDrawTransformFeedback',
    'glDrawTransformFeedbackStream',
    'glEndQueryIndexed',
    'glGenTransformFeedbacks',
    'glGetActiveSubroutineName',
    'glGetActiveSubroutineUniformName',
    'glGetActiveSubroutineUniformiv',
    'glGetProgramStageiv',
    'glGetQueryIndexediv',
    'glGetSubroutineIndex',
    'glGetSubroutineUniformLocation',
    'glGetUniformSubroutineuiv',
    'glGetUniformdv',
    'glIsTransformFeedback',
    'glMinSampleShading',
    'glPatchParameterfv',
    'glPatchParameteri',
    'glPauseTransformFeedback',
    'glResumeTransformFeedback',
    'glUniform1d',
    'glUniform1dv',
    'glUniform2d',
    'glUniform2dv',
    'glUniform3d',
    'glUniform3dv',
    'glUniform4d',
    'glUniform4dv',
    'glUniformMatrix2dv',
    'glUniformMatrix2x3dv',
    'glUniformMatrix2x4dv',
    'glUniformMatrix3dv',
    'glUniformMatrix3x2dv',
    'glUniformMatrix3x4dv',
    'glUniformMatrix4dv',
    'glUniformMatrix4x2dv',
    'glUniformMatrix4x3dv',
    'glUniformSubroutinesuiv'
  ],
  'GL_VERSION_4_1' => [
    'glActiveShaderProgram',
    'glBindProgramPipeline',
    'glClearDepthf',
    'glCreateShaderProgramv',
    'glDeleteProgramPipelines',
    'glDepthRangeArrayv',
    'glDepthRangeIndexed',
    'glDepthRangef',
    'glGenProgramPipelines',
    'glGetDoublei_v',
    'glGetFloati_v',
    'glGetProgramBinary',
    'glGetProgramPipelineInfoLog',
    'glGetProgramPipelineiv',
    'glGetShaderPrecisionFormat',
    'glGetVertexAttribLdv',
    'glIsProgramPipeline',
    'glProgramBinary',
    'glProgramParameteri',
    'glProgramUniform1d',
    'glProgramUniform1dv',
    'glProgramUniform1f',
    'glProgramUniform1fv',
    'glProgramUniform1i',
    'glProgramUniform1iv',
    'glProgramUniform1ui',
    'glProgramUniform1uiv',
    'glProgramUniform2d',
    'glProgramUniform2dv',
    'glProgramUniform2f',
    'glProgramUniform2fv',
    'glProgramUniform2i',
    'glProgramUniform2iv',
    'glProgramUniform2ui',
    'glProgramUniform2uiv',
    'glProgramUniform3d',
    'glProgramUniform3dv',
    'glProgramUniform3f',
    'glProgramUniform3fv',
    'glProgramUniform3i',
    'glProgramUniform3iv',
    'glProgramUniform3ui',
    'glProgramUniform3uiv',
    'glProgramUniform4d',
    'glProgramUniform4dv',
    'glProgramUniform4f',
    'glProgramUniform4fv',
    'glProgramUniform4i',
    'glProgramUniform4iv',
    'glProgramUniform4ui',
    'glProgramUniform4uiv',
    'glProgramUniformMatrix2dv',
    'glProgramUniformMatrix2fv',
    'glProgramUniformMatrix2x3dv',
    'glProgramUniformMatrix2x3fv',
    'glProgramUniformMatrix2x4dv',
    'glProgramUniformMatrix2x4fv',
    'glProgramUniformMatrix3dv',
    'glProgramUniformMatrix3fv',
    'glProgramUniformMatrix3x2dv',
    'glProgramUniformMatrix3x2fv',
    'glProgramUniformMatrix3x4dv',
    'glProgramUniformMatrix3x4fv',
    'glProgramUniformMatrix4dv',
    'glProgramUniformMatrix4fv',
    'glProgramUniformMatrix4x2dv',
    'glProgramUniformMatrix4x2fv',
    'glProgramUniformMatrix4x3dv',
    'glProgramUniformMatrix4x3fv',
    'glReleaseShaderCompiler',
    'glScissorArrayv',
    'glScissorIndexed',
    'glScissorIndexedv',
    'glShaderBinary',
    'glUseProgramStages',
    'glValidateProgramPipeline',
    'glVertexAttribL1d',
    'glVertexAttribL1dv',
    'glVertexAttribL2d',
    'glVertexAttribL2dv',
    'glVertexAttribL3d',
    'glVertexAttribL3dv',
    'glVertexAttribL4d',
    'glVertexAttribL4dv',
    'glVertexAttribLPointer',
    'glViewportArrayv',
    'glViewportIndexedf',
    'glViewportIndexedfv'
  ],
  'GL_VERSION_4_2' => [
    'glBindImageTexture',
    'glDrawArraysInstancedBaseInstance',
    'glDrawElementsInstancedBaseInstance',
    'glDrawElementsInstancedBaseVertexBaseInstance',
    'glDrawTransformFeedbackInstanced',
    'glDrawTransformFeedbackStreamInstanced',
    'glGetActiveAtomicCounterBufferiv',
    'glGetInternalformativ',
    'glMemoryBarrier',
    'glTexStorage1D',
    'glTexStorage2D',
    'glTexStorage3D'
  ],
  'GL_VERSION_4_3' => [
    'glBindVertexBuffer',
    'glClearBufferData',
    'glClearBufferSubData',
    'glClearNamedBufferDataEXT',
    'glClearNamedBufferSubDataEXT',
    'glCopyImageSubData',
    'glDebugMessageCallback',
    'glDebugMessageControl',
    'glDebugMessageInsert',
    'glDispatchCompute',
    'glDispatchComputeIndirect',
    'glFramebufferParameteri',
    'glGetDebugMessageLog',
    'glGetFramebufferParameteriv',
    'glGetInternalformati64v',
    'glGetNamedFramebufferParameterivEXT',
    'glGetObjectLabel',
    'glGetObjectPtrLabel',
    'glGetProgramInterfaceiv',
    'glGetProgramResourceIndex',
    'glGetProgramResourceLocation',
    'glGetProgramResourceLocationIndex',
    'glGetProgramResourceName',
    'glGetProgramResourceiv',
    'glInvalidateBufferData',
    'glInvalidateBufferSubData',
    'glInvalidateFramebuffer',
    'glInvalidateSubFramebuffer',
    'glInvalidateTexImage',
    'glInvalidateTexSubImage',
    'glMultiDrawArraysIndirect',
    'glMultiDrawElementsIndirect',
    'glNamedFramebufferParameteriEXT',
    'glObjectLabel',
    'glObjectPtrLabel',
    'glPopDebugGroup',
    'glPushDebugGroup',
    'glShaderStorageBlockBinding',
    'glTexBufferRange',
    'glTexStorage2DMultisample',
    'glTexStorage3DMultisample',
    'glTextureBufferRangeEXT',
    'glTextureStorage2DMultisampleEXT',
    'glTextureStorage3DMultisampleEXT',
    'glTextureView',
    'glVertexArrayBindVertexBufferEXT',
    'glVertexArrayVertexAttribBindingEXT',
    'glVertexArrayVertexAttribFormatEXT',
    'glVertexArrayVertexAttribIFormatEXT',
    'glVertexArrayVertexAttribLFormatEXT',
    'glVertexArrayVertexBindingDivisorEXT',
    'glVertexAttribBinding',
    'glVertexAttribFormat',
    'glVertexAttribIFormat',
    'glVertexAttribLFormat',
    'glVertexBindingDivisor'
  ],
  'GL_VERSION_4_4' => [
    'glBindBuffersBase',
    'glBindBuffersRange',
    'glBindImageTextures',
    'glBindSamplers',
    'glBindTextures',
    'glBindVertexBuffers',
    'glBufferStorage',
    'glClearTexImage',
    'glClearTexSubImage'
  ],
  'GL_VERSION_4_5' => [
    'glBindTextureUnit',
    'glBlitNamedFramebuffer',
    'glCheckNamedFramebufferStatus',
    'glClearNamedBufferData',
    'glClearNamedBufferSubData',
    'glClearNamedFramebufferfi',
    'glClearNamedFramebufferfv',
    'glClearNamedFramebufferiv',
    'glClearNamedFramebufferuiv',
    'glClipControl',
    'glCompressedTextureSubImage1D',
    'glCompressedTextureSubImage2D',
    'glCompressedTextureSubImage3D',
    'glCopyNamedBufferSubData',
    'glCopyTextureSubImage1D',
    'glCopyTextureSubImage2D',
    'glCopyTextureSubImage3D',
    'glCreateBuffers',
    'glCreateFramebuffers',
    'glCreateProgramPipelines',
    'glCreateQueries',
    'glCreateRenderbuffers',
    'glCreateSamplers',
    'glCreateTextures',
    'glCreateTransformFeedbacks',
    'glCreateVertexArrays',
    'glDisableVertexArrayAttrib',
    'glEnableVertexArrayAttrib',
    'glFlushMappedNamedBufferRange',
    'glGenerateTextureMipmap',
    'glGetCompressedTextureImage',
    'glGetCompressedTextureSubImage',
    'glGetGraphicsResetStatus',
    'glGetGraphicsResetStatusARB',
    'glGetNamedBufferParameteri64v',
    'glGetNamedBufferParameteriv',
    'glGetNamedBufferPointerv',
    'glGetNamedBufferSubData',
    'glGetNamedFramebufferAttachmentParameteriv',
    'glGetNamedFramebufferParameteriv',
    'glGetNamedRenderbufferParameteriv',
    'glGetQueryBufferObjecti64v',
    'glGetQueryBufferObjectiv',
    'glGetQueryBufferObjectui64v',
    'glGetQueryBufferObjectuiv',
    'glGetTextureImage',
    'glGetTextureLevelParameterfv',
    'glGetTextureLevelParameteriv',
    'glGetTextureParameterIiv',
    'glGetTextureParameterIuiv',
    'glGetTextureParameterfv',
    'glGetTextureParameteriv',
    'glGetTextureSubImage',
    'glGetTransformFeedbacki64_v',
    'glGetTransformFeedbacki_v',
    'glGetTransformFeedbackiv',
    'glGetVertexArrayIndexed64iv',
    'glGetVertexArrayIndexediv',
    'glGetVertexArrayiv',
    'glGetnColorTableARB',
    'glGetnCompressedTexImage',
    'glGetnCompressedTexImageARB',
    'glGetnConvolutionFilterARB',
    'glGetnHistogramARB',
    'glGetnMapdvARB',
    'glGetnMapfvARB',
    'glGetnMapivARB',
    'glGetnMinmaxARB',
    'glGetnPixelMapfvARB',
    'glGetnPixelMapuivARB',
    'glGetnPixelMapusvARB',
    'glGetnPolygonStippleARB',
    'glGetnSeparableFilterARB',
    'glGetnTexImage',
    'glGetnTexImageARB',
    'glGetnUniformdv',
    'glGetnUniformdvARB',
    'glGetnUniformfvARB',
    'glGetnUniformivARB',
    'glGetnUniformuivARB',
    'glInvalidateNamedFramebufferData',
    'glInvalidateNamedFramebufferSubData',
    'glMapNamedBuffer',
    'glMapNamedBufferRange',
    'glMemoryBarrierByRegion',
    'glNamedBufferData',
    'glNamedBufferStorage',
    'glNamedBufferSubData',
    'glNamedFramebufferDrawBuffer',
    'glNamedFramebufferDrawBuffers',
    'glNamedFramebufferParameteri',
    'glNamedFramebufferReadBuffer',
    'glNamedFramebufferRenderbuffer',
    'glNamedFramebufferTexture',
    'glNamedFramebufferTextureLayer',
    'glNamedRenderbufferStorage',
    'glNamedRenderbufferStorageMultisample',
    'glReadnPixelsARB',
    'glTextureBarrier',
    'glTextureBuffer',
    'glTextureBufferRange',
    'glTextureParameterIiv',
    'glTextureParameterIuiv',
    'glTextureParameterf',
    'glTextureParameterfv',
    'glTextureParameteri',
    'glTextureParameteriv',
    'glTextureStorage1D',
    'glTextureStorage2D',
    'glTextureStorage2DMultisample',
    'glTextureStorage3D',
    'glTextureStorage3DMultisample',
    'glTextureSubImage1D',
    'glTextureSubImage2D',
    'glTextureSubImage3D',
    'glTransformFeedbackBufferBase',
    'glTransformFeedbackBufferRange',
    'glUnmapNamedBuffer',
    'glVertexArrayAttribBinding',
    'glVertexArrayAttribFormat',
    'glVertexArrayAttribIFormat',
    'glVertexArrayAttribLFormat',
    'glVertexArrayBindingDivisor',
    'glVertexArrayElementBuffer',
    'glVertexArrayVertexBuffer',
    'glVertexArrayVertexBuffers'
  ],
  'GL_VERSION_4_6' => [
    'glMultiDrawArraysIndirectCount',
    'glMultiDrawArraysIndirectCountARB',
    'glMultiDrawElementsIndirectCount',
    'glMultiDrawElementsIndirectCountARB',
    'glPolygonOffsetClamp',
    'glSpecializeShader',
    'glSpecializeShaderARB'
  ],
  'GL_WIN_swap_hint' => [
    'glAddSwapHintRectWIN'
  ]
);

our %counts = (
  'GL_ACCUM_ALPHA_BITS' => '1',
  'GL_ACCUM_BLUE_BITS' => '1',
  'GL_ACCUM_CLEAR_VALUE' => '4',
  'GL_ACCUM_GREEN_BITS' => '1',
  'GL_ACCUM_RED_BITS' => '1',
  'GL_ACTIVE_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_ACTIVE_ATTRIBUTES' => '1',
  'GL_ACTIVE_ATTRIBUTE_MAX_LENGTH' => '1',
  'GL_ACTIVE_PROGRAM' => '1',
  'GL_ACTIVE_RESOURCES' => '1',
  'GL_ACTIVE_SUBROUTINES' => '1',
  'GL_ACTIVE_SUBROUTINE_MAX_LENGTH' => '1',
  'GL_ACTIVE_SUBROUTINE_UNIFORMS' => '1',
  'GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS' => '1',
  'GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH' => '1',
  'GL_ACTIVE_TEXTURE' => '1',
  'GL_ACTIVE_UNIFORMS' => '1',
  'GL_ACTIVE_UNIFORM_BLOCKS' => '1',
  'GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH' => '1',
  'GL_ACTIVE_UNIFORM_MAX_LENGTH' => '1',
  'GL_ACTIVE_VARIABLES' => '1',
  'GL_ACTIVE_VERTEX_UNITS_ARB' => '1',
  'GL_ALIASED_LINE_WIDTH_RANGE' => '2',
  'GL_ALIASED_POINT_SIZE_RANGE' => '2',
  'GL_ALPHA_BIAS' => '1',
  'GL_ALPHA_BITS' => '1',
  'GL_ALPHA_MAX_CLAMP_INGR' => '1',
  'GL_ALPHA_MIN_CLAMP_INGR' => '1',
  'GL_ALPHA_SCALE' => '1',
  'GL_ALPHA_TEST' => '1',
  'GL_ALPHA_TEST_FUNC' => '1',
  'GL_ALPHA_TEST_REF' => '1',
  'GL_AMBIENT' => '4',
  'GL_AMBIENT_AND_DIFFUSE' => '4',
  'GL_ANY_SAMPLES_PASSED' => '1',
  'GL_ANY_SAMPLES_PASSED_CONSERVATIVE' => '1',
  'GL_ARRAY_BUFFER_BINDING' => '1',
  'GL_ARRAY_OBJECT_BUFFER_ATI' => '1',
  'GL_ARRAY_OBJECT_OFFSET_ATI' => '1',
  'GL_ARRAY_SIZE' => '1',
  'GL_ARRAY_STRIDE' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_BINDING' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_INDEX' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_SIZE' => '1',
  'GL_ATOMIC_COUNTER_BUFFER_START' => '1',
  'GL_ATTACHED_SHADERS' => '1',
  'GL_ATTRIB_STACK_DEPTH' => '1',
  'GL_AUTO_GENERATE_MIPMAP' => '1',
  'GL_AUTO_NORMAL' => '1',
  'GL_AUX_BUFFERS' => '1',
  'GL_BLEND' => '1',
  'GL_BLEND_ADVANCED_COHERENT_KHR' => '1',
  'GL_BLEND_COLOR' => '4',
  'GL_BLEND_DST' => '1',
  'GL_BLEND_DST_ALPHA' => '1',
  'GL_BLEND_DST_RGB' => '1',
  'GL_BLEND_EQUATION' => '1',
  'GL_BLEND_EQUATION_ALPHA' => '1',
  'GL_BLEND_SRC' => '1',
  'GL_BLEND_SRC_ALPHA' => '1',
  'GL_BLEND_SRC_RGB' => '1',
  'GL_BLOCK_INDEX' => '1',
  'GL_BLUE_BIAS' => '1',
  'GL_BLUE_BITS' => '1',
  'GL_BLUE_MAX_CLAMP_INGR' => '1',
  'GL_BLUE_MIN_CLAMP_INGR' => '1',
  'GL_BLUE_SCALE' => '1',
  'GL_BUFFER_ACCESS' => '1',
  'GL_BUFFER_ACCESS_FLAGS' => '1',
  'GL_BUFFER_BINDING' => '1',
  'GL_BUFFER_DATA_SIZE' => '1',
  'GL_BUFFER_IMMUTABLE_STORAGE' => '1',
  'GL_BUFFER_MAPPED' => '1',
  'GL_BUFFER_MAP_LENGTH' => '1',
  'GL_BUFFER_MAP_OFFSET' => '1',
  'GL_BUFFER_MAP_POINTER' => '1',
  'GL_BUFFER_SIZE' => '1',
  'GL_BUFFER_STORAGE_FLAGS' => '1',
  'GL_BUFFER_USAGE' => '1',
  'GL_BUMP_TARGET_ATI' => '1',
  'GL_CLAMP_FRAGMENT_COLOR' => '1',
  'GL_CLAMP_READ_COLOR' => '1',
  'GL_CLAMP_VERTEX_COLOR' => '1',
  'GL_CLEAR_BUFFER' => '1',
  'GL_CLIENT_ACTIVE_TEXTURE' => '1',
  'GL_CLIENT_ATTRIB_STACK_DEPTH' => '1',
  'GL_CLIP_DEPTH_MODE' => '2',
  'GL_CLIP_ORIGIN' => '2',
  'GL_CLIP_PLANE0' => '1',
  'GL_CLIP_PLANE1' => '1',
  'GL_CLIP_PLANE2' => '1',
  'GL_CLIP_PLANE3' => '1',
  'GL_CLIP_PLANE4' => '1',
  'GL_CLIP_PLANE5' => '1',
  'GL_COLOR' => '4',
  'GL_COLOR_ALPHA_PAIRING_ATI' => '1',
  'GL_COLOR_ARRAY' => '1',
  'GL_COLOR_ARRAY_BUFFER_BINDING' => '1',
  'GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL' => '1',
  'GL_COLOR_ARRAY_POINTER' => '1',
  'GL_COLOR_ARRAY_SIZE' => '1',
  'GL_COLOR_ARRAY_STRIDE' => '1',
  'GL_COLOR_ARRAY_TYPE' => '1',
  'GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI' => '4',
  'GL_COLOR_CLEAR_VALUE' => '4',
  'GL_COLOR_COMPONENTS' => '1',
  'GL_COLOR_ENCODING' => '1',
  'GL_COLOR_FLOAT_APPLE' => '1',
  'GL_COLOR_INDEXES' => '3',
  'GL_COLOR_LOGIC_OP' => '1',
  'GL_COLOR_MATERIAL' => '1',
  'GL_COLOR_MATERIAL_FACE' => '1',
  'GL_COLOR_MATERIAL_PARAMETER' => '1',
  'GL_COLOR_MATRIX' => '16',
  'GL_COLOR_MATRIX_STACK_DEPTH' => '1',
  'GL_COLOR_RENDERABLE' => '1',
  'GL_COLOR_SUM' => '1',
  'GL_COLOR_TABLE' => '1',
  'GL_COLOR_TABLE_ALPHA_SIZE' => '1',
  'GL_COLOR_TABLE_BIAS' => '4',
  'GL_COLOR_TABLE_BLUE_SIZE' => '1',
  'GL_COLOR_TABLE_FORMAT' => '1',
  'GL_COLOR_TABLE_GREEN_SIZE' => '1',
  'GL_COLOR_TABLE_INTENSITY_SIZE' => '1',
  'GL_COLOR_TABLE_LUMINANCE_SIZE' => '1',
  'GL_COLOR_TABLE_RED_SIZE' => '1',
  'GL_COLOR_TABLE_SCALE' => '4',
  'GL_COLOR_TABLE_WIDTH' => '1',
  'GL_COLOR_WRITEMASK' => '4',
  'GL_COMBINE_ALPHA' => '1',
  'GL_COMBINE_RGB' => '1',
  'GL_COMPATIBLE_SUBROUTINES' => '1',
  'GL_COMPILE_STATUS' => '1',
  'GL_COMPUTE_SHADER' => '1',
  'GL_COMPUTE_TEXTURE' => '1',
  'GL_COMPUTE_WORK_GROUP_SIZE' => '1',
  'GL_CONSTANT_ATTENUATION' => '1',
  'GL_CONTEXT_FLAGS' => '1',
  'GL_CONTEXT_FLAG_DEBUG_BIT' => '1',
  'GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB' => '1',
  'GL_CONTEXT_PROFILE_MASK' => '1',
  'GL_CONTEXT_ROBUST_ACCESS' => '1',
  'GL_CONVOLUTION_1D' => '1',
  'GL_CONVOLUTION_2D' => '1',
  'GL_CONVOLUTION_BORDER_COLOR' => '4',
  'GL_CONVOLUTION_BORDER_MODE' => '1',
  'GL_CONVOLUTION_FILTER_BIAS' => '4',
  'GL_CONVOLUTION_FILTER_SCALE' => '4',
  'GL_CONVOLUTION_FORMAT' => '1',
  'GL_CONVOLUTION_HEIGHT' => '1',
  'GL_CONVOLUTION_WIDTH' => '1',
  'GL_COORD_REPLACE' => '1',
  'GL_COPY_READ_BUFFER' => '1',
  'GL_COPY_WRITE_BUFFER' => '1',
  'GL_CULL_FACE' => '1',
  'GL_CULL_FACE_MODE' => '1',
  'GL_CURRENT_COLOR' => '4',
  'GL_CURRENT_FOG_COORD' => '1',
  'GL_CURRENT_FOG_COORDINATE' => '1',
  'GL_CURRENT_INDEX' => '1',
  'GL_CURRENT_MATRIX_ARB' => '16',
  'GL_CURRENT_MATRIX_INDEX_ARB' => '1',
  'GL_CURRENT_MATRIX_STACK_DEPTH_ARB' => '1',
  'GL_CURRENT_NORMAL' => '3',
  'GL_CURRENT_PALETTE_MATRIX_ARB' => '1',
  'GL_CURRENT_PROGRAM' => '1',
  'GL_CURRENT_QUERY' => '1',
  'GL_CURRENT_RASTER_COLOR' => '4',
  'GL_CURRENT_RASTER_DISTANCE' => '1',
  'GL_CURRENT_RASTER_INDEX' => '1',
  'GL_CURRENT_RASTER_POSITION' => '4',
  'GL_CURRENT_RASTER_POSITION_VALID' => '1',
  'GL_CURRENT_RASTER_TEXTURE_COORDS' => '4',
  'GL_CURRENT_SECONDARY_COLOR' => '4',
  'GL_CURRENT_TEXTURE_COORDS' => '4',
  'GL_CURRENT_VERTEX_ATTRIB' => '4',
  'GL_CURRENT_WEIGHT_ARB' => '1',
  'GL_DEBUG_CALLBACK_FUNCTION' => '1',
  'GL_DEBUG_CALLBACK_USER_PARAM' => '1',
  'GL_DEBUG_GROUP_STACK_DEPTH' => '1',
  'GL_DEBUG_LOGGED_MESSAGES' => '1',
  'GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH' => '1',
  'GL_DEBUG_OUTPUT' => '1',
  'GL_DEBUG_OUTPUT_SYNCHRONOUS' => '1',
  'GL_DELETE_STATUS' => '1',
  'GL_DEPTH' => '1',
  'GL_DEPTH_BIAS' => '1',
  'GL_DEPTH_BITS' => '1',
  'GL_DEPTH_CLAMP' => '1',
  'GL_DEPTH_CLAMP_FAR_AMD' => '1',
  'GL_DEPTH_CLAMP_NEAR_AMD' => '1',
  'GL_DEPTH_CLEAR_VALUE' => '1',
  'GL_DEPTH_COMPONENTS' => '1',
  'GL_DEPTH_FUNC' => '1',
  'GL_DEPTH_RANGE' => '2',
  'GL_DEPTH_RENDERABLE' => '1',
  'GL_DEPTH_SCALE' => '1',
  'GL_DEPTH_STENCIL_TEXTURE_MODE' => '1',
  'GL_DEPTH_TEST' => '1',
  'GL_DEPTH_TEXTURE_MODE' => '1',
  'GL_DEPTH_WRITEMASK' => '1',
  'GL_DIFFUSE' => '4',
  'GL_DISPATCH_INDIRECT_BUFFER_BINDING' => '1',
  'GL_DITHER' => '1',
  'GL_DOUBLEBUFFER' => '1',
  'GL_DOWNSAMPLE_SCALES_IMG' => '1',
  'GL_DRAW_BUFFER' => '1',
  'GL_DRAW_BUFFER0' => '1',
  'GL_DRAW_BUFFER1' => '1',
  'GL_DRAW_BUFFER10' => '1',
  'GL_DRAW_BUFFER11' => '1',
  'GL_DRAW_BUFFER12' => '1',
  'GL_DRAW_BUFFER13' => '1',
  'GL_DRAW_BUFFER14' => '1',
  'GL_DRAW_BUFFER15' => '1',
  'GL_DRAW_BUFFER2' => '1',
  'GL_DRAW_BUFFER3' => '1',
  'GL_DRAW_BUFFER4' => '1',
  'GL_DRAW_BUFFER5' => '1',
  'GL_DRAW_BUFFER6' => '1',
  'GL_DRAW_BUFFER7' => '1',
  'GL_DRAW_BUFFER8' => '1',
  'GL_DRAW_BUFFER9' => '1',
  'GL_DRAW_FRAMEBUFFER' => '1',
  'GL_DRAW_FRAMEBUFFER_BINDING' => '1',
  'GL_DRAW_INDIRECT_BUFFER_BINDING' => '1',
  'GL_EDGE_FLAG' => '1',
  'GL_EDGE_FLAG_ARRAY' => '1',
  'GL_EDGE_FLAG_ARRAY_BUFFER_BINDING' => '1',
  'GL_EDGE_FLAG_ARRAY_POINTER' => '1',
  'GL_EDGE_FLAG_ARRAY_STRIDE' => '1',
  'GL_ELEMENT_ARRAY_BUFFER_BINDING' => '1',
  'GL_ELEMENT_ARRAY_POINTER_APPLE' => '1',
  'GL_ELEMENT_ARRAY_TYPE_APPLE' => '1',
  'GL_EMISSION' => '4',
  'GL_EXTENSIONS' => '1',
  'GL_EYE_PLANE' => '4',
  'GL_FEEDBACK_BUFFER_POINTER' => '1',
  'GL_FEEDBACK_BUFFER_SIZE' => '1',
  'GL_FEEDBACK_BUFFER_TYPE' => '1',
  'GL_FILTER' => '1',
  'GL_FOG' => '1',
  'GL_FOG_COLOR' => '4',
  'GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB' => '1',
  'GL_FOG_COORD_ARRAY' => '1',
  'GL_FOG_COORD_ARRAY_BUFFER_BINDING' => '1',
  'GL_FOG_COORD_ARRAY_STRIDE' => '1',
  'GL_FOG_COORD_ARRAY_TYPE' => '1',
  'GL_FOG_COORD_SRC' => '1',
  'GL_FOG_DENSITY' => '1',
  'GL_FOG_END' => '1',
  'GL_FOG_HINT' => '1',
  'GL_FOG_INDEX' => '1',
  'GL_FOG_MODE' => '1',
  'GL_FOG_START' => '1',
  'GL_FRAGMENT_INTERPOLATION_OFFSET_BITS' => '1',
  'GL_FRAGMENT_PROGRAM_ARB' => '1',
  'GL_FRAGMENT_SHADER' => '1',
  'GL_FRAGMENT_SHADER_DERIVATIVE_HINT' => '1',
  'GL_FRAGMENT_TEXTURE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_LAYERED' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL' => '1',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR' => '1',
  'GL_FRAMEBUFFER_BLEND' => '1',
  'GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS' => '1',
  'GL_FRAMEBUFFER_DEFAULT_HEIGHT' => '1',
  'GL_FRAMEBUFFER_DEFAULT_LAYERS' => '1',
  'GL_FRAMEBUFFER_DEFAULT_SAMPLES' => '1',
  'GL_FRAMEBUFFER_DEFAULT_WIDTH' => '1',
  'GL_FRAMEBUFFER_RENDERABLE' => '1',
  'GL_FRAMEBUFFER_RENDERABLE_LAYERED' => '1',
  'GL_FRAMEBUFFER_SRGB' => '1',
  'GL_FRONT_FACE' => '1',
  'GL_GENERATE_MIPMAP' => '1',
  'GL_GENERATE_MIPMAP_HINT' => '1',
  'GL_GEOMETRY_INPUT_TYPE_ARB' => '1',
  'GL_GEOMETRY_OUTPUT_TYPE_ARB' => '1',
  'GL_GEOMETRY_SHADER' => '1',
  'GL_GEOMETRY_SHADER_INVOCATIONS' => '1',
  'GL_GEOMETRY_TEXTURE' => '1',
  'GL_GEOMETRY_VERTICES_OUT_ARB' => '1',
  'GL_GET_TEXTURE_IMAGE_FORMAT' => '1',
  'GL_GET_TEXTURE_IMAGE_TYPE' => '1',
  'GL_GLOBAL_ALPHA_FACTOR_SUN' => '1',
  'GL_GL_CONTEXT_RELEASE_BEHAVIOR' => '1',
  'GL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH' => '1',
  'GL_GL_NATIVE_GRAPHICS_HANDLE_PGI' => '1',
  'GL_GL_NONE' => '1',
  'GL_GL_TRP_IMG' => '1',
  'GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX' => '1',
  'GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX' => '1',
  'GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX' => '1',
  'GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX' => '1',
  'GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX' => '1',
  'GL_GREEN_BIAS' => '1',
  'GL_GREEN_BITS' => '1',
  'GL_GREEN_MAX_CLAMP_INGR' => '1',
  'GL_GREEN_MIN_CLAMP_INGR' => '1',
  'GL_GREEN_SCALE' => '1',
  'GL_HISTOGRAM' => '1',
  'GL_HISTOGRAM_ALPHA_SIZE' => '1',
  'GL_HISTOGRAM_BLUE_SIZE' => '1',
  'GL_HISTOGRAM_FORMAT' => '1',
  'GL_HISTOGRAM_GREEN_SIZE' => '1',
  'GL_HISTOGRAM_LUMINANCE_SIZE' => '1',
  'GL_HISTOGRAM_RED_SIZE' => '1',
  'GL_HISTOGRAM_SINK' => '1',
  'GL_HISTOGRAM_WIDTH' => '1',
  'GL_IMAGE_COMPATIBILITY_CLASS' => '1',
  'GL_IMAGE_FORMAT_COMPATIBILITY_TYPE' => '1',
  'GL_IMAGE_PIXEL_FORMAT' => '1',
  'GL_IMAGE_PIXEL_TYPE' => '1',
  'GL_IMAGE_TEXEL_SIZE' => '1',
  'GL_IMPLEMENTATION_COLOR_READ_FORMAT' => '1',
  'GL_IMPLEMENTATION_COLOR_READ_TYPE' => '1',
  'GL_INDEX_ARRAY' => '1',
  'GL_INDEX_ARRAY_BUFFER_BINDING' => '1',
  'GL_INDEX_ARRAY_POINTER' => '1',
  'GL_INDEX_ARRAY_STRIDE' => '1',
  'GL_INDEX_ARRAY_TYPE' => '1',
  'GL_INDEX_BITS' => '1',
  'GL_INDEX_CLEAR_VALUE' => '1',
  'GL_INDEX_MODE' => '1',
  'GL_INDEX_OFFSET' => '1',
  'GL_INDEX_SHIFT' => '1',
  'GL_INDEX_WRITEMASK' => '1',
  'GL_INFO_LOG_LENGTH' => '1',
  'GL_INTERLACE_OML' => '1',
  'GL_INTERLACE_READ_INGR' => '1',
  'GL_INTERLACE_READ_OML' => '1',
  'GL_INTERNALFORMAT_ALPHA_SIZE' => '1',
  'GL_INTERNALFORMAT_ALPHA_TYPE' => '1',
  'GL_INTERNALFORMAT_BLUE_SIZE' => '1',
  'GL_INTERNALFORMAT_BLUE_TYPE' => '1',
  'GL_INTERNALFORMAT_DEPTH_SIZE' => '1',
  'GL_INTERNALFORMAT_DEPTH_TYPE' => '1',
  'GL_INTERNALFORMAT_GREEN_SIZE' => '1',
  'GL_INTERNALFORMAT_GREEN_TYPE' => '1',
  'GL_INTERNALFORMAT_PREFERRED' => '1',
  'GL_INTERNALFORMAT_RED_SIZE' => '1',
  'GL_INTERNALFORMAT_RED_TYPE' => '1',
  'GL_INTERNALFORMAT_SHARED_SIZE' => '1',
  'GL_INTERNALFORMAT_STENCIL_SIZE' => '1',
  'GL_INTERNALFORMAT_STENCIL_TYPE' => '1',
  'GL_INTERNALFORMAT_SUPPORTED' => '1',
  'GL_IS_PER_PATCH' => '1',
  'GL_IS_ROW_MAJOR' => '1',
  'GL_LAYER_PROVOKING_VERTEX' => '1',
  'GL_LIGHT0' => '1',
  'GL_LIGHT1' => '1',
  'GL_LIGHT2' => '1',
  'GL_LIGHT3' => '1',
  'GL_LIGHT4' => '1',
  'GL_LIGHT5' => '1',
  'GL_LIGHT6' => '1',
  'GL_LIGHT7' => '1',
  'GL_LIGHTING' => '1',
  'GL_LIGHT_MODEL_AMBIENT' => '4',
  'GL_LIGHT_MODEL_COLOR_CONTROL' => '1',
  'GL_LIGHT_MODEL_LOCAL_VIEWER' => '1',
  'GL_LIGHT_MODEL_TWO_SIDE' => '1',
  'GL_LINEAR_ATTENUATION' => '1',
  'GL_LINE_SMOOTH' => '1',
  'GL_LINE_SMOOTH_HINT' => '1',
  'GL_LINE_STIPPLE' => '1',
  'GL_LINE_STIPPLE_PATTERN' => '1',
  'GL_LINE_STIPPLE_REPEAT' => '1',
  'GL_LINE_WIDTH' => '1',
  'GL_LINE_WIDTH_GRANULARITY' => '1',
  'GL_LINE_WIDTH_RANGE' => '2',
  'GL_LINK_STATUS' => '1',
  'GL_LIST_BASE' => '1',
  'GL_LIST_INDEX' => '1',
  'GL_LIST_MODE' => '1',
  'GL_LOCATION' => '1',
  'GL_LOCATION_INDEX' => '1',
  'GL_LOGIC_OP' => '1',
  'GL_LOGIC_OP_MODE' => '1',
  'GL_LOSE_CONTEXT_ON_RESET' => '1',
  'GL_MAJOR_VERSION' => '1',
  'GL_MANUAL_GENERATE_MIPMAP' => '1',
  'GL_MAP1_COLOR_4' => '1',
  'GL_MAP1_GRID_DOMAIN' => '2',
  'GL_MAP1_GRID_SEGMENTS' => '1',
  'GL_MAP1_INDEX' => '1',
  'GL_MAP1_NORMAL' => '1',
  'GL_MAP1_TEXTURE_COORD_1' => '1',
  'GL_MAP1_TEXTURE_COORD_2' => '1',
  'GL_MAP1_TEXTURE_COORD_3' => '1',
  'GL_MAP1_TEXTURE_COORD_4' => '1',
  'GL_MAP1_VERTEX_3' => '1',
  'GL_MAP1_VERTEX_4' => '1',
  'GL_MAP2_COLOR_4' => '1',
  'GL_MAP2_GRID_DOMAIN' => '4',
  'GL_MAP2_GRID_SEGMENTS' => '2',
  'GL_MAP2_INDEX' => '1',
  'GL_MAP2_NORMAL' => '1',
  'GL_MAP2_TEXTURE_COORD_1' => '1',
  'GL_MAP2_TEXTURE_COORD_2' => '1',
  'GL_MAP2_TEXTURE_COORD_3' => '1',
  'GL_MAP2_TEXTURE_COORD_4' => '1',
  'GL_MAP2_VERTEX_3' => '1',
  'GL_MAP2_VERTEX_4' => '1',
  'GL_MAP_COLOR' => '1',
  'GL_MAP_STENCIL' => '1',
  'GL_MATRIX_INDEX_ARRAY_ARB' => '1',
  'GL_MATRIX_INDEX_ARRAY_POINTER_ARB' => '1',
  'GL_MATRIX_INDEX_ARRAY_SIZE_ARB' => '1',
  'GL_MATRIX_INDEX_ARRAY_STRIDE_ARB' => '1',
  'GL_MATRIX_INDEX_ARRAY_TYPE_ARB' => '1',
  'GL_MATRIX_MODE' => '1',
  'GL_MATRIX_PALETTE_ARB' => '1',
  'GL_MATRIX_STRIDE' => '1',
  'GL_MAX_3D_TEXTURE_SIZE' => '1',
  'GL_MAX_ARRAY_TEXTURE_LAYERS' => '1',
  'GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS' => '1',
  'GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE' => '1',
  'GL_MAX_ATTRIB_STACK_DEPTH' => '1',
  'GL_MAX_CLIENT_ATTRIB_STACK_DEPTH' => '1',
  'GL_MAX_CLIP_PLANES' => '1',
  'GL_MAX_COLOR_ATTACHMENTS' => '1',
  'GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD' => '1',
  'GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD' => '1',
  'GL_MAX_COLOR_MATRIX_STACK_DEPTH' => '1',
  'GL_MAX_COLOR_TEXTURE_SAMPLES' => '1',
  'GL_MAX_COMBINED_ATOMIC_COUNTERS' => '1',
  'GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES' => '1',
  'GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMBINED_DIMENSIONS' => '1',
  'GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMBINED_IMAGE_UNIFORMS' => '1',
  'GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS' => '1',
  'GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_COMBINED_UNIFORM_BLOCKS' => '1',
  'GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMPUTE_ATOMIC_COUNTERS' => '1',
  'GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_COMPUTE_IMAGE_UNIFORMS' => '1',
  'GL_MAX_COMPUTE_LOCAL_INVOCATIONS' => '1',
  'GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_COMPUTE_SHARED_MEMORY_SIZE' => '1',
  'GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_COMPUTE_UNIFORM_BLOCKS' => '1',
  'GL_MAX_COMPUTE_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB' => '1',
  'GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB' => '1',
  'GL_MAX_COMPUTE_WORK_GROUP_COUNT' => '3',
  'GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS' => '1',
  'GL_MAX_COMPUTE_WORK_GROUP_SIZE' => '3',
  'GL_MAX_CONVOLUTION_HEIGHT' => '1',
  'GL_MAX_CONVOLUTION_WIDTH' => '1',
  'GL_MAX_CUBE_MAP_TEXTURE_SIZE' => '1',
  'GL_MAX_CULL_DISTANCES' => '1',
  'GL_MAX_DEBUG_GROUP_STACK_DEPTH' => '1',
  'GL_MAX_DEBUG_LOGGED_MESSAGES' => '1',
  'GL_MAX_DEBUG_MESSAGE_LENGTH' => '1',
  'GL_MAX_DEPTH' => '1',
  'GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD' => '1',
  'GL_MAX_DEPTH_TEXTURE_SAMPLES' => '1',
  'GL_MAX_DRAW_BUFFERS' => '1',
  'GL_MAX_DUAL_SOURCE_DRAW_BUFFERS' => '1',
  'GL_MAX_ELEMENTS_INDICES' => '1',
  'GL_MAX_ELEMENTS_VERTICES' => '1',
  'GL_MAX_ELEMENT_INDEX' => '1',
  'GL_MAX_EVAL_ORDER' => '1',
  'GL_MAX_FRAGMENT_ATOMIC_COUNTERS' => '1',
  'GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_FRAGMENT_IMAGE_UNIFORMS' => '1',
  'GL_MAX_FRAGMENT_INPUT_COMPONENTS' => '1',
  'GL_MAX_FRAGMENT_INTERPOLATION_OFFSET' => '1',
  'GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_FRAGMENT_UNIFORM_BLOCKS' => '1',
  'GL_MAX_FRAGMENT_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_FRAGMENT_UNIFORM_VECTORS' => '1',
  'GL_MAX_FRAMEBUFFER_HEIGHT' => '1',
  'GL_MAX_FRAMEBUFFER_LAYERS' => '1',
  'GL_MAX_FRAMEBUFFER_SAMPLES' => '1',
  'GL_MAX_FRAMEBUFFER_WIDTH' => '1',
  'GL_MAX_GEOMETRY_ATOMIC_COUNTERS' => '1',
  'GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_GEOMETRY_IMAGE_UNIFORMS' => '1',
  'GL_MAX_GEOMETRY_INPUT_COMPONENTS' => '1',
  'GL_MAX_GEOMETRY_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_GEOMETRY_OUTPUT_VERTICES' => '1',
  'GL_MAX_GEOMETRY_SHADER_INVOCATIONS' => '1',
  'GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_GEOMETRY_UNIFORM_BLOCKS' => '1',
  'GL_MAX_GEOMETRY_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB' => '1',
  'GL_MAX_HEIGHT' => '1',
  'GL_MAX_IMAGE_SAMPLES' => '1',
  'GL_MAX_IMAGE_UNITS' => '1',
  'GL_MAX_INTEGER_SAMPLES' => '1',
  'GL_MAX_LABEL_LENGTH' => '1',
  'GL_MAX_LAYERS' => '1',
  'GL_MAX_LGPU_GPUS_NVX' => '1',
  'GL_MAX_LIGHTS' => '1',
  'GL_MAX_LIST_NESTING' => '1',
  'GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB' => '1',
  'GL_MAX_MODELVIEW_STACK_DEPTH' => '1',
  'GL_MAX_NAME_LENGTH' => '1',
  'GL_MAX_NAME_STACK_DEPTH' => '1',
  'GL_MAX_NUM_ACTIVE_VARIABLES' => '1',
  'GL_MAX_NUM_COMPATIBLE_SUBROUTINES' => '1',
  'GL_MAX_PALETTE_MATRICES_ARB' => '1',
  'GL_MAX_PATCH_VERTICES' => '1',
  'GL_MAX_PIXEL_MAP_TABLE' => '1',
  'GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI' => '1',
  'GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB' => '1',
  'GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_ATTRIBS_ARB' => '1',
  'GL_MAX_PROGRAM_ENV_PARAMETERS_ARB' => '1',
  'GL_MAX_PROGRAM_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB' => '1',
  'GL_MAX_PROGRAM_MATRICES_ARB' => '1',
  'GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_PARAMETERS_ARB' => '1',
  'GL_MAX_PROGRAM_TEMPORARIES_ARB' => '1',
  'GL_MAX_PROGRAM_TEXEL_OFFSET' => '1',
  'GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB' => '1',
  'GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB' => '1',
  'GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB' => '1',
  'GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB' => '1',
  'GL_MAX_PROJECTION_STACK_DEPTH' => '1',
  'GL_MAX_RECTANGLE_TEXTURE_SIZE' => '1',
  'GL_MAX_RENDERBUFFER_SIZE' => '1',
  'GL_MAX_SAMPLES' => '1',
  'GL_MAX_SAMPLES_IMG' => '1',
  'GL_MAX_SAMPLE_MASK_WORDS' => '1',
  'GL_MAX_SERVER_WAIT_TIMEOUT' => '1',
  'GL_MAX_SHADER_COMPILER_THREADS_ARB' => '1',
  'GL_MAX_SHADER_STORAGE_BLOCK_SIZE' => '1',
  'GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS' => '1',
  'GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB' => '1',
  'GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS' => '1',
  'GL_MAX_SPARSE_TEXTURE_SIZE_ARB' => '1',
  'GL_MAX_SUBROUTINES' => '1',
  'GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS' => '1',
  'GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS' => '1',
  'GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS' => '1',
  'GL_MAX_TESS_CONTROL_INPUT_COMPONENTS' => '1',
  'GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS' => '1',
  'GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS' => '1',
  'GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS' => '1',
  'GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS' => '1',
  'GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS' => '1',
  'GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_TESS_GEN_LEVEL' => '1',
  'GL_MAX_TESS_PATCH_COMPONENTS' => '1',
  'GL_MAX_TEXTURE_BUFFER_SIZE' => '1',
  'GL_MAX_TEXTURE_COORDS' => '1',
  'GL_MAX_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_TEXTURE_LOD_BIAS' => '1',
  'GL_MAX_TEXTURE_MAX_ANISOTROPY' => '1',
  'GL_MAX_TEXTURE_SIZE' => '1',
  'GL_MAX_TEXTURE_STACK_DEPTH' => '1',
  'GL_MAX_TEXTURE_UNITS' => '1',
  'GL_MAX_TEXTURE_UNITS_ARB' => '1',
  'GL_MAX_TRANSFORM_FEEDBACK_BUFFERS' => '1',
  'GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS' => '1',
  'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS' => '1',
  'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS' => '1',
  'GL_MAX_UNIFORM_BLOCK_SIZE' => '1',
  'GL_MAX_UNIFORM_BUFFER_BINDINGS' => '1',
  'GL_MAX_UNIFORM_LOCATIONS' => '1',
  'GL_MAX_VARYING_FLOATS' => '1',
  'GL_MAX_VARYING_VECTORS' => '1',
  'GL_MAX_VERTEX_ATOMIC_COUNTERS' => '1',
  'GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS' => '1',
  'GL_MAX_VERTEX_ATTRIBS' => '1',
  'GL_MAX_VERTEX_ATTRIBS_ARB' => '1',
  'GL_MAX_VERTEX_ATTRIB_BINDINGS' => '1',
  'GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET' => '1',
  'GL_MAX_VERTEX_IMAGE_UNIFORMS' => '1',
  'GL_MAX_VERTEX_OUTPUT_COMPONENTS' => '1',
  'GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS' => '1',
  'GL_MAX_VERTEX_STREAMS' => '1',
  'GL_MAX_VERTEX_STREAMS_ATI' => '1',
  'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS' => '1',
  'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB' => '1',
  'GL_MAX_VERTEX_UNIFORM_BLOCKS' => '1',
  'GL_MAX_VERTEX_UNIFORM_COMPONENTS' => '1',
  'GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB' => '1',
  'GL_MAX_VERTEX_UNIFORM_VECTORS' => '1',
  'GL_MAX_VERTEX_UNITS_ARB' => '1',
  'GL_MAX_VERTEX_VARYING_COMPONENTS_ARB' => '1',
  'GL_MAX_VIEWPORTS' => '1',
  'GL_MAX_VIEWPORT_DIMS' => '2',
  'GL_MAX_VIEWS_OVR' => '1',
  'GL_MAX_WIDTH' => '1',
  'GL_MINMAX' => '1',
  'GL_MINMAX_FORMAT' => '1',
  'GL_MINMAX_SINK' => '1',
  'GL_MINOR_VERSION' => '1',
  'GL_MIN_FRAGMENT_INTERPOLATION_OFFSET' => '1',
  'GL_MIN_MAP_BUFFER_ALIGNMENT' => '1',
  'GL_MIN_PROGRAM_TEXEL_OFFSET' => '1',
  'GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB' => '1',
  'GL_MIN_SAMPLE_SHADING_VALUE_ARB' => '1',
  'GL_MIN_SPARSE_LEVEL_AMD' => '1',
  'GL_MIPMAP' => '1',
  'GL_MODELVIEW10_ARB' => '16',
  'GL_MODELVIEW11_ARB' => '16',
  'GL_MODELVIEW12_ARB' => '16',
  'GL_MODELVIEW13_ARB' => '16',
  'GL_MODELVIEW14_ARB' => '16',
  'GL_MODELVIEW15_ARB' => '16',
  'GL_MODELVIEW16_ARB' => '16',
  'GL_MODELVIEW17_ARB' => '16',
  'GL_MODELVIEW18_ARB' => '16',
  'GL_MODELVIEW19_ARB' => '16',
  'GL_MODELVIEW1_ARB' => '1',
  'GL_MODELVIEW20_ARB' => '16',
  'GL_MODELVIEW21_ARB' => '16',
  'GL_MODELVIEW22_ARB' => '16',
  'GL_MODELVIEW23_ARB' => '16',
  'GL_MODELVIEW24_ARB' => '16',
  'GL_MODELVIEW25_ARB' => '16',
  'GL_MODELVIEW26_ARB' => '16',
  'GL_MODELVIEW27_ARB' => '16',
  'GL_MODELVIEW28_ARB' => '16',
  'GL_MODELVIEW29_ARB' => '16',
  'GL_MODELVIEW2_ARB' => '16',
  'GL_MODELVIEW30_ARB' => '16',
  'GL_MODELVIEW31_ARB' => '16',
  'GL_MODELVIEW3_ARB' => '16',
  'GL_MODELVIEW4_ARB' => '16',
  'GL_MODELVIEW5_ARB' => '16',
  'GL_MODELVIEW6_ARB' => '16',
  'GL_MODELVIEW7_ARB' => '16',
  'GL_MODELVIEW8_ARB' => '16',
  'GL_MODELVIEW9_ARB' => '16',
  'GL_MODELVIEW_MATRIX' => '16',
  'GL_MODELVIEW_STACK_DEPTH' => '1',
  'GL_MULTISAMPLE' => '1',
  'GL_MULTISAMPLE_3DFX' => '1',
  'GL_MULTISAMPLE_ARB' => '1',
  'GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB' => '1',
  'GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB' => '1',
  'GL_NAMED_STRING_LENGTH_ARB' => '1',
  'GL_NAMED_STRING_TYPE_ARB' => '1',
  'GL_NAME_LENGTH' => '1',
  'GL_NAME_STACK_DEPTH' => '1',
  'GL_NORMALIZE' => '1',
  'GL_NORMAL_ARRAY' => '1',
  'GL_NORMAL_ARRAY_BUFFER_BINDING' => '1',
  'GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL' => '1',
  'GL_NORMAL_ARRAY_POINTER' => '1',
  'GL_NORMAL_ARRAY_STRIDE' => '1',
  'GL_NORMAL_ARRAY_TYPE' => '1',
  'GL_NO_RESET_NOTIFICATION' => '1',
  'GL_NUM_ACTIVE_VARIABLES' => '1',
  'GL_NUM_COMPATIBLE_SUBROUTINES' => '1',
  'GL_NUM_COMPRESSED_TEXTURE_FORMATS' => '1',
  'GL_NUM_DOWNSAMPLE_SCALES_IMG' => '1',
  'GL_NUM_EXTENSIONS' => '1',
  'GL_NUM_FRAGMENT_CONSTANTS_ATI' => '1',
  'GL_NUM_FRAGMENT_REGISTERS_ATI' => '1',
  'GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI' => '1',
  'GL_NUM_INSTRUCTIONS_PER_PASS_ATI' => '1',
  'GL_NUM_INSTRUCTIONS_TOTAL_ATI' => '1',
  'GL_NUM_LOOPBACK_COMPONENTS_ATI' => '1',
  'GL_NUM_PASSES_ATI' => '1',
  'GL_NUM_PROGRAM_BINARY_FORMATS' => '1',
  'GL_NUM_SAMPLE_COUNTS' => '1',
  'GL_NUM_SHADER_BINARY_FORMATS' => '1',
  'GL_NUM_SPARSE_LEVELS_ARB' => '1',
  'GL_NUM_SPIR_V_EXTENSIONS' => '1',
  'GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD' => '1',
  'GL_OBJECT_ACTIVE_UNIFORMS_ARB' => '1',
  'GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB' => '1',
  'GL_OBJECT_ATTACHED_OBJECTS_ARB' => '1',
  'GL_OBJECT_BUFFER_SIZE_ATI' => '1',
  'GL_OBJECT_BUFFER_USAGE_ATI' => '4',
  'GL_OBJECT_COMPILE_STATUS_ARB' => '1',
  'GL_OBJECT_DELETE_STATUS_ARB' => '1',
  'GL_OBJECT_INFO_LOG_LENGTH_ARB' => '1',
  'GL_OBJECT_LINK_STATUS_ARB' => '1',
  'GL_OBJECT_PLANE' => '4',
  'GL_OBJECT_SHADER_SOURCE_LENGTH_ARB' => '1',
  'GL_OBJECT_SUBTYPE_ARB' => '1',
  'GL_OBJECT_TYPE' => '1',
  'GL_OBJECT_VALIDATE_STATUS_ARB' => '1',
  'GL_OCCLUSION_TEST_HP' => '1',
  'GL_OCCLUSION_TEST_RESULT_HP' => '1',
  'GL_OFFSET' => '1',
  'GL_OPERAND0_ALPHA' => '1',
  'GL_OPERAND0_RGB' => '1',
  'GL_OPERAND1_ALPHA' => '1',
  'GL_OPERAND1_RGB' => '1',
  'GL_OPERAND2_ALPHA' => '1',
  'GL_OPERAND2_RGB' => '1',
  'GL_PACK_ALIGNMENT' => '1',
  'GL_PACK_COMPRESSED_BLOCK_DEPTH' => '1',
  'GL_PACK_COMPRESSED_BLOCK_HEIGHT' => '1',
  'GL_PACK_COMPRESSED_BLOCK_SIZE' => '1',
  'GL_PACK_COMPRESSED_BLOCK_WIDTH' => '1',
  'GL_PACK_IMAGE_HEIGHT' => '1',
  'GL_PACK_INVERT_MESA' => '1',
  'GL_PACK_LSB_FIRST' => '1',
  'GL_PACK_RESAMPLE_OML' => '1',
  'GL_PACK_REVERSE_ROW_ORDER_ANGLE' => '1',
  'GL_PACK_ROW_BYTES_APPLE' => '1',
  'GL_PACK_ROW_LENGTH' => '1',
  'GL_PACK_SKIP_IMAGES' => '1',
  'GL_PACK_SKIP_PIXELS' => '1',
  'GL_PACK_SKIP_ROWS' => '1',
  'GL_PACK_SWAP_BYTES' => '1',
  'GL_PARALLEL_ARRAYS_INTEL' => '1',
  'GL_PARAMETER_BUFFER_BINDING_ARB' => '1',
  'GL_PATCH_DEFAULT_INNER_LEVEL' => '1',
  'GL_PATCH_DEFAULT_OUTER_LEVEL' => '1',
  'GL_PATCH_VERTICES' => '1',
  'GL_PERFMON_RESULT_AMD' => '1',
  'GL_PERFMON_RESULT_AVAILABLE_AMD' => '1',
  'GL_PERFMON_RESULT_SIZE_AMD' => '1',
  'GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL' => '1',
  'GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL' => '1',
  'GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL' => '1',
  'GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL' => '1',
  'GL_PERSPECTIVE_CORRECTION_HINT' => '1',
  'GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD' => '1',
  'GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD' => '1',
  'GL_PIXEL_MAP_A_TO_A_SIZE' => '1',
  'GL_PIXEL_MAP_B_TO_B_SIZE' => '1',
  'GL_PIXEL_MAP_G_TO_G_SIZE' => '1',
  'GL_PIXEL_MAP_I_TO_A_SIZE' => '1',
  'GL_PIXEL_MAP_I_TO_B_SIZE' => '1',
  'GL_PIXEL_MAP_I_TO_G_SIZE' => '1',
  'GL_PIXEL_MAP_I_TO_I_SIZE' => '1',
  'GL_PIXEL_MAP_I_TO_R_SIZE' => '1',
  'GL_PIXEL_MAP_R_TO_R_SIZE' => '1',
  'GL_PIXEL_MAP_S_TO_S_SIZE' => '1',
  'GL_PIXEL_PACK_BUFFER_BINDING' => '1',
  'GL_PIXEL_UNPACK_BUFFER_BINDING' => '1',
  'GL_PN_TRIANGLES_NORMAL_MODE_ATI' => '1',
  'GL_PN_TRIANGLES_POINT_MODE_ATI' => '1',
  'GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI' => '1',
  'GL_POINT_DISTANCE_ATTENUATION' => '3',
  'GL_POINT_FADE_THRESHOLD_SIZE' => '1',
  'GL_POINT_SIZE' => '1',
  'GL_POINT_SIZE_GRANULARITY' => '1',
  'GL_POINT_SIZE_MAX' => '1',
  'GL_POINT_SIZE_MIN' => '1',
  'GL_POINT_SIZE_RANGE' => '2',
  'GL_POINT_SMOOTH' => '1',
  'GL_POINT_SMOOTH_HINT' => '1',
  'GL_POINT_SPRITE' => '1',
  'GL_POINT_SPRITE_ARB' => '1',
  'GL_POINT_SPRITE_COORD_ORIGIN' => '1',
  'GL_POLYGON_MODE' => '2',
  'GL_POLYGON_OFFSET_CLAMP' => '1',
  'GL_POLYGON_OFFSET_FACTOR' => '1',
  'GL_POLYGON_OFFSET_FILL' => '1',
  'GL_POLYGON_OFFSET_LINE' => '1',
  'GL_POLYGON_OFFSET_POINT' => '1',
  'GL_POLYGON_OFFSET_UNITS' => '1',
  'GL_POLYGON_SMOOTH' => '1',
  'GL_POLYGON_SMOOTH_HINT' => '1',
  'GL_POLYGON_STIPPLE' => '1',
  'GL_POSITION' => '4',
  'GL_POST_COLOR_MATRIX_ALPHA_BIAS' => '1',
  'GL_POST_COLOR_MATRIX_ALPHA_SCALE' => '1',
  'GL_POST_COLOR_MATRIX_BLUE_BIAS' => '1',
  'GL_POST_COLOR_MATRIX_BLUE_SCALE' => '1',
  'GL_POST_COLOR_MATRIX_COLOR_TABLE' => '1',
  'GL_POST_COLOR_MATRIX_GREEN_BIAS' => '1',
  'GL_POST_COLOR_MATRIX_GREEN_SCALE' => '1',
  'GL_POST_COLOR_MATRIX_RED_BIAS' => '1',
  'GL_POST_COLOR_MATRIX_RED_SCALE' => '1',
  'GL_POST_CONVOLUTION_ALPHA_BIAS' => '1',
  'GL_POST_CONVOLUTION_ALPHA_SCALE' => '1',
  'GL_POST_CONVOLUTION_BLUE_BIAS' => '1',
  'GL_POST_CONVOLUTION_BLUE_SCALE' => '1',
  'GL_POST_CONVOLUTION_COLOR_TABLE' => '1',
  'GL_POST_CONVOLUTION_GREEN_BIAS' => '1',
  'GL_POST_CONVOLUTION_GREEN_SCALE' => '1',
  'GL_POST_CONVOLUTION_RED_BIAS' => '1',
  'GL_POST_CONVOLUTION_RED_SCALE' => '1',
  'GL_PRIMITIVE_BOUNDING_BOX_ARB' => '1',
  'GL_PRIMITIVE_RESTART' => '1',
  'GL_PRIMITIVE_RESTART_FIXED_INDEX' => '1',
  'GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED' => '1',
  'GL_PRIMITIVE_RESTART_INDEX' => '1',
  'GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB' => '1',
  'GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB' => '1',
  'GL_PROGRAM_ADDRESS_REGISTERS_ARB' => '1',
  'GL_PROGRAM_ALU_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_ATTRIBS_ARB' => '1',
  'GL_PROGRAM_BINARY_FORMATS' => '1',
  'GL_PROGRAM_BINARY_LENGTH' => '1',
  'GL_PROGRAM_BINDING_ARB' => '1',
  'GL_PROGRAM_ERROR_POSITION_ARB' => '1',
  'GL_PROGRAM_ERROR_STRING_ARB' => '1',
  'GL_PROGRAM_FORMAT_ARB' => '1',
  'GL_PROGRAM_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_LENGTH_ARB' => '1',
  'GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB' => '1',
  'GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_NATIVE_ATTRIBS_ARB' => '1',
  'GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_NATIVE_PARAMETERS_ARB' => '1',
  'GL_PROGRAM_NATIVE_TEMPORARIES_ARB' => '1',
  'GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB' => '1',
  'GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_OBJECT_ARB' => '1',
  'GL_PROGRAM_PARAMETERS_ARB' => '1',
  'GL_PROGRAM_PIPELINE_BINDING' => '1',
  'GL_PROGRAM_POINT_SIZE' => '1',
  'GL_PROGRAM_STRING_ARB' => '1',
  'GL_PROGRAM_TEMPORARIES_ARB' => '1',
  'GL_PROGRAM_TEX_INDIRECTIONS_ARB' => '1',
  'GL_PROGRAM_TEX_INSTRUCTIONS_ARB' => '1',
  'GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB' => '1',
  'GL_PROJECTION_MATRIX' => '16',
  'GL_PROJECTION_STACK_DEPTH' => '1',
  'GL_PROVOKING_VERTEX' => '1',
  'GL_QUADRATIC_ATTENUATION' => '1',
  'GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION' => '1',
  'GL_QUERY_BUFFER_BINDING' => '1',
  'GL_QUERY_BUFFER_BINDING_AMD' => '1',
  'GL_QUERY_COUNTER_BITS' => '1',
  'GL_QUERY_RESULT' => '1',
  'GL_QUERY_RESULT_AVAILABLE' => '1',
  'GL_QUERY_RESULT_NO_WAIT' => '1',
  'GL_QUERY_TARGET' => '1',
  'GL_RASTERIZER_DISCARD' => '1',
  'GL_RASTER_POSITION_UNCLIPPED_IBM' => '1',
  'GL_READ_BUFFER' => '1',
  'GL_READ_FRAMEBUFFER' => '1',
  'GL_READ_FRAMEBUFFER_BINDING' => '1',
  'GL_READ_PIXELS' => '1',
  'GL_READ_PIXELS_FORMAT' => '1',
  'GL_READ_PIXELS_TYPE' => '1',
  'GL_RED_BIAS' => '1',
  'GL_RED_BITS' => '1',
  'GL_RED_MAX_CLAMP_INGR' => '1',
  'GL_RED_MIN_CLAMP_INGR' => '1',
  'GL_RED_SCALE' => '1',
  'GL_REFERENCED_BY_COMPUTE_SHADER' => '1',
  'GL_REFERENCED_BY_FRAGMENT_SHADER' => '1',
  'GL_REFERENCED_BY_GEOMETRY_SHADER' => '1',
  'GL_REFERENCED_BY_TESS_CONTROL_SHADER' => '1',
  'GL_REFERENCED_BY_TESS_EVALUATION_SHADER' => '1',
  'GL_REFERENCED_BY_VERTEX_SHADER' => '1',
  'GL_RENDERBUFFER_ALPHA_SIZE' => '1',
  'GL_RENDERBUFFER_BINDING' => '1',
  'GL_RENDERBUFFER_BLUE_SIZE' => '1',
  'GL_RENDERBUFFER_DEPTH_SIZE' => '1',
  'GL_RENDERBUFFER_FREE_MEMORY_ATI' => '1',
  'GL_RENDERBUFFER_GREEN_SIZE' => '1',
  'GL_RENDERBUFFER_HEIGHT' => '1',
  'GL_RENDERBUFFER_INTERNAL_FORMAT' => '1',
  'GL_RENDERBUFFER_RED_SIZE' => '1',
  'GL_RENDERBUFFER_SAMPLES' => '1',
  'GL_RENDERBUFFER_STENCIL_SIZE' => '1',
  'GL_RENDERBUFFER_WIDTH' => '1',
  'GL_RENDERER' => '1',
  'GL_RENDER_MODE' => '1',
  'GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN' => '1',
  'GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN' => '1',
  'GL_REPLACEMENT_CODE_SUN' => '1',
  'GL_RESCALE_NORMAL' => '1',
  'GL_RESET_NOTIFICATION_STRATEGY' => '1',
  'GL_RESET_NOTIFICATION_STRATEGY_ARB' => '1',
  'GL_RGBA_FLOAT_MODE_ARB' => '1',
  'GL_RGBA_FLOAT_MODE_ATI' => '1',
  'GL_RGBA_MODE' => '1',
  'GL_RGB_SCALE' => '1',
  'GL_SAMPLER_BINDING' => '1',
  'GL_SAMPLES' => '1',
  'GL_SAMPLE_ALPHA_TO_COVERAGE' => '1',
  'GL_SAMPLE_ALPHA_TO_ONE' => '1',
  'GL_SAMPLE_BUFFERS' => '1',
  'GL_SAMPLE_COVERAGE' => '1',
  'GL_SAMPLE_COVERAGE_INVERT' => '1',
  'GL_SAMPLE_COVERAGE_VALUE' => '1',
  'GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB' => '1',
  'GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB' => '1',
  'GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB' => '1',
  'GL_SAMPLE_MASK' => '1',
  'GL_SAMPLE_MASK_VALUE' => '1',
  'GL_SAMPLE_POSITION' => '2',
  'GL_SAMPLE_SHADING_ARB' => '1',
  'GL_SCISSOR_BOX' => '4',
  'GL_SCISSOR_TEST' => '1',
  'GL_SECONDARY_COLOR_ARRAY' => '1',
  'GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING' => '1',
  'GL_SECONDARY_COLOR_ARRAY_SIZE' => '1',
  'GL_SECONDARY_COLOR_ARRAY_STRIDE' => '1',
  'GL_SECONDARY_COLOR_ARRAY_TYPE' => '1',
  'GL_SELECTION_BUFFER_POINTER' => '1',
  'GL_SELECTION_BUFFER_SIZE' => '1',
  'GL_SEPARABLE_2D' => '1',
  'GL_SHADER_BINARY_FORMATS' => '1',
  'GL_SHADER_COMPILER' => '1',
  'GL_SHADER_IMAGE_ATOMIC' => '1',
  'GL_SHADER_IMAGE_LOAD' => '1',
  'GL_SHADER_IMAGE_STORE' => '1',
  'GL_SHADER_SOURCE_LENGTH' => '1',
  'GL_SHADER_STORAGE_BUFFER' => '1',
  'GL_SHADER_STORAGE_BUFFER_BINDING' => '1',
  'GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT' => '1',
  'GL_SHADER_STORAGE_BUFFER_SIZE' => '1',
  'GL_SHADER_STORAGE_BUFFER_START' => '1',
  'GL_SHADER_TYPE' => '1',
  'GL_SHADE_MODEL' => '1',
  'GL_SHADING_LANGUAGE_VERSION' => '1',
  'GL_SHININESS' => '1',
  'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST' => '1',
  'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE' => '1',
  'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST' => '1',
  'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE' => '1',
  'GL_SPARSE_BUFFER_PAGE_SIZE_ARB' => '1',
  'GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB' => '1',
  'GL_SPECULAR' => '4',
  'GL_SPIR_V_BINARY_ARB' => '1',
  'GL_SPOT_CUTOFF' => '1',
  'GL_SPOT_DIRECTION' => '3',
  'GL_SPOT_EXPONENT' => '1',
  'GL_SRC0_ALPHA' => '1',
  'GL_SRC0_RGB' => '1',
  'GL_SRC1_ALPHA' => '1',
  'GL_SRC1_RGB' => '1',
  'GL_SRC2_ALPHA' => '1',
  'GL_SRC2_RGB' => '1',
  'GL_SRGB_DECODE_ARB' => '1',
  'GL_SRGB_READ' => '1',
  'GL_SRGB_WRITE' => '1',
  'GL_STENCIL' => '1',
  'GL_STENCIL_BACK_FAIL' => '1',
  'GL_STENCIL_BACK_FUNC' => '1',
  'GL_STENCIL_BACK_OP_VALUE_AMD' => '1',
  'GL_STENCIL_BACK_PASS_DEPTH_FAIL' => '1',
  'GL_STENCIL_BACK_PASS_DEPTH_PASS' => '1',
  'GL_STENCIL_BACK_REF' => '1',
  'GL_STENCIL_BACK_VALUE_MASK' => '1',
  'GL_STENCIL_BACK_WRITEMASK' => '1',
  'GL_STENCIL_BITS' => '1',
  'GL_STENCIL_CLEAR_VALUE' => '1',
  'GL_STENCIL_COMPONENTS' => '1',
  'GL_STENCIL_FAIL' => '1',
  'GL_STENCIL_FUNC' => '1',
  'GL_STENCIL_OP_VALUE_AMD' => '1',
  'GL_STENCIL_PASS_DEPTH_FAIL' => '1',
  'GL_STENCIL_PASS_DEPTH_PASS' => '1',
  'GL_STENCIL_REF' => '1',
  'GL_STENCIL_RENDERABLE' => '1',
  'GL_STENCIL_TEST' => '1',
  'GL_STENCIL_VALUE_MASK' => '1',
  'GL_STENCIL_WRITEMASK' => '1',
  'GL_STEREO' => '1',
  'GL_SUBGROUP_QUAD_ALL_STAGES_KHR' => '1',
  'GL_SUBGROUP_SIZE_KHR' => '1',
  'GL_SUBGROUP_SUPPORTED_FEATURES_KHR' => '1',
  'GL_SUBGROUP_SUPPORTED_STAGES_KHR' => '1',
  'GL_SUBPIXEL_BITS' => '1',
  'GL_SUBSAMPLE_DISTANCE_AMD' => '1',
  'GL_SUPPORTED_MULTISAMPLE_MODES_AMD' => '1',
  'GL_SYNC_CONDITION' => '1',
  'GL_SYNC_FLAGS' => '1',
  'GL_SYNC_STATUS' => '1',
  'GL_TESSELLATION_MODE_AMD' => '1',
  'GL_TESS_CONTROL_OUTPUT_VERTICES' => '1',
  'GL_TESS_CONTROL_SHADER' => '1',
  'GL_TESS_CONTROL_TEXTURE' => '1',
  'GL_TESS_EVALUATION_SHADER' => '1',
  'GL_TESS_EVALUATION_TEXTURE' => '1',
  'GL_TESS_GEN_MODE' => '1',
  'GL_TESS_GEN_POINT_MODE' => '1',
  'GL_TESS_GEN_SPACING' => '1',
  'GL_TESS_GEN_VERTEX_ORDER' => '1',
  'GL_TEXTURE_1D' => '1',
  'GL_TEXTURE_1D_ARRAY' => '1',
  'GL_TEXTURE_1D_STACK_BINDING_MESAX' => '1',
  'GL_TEXTURE_1D_STACK_MESAX' => '1',
  'GL_TEXTURE_2D' => '1',
  'GL_TEXTURE_2D_ARRAY' => '1',
  'GL_TEXTURE_2D_STACK_BINDING_MESAX' => '1',
  'GL_TEXTURE_2D_STACK_MESAX' => '1',
  'GL_TEXTURE_3D' => '1',
  'GL_TEXTURE_ALPHA_SIZE' => '1',
  'GL_TEXTURE_ALPHA_TYPE' => '1',
  'GL_TEXTURE_BASE_LEVEL' => '1',
  'GL_TEXTURE_BINDING' => '1',
  'GL_TEXTURE_BINDING_1D' => '1',
  'GL_TEXTURE_BINDING_1D_ARRAY' => '1',
  'GL_TEXTURE_BINDING_2D' => '1',
  'GL_TEXTURE_BINDING_2D_ARRAY' => '1',
  'GL_TEXTURE_BINDING_2D_MULTISAMPLE' => '1',
  'GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY' => '1',
  'GL_TEXTURE_BINDING_3D' => '1',
  'GL_TEXTURE_BINDING_BUFFER' => '1',
  'GL_TEXTURE_BINDING_CUBE_MAP' => '1',
  'GL_TEXTURE_BINDING_CUBE_MAP_ARRAY' => '1',
  'GL_TEXTURE_BINDING_RECTANGLE' => '1',
  'GL_TEXTURE_BLUE_SIZE' => '1',
  'GL_TEXTURE_BLUE_TYPE' => '1',
  'GL_TEXTURE_BORDER' => '1',
  'GL_TEXTURE_BORDER_COLOR' => '4',
  'GL_TEXTURE_BUFFER' => '1',
  'GL_TEXTURE_BUFFER_DATA_STORE_BINDING' => '1',
  'GL_TEXTURE_BUFFER_FORMAT' => '1',
  'GL_TEXTURE_BUFFER_OFFSET' => '1',
  'GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT' => '1',
  'GL_TEXTURE_BUFFER_SIZE' => '1',
  'GL_TEXTURE_COLOR_TABLE_SGI' => '1',
  'GL_TEXTURE_COMPARE_FAIL_VALUE_ARB' => '1',
  'GL_TEXTURE_COMPARE_FUNC' => '1',
  'GL_TEXTURE_COMPARE_MODE' => '1',
  'GL_TEXTURE_COMPRESSED' => '1',
  'GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT' => '1',
  'GL_TEXTURE_COMPRESSED_BLOCK_SIZE' => '1',
  'GL_TEXTURE_COMPRESSED_BLOCK_WIDTH' => '1',
  'GL_TEXTURE_COMPRESSED_IMAGE_SIZE' => '1',
  'GL_TEXTURE_COMPRESSION_HINT' => '1',
  'GL_TEXTURE_COORD_ARRAY' => '1',
  'GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING' => '1',
  'GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL' => '1',
  'GL_TEXTURE_COORD_ARRAY_POINTER' => '1',
  'GL_TEXTURE_COORD_ARRAY_SIZE' => '1',
  'GL_TEXTURE_COORD_ARRAY_STRIDE' => '1',
  'GL_TEXTURE_COORD_ARRAY_TYPE' => '1',
  'GL_TEXTURE_CUBE_MAP' => '1',
  'GL_TEXTURE_CUBE_MAP_ARRAY' => '1',
  'GL_TEXTURE_CUBE_MAP_SEAMLESS' => '1',
  'GL_TEXTURE_DEPTH' => '1',
  'GL_TEXTURE_DEPTH_SIZE' => '1',
  'GL_TEXTURE_DEPTH_TYPE' => '1',
  'GL_TEXTURE_ENV_COLOR' => '4',
  'GL_TEXTURE_ENV_MODE' => '1',
  'GL_TEXTURE_FIXED_SAMPLE_LOCATIONS' => '1',
  'GL_TEXTURE_FREE_MEMORY_ATI' => '1',
  'GL_TEXTURE_GATHER' => '1',
  'GL_TEXTURE_GATHER_SHADOW' => '1',
  'GL_TEXTURE_GEN_MODE' => '1',
  'GL_TEXTURE_GEN_Q' => '1',
  'GL_TEXTURE_GEN_R' => '1',
  'GL_TEXTURE_GEN_S' => '1',
  'GL_TEXTURE_GEN_T' => '1',
  'GL_TEXTURE_GREEN_SIZE' => '1',
  'GL_TEXTURE_GREEN_TYPE' => '1',
  'GL_TEXTURE_HEIGHT' => '1',
  'GL_TEXTURE_IMAGE_FORMAT' => '1',
  'GL_TEXTURE_IMAGE_TYPE' => '1',
  'GL_TEXTURE_IMMUTABLE_FORMAT' => '1',
  'GL_TEXTURE_IMMUTABLE_LEVELS' => '1',
  'GL_TEXTURE_INTENSITY_SIZE' => '1',
  'GL_TEXTURE_INTENSITY_TYPE' => '1',
  'GL_TEXTURE_INTERNAL_FORMAT' => '1',
  'GL_TEXTURE_LOD_BIAS' => '1',
  'GL_TEXTURE_LUMINANCE_SIZE' => '1',
  'GL_TEXTURE_LUMINANCE_TYPE' => '1',
  'GL_TEXTURE_MAG_FILTER' => '1',
  'GL_TEXTURE_MATRIX' => '16',
  'GL_TEXTURE_MAX_LEVEL' => '1',
  'GL_TEXTURE_MAX_LOD' => '1',
  'GL_TEXTURE_MIN_FILTER' => '1',
  'GL_TEXTURE_MIN_LOD' => '1',
  'GL_TEXTURE_PRIORITY' => '1',
  'GL_TEXTURE_RANGE_POINTER_APPLE' => '1',
  'GL_TEXTURE_RECTANGLE' => '1',
  'GL_TEXTURE_RED_SIZE' => '1',
  'GL_TEXTURE_RED_TYPE' => '1',
  'GL_TEXTURE_RESIDENT' => '1',
  'GL_TEXTURE_SAMPLES' => '1',
  'GL_TEXTURE_SAMPLES_IMG' => '1',
  'GL_TEXTURE_SHADOW' => '1',
  'GL_TEXTURE_STACK_DEPTH' => '1',
  'GL_TEXTURE_STENCIL_SIZE' => '1',
  'GL_TEXTURE_STORAGE_HINT_APPLE' => '1',
  'GL_TEXTURE_SWIZZLE_A' => '1',
  'GL_TEXTURE_SWIZZLE_B' => '1',
  'GL_TEXTURE_SWIZZLE_G' => '1',
  'GL_TEXTURE_SWIZZLE_R' => '1',
  'GL_TEXTURE_SWIZZLE_RGBA' => '4',
  'GL_TEXTURE_TARGET' => '1',
  'GL_TEXTURE_VIEW' => '1',
  'GL_TEXTURE_VIEW_MIN_LAYER' => '1',
  'GL_TEXTURE_VIEW_MIN_LEVEL' => '1',
  'GL_TEXTURE_VIEW_NUM_LAYERS' => '1',
  'GL_TEXTURE_VIEW_NUM_LEVELS' => '1',
  'GL_TEXTURE_WIDTH' => '1',
  'GL_TEXTURE_WRAP_R' => '1',
  'GL_TEXTURE_WRAP_S' => '1',
  'GL_TEXTURE_WRAP_T' => '1',
  'GL_TEXT_FRAGMENT_SHADER_ATI' => '1',
  'GL_TIMESTAMP' => '1',
  'GL_TOP_LEVEL_ARRAY_SIZE' => '1',
  'GL_TOP_LEVEL_ARRAY_STRIDE' => '1',
  'GL_TRANSFORM_FEEDBACK_BINDING' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_MODE' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE' => '1',
  'GL_TRANSFORM_FEEDBACK_BUFFER_START' => '1',
  'GL_TRANSFORM_FEEDBACK_VARYINGS' => '1',
  'GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH' => '1',
  'GL_TRANSPOSE_COLOR_MATRIX' => '16',
  'GL_TRANSPOSE_CURRENT_MATRIX_ARB' => '16',
  'GL_TRANSPOSE_MODELVIEW_MATRIX' => '16',
  'GL_TRANSPOSE_PROJECTION_MATRIX' => '16',
  'GL_TRANSPOSE_TEXTURE_MATRIX' => '16',
  'GL_TYPE' => '1',
  'GL_TYPE_RGBA_FLOAT_ATI' => '1',
  'GL_UNIFORM_ARRAY_STRIDE' => '1',
  'GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX' => '1',
  'GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS' => '1',
  'GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES' => '1',
  'GL_UNIFORM_BLOCK_BINDING' => '1',
  'GL_UNIFORM_BLOCK_DATA_SIZE' => '1',
  'GL_UNIFORM_BLOCK_INDEX' => '1',
  'GL_UNIFORM_BLOCK_NAME_LENGTH' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER' => '1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER' => '1',
  'GL_UNIFORM_BUFFER_BINDING' => '1',
  'GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT' => '1',
  'GL_UNIFORM_BUFFER_SIZE' => '1',
  'GL_UNIFORM_BUFFER_START' => '1',
  'GL_UNIFORM_IS_ROW_MAJOR' => '1',
  'GL_UNIFORM_MATRIX_STRIDE' => '1',
  'GL_UNIFORM_NAME_LENGTH' => '1',
  'GL_UNIFORM_OFFSET' => '1',
  'GL_UNIFORM_SIZE' => '1',
  'GL_UNIFORM_TYPE' => '1',
  'GL_UNPACK_ALIGNMENT' => '1',
  'GL_UNPACK_CLIENT_STORAGE_APPLE' => '1',
  'GL_UNPACK_COMPRESSED_BLOCK_DEPTH' => '1',
  'GL_UNPACK_COMPRESSED_BLOCK_HEIGHT' => '1',
  'GL_UNPACK_COMPRESSED_BLOCK_SIZE' => '1',
  'GL_UNPACK_COMPRESSED_BLOCK_WIDTH' => '1',
  'GL_UNPACK_IMAGE_HEIGHT' => '1',
  'GL_UNPACK_LSB_FIRST' => '1',
  'GL_UNPACK_RESAMPLE_OML' => '1',
  'GL_UNPACK_ROW_BYTES_APPLE' => '1',
  'GL_UNPACK_ROW_LENGTH' => '1',
  'GL_UNPACK_SKIP_IMAGES' => '1',
  'GL_UNPACK_SKIP_PIXELS' => '1',
  'GL_UNPACK_SKIP_ROWS' => '1',
  'GL_UNPACK_SWAP_BYTES' => '1',
  'GL_UPLOAD_GPU_MASK_NVX' => '1',
  'GL_VALIDATE_STATUS' => '1',
  'GL_VBO_FREE_MEMORY_ATI' => '1',
  'GL_VENDOR' => '1',
  'GL_VERSION' => '1',
  'GL_VERTEX_ARRAY' => '1',
  'GL_VERTEX_ARRAY_BINDING' => '1',
  'GL_VERTEX_ARRAY_BUFFER_BINDING' => '1',
  'GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL' => '1',
  'GL_VERTEX_ARRAY_POINTER' => '1',
  'GL_VERTEX_ARRAY_SIZE' => '1',
  'GL_VERTEX_ARRAY_STRIDE' => '1',
  'GL_VERTEX_ARRAY_TYPE' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_DIVISOR' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_ENABLED' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_INTEGER' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_LONG' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_POINTER' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_SIZE' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_STRIDE' => '1',
  'GL_VERTEX_ATTRIB_ARRAY_TYPE' => '1',
  'GL_VERTEX_ATTRIB_BINDING' => '1',
  'GL_VERTEX_ATTRIB_RELATIVE_OFFSET' => '1',
  'GL_VERTEX_BINDING_DIVISOR' => '1',
  'GL_VERTEX_BINDING_OFFSET' => '1',
  'GL_VERTEX_BINDING_STRIDE' => '1',
  'GL_VERTEX_BLEND_ARB' => '1',
  'GL_VERTEX_PROGRAM_ARB' => '1',
  'GL_VERTEX_PROGRAM_POINT_SIZE' => '1',
  'GL_VERTEX_PROGRAM_TWO_SIDE' => '1',
  'GL_VERTEX_SHADER' => '1',
  'GL_VERTEX_TEXTURE' => '1',
  'GL_VIEWPORT' => '4',
  'GL_VIEWPORT_BOUNDS_RANGE' => '2',
  'GL_VIEWPORT_INDEX_PROVOKING_VERTEX' => '1',
  'GL_VIEWPORT_SUBPIXEL_BITS' => '1',
  'GL_VIEW_COMPATIBILITY_CLASS' => '1',
  'GL_WEIGHT_ARRAY_ARB' => '1',
  'GL_WEIGHT_ARRAY_BUFFER_BINDING' => '1',
  'GL_WEIGHT_ARRAY_POINTER_ARB' => '1',
  'GL_WEIGHT_ARRAY_SIZE_ARB' => '1',
  'GL_WEIGHT_ARRAY_STRIDE_ARB' => '1',
  'GL_WEIGHT_ARRAY_TYPE_ARB' => '1',
  'GL_WEIGHT_SUM_UNITY_ARB' => '1',
  'GL_ZOOM_X' => '1',
  'GL_ZOOM_Y' => '1'
);

our %groups = (
  'AccumOp' => [
    'GL_ACCUM',
    'GL_LOAD',
    'GL_RETURN',
    'GL_MULT',
    'GL_ADD'
  ],
  'AlphaFunction' => [
    'GL_NEVER',
    'GL_LESS',
    'GL_EQUAL',
    'GL_LEQUAL',
    'GL_GREATER',
    'GL_NOTEQUAL',
    'GL_GEQUAL',
    'GL_ALWAYS'
  ],
  'ArrayObjectPNameATI' => [
    'GL_OBJECT_BUFFER_SIZE_ATI',
    'GL_OBJECT_BUFFER_USAGE_ATI'
  ],
  'ArrayObjectUsageATI' => [
    'GL_STATIC_ATI',
    'GL_DYNAMIC_ATI'
  ],
  'AtomicCounterBufferPName' => [
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER',
    'GL_ATOMIC_COUNTER_BUFFER_BINDING',
    'GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE',
    'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS',
    'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES',
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER',
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER',
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER',
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER',
    'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER'
  ],
  'AttribMask' => [
    'GL_CURRENT_BIT',
    'GL_POINT_BIT',
    'GL_LINE_BIT',
    'GL_POLYGON_BIT',
    'GL_POLYGON_STIPPLE_BIT',
    'GL_PIXEL_MODE_BIT',
    'GL_LIGHTING_BIT',
    'GL_FOG_BIT',
    'GL_DEPTH_BUFFER_BIT',
    'GL_ACCUM_BUFFER_BIT',
    'GL_STENCIL_BUFFER_BIT',
    'GL_VIEWPORT_BIT',
    'GL_TRANSFORM_BIT',
    'GL_ENABLE_BIT',
    'GL_COLOR_BUFFER_BIT',
    'GL_HINT_BIT',
    'GL_EVAL_BIT',
    'GL_LIST_BIT',
    'GL_TEXTURE_BIT',
    'GL_SCISSOR_BIT',
    'GL_MULTISAMPLE_BIT',
    'GL_MULTISAMPLE_BIT_ARB',
    'GL_MULTISAMPLE_BIT_EXT',
    'GL_MULTISAMPLE_BIT_3DFX',
    'GL_ALL_ATTRIB_BITS'
  ],
  'AttributeType' => [
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_INT64_ARB',
    'GL_INT64_NV',
    'GL_UNSIGNED_INT64_ARB',
    'GL_UNSIGNED_INT64_NV',
    'GL_FLOAT_VEC2',
    'GL_FLOAT_VEC2_ARB',
    'GL_FLOAT_VEC3',
    'GL_FLOAT_VEC3_ARB',
    'GL_FLOAT_VEC4',
    'GL_FLOAT_VEC4_ARB',
    'GL_INT_VEC2',
    'GL_INT_VEC2_ARB',
    'GL_INT_VEC3',
    'GL_INT_VEC3_ARB',
    'GL_INT_VEC4',
    'GL_INT_VEC4_ARB',
    'GL_BOOL',
    'GL_BOOL_ARB',
    'GL_BOOL_VEC2',
    'GL_BOOL_VEC2_ARB',
    'GL_BOOL_VEC3',
    'GL_BOOL_VEC3_ARB',
    'GL_BOOL_VEC4',
    'GL_BOOL_VEC4_ARB',
    'GL_FLOAT_MAT2',
    'GL_FLOAT_MAT2_ARB',
    'GL_FLOAT_MAT3',
    'GL_FLOAT_MAT3_ARB',
    'GL_FLOAT_MAT4',
    'GL_FLOAT_MAT4_ARB',
    'GL_SAMPLER_1D',
    'GL_SAMPLER_1D_ARB',
    'GL_SAMPLER_2D',
    'GL_SAMPLER_2D_ARB',
    'GL_SAMPLER_3D',
    'GL_SAMPLER_3D_ARB',
    'GL_SAMPLER_CUBE',
    'GL_SAMPLER_CUBE_ARB',
    'GL_SAMPLER_1D_SHADOW',
    'GL_SAMPLER_1D_SHADOW_ARB',
    'GL_SAMPLER_2D_SHADOW',
    'GL_SAMPLER_2D_SHADOW_ARB',
    'GL_SAMPLER_2D_SHADOW_EXT',
    'GL_SAMPLER_2D_RECT',
    'GL_SAMPLER_2D_RECT_ARB',
    'GL_SAMPLER_2D_RECT_SHADOW',
    'GL_SAMPLER_2D_RECT_SHADOW_ARB',
    'GL_FLOAT_MAT2x3',
    'GL_FLOAT_MAT2x3_NV',
    'GL_FLOAT_MAT2x4',
    'GL_FLOAT_MAT2x4_NV',
    'GL_FLOAT_MAT3x2',
    'GL_FLOAT_MAT3x2_NV',
    'GL_FLOAT_MAT3x4',
    'GL_FLOAT_MAT3x4_NV',
    'GL_FLOAT_MAT4x2',
    'GL_FLOAT_MAT4x2_NV',
    'GL_FLOAT_MAT4x3',
    'GL_FLOAT_MAT4x3_NV',
    'GL_SAMPLER_BUFFER',
    'GL_SAMPLER_1D_ARRAY_SHADOW',
    'GL_SAMPLER_2D_ARRAY_SHADOW',
    'GL_SAMPLER_CUBE_SHADOW',
    'GL_UNSIGNED_INT_VEC2',
    'GL_UNSIGNED_INT_VEC3',
    'GL_UNSIGNED_INT_VEC4',
    'GL_INT_SAMPLER_1D',
    'GL_INT_SAMPLER_2D',
    'GL_INT_SAMPLER_3D',
    'GL_INT_SAMPLER_CUBE',
    'GL_INT_SAMPLER_2D_RECT',
    'GL_INT_SAMPLER_1D_ARRAY',
    'GL_INT_SAMPLER_2D_ARRAY',
    'GL_INT_SAMPLER_BUFFER',
    'GL_UNSIGNED_INT_SAMPLER_1D',
    'GL_UNSIGNED_INT_SAMPLER_2D',
    'GL_UNSIGNED_INT_SAMPLER_3D',
    'GL_UNSIGNED_INT_SAMPLER_CUBE',
    'GL_UNSIGNED_INT_SAMPLER_2D_RECT',
    'GL_UNSIGNED_INT_SAMPLER_1D_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_2D_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_BUFFER',
    'GL_DOUBLE_MAT2',
    'GL_DOUBLE_MAT3',
    'GL_DOUBLE_MAT4',
    'GL_DOUBLE_MAT2x3',
    'GL_DOUBLE_MAT2x4',
    'GL_DOUBLE_MAT3x2',
    'GL_DOUBLE_MAT3x4',
    'GL_DOUBLE_MAT4x2',
    'GL_DOUBLE_MAT4x3',
    'GL_INT64_VEC2_ARB',
    'GL_INT64_VEC3_ARB',
    'GL_INT64_VEC4_ARB',
    'GL_UNSIGNED_INT64_VEC2_ARB',
    'GL_UNSIGNED_INT64_VEC3_ARB',
    'GL_UNSIGNED_INT64_VEC4_ARB',
    'GL_DOUBLE_VEC2',
    'GL_DOUBLE_VEC3',
    'GL_DOUBLE_VEC4',
    'GL_SAMPLER_CUBE_MAP_ARRAY',
    'GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW',
    'GL_INT_SAMPLER_CUBE_MAP_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY',
    'GL_IMAGE_1D',
    'GL_IMAGE_2D',
    'GL_IMAGE_3D',
    'GL_IMAGE_2D_RECT',
    'GL_IMAGE_CUBE',
    'GL_IMAGE_BUFFER',
    'GL_IMAGE_1D_ARRAY',
    'GL_IMAGE_2D_ARRAY',
    'GL_IMAGE_CUBE_MAP_ARRAY',
    'GL_IMAGE_2D_MULTISAMPLE',
    'GL_IMAGE_2D_MULTISAMPLE_ARRAY',
    'GL_INT_IMAGE_1D',
    'GL_INT_IMAGE_2D',
    'GL_INT_IMAGE_3D',
    'GL_INT_IMAGE_2D_RECT',
    'GL_INT_IMAGE_CUBE',
    'GL_INT_IMAGE_BUFFER',
    'GL_INT_IMAGE_1D_ARRAY',
    'GL_INT_IMAGE_2D_ARRAY',
    'GL_INT_IMAGE_CUBE_MAP_ARRAY',
    'GL_INT_IMAGE_2D_MULTISAMPLE',
    'GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY',
    'GL_UNSIGNED_INT_IMAGE_1D',
    'GL_UNSIGNED_INT_IMAGE_2D',
    'GL_UNSIGNED_INT_IMAGE_3D',
    'GL_UNSIGNED_INT_IMAGE_2D_RECT',
    'GL_UNSIGNED_INT_IMAGE_CUBE',
    'GL_UNSIGNED_INT_IMAGE_BUFFER',
    'GL_UNSIGNED_INT_IMAGE_1D_ARRAY',
    'GL_UNSIGNED_INT_IMAGE_2D_ARRAY',
    'GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY',
    'GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE',
    'GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY',
    'GL_SAMPLER_2D_MULTISAMPLE',
    'GL_INT_SAMPLER_2D_MULTISAMPLE',
    'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE',
    'GL_SAMPLER_2D_MULTISAMPLE_ARRAY',
    'GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
  ],
  'BindTransformFeedbackTarget' => [
    'GL_TRANSFORM_FEEDBACK'
  ],
  'BinormalPointerTypeEXT' => [
    'GL_BYTE',
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_DOUBLE_EXT'
  ],
  'BlendEquationModeEXT' => [
    'GL_FUNC_ADD',
    'GL_FUNC_ADD_EXT',
    'GL_MIN',
    'GL_MIN_EXT',
    'GL_MAX',
    'GL_MAX_EXT',
    'GL_FUNC_SUBTRACT',
    'GL_FUNC_SUBTRACT_EXT',
    'GL_FUNC_REVERSE_SUBTRACT',
    'GL_FUNC_REVERSE_SUBTRACT_EXT',
    'GL_ALPHA_MIN_SGIX',
    'GL_ALPHA_MAX_SGIX'
  ],
  'BlendingFactor' => [
    'GL_ZERO',
    'GL_ONE',
    'GL_SRC_COLOR',
    'GL_ONE_MINUS_SRC_COLOR',
    'GL_SRC_ALPHA',
    'GL_ONE_MINUS_SRC_ALPHA',
    'GL_DST_ALPHA',
    'GL_ONE_MINUS_DST_ALPHA',
    'GL_DST_COLOR',
    'GL_ONE_MINUS_DST_COLOR',
    'GL_SRC_ALPHA_SATURATE',
    'GL_CONSTANT_COLOR',
    'GL_ONE_MINUS_CONSTANT_COLOR',
    'GL_CONSTANT_ALPHA',
    'GL_ONE_MINUS_CONSTANT_ALPHA',
    'GL_SRC1_ALPHA',
    'GL_SRC1_COLOR',
    'GL_ONE_MINUS_SRC1_COLOR',
    'GL_ONE_MINUS_SRC1_ALPHA'
  ],
  'BlitFramebufferFilter' => [
    'GL_NEAREST',
    'GL_LINEAR'
  ],
  'Boolean' => [
    'GL_FALSE',
    'GL_TRUE'
  ],
  'Buffer' => [
    'GL_COLOR',
    'GL_DEPTH',
    'GL_STENCIL'
  ],
  'BufferAccessARB' => [
    'GL_READ_ONLY',
    'GL_WRITE_ONLY',
    'GL_READ_WRITE'
  ],
  'BufferBitQCOM' => [
    'GL_COLOR_BUFFER_BIT0_QCOM',
    'GL_COLOR_BUFFER_BIT1_QCOM',
    'GL_COLOR_BUFFER_BIT2_QCOM',
    'GL_COLOR_BUFFER_BIT3_QCOM',
    'GL_COLOR_BUFFER_BIT4_QCOM',
    'GL_COLOR_BUFFER_BIT5_QCOM',
    'GL_COLOR_BUFFER_BIT6_QCOM',
    'GL_COLOR_BUFFER_BIT7_QCOM',
    'GL_DEPTH_BUFFER_BIT0_QCOM',
    'GL_DEPTH_BUFFER_BIT1_QCOM',
    'GL_DEPTH_BUFFER_BIT2_QCOM',
    'GL_DEPTH_BUFFER_BIT3_QCOM',
    'GL_DEPTH_BUFFER_BIT4_QCOM',
    'GL_DEPTH_BUFFER_BIT5_QCOM',
    'GL_DEPTH_BUFFER_BIT6_QCOM',
    'GL_DEPTH_BUFFER_BIT7_QCOM',
    'GL_STENCIL_BUFFER_BIT0_QCOM',
    'GL_STENCIL_BUFFER_BIT1_QCOM',
    'GL_STENCIL_BUFFER_BIT2_QCOM',
    'GL_STENCIL_BUFFER_BIT3_QCOM',
    'GL_STENCIL_BUFFER_BIT4_QCOM',
    'GL_STENCIL_BUFFER_BIT5_QCOM',
    'GL_STENCIL_BUFFER_BIT6_QCOM',
    'GL_STENCIL_BUFFER_BIT7_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT0_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT1_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT2_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT3_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT4_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT5_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT6_QCOM',
    'GL_MULTISAMPLE_BUFFER_BIT7_QCOM'
  ],
  'BufferPNameARB' => [
    'GL_BUFFER_IMMUTABLE_STORAGE',
    'GL_BUFFER_STORAGE_FLAGS',
    'GL_BUFFER_SIZE',
    'GL_BUFFER_SIZE_ARB',
    'GL_BUFFER_USAGE',
    'GL_BUFFER_USAGE_ARB',
    'GL_BUFFER_ACCESS',
    'GL_BUFFER_ACCESS_ARB',
    'GL_BUFFER_MAPPED',
    'GL_BUFFER_MAPPED_ARB',
    'GL_BUFFER_ACCESS_FLAGS',
    'GL_BUFFER_MAP_LENGTH',
    'GL_BUFFER_MAP_OFFSET'
  ],
  'BufferPointerNameARB' => [
    'GL_BUFFER_MAP_POINTER',
    'GL_BUFFER_MAP_POINTER_ARB'
  ],
  'BufferStorageMask' => [
    'GL_DYNAMIC_STORAGE_BIT',
    'GL_DYNAMIC_STORAGE_BIT_EXT',
    'GL_CLIENT_STORAGE_BIT',
    'GL_CLIENT_STORAGE_BIT_EXT',
    'GL_SPARSE_STORAGE_BIT_ARB',
    'GL_LGPU_SEPARATE_STORAGE_BIT_NVX',
    'GL_PER_GPU_STORAGE_BIT_NV',
    'GL_EXTERNAL_STORAGE_BIT_NVX',
    'GL_MAP_READ_BIT',
    'GL_MAP_READ_BIT_EXT',
    'GL_MAP_WRITE_BIT',
    'GL_MAP_WRITE_BIT_EXT',
    'GL_MAP_PERSISTENT_BIT',
    'GL_MAP_PERSISTENT_BIT_EXT',
    'GL_MAP_COHERENT_BIT',
    'GL_MAP_COHERENT_BIT_EXT'
  ],
  'BufferStorageTarget' => [
    'GL_ARRAY_BUFFER',
    'GL_ELEMENT_ARRAY_BUFFER',
    'GL_PIXEL_PACK_BUFFER',
    'GL_PIXEL_UNPACK_BUFFER',
    'GL_UNIFORM_BUFFER',
    'GL_TEXTURE_BUFFER',
    'GL_TRANSFORM_FEEDBACK_BUFFER',
    'GL_COPY_READ_BUFFER',
    'GL_COPY_WRITE_BUFFER',
    'GL_DRAW_INDIRECT_BUFFER',
    'GL_SHADER_STORAGE_BUFFER',
    'GL_DISPATCH_INDIRECT_BUFFER',
    'GL_QUERY_BUFFER',
    'GL_ATOMIC_COUNTER_BUFFER'
  ],
  'BufferTargetARB' => [
    'GL_PARAMETER_BUFFER',
    'GL_ARRAY_BUFFER',
    'GL_ELEMENT_ARRAY_BUFFER',
    'GL_PIXEL_PACK_BUFFER',
    'GL_PIXEL_UNPACK_BUFFER',
    'GL_UNIFORM_BUFFER',
    'GL_TEXTURE_BUFFER',
    'GL_TRANSFORM_FEEDBACK_BUFFER',
    'GL_COPY_READ_BUFFER',
    'GL_COPY_WRITE_BUFFER',
    'GL_DRAW_INDIRECT_BUFFER',
    'GL_SHADER_STORAGE_BUFFER',
    'GL_DISPATCH_INDIRECT_BUFFER',
    'GL_QUERY_BUFFER',
    'GL_ATOMIC_COUNTER_BUFFER'
  ],
  'BufferUsageARB' => [
    'GL_STREAM_DRAW',
    'GL_STREAM_READ',
    'GL_STREAM_COPY',
    'GL_STATIC_DRAW',
    'GL_STATIC_READ',
    'GL_STATIC_COPY',
    'GL_DYNAMIC_DRAW',
    'GL_DYNAMIC_READ',
    'GL_DYNAMIC_COPY'
  ],
  'ClampColorModeARB' => [
    'GL_FALSE',
    'GL_TRUE',
    'GL_FIXED_ONLY',
    'GL_FIXED_ONLY_ARB'
  ],
  'ClampColorTargetARB' => [
    'GL_CLAMP_VERTEX_COLOR_ARB',
    'GL_CLAMP_FRAGMENT_COLOR_ARB',
    'GL_CLAMP_READ_COLOR',
    'GL_CLAMP_READ_COLOR_ARB'
  ],
  'ClearBufferMask' => [
    'GL_DEPTH_BUFFER_BIT',
    'GL_ACCUM_BUFFER_BIT',
    'GL_STENCIL_BUFFER_BIT',
    'GL_COLOR_BUFFER_BIT',
    'GL_COVERAGE_BUFFER_BIT_NV'
  ],
  'ClientAttribMask' => [
    'GL_CLIENT_PIXEL_STORE_BIT',
    'GL_CLIENT_VERTEX_ARRAY_BIT',
    'GL_CLIENT_ALL_ATTRIB_BITS'
  ],
  'ClipControlDepth' => [
    'GL_NEGATIVE_ONE_TO_ONE',
    'GL_ZERO_TO_ONE'
  ],
  'ClipControlOrigin' => [
    'GL_LOWER_LEFT',
    'GL_UPPER_LEFT'
  ],
  'ClipPlaneName' => [
    'GL_CLIP_PLANE0',
    'GL_CLIP_DISTANCE0',
    'GL_CLIP_PLANE1',
    'GL_CLIP_DISTANCE1',
    'GL_CLIP_PLANE2',
    'GL_CLIP_DISTANCE2',
    'GL_CLIP_PLANE3',
    'GL_CLIP_DISTANCE3',
    'GL_CLIP_PLANE4',
    'GL_CLIP_DISTANCE4',
    'GL_CLIP_PLANE5',
    'GL_CLIP_DISTANCE5',
    'GL_CLIP_DISTANCE6',
    'GL_CLIP_DISTANCE7'
  ],
  'ColorBuffer' => [
    'GL_NONE',
    'GL_FRONT_LEFT',
    'GL_FRONT_RIGHT',
    'GL_BACK_LEFT',
    'GL_BACK_RIGHT',
    'GL_FRONT',
    'GL_BACK',
    'GL_LEFT',
    'GL_RIGHT',
    'GL_FRONT_AND_BACK',
    'GL_COLOR_ATTACHMENT0',
    'GL_COLOR_ATTACHMENT1',
    'GL_COLOR_ATTACHMENT2',
    'GL_COLOR_ATTACHMENT3',
    'GL_COLOR_ATTACHMENT4',
    'GL_COLOR_ATTACHMENT5',
    'GL_COLOR_ATTACHMENT6',
    'GL_COLOR_ATTACHMENT7',
    'GL_COLOR_ATTACHMENT8',
    'GL_COLOR_ATTACHMENT9',
    'GL_COLOR_ATTACHMENT10',
    'GL_COLOR_ATTACHMENT11',
    'GL_COLOR_ATTACHMENT12',
    'GL_COLOR_ATTACHMENT13',
    'GL_COLOR_ATTACHMENT14',
    'GL_COLOR_ATTACHMENT15',
    'GL_COLOR_ATTACHMENT16',
    'GL_COLOR_ATTACHMENT17',
    'GL_COLOR_ATTACHMENT18',
    'GL_COLOR_ATTACHMENT19',
    'GL_COLOR_ATTACHMENT20',
    'GL_COLOR_ATTACHMENT21',
    'GL_COLOR_ATTACHMENT22',
    'GL_COLOR_ATTACHMENT23',
    'GL_COLOR_ATTACHMENT24',
    'GL_COLOR_ATTACHMENT25',
    'GL_COLOR_ATTACHMENT26',
    'GL_COLOR_ATTACHMENT27',
    'GL_COLOR_ATTACHMENT28',
    'GL_COLOR_ATTACHMENT29',
    'GL_COLOR_ATTACHMENT30',
    'GL_COLOR_ATTACHMENT31'
  ],
  'ColorMaterialParameter' => [
    'GL_AMBIENT',
    'GL_DIFFUSE',
    'GL_SPECULAR',
    'GL_EMISSION',
    'GL_AMBIENT_AND_DIFFUSE'
  ],
  'ColorPointerType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'ColorTableParameterPName' => [
    'GL_COLOR_TABLE_SCALE',
    'GL_COLOR_TABLE_SCALE_SGI',
    'GL_COLOR_TABLE_BIAS',
    'GL_COLOR_TABLE_BIAS_SGI',
    'GL_COLOR_TABLE_FORMAT',
    'GL_COLOR_TABLE_FORMAT_SGI',
    'GL_COLOR_TABLE_WIDTH',
    'GL_COLOR_TABLE_WIDTH_SGI',
    'GL_COLOR_TABLE_RED_SIZE',
    'GL_COLOR_TABLE_RED_SIZE_SGI',
    'GL_COLOR_TABLE_GREEN_SIZE',
    'GL_COLOR_TABLE_GREEN_SIZE_SGI',
    'GL_COLOR_TABLE_BLUE_SIZE',
    'GL_COLOR_TABLE_BLUE_SIZE_SGI',
    'GL_COLOR_TABLE_ALPHA_SIZE',
    'GL_COLOR_TABLE_ALPHA_SIZE_SGI',
    'GL_COLOR_TABLE_LUMINANCE_SIZE',
    'GL_COLOR_TABLE_LUMINANCE_SIZE_SGI',
    'GL_COLOR_TABLE_INTENSITY_SIZE',
    'GL_COLOR_TABLE_INTENSITY_SIZE_SGI'
  ],
  'ColorTableTarget' => [
    'GL_COLOR_TABLE',
    'GL_POST_CONVOLUTION_COLOR_TABLE',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE',
    'GL_PROXY_COLOR_TABLE',
    'GL_PROXY_POST_CONVOLUTION_COLOR_TABLE',
    'GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE'
  ],
  'ColorTableTargetSGI' => [
    'GL_TEXTURE_COLOR_TABLE_SGI',
    'GL_PROXY_TEXTURE_COLOR_TABLE_SGI',
    'GL_COLOR_TABLE',
    'GL_COLOR_TABLE_SGI',
    'GL_POST_CONVOLUTION_COLOR_TABLE',
    'GL_POST_CONVOLUTION_COLOR_TABLE_SGI',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI',
    'GL_PROXY_COLOR_TABLE',
    'GL_PROXY_COLOR_TABLE_SGI',
    'GL_PROXY_POST_CONVOLUTION_COLOR_TABLE',
    'GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI',
    'GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE',
    'GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI'
  ],
  'CombinerBiasNV' => [
    'GL_NONE',
    'GL_BIAS_BY_NEGATIVE_ONE_HALF_NV'
  ],
  'CombinerComponentUsageNV' => [
    'GL_BLUE',
    'GL_ALPHA',
    'GL_RGB'
  ],
  'CombinerMappingNV' => [
    'GL_UNSIGNED_IDENTITY_NV',
    'GL_UNSIGNED_INVERT_NV',
    'GL_EXPAND_NORMAL_NV',
    'GL_EXPAND_NEGATE_NV',
    'GL_HALF_BIAS_NORMAL_NV',
    'GL_HALF_BIAS_NEGATE_NV',
    'GL_SIGNED_IDENTITY_NV',
    'GL_SIGNED_NEGATE_NV'
  ],
  'CombinerParameterNV' => [
    'GL_COMBINER_INPUT_NV',
    'GL_COMBINER_MAPPING_NV',
    'GL_COMBINER_COMPONENT_USAGE_NV'
  ],
  'CombinerPortionNV' => [
    'GL_ALPHA',
    'GL_RGB'
  ],
  'CombinerRegisterNV' => [
    'GL_TEXTURE0_ARB',
    'GL_TEXTURE1_ARB',
    'GL_PRIMARY_COLOR_NV',
    'GL_SECONDARY_COLOR_NV',
    'GL_SPARE0_NV',
    'GL_SPARE1_NV',
    'GL_DISCARD_NV'
  ],
  'CombinerScaleNV' => [
    'GL_NONE',
    'GL_SCALE_BY_TWO_NV',
    'GL_SCALE_BY_FOUR_NV',
    'GL_SCALE_BY_ONE_HALF_NV'
  ],
  'CombinerStageNV' => [
    'GL_COMBINER0_NV',
    'GL_COMBINER1_NV',
    'GL_COMBINER2_NV',
    'GL_COMBINER3_NV',
    'GL_COMBINER4_NV',
    'GL_COMBINER5_NV',
    'GL_COMBINER6_NV',
    'GL_COMBINER7_NV'
  ],
  'CombinerVariableNV' => [
    'GL_VARIABLE_A_NV',
    'GL_VARIABLE_B_NV',
    'GL_VARIABLE_C_NV',
    'GL_VARIABLE_D_NV',
    'GL_VARIABLE_E_NV',
    'GL_VARIABLE_F_NV',
    'GL_VARIABLE_G_NV'
  ],
  'CommandOpcodesNV' => [
    'GL_TERMINATE_SEQUENCE_COMMAND_NV',
    'GL_NOP_COMMAND_NV',
    'GL_DRAW_ELEMENTS_COMMAND_NV',
    'GL_DRAW_ARRAYS_COMMAND_NV',
    'GL_DRAW_ELEMENTS_STRIP_COMMAND_NV',
    'GL_DRAW_ARRAYS_STRIP_COMMAND_NV',
    'GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV',
    'GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV',
    'GL_ELEMENT_ADDRESS_COMMAND_NV',
    'GL_ATTRIBUTE_ADDRESS_COMMAND_NV',
    'GL_UNIFORM_ADDRESS_COMMAND_NV',
    'GL_BLEND_COLOR_COMMAND_NV',
    'GL_STENCIL_REF_COMMAND_NV',
    'GL_LINE_WIDTH_COMMAND_NV',
    'GL_POLYGON_OFFSET_COMMAND_NV',
    'GL_ALPHA_REF_COMMAND_NV',
    'GL_VIEWPORT_COMMAND_NV',
    'GL_SCISSOR_COMMAND_NV',
    'GL_FRONT_FACE_COMMAND_NV'
  ],
  'ConditionalRenderMode' => [
    'GL_QUERY_WAIT',
    'GL_QUERY_NO_WAIT',
    'GL_QUERY_BY_REGION_WAIT',
    'GL_QUERY_BY_REGION_NO_WAIT',
    'GL_QUERY_WAIT_INVERTED',
    'GL_QUERY_NO_WAIT_INVERTED',
    'GL_QUERY_BY_REGION_WAIT_INVERTED',
    'GL_QUERY_BY_REGION_NO_WAIT_INVERTED'
  ],
  'ContainerType' => [
    'GL_PROGRAM_OBJECT_ARB',
    'GL_PROGRAM_OBJECT_EXT'
  ],
  'ContextFlagMask' => [
    'GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT',
    'GL_CONTEXT_FLAG_DEBUG_BIT',
    'GL_CONTEXT_FLAG_DEBUG_BIT_KHR',
    'GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT',
    'GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB',
    'GL_CONTEXT_FLAG_NO_ERROR_BIT',
    'GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR',
    'GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT'
  ],
  'ContextProfileMask' => [
    'GL_CONTEXT_CORE_PROFILE_BIT',
    'GL_CONTEXT_COMPATIBILITY_PROFILE_BIT'
  ],
  'ConvolutionBorderModeEXT' => [
    'GL_REDUCE',
    'GL_REDUCE_EXT'
  ],
  'ConvolutionParameter' => [
    'GL_CONVOLUTION_BORDER_MODE',
    'GL_CONVOLUTION_BORDER_MODE_EXT',
    'GL_CONVOLUTION_FILTER_SCALE',
    'GL_CONVOLUTION_FILTER_SCALE_EXT',
    'GL_CONVOLUTION_FILTER_BIAS',
    'GL_CONVOLUTION_FILTER_BIAS_EXT',
    'GL_CONVOLUTION_FORMAT',
    'GL_CONVOLUTION_FORMAT_EXT',
    'GL_CONVOLUTION_WIDTH',
    'GL_CONVOLUTION_WIDTH_EXT',
    'GL_CONVOLUTION_HEIGHT',
    'GL_CONVOLUTION_HEIGHT_EXT',
    'GL_MAX_CONVOLUTION_WIDTH',
    'GL_MAX_CONVOLUTION_WIDTH_EXT',
    'GL_MAX_CONVOLUTION_HEIGHT',
    'GL_MAX_CONVOLUTION_HEIGHT_EXT',
    'GL_CONVOLUTION_BORDER_COLOR'
  ],
  'ConvolutionTarget' => [
    'GL_CONVOLUTION_1D',
    'GL_CONVOLUTION_2D'
  ],
  'ConvolutionTargetEXT' => [
    'GL_CONVOLUTION_1D',
    'GL_CONVOLUTION_1D_EXT',
    'GL_CONVOLUTION_2D',
    'GL_CONVOLUTION_2D_EXT'
  ],
  'CopyBufferSubDataTarget' => [
    'GL_ARRAY_BUFFER',
    'GL_ELEMENT_ARRAY_BUFFER',
    'GL_PIXEL_PACK_BUFFER',
    'GL_PIXEL_UNPACK_BUFFER',
    'GL_UNIFORM_BUFFER',
    'GL_TEXTURE_BUFFER',
    'GL_TRANSFORM_FEEDBACK_BUFFER',
    'GL_COPY_READ_BUFFER',
    'GL_COPY_WRITE_BUFFER',
    'GL_DRAW_INDIRECT_BUFFER',
    'GL_SHADER_STORAGE_BUFFER',
    'GL_DISPATCH_INDIRECT_BUFFER',
    'GL_QUERY_BUFFER',
    'GL_ATOMIC_COUNTER_BUFFER'
  ],
  'CopyImageSubDataTarget' => [
    'GL_TEXTURE_1D',
    'GL_TEXTURE_2D',
    'GL_TEXTURE_3D',
    'GL_TEXTURE_RECTANGLE',
    'GL_TEXTURE_CUBE_MAP',
    'GL_TEXTURE_1D_ARRAY',
    'GL_TEXTURE_2D_ARRAY',
    'GL_RENDERBUFFER',
    'GL_TEXTURE_CUBE_MAP_ARRAY',
    'GL_TEXTURE_2D_MULTISAMPLE',
    'GL_TEXTURE_2D_MULTISAMPLE_ARRAY'
  ],
  'CullParameterEXT' => [
    'GL_CULL_VERTEX_EYE_POSITION_EXT',
    'GL_CULL_VERTEX_OBJECT_POSITION_EXT'
  ],
  'DataTypeEXT' => [
    'GL_SCALAR_EXT',
    'GL_VECTOR_EXT',
    'GL_MATRIX_EXT'
  ],
  'DebugSeverity' => [
    'GL_DONT_CARE',
    'GL_DEBUG_SEVERITY_NOTIFICATION',
    'GL_DEBUG_SEVERITY_HIGH',
    'GL_DEBUG_SEVERITY_MEDIUM',
    'GL_DEBUG_SEVERITY_LOW'
  ],
  'DebugSource' => [
    'GL_DONT_CARE',
    'GL_DEBUG_SOURCE_API',
    'GL_DEBUG_SOURCE_WINDOW_SYSTEM',
    'GL_DEBUG_SOURCE_SHADER_COMPILER',
    'GL_DEBUG_SOURCE_THIRD_PARTY',
    'GL_DEBUG_SOURCE_APPLICATION',
    'GL_DEBUG_SOURCE_OTHER'
  ],
  'DebugType' => [
    'GL_DONT_CARE',
    'GL_DEBUG_TYPE_ERROR',
    'GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR',
    'GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR',
    'GL_DEBUG_TYPE_PORTABILITY',
    'GL_DEBUG_TYPE_PERFORMANCE',
    'GL_DEBUG_TYPE_OTHER',
    'GL_DEBUG_TYPE_MARKER',
    'GL_DEBUG_TYPE_PUSH_GROUP',
    'GL_DEBUG_TYPE_POP_GROUP'
  ],
  'DepthFunction' => [
    'GL_NEVER',
    'GL_LESS',
    'GL_EQUAL',
    'GL_LEQUAL',
    'GL_GREATER',
    'GL_NOTEQUAL',
    'GL_GEQUAL',
    'GL_ALWAYS'
  ],
  'DepthStencilTextureMode' => [
    'GL_STENCIL_INDEX',
    'GL_DEPTH_COMPONENT'
  ],
  'DrawBufferMode' => [
    'GL_NONE',
    'GL_FRONT_LEFT',
    'GL_FRONT_RIGHT',
    'GL_BACK_LEFT',
    'GL_BACK_RIGHT',
    'GL_FRONT',
    'GL_BACK',
    'GL_LEFT',
    'GL_RIGHT',
    'GL_FRONT_AND_BACK',
    'GL_AUX0',
    'GL_AUX1',
    'GL_AUX2',
    'GL_AUX3',
    'GL_COLOR_ATTACHMENT0',
    'GL_COLOR_ATTACHMENT0_NV',
    'GL_COLOR_ATTACHMENT1',
    'GL_COLOR_ATTACHMENT1_NV',
    'GL_COLOR_ATTACHMENT2',
    'GL_COLOR_ATTACHMENT2_NV',
    'GL_COLOR_ATTACHMENT3',
    'GL_COLOR_ATTACHMENT3_NV',
    'GL_COLOR_ATTACHMENT4',
    'GL_COLOR_ATTACHMENT4_NV',
    'GL_COLOR_ATTACHMENT5',
    'GL_COLOR_ATTACHMENT5_NV',
    'GL_COLOR_ATTACHMENT6',
    'GL_COLOR_ATTACHMENT6_NV',
    'GL_COLOR_ATTACHMENT7',
    'GL_COLOR_ATTACHMENT7_NV',
    'GL_COLOR_ATTACHMENT8',
    'GL_COLOR_ATTACHMENT8_NV',
    'GL_COLOR_ATTACHMENT9',
    'GL_COLOR_ATTACHMENT9_NV',
    'GL_COLOR_ATTACHMENT10',
    'GL_COLOR_ATTACHMENT10_NV',
    'GL_COLOR_ATTACHMENT11',
    'GL_COLOR_ATTACHMENT11_NV',
    'GL_COLOR_ATTACHMENT12',
    'GL_COLOR_ATTACHMENT12_NV',
    'GL_COLOR_ATTACHMENT13',
    'GL_COLOR_ATTACHMENT13_NV',
    'GL_COLOR_ATTACHMENT14',
    'GL_COLOR_ATTACHMENT14_NV',
    'GL_COLOR_ATTACHMENT15',
    'GL_COLOR_ATTACHMENT15_NV',
    'GL_COLOR_ATTACHMENT16',
    'GL_COLOR_ATTACHMENT17',
    'GL_COLOR_ATTACHMENT18',
    'GL_COLOR_ATTACHMENT19',
    'GL_COLOR_ATTACHMENT20',
    'GL_COLOR_ATTACHMENT21',
    'GL_COLOR_ATTACHMENT22',
    'GL_COLOR_ATTACHMENT23',
    'GL_COLOR_ATTACHMENT24',
    'GL_COLOR_ATTACHMENT25',
    'GL_COLOR_ATTACHMENT26',
    'GL_COLOR_ATTACHMENT27',
    'GL_COLOR_ATTACHMENT28',
    'GL_COLOR_ATTACHMENT29',
    'GL_COLOR_ATTACHMENT30',
    'GL_COLOR_ATTACHMENT31'
  ],
  'DrawElementsType' => [
    'GL_UNSIGNED_BYTE',
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT'
  ],
  'ElementPointerTypeATI' => [
    'GL_UNSIGNED_BYTE',
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT'
  ],
  'EnableCap' => [
    'GL_POINT_SMOOTH',
    'GL_LINE_SMOOTH',
    'GL_LINE_STIPPLE',
    'GL_POLYGON_SMOOTH',
    'GL_POLYGON_STIPPLE',
    'GL_CULL_FACE',
    'GL_LIGHTING',
    'GL_COLOR_MATERIAL',
    'GL_FOG',
    'GL_DEPTH_TEST',
    'GL_STENCIL_TEST',
    'GL_NORMALIZE',
    'GL_ALPHA_TEST',
    'GL_DITHER',
    'GL_BLEND',
    'GL_INDEX_LOGIC_OP',
    'GL_COLOR_LOGIC_OP',
    'GL_SCISSOR_TEST',
    'GL_TEXTURE_GEN_S',
    'GL_TEXTURE_GEN_T',
    'GL_TEXTURE_GEN_R',
    'GL_TEXTURE_GEN_Q',
    'GL_AUTO_NORMAL',
    'GL_MAP1_COLOR_4',
    'GL_MAP1_INDEX',
    'GL_MAP1_NORMAL',
    'GL_MAP1_TEXTURE_COORD_1',
    'GL_MAP1_TEXTURE_COORD_2',
    'GL_MAP1_TEXTURE_COORD_3',
    'GL_MAP1_TEXTURE_COORD_4',
    'GL_MAP1_VERTEX_3',
    'GL_MAP1_VERTEX_4',
    'GL_MAP2_COLOR_4',
    'GL_MAP2_INDEX',
    'GL_MAP2_NORMAL',
    'GL_MAP2_TEXTURE_COORD_1',
    'GL_MAP2_TEXTURE_COORD_2',
    'GL_MAP2_TEXTURE_COORD_3',
    'GL_MAP2_TEXTURE_COORD_4',
    'GL_MAP2_VERTEX_3',
    'GL_MAP2_VERTEX_4',
    'GL_TEXTURE_1D',
    'GL_TEXTURE_2D',
    'GL_POLYGON_OFFSET_POINT',
    'GL_POLYGON_OFFSET_LINE',
    'GL_CLIP_PLANE0',
    'GL_CLIP_DISTANCE0',
    'GL_CLIP_PLANE1',
    'GL_CLIP_DISTANCE1',
    'GL_CLIP_PLANE2',
    'GL_CLIP_DISTANCE2',
    'GL_CLIP_PLANE3',
    'GL_CLIP_DISTANCE3',
    'GL_CLIP_PLANE4',
    'GL_CLIP_DISTANCE4',
    'GL_CLIP_PLANE5',
    'GL_CLIP_DISTANCE5',
    'GL_CLIP_DISTANCE6',
    'GL_CLIP_DISTANCE7',
    'GL_LIGHT0',
    'GL_LIGHT1',
    'GL_LIGHT2',
    'GL_LIGHT3',
    'GL_LIGHT4',
    'GL_LIGHT5',
    'GL_LIGHT6',
    'GL_LIGHT7',
    'GL_CONVOLUTION_1D_EXT',
    'GL_CONVOLUTION_2D_EXT',
    'GL_SEPARABLE_2D_EXT',
    'GL_HISTOGRAM_EXT',
    'GL_MINMAX_EXT',
    'GL_POLYGON_OFFSET_FILL',
    'GL_RESCALE_NORMAL_EXT',
    'GL_TEXTURE_3D_EXT',
    'GL_VERTEX_ARRAY',
    'GL_NORMAL_ARRAY',
    'GL_COLOR_ARRAY',
    'GL_INDEX_ARRAY',
    'GL_TEXTURE_COORD_ARRAY',
    'GL_EDGE_FLAG_ARRAY',
    'GL_INTERLACE_SGIX',
    'GL_MULTISAMPLE',
    'GL_MULTISAMPLE_SGIS',
    'GL_SAMPLE_ALPHA_TO_COVERAGE',
    'GL_SAMPLE_ALPHA_TO_MASK_SGIS',
    'GL_SAMPLE_ALPHA_TO_ONE',
    'GL_SAMPLE_ALPHA_TO_ONE_SGIS',
    'GL_SAMPLE_COVERAGE',
    'GL_SAMPLE_MASK_SGIS',
    'GL_TEXTURE_COLOR_TABLE_SGI',
    'GL_COLOR_TABLE',
    'GL_COLOR_TABLE_SGI',
    'GL_POST_CONVOLUTION_COLOR_TABLE',
    'GL_POST_CONVOLUTION_COLOR_TABLE_SGI',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI',
    'GL_TEXTURE_4D_SGIS',
    'GL_PIXEL_TEX_GEN_SGIX',
    'GL_SPRITE_SGIX',
    'GL_REFERENCE_PLANE_SGIX',
    'GL_IR_INSTRUMENT1_SGIX',
    'GL_CALLIGRAPHIC_FRAGMENT_SGIX',
    'GL_FRAMEZOOM_SGIX',
    'GL_FOG_OFFSET_SGIX',
    'GL_SHARED_TEXTURE_PALETTE_EXT',
    'GL_DEBUG_OUTPUT_SYNCHRONOUS',
    'GL_ASYNC_HISTOGRAM_SGIX',
    'GL_PIXEL_TEXTURE_SGIS',
    'GL_ASYNC_TEX_IMAGE_SGIX',
    'GL_ASYNC_DRAW_PIXELS_SGIX',
    'GL_ASYNC_READ_PIXELS_SGIX',
    'GL_FRAGMENT_LIGHTING_SGIX',
    'GL_FRAGMENT_COLOR_MATERIAL_SGIX',
    'GL_FRAGMENT_LIGHT0_SGIX',
    'GL_FRAGMENT_LIGHT1_SGIX',
    'GL_FRAGMENT_LIGHT2_SGIX',
    'GL_FRAGMENT_LIGHT3_SGIX',
    'GL_FRAGMENT_LIGHT4_SGIX',
    'GL_FRAGMENT_LIGHT5_SGIX',
    'GL_FRAGMENT_LIGHT6_SGIX',
    'GL_FRAGMENT_LIGHT7_SGIX',
    'GL_TEXTURE_RECTANGLE',
    'GL_TEXTURE_RECTANGLE_ARB',
    'GL_TEXTURE_RECTANGLE_NV',
    'GL_TEXTURE_CUBE_MAP',
    'GL_TEXTURE_CUBE_MAP_ARB',
    'GL_TEXTURE_CUBE_MAP_EXT',
    'GL_PROGRAM_POINT_SIZE',
    'GL_DEPTH_CLAMP',
    'GL_TEXTURE_CUBE_MAP_SEAMLESS',
    'GL_SAMPLE_SHADING',
    'GL_RASTERIZER_DISCARD',
    'GL_PRIMITIVE_RESTART_FIXED_INDEX',
    'GL_FRAMEBUFFER_SRGB',
    'GL_SAMPLE_MASK',
    'GL_FETCH_PER_SAMPLE_ARM',
    'GL_PRIMITIVE_RESTART',
    'GL_DEBUG_OUTPUT',
    'GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV',
    'GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM',
    'GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM'
  ],
  'ErrorCode' => [
    'GL_NO_ERROR',
    'GL_INVALID_ENUM',
    'GL_INVALID_VALUE',
    'GL_INVALID_OPERATION',
    'GL_STACK_OVERFLOW',
    'GL_STACK_UNDERFLOW',
    'GL_OUT_OF_MEMORY',
    'GL_INVALID_FRAMEBUFFER_OPERATION',
    'GL_INVALID_FRAMEBUFFER_OPERATION_EXT',
    'GL_TABLE_TOO_LARGE_EXT',
    'GL_TABLE_TOO_LARGE',
    'GL_TEXTURE_TOO_LARGE_EXT'
  ],
  'EvalMapsModeNV' => [
    'GL_FILL_NV'
  ],
  'EvalTargetNV' => [
    'GL_EVAL_2D_NV',
    'GL_EVAL_TRIANGULAR_2D_NV'
  ],
  'ExternalHandleType' => [
    'GL_HANDLE_TYPE_OPAQUE_FD_EXT',
    'GL_HANDLE_TYPE_OPAQUE_WIN32_EXT',
    'GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT',
    'GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT',
    'GL_HANDLE_TYPE_D3D12_RESOURCE_EXT',
    'GL_HANDLE_TYPE_D3D11_IMAGE_EXT',
    'GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT',
    'GL_HANDLE_TYPE_D3D12_FENCE_EXT'
  ],
  'FeedBackToken' => [
    'GL_PASS_THROUGH_TOKEN',
    'GL_POINT_TOKEN',
    'GL_LINE_TOKEN',
    'GL_POLYGON_TOKEN',
    'GL_BITMAP_TOKEN',
    'GL_DRAW_PIXEL_TOKEN',
    'GL_COPY_PIXEL_TOKEN',
    'GL_LINE_RESET_TOKEN'
  ],
  'FeedbackType' => [
    'GL_2D',
    'GL_3D',
    'GL_3D_COLOR',
    'GL_3D_COLOR_TEXTURE',
    'GL_4D_COLOR_TEXTURE'
  ],
  'FenceConditionNV' => [
    'GL_ALL_COMPLETED_NV'
  ],
  'FenceParameterNameNV' => [
    'GL_FENCE_STATUS_NV',
    'GL_FENCE_CONDITION_NV'
  ],
  'FfdMaskSGIX' => [
    'GL_TEXTURE_DEFORMATION_BIT_SGIX',
    'GL_GEOMETRY_DEFORMATION_BIT_SGIX'
  ],
  'FfdTargetSGIX' => [
    'GL_GEOMETRY_DEFORMATION_SGIX',
    'GL_TEXTURE_DEFORMATION_SGIX'
  ],
  'FogCoordSrc' => [
    'GL_FOG_COORDINATE',
    'GL_FOG_COORDINATE_EXT',
    'GL_FOG_COORD',
    'GL_FRAGMENT_DEPTH',
    'GL_FRAGMENT_DEPTH_EXT'
  ],
  'FogCoordinatePointerType' => [
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'FogMode' => [
    'GL_EXP',
    'GL_EXP2',
    'GL_LINEAR',
    'GL_FOG_FUNC_SGIS'
  ],
  'FogPName' => [
    'GL_FOG_INDEX',
    'GL_FOG_DENSITY',
    'GL_FOG_START',
    'GL_FOG_END',
    'GL_FOG_MODE',
    'GL_FOG_COORD_SRC'
  ],
  'FogParameter' => [
    'GL_FOG_INDEX',
    'GL_FOG_DENSITY',
    'GL_FOG_START',
    'GL_FOG_END',
    'GL_FOG_MODE',
    'GL_FOG_COLOR',
    'GL_FOG_OFFSET_VALUE_SGIX'
  ],
  'FogPointerTypeEXT' => [
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'FogPointerTypeIBM' => [
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'FoveationConfigBitQCOM' => [
    'GL_FOVEATION_ENABLE_BIT_QCOM',
    'GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM',
    'GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM'
  ],
  'FragmentLightModelParameterSGIX' => [
    'GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX'
  ],
  'FragmentLightNameSGIX' => [
    'GL_FRAGMENT_LIGHT0_SGIX',
    'GL_FRAGMENT_LIGHT1_SGIX',
    'GL_FRAGMENT_LIGHT2_SGIX',
    'GL_FRAGMENT_LIGHT3_SGIX',
    'GL_FRAGMENT_LIGHT4_SGIX',
    'GL_FRAGMENT_LIGHT5_SGIX',
    'GL_FRAGMENT_LIGHT6_SGIX',
    'GL_FRAGMENT_LIGHT7_SGIX'
  ],
  'FragmentLightParameterSGIX' => [
    'GL_AMBIENT',
    'GL_DIFFUSE',
    'GL_SPECULAR',
    'GL_POSITION',
    'GL_SPOT_DIRECTION',
    'GL_SPOT_EXPONENT',
    'GL_SPOT_CUTOFF',
    'GL_CONSTANT_ATTENUATION',
    'GL_LINEAR_ATTENUATION',
    'GL_QUADRATIC_ATTENUATION'
  ],
  'FragmentOp1ATI' => [
    'GL_MOV_ATI'
  ],
  'FragmentOp2ATI' => [
    'GL_ADD_ATI',
    'GL_MUL_ATI',
    'GL_SUB_ATI',
    'GL_DOT3_ATI',
    'GL_DOT4_ATI'
  ],
  'FragmentOp3ATI' => [
    'GL_MAD_ATI',
    'GL_LERP_ATI',
    'GL_CND_ATI',
    'GL_CND0_ATI',
    'GL_DOT2_ADD_ATI'
  ],
  'FragmentShaderColorModMaskATI' => [
    'GL_2X_BIT_ATI',
    'GL_COMP_BIT_ATI',
    'GL_NEGATE_BIT_ATI',
    'GL_BIAS_BIT_ATI'
  ],
  'FragmentShaderConATI' => [
    'GL_CON_0_ATI',
    'GL_CON_1_ATI',
    'GL_CON_2_ATI',
    'GL_CON_3_ATI',
    'GL_CON_4_ATI',
    'GL_CON_5_ATI',
    'GL_CON_6_ATI',
    'GL_CON_7_ATI',
    'GL_CON_8_ATI',
    'GL_CON_9_ATI',
    'GL_CON_10_ATI',
    'GL_CON_11_ATI',
    'GL_CON_12_ATI',
    'GL_CON_13_ATI',
    'GL_CON_14_ATI',
    'GL_CON_15_ATI',
    'GL_CON_16_ATI',
    'GL_CON_17_ATI',
    'GL_CON_18_ATI',
    'GL_CON_19_ATI',
    'GL_CON_20_ATI',
    'GL_CON_21_ATI',
    'GL_CON_22_ATI',
    'GL_CON_23_ATI',
    'GL_CON_24_ATI',
    'GL_CON_25_ATI',
    'GL_CON_26_ATI',
    'GL_CON_27_ATI',
    'GL_CON_28_ATI',
    'GL_CON_29_ATI',
    'GL_CON_30_ATI',
    'GL_CON_31_ATI'
  ],
  'FragmentShaderDestMaskATI' => [
    'GL_RED_BIT_ATI',
    'GL_GREEN_BIT_ATI',
    'GL_BLUE_BIT_ATI',
    'GL_NONE'
  ],
  'FragmentShaderDestModMaskATI' => [
    'GL_2X_BIT_ATI',
    'GL_4X_BIT_ATI',
    'GL_8X_BIT_ATI',
    'GL_HALF_BIT_ATI',
    'GL_QUARTER_BIT_ATI',
    'GL_EIGHTH_BIT_ATI',
    'GL_SATURATE_BIT_ATI',
    'GL_NONE'
  ],
  'FragmentShaderGenericSourceATI' => [
    'GL_ZERO',
    'GL_ONE',
    'GL_PRIMARY_COLOR',
    'GL_PRIMARY_COLOR_ARB',
    'GL_PRIMARY_COLOR_EXT',
    'GL_REG_0_ATI',
    'GL_REG_1_ATI',
    'GL_REG_2_ATI',
    'GL_REG_3_ATI',
    'GL_REG_4_ATI',
    'GL_REG_5_ATI',
    'GL_REG_6_ATI',
    'GL_REG_7_ATI',
    'GL_REG_8_ATI',
    'GL_REG_9_ATI',
    'GL_REG_10_ATI',
    'GL_REG_11_ATI',
    'GL_REG_12_ATI',
    'GL_REG_13_ATI',
    'GL_REG_14_ATI',
    'GL_REG_15_ATI',
    'GL_REG_16_ATI',
    'GL_REG_17_ATI',
    'GL_REG_18_ATI',
    'GL_REG_19_ATI',
    'GL_REG_20_ATI',
    'GL_REG_21_ATI',
    'GL_REG_22_ATI',
    'GL_REG_23_ATI',
    'GL_REG_24_ATI',
    'GL_REG_25_ATI',
    'GL_REG_26_ATI',
    'GL_REG_27_ATI',
    'GL_REG_28_ATI',
    'GL_REG_29_ATI',
    'GL_REG_30_ATI',
    'GL_REG_31_ATI',
    'GL_CON_0_ATI',
    'GL_CON_1_ATI',
    'GL_CON_2_ATI',
    'GL_CON_3_ATI',
    'GL_CON_4_ATI',
    'GL_CON_5_ATI',
    'GL_CON_6_ATI',
    'GL_CON_7_ATI',
    'GL_CON_8_ATI',
    'GL_CON_9_ATI',
    'GL_CON_10_ATI',
    'GL_CON_11_ATI',
    'GL_CON_12_ATI',
    'GL_CON_13_ATI',
    'GL_CON_14_ATI',
    'GL_CON_15_ATI',
    'GL_CON_16_ATI',
    'GL_CON_17_ATI',
    'GL_CON_18_ATI',
    'GL_CON_19_ATI',
    'GL_CON_20_ATI',
    'GL_CON_21_ATI',
    'GL_CON_22_ATI',
    'GL_CON_23_ATI',
    'GL_CON_24_ATI',
    'GL_CON_25_ATI',
    'GL_CON_26_ATI',
    'GL_CON_27_ATI',
    'GL_CON_28_ATI',
    'GL_CON_29_ATI',
    'GL_CON_30_ATI',
    'GL_CON_31_ATI',
    'GL_SECONDARY_INTERPOLATOR_ATI'
  ],
  'FragmentShaderRegATI' => [
    'GL_REG_0_ATI',
    'GL_REG_1_ATI',
    'GL_REG_2_ATI',
    'GL_REG_3_ATI',
    'GL_REG_4_ATI',
    'GL_REG_5_ATI',
    'GL_REG_6_ATI',
    'GL_REG_7_ATI',
    'GL_REG_8_ATI',
    'GL_REG_9_ATI',
    'GL_REG_10_ATI',
    'GL_REG_11_ATI',
    'GL_REG_12_ATI',
    'GL_REG_13_ATI',
    'GL_REG_14_ATI',
    'GL_REG_15_ATI',
    'GL_REG_16_ATI',
    'GL_REG_17_ATI',
    'GL_REG_18_ATI',
    'GL_REG_19_ATI',
    'GL_REG_20_ATI',
    'GL_REG_21_ATI',
    'GL_REG_22_ATI',
    'GL_REG_23_ATI',
    'GL_REG_24_ATI',
    'GL_REG_25_ATI',
    'GL_REG_26_ATI',
    'GL_REG_27_ATI',
    'GL_REG_28_ATI',
    'GL_REG_29_ATI',
    'GL_REG_30_ATI',
    'GL_REG_31_ATI'
  ],
  'FragmentShaderTextureSourceATI' => [
    'GL_TEXTURE0',
    'GL_TEXTURE1',
    'GL_TEXTURE2',
    'GL_TEXTURE3',
    'GL_TEXTURE4',
    'GL_TEXTURE5',
    'GL_TEXTURE6',
    'GL_TEXTURE7',
    'GL_TEXTURE8',
    'GL_TEXTURE9',
    'GL_TEXTURE10',
    'GL_TEXTURE11',
    'GL_TEXTURE12',
    'GL_TEXTURE13',
    'GL_TEXTURE14',
    'GL_TEXTURE15',
    'GL_TEXTURE16',
    'GL_TEXTURE17',
    'GL_TEXTURE18',
    'GL_TEXTURE19',
    'GL_TEXTURE20',
    'GL_TEXTURE21',
    'GL_TEXTURE22',
    'GL_TEXTURE23',
    'GL_TEXTURE24',
    'GL_TEXTURE25',
    'GL_TEXTURE26',
    'GL_TEXTURE27',
    'GL_TEXTURE28',
    'GL_TEXTURE29',
    'GL_TEXTURE30',
    'GL_TEXTURE31',
    'GL_REG_0_ATI',
    'GL_REG_1_ATI',
    'GL_REG_2_ATI',
    'GL_REG_3_ATI',
    'GL_REG_4_ATI',
    'GL_REG_5_ATI',
    'GL_REG_6_ATI',
    'GL_REG_7_ATI',
    'GL_REG_8_ATI',
    'GL_REG_9_ATI',
    'GL_REG_10_ATI',
    'GL_REG_11_ATI',
    'GL_REG_12_ATI',
    'GL_REG_13_ATI',
    'GL_REG_14_ATI',
    'GL_REG_15_ATI',
    'GL_REG_16_ATI',
    'GL_REG_17_ATI',
    'GL_REG_18_ATI',
    'GL_REG_19_ATI',
    'GL_REG_20_ATI',
    'GL_REG_21_ATI',
    'GL_REG_22_ATI',
    'GL_REG_23_ATI',
    'GL_REG_24_ATI',
    'GL_REG_25_ATI',
    'GL_REG_26_ATI',
    'GL_REG_27_ATI',
    'GL_REG_28_ATI',
    'GL_REG_29_ATI',
    'GL_REG_30_ATI',
    'GL_REG_31_ATI'
  ],
  'FragmentShaderValueRepATI' => [
    'GL_NONE',
    'GL_RED',
    'GL_GREEN',
    'GL_BLUE',
    'GL_ALPHA'
  ],
  'FramebufferAttachment' => [
    'GL_DEPTH_STENCIL_ATTACHMENT',
    'GL_COLOR_ATTACHMENT0',
    'GL_COLOR_ATTACHMENT1',
    'GL_COLOR_ATTACHMENT2',
    'GL_COLOR_ATTACHMENT3',
    'GL_COLOR_ATTACHMENT4',
    'GL_COLOR_ATTACHMENT5',
    'GL_COLOR_ATTACHMENT6',
    'GL_COLOR_ATTACHMENT7',
    'GL_COLOR_ATTACHMENT8',
    'GL_COLOR_ATTACHMENT9',
    'GL_COLOR_ATTACHMENT10',
    'GL_COLOR_ATTACHMENT11',
    'GL_COLOR_ATTACHMENT12',
    'GL_COLOR_ATTACHMENT13',
    'GL_COLOR_ATTACHMENT14',
    'GL_COLOR_ATTACHMENT15',
    'GL_COLOR_ATTACHMENT16',
    'GL_COLOR_ATTACHMENT17',
    'GL_COLOR_ATTACHMENT18',
    'GL_COLOR_ATTACHMENT19',
    'GL_COLOR_ATTACHMENT20',
    'GL_COLOR_ATTACHMENT21',
    'GL_COLOR_ATTACHMENT22',
    'GL_COLOR_ATTACHMENT23',
    'GL_COLOR_ATTACHMENT24',
    'GL_COLOR_ATTACHMENT25',
    'GL_COLOR_ATTACHMENT26',
    'GL_COLOR_ATTACHMENT27',
    'GL_COLOR_ATTACHMENT28',
    'GL_COLOR_ATTACHMENT29',
    'GL_COLOR_ATTACHMENT30',
    'GL_COLOR_ATTACHMENT31',
    'GL_DEPTH_ATTACHMENT',
    'GL_STENCIL_ATTACHMENT',
    'GL_SHADING_RATE_ATTACHMENT_EXT'
  ],
  'FramebufferAttachmentParameterName' => [
    'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING',
    'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE',
    'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE',
    'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE',
    'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME',
    'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_LAYERED',
    'GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB',
    'GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR',
    'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR'
  ],
  'FramebufferParameterName' => [
    'GL_FRAMEBUFFER_DEFAULT_WIDTH',
    'GL_FRAMEBUFFER_DEFAULT_HEIGHT',
    'GL_FRAMEBUFFER_DEFAULT_LAYERS',
    'GL_FRAMEBUFFER_DEFAULT_SAMPLES',
    'GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS'
  ],
  'FramebufferStatus' => [
    'GL_FRAMEBUFFER_UNDEFINED',
    'GL_FRAMEBUFFER_COMPLETE',
    'GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT',
    'GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT',
    'GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER',
    'GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER',
    'GL_FRAMEBUFFER_UNSUPPORTED',
    'GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE',
    'GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS'
  ],
  'FramebufferTarget' => [
    'GL_READ_FRAMEBUFFER',
    'GL_DRAW_FRAMEBUFFER',
    'GL_FRAMEBUFFER'
  ],
  'FrontFaceDirection' => [
    'GL_CW',
    'GL_CCW'
  ],
  'GetFramebufferParameter' => [
    'GL_DOUBLEBUFFER',
    'GL_STEREO',
    'GL_SAMPLE_BUFFERS',
    'GL_SAMPLES',
    'GL_IMPLEMENTATION_COLOR_READ_TYPE',
    'GL_IMPLEMENTATION_COLOR_READ_FORMAT',
    'GL_FRAMEBUFFER_DEFAULT_WIDTH',
    'GL_FRAMEBUFFER_DEFAULT_HEIGHT',
    'GL_FRAMEBUFFER_DEFAULT_LAYERS',
    'GL_FRAMEBUFFER_DEFAULT_SAMPLES',
    'GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS'
  ],
  'GetHistogramParameterPNameEXT' => [
    'GL_HISTOGRAM_WIDTH',
    'GL_HISTOGRAM_WIDTH_EXT',
    'GL_HISTOGRAM_FORMAT',
    'GL_HISTOGRAM_FORMAT_EXT',
    'GL_HISTOGRAM_RED_SIZE',
    'GL_HISTOGRAM_RED_SIZE_EXT',
    'GL_HISTOGRAM_GREEN_SIZE',
    'GL_HISTOGRAM_GREEN_SIZE_EXT',
    'GL_HISTOGRAM_BLUE_SIZE',
    'GL_HISTOGRAM_BLUE_SIZE_EXT',
    'GL_HISTOGRAM_ALPHA_SIZE',
    'GL_HISTOGRAM_ALPHA_SIZE_EXT',
    'GL_HISTOGRAM_LUMINANCE_SIZE',
    'GL_HISTOGRAM_LUMINANCE_SIZE_EXT',
    'GL_HISTOGRAM_SINK',
    'GL_HISTOGRAM_SINK_EXT'
  ],
  'GetMapQuery' => [
    'GL_COEFF',
    'GL_ORDER',
    'GL_DOMAIN'
  ],
  'GetMinmaxParameterPNameEXT' => [
    'GL_MINMAX_FORMAT',
    'GL_MINMAX_FORMAT_EXT',
    'GL_MINMAX_SINK',
    'GL_MINMAX_SINK_EXT'
  ],
  'GetMultisamplePNameNV' => [
    'GL_SAMPLE_POSITION',
    'GL_SAMPLE_LOCATION_ARB',
    'GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB'
  ],
  'GetPName' => [
    'GL_CURRENT_COLOR',
    'GL_CURRENT_INDEX',
    'GL_CURRENT_NORMAL',
    'GL_CURRENT_TEXTURE_COORDS',
    'GL_CURRENT_RASTER_COLOR',
    'GL_CURRENT_RASTER_INDEX',
    'GL_CURRENT_RASTER_TEXTURE_COORDS',
    'GL_CURRENT_RASTER_POSITION',
    'GL_CURRENT_RASTER_POSITION_VALID',
    'GL_CURRENT_RASTER_DISTANCE',
    'GL_POINT_SMOOTH',
    'GL_POINT_SIZE',
    'GL_POINT_SIZE_RANGE',
    'GL_SMOOTH_POINT_SIZE_RANGE',
    'GL_POINT_SIZE_GRANULARITY',
    'GL_SMOOTH_POINT_SIZE_GRANULARITY',
    'GL_LINE_SMOOTH',
    'GL_LINE_WIDTH',
    'GL_LINE_WIDTH_RANGE',
    'GL_SMOOTH_LINE_WIDTH_RANGE',
    'GL_LINE_WIDTH_GRANULARITY',
    'GL_SMOOTH_LINE_WIDTH_GRANULARITY',
    'GL_LINE_STIPPLE',
    'GL_LINE_STIPPLE_PATTERN',
    'GL_LINE_STIPPLE_REPEAT',
    'GL_LIST_MODE',
    'GL_MAX_LIST_NESTING',
    'GL_LIST_BASE',
    'GL_LIST_INDEX',
    'GL_POLYGON_MODE',
    'GL_POLYGON_SMOOTH',
    'GL_POLYGON_STIPPLE',
    'GL_EDGE_FLAG',
    'GL_CULL_FACE',
    'GL_CULL_FACE_MODE',
    'GL_FRONT_FACE',
    'GL_LIGHTING',
    'GL_LIGHT_MODEL_LOCAL_VIEWER',
    'GL_LIGHT_MODEL_TWO_SIDE',
    'GL_LIGHT_MODEL_AMBIENT',
    'GL_SHADE_MODEL',
    'GL_COLOR_MATERIAL_FACE',
    'GL_COLOR_MATERIAL_PARAMETER',
    'GL_COLOR_MATERIAL',
    'GL_FOG',
    'GL_FOG_INDEX',
    'GL_FOG_DENSITY',
    'GL_FOG_START',
    'GL_FOG_END',
    'GL_FOG_MODE',
    'GL_FOG_COLOR',
    'GL_DEPTH_RANGE',
    'GL_DEPTH_TEST',
    'GL_DEPTH_WRITEMASK',
    'GL_DEPTH_CLEAR_VALUE',
    'GL_DEPTH_FUNC',
    'GL_ACCUM_CLEAR_VALUE',
    'GL_STENCIL_TEST',
    'GL_STENCIL_CLEAR_VALUE',
    'GL_STENCIL_FUNC',
    'GL_STENCIL_VALUE_MASK',
    'GL_STENCIL_FAIL',
    'GL_STENCIL_PASS_DEPTH_FAIL',
    'GL_STENCIL_PASS_DEPTH_PASS',
    'GL_STENCIL_REF',
    'GL_STENCIL_WRITEMASK',
    'GL_MATRIX_MODE',
    'GL_NORMALIZE',
    'GL_VIEWPORT',
    'GL_MODELVIEW_STACK_DEPTH',
    'GL_MODELVIEW0_STACK_DEPTH_EXT',
    'GL_PROJECTION_STACK_DEPTH',
    'GL_TEXTURE_STACK_DEPTH',
    'GL_MODELVIEW_MATRIX',
    'GL_MODELVIEW0_MATRIX_EXT',
    'GL_PROJECTION_MATRIX',
    'GL_TEXTURE_MATRIX',
    'GL_ATTRIB_STACK_DEPTH',
    'GL_CLIENT_ATTRIB_STACK_DEPTH',
    'GL_ALPHA_TEST',
    'GL_ALPHA_TEST_QCOM',
    'GL_ALPHA_TEST_FUNC',
    'GL_ALPHA_TEST_FUNC_QCOM',
    'GL_ALPHA_TEST_REF',
    'GL_ALPHA_TEST_REF_QCOM',
    'GL_DITHER',
    'GL_BLEND_DST',
    'GL_BLEND_SRC',
    'GL_BLEND',
    'GL_LOGIC_OP_MODE',
    'GL_INDEX_LOGIC_OP',
    'GL_LOGIC_OP',
    'GL_COLOR_LOGIC_OP',
    'GL_AUX_BUFFERS',
    'GL_DRAW_BUFFER',
    'GL_DRAW_BUFFER_EXT',
    'GL_READ_BUFFER',
    'GL_READ_BUFFER_EXT',
    'GL_READ_BUFFER_NV',
    'GL_SCISSOR_BOX',
    'GL_SCISSOR_TEST',
    'GL_INDEX_CLEAR_VALUE',
    'GL_INDEX_WRITEMASK',
    'GL_COLOR_CLEAR_VALUE',
    'GL_COLOR_WRITEMASK',
    'GL_INDEX_MODE',
    'GL_RGBA_MODE',
    'GL_DOUBLEBUFFER',
    'GL_STEREO',
    'GL_RENDER_MODE',
    'GL_PERSPECTIVE_CORRECTION_HINT',
    'GL_POINT_SMOOTH_HINT',
    'GL_LINE_SMOOTH_HINT',
    'GL_POLYGON_SMOOTH_HINT',
    'GL_FOG_HINT',
    'GL_TEXTURE_GEN_S',
    'GL_TEXTURE_GEN_T',
    'GL_TEXTURE_GEN_R',
    'GL_TEXTURE_GEN_Q',
    'GL_PIXEL_MAP_I_TO_I_SIZE',
    'GL_PIXEL_MAP_S_TO_S_SIZE',
    'GL_PIXEL_MAP_I_TO_R_SIZE',
    'GL_PIXEL_MAP_I_TO_G_SIZE',
    'GL_PIXEL_MAP_I_TO_B_SIZE',
    'GL_PIXEL_MAP_I_TO_A_SIZE',
    'GL_PIXEL_MAP_R_TO_R_SIZE',
    'GL_PIXEL_MAP_G_TO_G_SIZE',
    'GL_PIXEL_MAP_B_TO_B_SIZE',
    'GL_PIXEL_MAP_A_TO_A_SIZE',
    'GL_UNPACK_SWAP_BYTES',
    'GL_UNPACK_LSB_FIRST',
    'GL_UNPACK_ROW_LENGTH',
    'GL_UNPACK_SKIP_ROWS',
    'GL_UNPACK_SKIP_PIXELS',
    'GL_UNPACK_ALIGNMENT',
    'GL_PACK_SWAP_BYTES',
    'GL_PACK_LSB_FIRST',
    'GL_PACK_ROW_LENGTH',
    'GL_PACK_ROW_LENGTH_NV',
    'GL_PACK_SKIP_ROWS',
    'GL_PACK_SKIP_ROWS_NV',
    'GL_PACK_SKIP_PIXELS',
    'GL_PACK_SKIP_PIXELS_NV',
    'GL_PACK_ALIGNMENT',
    'GL_MAP_COLOR',
    'GL_MAP_STENCIL',
    'GL_INDEX_SHIFT',
    'GL_INDEX_OFFSET',
    'GL_RED_SCALE',
    'GL_RED_BIAS',
    'GL_ZOOM_X',
    'GL_ZOOM_Y',
    'GL_GREEN_SCALE',
    'GL_GREEN_BIAS',
    'GL_BLUE_SCALE',
    'GL_BLUE_BIAS',
    'GL_ALPHA_SCALE',
    'GL_ALPHA_BIAS',
    'GL_DEPTH_SCALE',
    'GL_DEPTH_BIAS',
    'GL_MAX_EVAL_ORDER',
    'GL_MAX_LIGHTS',
    'GL_MAX_CLIP_PLANES',
    'GL_MAX_CLIP_DISTANCES',
    'GL_MAX_TEXTURE_SIZE',
    'GL_MAX_PIXEL_MAP_TABLE',
    'GL_MAX_ATTRIB_STACK_DEPTH',
    'GL_MAX_MODELVIEW_STACK_DEPTH',
    'GL_MAX_NAME_STACK_DEPTH',
    'GL_MAX_PROJECTION_STACK_DEPTH',
    'GL_MAX_TEXTURE_STACK_DEPTH',
    'GL_MAX_VIEWPORT_DIMS',
    'GL_MAX_CLIENT_ATTRIB_STACK_DEPTH',
    'GL_SUBPIXEL_BITS',
    'GL_INDEX_BITS',
    'GL_RED_BITS',
    'GL_GREEN_BITS',
    'GL_BLUE_BITS',
    'GL_ALPHA_BITS',
    'GL_DEPTH_BITS',
    'GL_STENCIL_BITS',
    'GL_ACCUM_RED_BITS',
    'GL_ACCUM_GREEN_BITS',
    'GL_ACCUM_BLUE_BITS',
    'GL_ACCUM_ALPHA_BITS',
    'GL_NAME_STACK_DEPTH',
    'GL_AUTO_NORMAL',
    'GL_MAP1_COLOR_4',
    'GL_MAP1_INDEX',
    'GL_MAP1_NORMAL',
    'GL_MAP1_TEXTURE_COORD_1',
    'GL_MAP1_TEXTURE_COORD_2',
    'GL_MAP1_TEXTURE_COORD_3',
    'GL_MAP1_TEXTURE_COORD_4',
    'GL_MAP1_VERTEX_3',
    'GL_MAP1_VERTEX_4',
    'GL_MAP2_COLOR_4',
    'GL_MAP2_INDEX',
    'GL_MAP2_NORMAL',
    'GL_MAP2_TEXTURE_COORD_1',
    'GL_MAP2_TEXTURE_COORD_2',
    'GL_MAP2_TEXTURE_COORD_3',
    'GL_MAP2_TEXTURE_COORD_4',
    'GL_MAP2_VERTEX_3',
    'GL_MAP2_VERTEX_4',
    'GL_MAP1_GRID_DOMAIN',
    'GL_MAP1_GRID_SEGMENTS',
    'GL_MAP2_GRID_DOMAIN',
    'GL_MAP2_GRID_SEGMENTS',
    'GL_TEXTURE_1D',
    'GL_TEXTURE_2D',
    'GL_FEEDBACK_BUFFER_SIZE',
    'GL_FEEDBACK_BUFFER_TYPE',
    'GL_SELECTION_BUFFER_SIZE',
    'GL_POLYGON_OFFSET_UNITS',
    'GL_POLYGON_OFFSET_POINT',
    'GL_POLYGON_OFFSET_LINE',
    'GL_CLIP_PLANE0',
    'GL_CLIP_PLANE1',
    'GL_CLIP_PLANE2',
    'GL_CLIP_PLANE3',
    'GL_CLIP_PLANE4',
    'GL_CLIP_PLANE5',
    'GL_LIGHT0',
    'GL_LIGHT1',
    'GL_LIGHT2',
    'GL_LIGHT3',
    'GL_LIGHT4',
    'GL_LIGHT5',
    'GL_LIGHT6',
    'GL_LIGHT7',
    'GL_BLEND_COLOR',
    'GL_BLEND_COLOR_EXT',
    'GL_BLEND_EQUATION',
    'GL_BLEND_EQUATION_EXT',
    'GL_BLEND_EQUATION_RGB',
    'GL_PACK_CMYK_HINT_EXT',
    'GL_UNPACK_CMYK_HINT_EXT',
    'GL_CONVOLUTION_1D_EXT',
    'GL_CONVOLUTION_2D_EXT',
    'GL_SEPARABLE_2D_EXT',
    'GL_POST_CONVOLUTION_RED_SCALE_EXT',
    'GL_POST_CONVOLUTION_GREEN_SCALE_EXT',
    'GL_POST_CONVOLUTION_BLUE_SCALE_EXT',
    'GL_POST_CONVOLUTION_ALPHA_SCALE_EXT',
    'GL_POST_CONVOLUTION_RED_BIAS_EXT',
    'GL_POST_CONVOLUTION_GREEN_BIAS_EXT',
    'GL_POST_CONVOLUTION_BLUE_BIAS_EXT',
    'GL_POST_CONVOLUTION_ALPHA_BIAS_EXT',
    'GL_HISTOGRAM_EXT',
    'GL_MINMAX_EXT',
    'GL_POLYGON_OFFSET_FILL',
    'GL_POLYGON_OFFSET_FACTOR',
    'GL_POLYGON_OFFSET_BIAS_EXT',
    'GL_RESCALE_NORMAL_EXT',
    'GL_TEXTURE_BINDING_1D',
    'GL_TEXTURE_BINDING_2D',
    'GL_TEXTURE_3D_BINDING_EXT',
    'GL_TEXTURE_BINDING_3D',
    'GL_PACK_SKIP_IMAGES',
    'GL_PACK_SKIP_IMAGES_EXT',
    'GL_PACK_IMAGE_HEIGHT',
    'GL_PACK_IMAGE_HEIGHT_EXT',
    'GL_UNPACK_SKIP_IMAGES',
    'GL_UNPACK_SKIP_IMAGES_EXT',
    'GL_UNPACK_IMAGE_HEIGHT',
    'GL_UNPACK_IMAGE_HEIGHT_EXT',
    'GL_TEXTURE_3D_EXT',
    'GL_MAX_3D_TEXTURE_SIZE',
    'GL_MAX_3D_TEXTURE_SIZE_EXT',
    'GL_VERTEX_ARRAY',
    'GL_NORMAL_ARRAY',
    'GL_COLOR_ARRAY',
    'GL_INDEX_ARRAY',
    'GL_TEXTURE_COORD_ARRAY',
    'GL_EDGE_FLAG_ARRAY',
    'GL_VERTEX_ARRAY_SIZE',
    'GL_VERTEX_ARRAY_TYPE',
    'GL_VERTEX_ARRAY_STRIDE',
    'GL_VERTEX_ARRAY_COUNT_EXT',
    'GL_NORMAL_ARRAY_TYPE',
    'GL_NORMAL_ARRAY_STRIDE',
    'GL_NORMAL_ARRAY_COUNT_EXT',
    'GL_COLOR_ARRAY_SIZE',
    'GL_COLOR_ARRAY_TYPE',
    'GL_COLOR_ARRAY_STRIDE',
    'GL_COLOR_ARRAY_COUNT_EXT',
    'GL_INDEX_ARRAY_TYPE',
    'GL_INDEX_ARRAY_STRIDE',
    'GL_INDEX_ARRAY_COUNT_EXT',
    'GL_TEXTURE_COORD_ARRAY_SIZE',
    'GL_TEXTURE_COORD_ARRAY_TYPE',
    'GL_TEXTURE_COORD_ARRAY_STRIDE',
    'GL_TEXTURE_COORD_ARRAY_COUNT_EXT',
    'GL_EDGE_FLAG_ARRAY_STRIDE',
    'GL_EDGE_FLAG_ARRAY_COUNT_EXT',
    'GL_INTERLACE_SGIX',
    'GL_DETAIL_TEXTURE_2D_BINDING_SGIS',
    'GL_MULTISAMPLE_SGIS',
    'GL_SAMPLE_ALPHA_TO_MASK_SGIS',
    'GL_SAMPLE_ALPHA_TO_ONE_SGIS',
    'GL_SAMPLE_MASK_SGIS',
    'GL_SAMPLE_BUFFERS',
    'GL_SAMPLE_BUFFERS_SGIS',
    'GL_SAMPLES',
    'GL_SAMPLES_SGIS',
    'GL_SAMPLE_COVERAGE_VALUE',
    'GL_SAMPLE_MASK_VALUE_SGIS',
    'GL_SAMPLE_COVERAGE_INVERT',
    'GL_SAMPLE_MASK_INVERT_SGIS',
    'GL_SAMPLE_PATTERN_SGIS',
    'GL_COLOR_MATRIX_SGI',
    'GL_COLOR_MATRIX_STACK_DEPTH_SGI',
    'GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI',
    'GL_POST_COLOR_MATRIX_RED_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_RED_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI',
    'GL_TEXTURE_COLOR_TABLE_SGI',
    'GL_BLEND_DST_RGB',
    'GL_BLEND_SRC_RGB',
    'GL_BLEND_DST_ALPHA',
    'GL_BLEND_SRC_ALPHA',
    'GL_COLOR_TABLE_SGI',
    'GL_POST_CONVOLUTION_COLOR_TABLE_SGI',
    'GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI',
    'GL_MAX_ELEMENTS_VERTICES',
    'GL_MAX_ELEMENTS_INDICES',
    'GL_POINT_SIZE_MIN',
    'GL_POINT_SIZE_MIN_ARB',
    'GL_POINT_SIZE_MIN_EXT',
    'GL_POINT_SIZE_MIN_SGIS',
    'GL_POINT_SIZE_MAX',
    'GL_POINT_SIZE_MAX_ARB',
    'GL_POINT_SIZE_MAX_EXT',
    'GL_POINT_SIZE_MAX_SGIS',
    'GL_POINT_FADE_THRESHOLD_SIZE',
    'GL_POINT_FADE_THRESHOLD_SIZE_ARB',
    'GL_POINT_FADE_THRESHOLD_SIZE_EXT',
    'GL_POINT_FADE_THRESHOLD_SIZE_SGIS',
    'GL_DISTANCE_ATTENUATION_EXT',
    'GL_DISTANCE_ATTENUATION_SGIS',
    'GL_POINT_DISTANCE_ATTENUATION',
    'GL_POINT_DISTANCE_ATTENUATION_ARB',
    'GL_FOG_FUNC_POINTS_SGIS',
    'GL_MAX_FOG_FUNC_POINTS_SGIS',
    'GL_PACK_SKIP_VOLUMES_SGIS',
    'GL_PACK_IMAGE_DEPTH_SGIS',
    'GL_UNPACK_SKIP_VOLUMES_SGIS',
    'GL_UNPACK_IMAGE_DEPTH_SGIS',
    'GL_TEXTURE_4D_SGIS',
    'GL_MAX_4D_TEXTURE_SIZE_SGIS',
    'GL_PIXEL_TEX_GEN_SGIX',
    'GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX',
    'GL_PIXEL_TILE_CACHE_INCREMENT_SGIX',
    'GL_PIXEL_TILE_WIDTH_SGIX',
    'GL_PIXEL_TILE_HEIGHT_SGIX',
    'GL_PIXEL_TILE_GRID_WIDTH_SGIX',
    'GL_PIXEL_TILE_GRID_HEIGHT_SGIX',
    'GL_PIXEL_TILE_GRID_DEPTH_SGIX',
    'GL_PIXEL_TILE_CACHE_SIZE_SGIX',
    'GL_SPRITE_SGIX',
    'GL_SPRITE_MODE_SGIX',
    'GL_SPRITE_AXIS_SGIX',
    'GL_SPRITE_TRANSLATION_SGIX',
    'GL_TEXTURE_4D_BINDING_SGIS',
    'GL_MAX_CLIPMAP_DEPTH_SGIX',
    'GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX',
    'GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX',
    'GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX',
    'GL_REFERENCE_PLANE_SGIX',
    'GL_REFERENCE_PLANE_EQUATION_SGIX',
    'GL_IR_INSTRUMENT1_SGIX',
    'GL_INSTRUMENT_MEASUREMENTS_SGIX',
    'GL_CALLIGRAPHIC_FRAGMENT_SGIX',
    'GL_FRAMEZOOM_SGIX',
    'GL_FRAMEZOOM_FACTOR_SGIX',
    'GL_MAX_FRAMEZOOM_FACTOR_SGIX',
    'GL_GENERATE_MIPMAP_HINT_SGIS',
    'GL_DEFORMATIONS_MASK_SGIX',
    'GL_FOG_OFFSET_SGIX',
    'GL_FOG_OFFSET_VALUE_SGIX',
    'GL_LIGHT_MODEL_COLOR_CONTROL',
    'GL_SHARED_TEXTURE_PALETTE_EXT',
    'GL_MAJOR_VERSION',
    'GL_MINOR_VERSION',
    'GL_NUM_EXTENSIONS',
    'GL_CONTEXT_FLAGS',
    'GL_PROGRAM_PIPELINE_BINDING',
    'GL_MAX_VIEWPORTS',
    'GL_VIEWPORT_SUBPIXEL_BITS',
    'GL_VIEWPORT_BOUNDS_RANGE',
    'GL_LAYER_PROVOKING_VERTEX',
    'GL_VIEWPORT_INDEX_PROVOKING_VERTEX',
    'GL_MAX_COMPUTE_UNIFORM_COMPONENTS',
    'GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS',
    'GL_MAX_COMPUTE_ATOMIC_COUNTERS',
    'GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS',
    'GL_MAX_DEBUG_GROUP_STACK_DEPTH',
    'GL_DEBUG_GROUP_STACK_DEPTH',
    'GL_MAX_UNIFORM_LOCATIONS',
    'GL_VERTEX_BINDING_DIVISOR',
    'GL_VERTEX_BINDING_OFFSET',
    'GL_VERTEX_BINDING_STRIDE',
    'GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET',
    'GL_MAX_VERTEX_ATTRIB_BINDINGS',
    'GL_MAX_LABEL_LENGTH',
    'GL_CONVOLUTION_HINT_SGIX',
    'GL_ASYNC_MARKER_SGIX',
    'GL_PIXEL_TEX_GEN_MODE_SGIX',
    'GL_ASYNC_HISTOGRAM_SGIX',
    'GL_MAX_ASYNC_HISTOGRAM_SGIX',
    'GL_PIXEL_TEXTURE_SGIS',
    'GL_ASYNC_TEX_IMAGE_SGIX',
    'GL_ASYNC_DRAW_PIXELS_SGIX',
    'GL_ASYNC_READ_PIXELS_SGIX',
    'GL_MAX_ASYNC_TEX_IMAGE_SGIX',
    'GL_MAX_ASYNC_DRAW_PIXELS_SGIX',
    'GL_MAX_ASYNC_READ_PIXELS_SGIX',
    'GL_VERTEX_PRECLIP_SGIX',
    'GL_VERTEX_PRECLIP_HINT_SGIX',
    'GL_FRAGMENT_LIGHTING_SGIX',
    'GL_FRAGMENT_COLOR_MATERIAL_SGIX',
    'GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX',
    'GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX',
    'GL_MAX_FRAGMENT_LIGHTS_SGIX',
    'GL_MAX_ACTIVE_LIGHTS_SGIX',
    'GL_LIGHT_ENV_MODE_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX',
    'GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX',
    'GL_FRAGMENT_LIGHT0_SGIX',
    'GL_PACK_RESAMPLE_SGIX',
    'GL_UNPACK_RESAMPLE_SGIX',
    'GL_ALIASED_POINT_SIZE_RANGE',
    'GL_ALIASED_LINE_WIDTH_RANGE',
    'GL_ACTIVE_TEXTURE',
    'GL_MAX_RENDERBUFFER_SIZE',
    'GL_TEXTURE_COMPRESSION_HINT',
    'GL_TEXTURE_BINDING_RECTANGLE',
    'GL_TEXTURE_BINDING_RECTANGLE_ARB',
    'GL_TEXTURE_BINDING_RECTANGLE_NV',
    'GL_MAX_RECTANGLE_TEXTURE_SIZE',
    'GL_MAX_TEXTURE_LOD_BIAS',
    'GL_TEXTURE_BINDING_CUBE_MAP',
    'GL_TEXTURE_BINDING_CUBE_MAP_ARB',
    'GL_TEXTURE_BINDING_CUBE_MAP_EXT',
    'GL_MAX_CUBE_MAP_TEXTURE_SIZE',
    'GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB',
    'GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT',
    'GL_PACK_SUBSAMPLE_RATE_SGIX',
    'GL_UNPACK_SUBSAMPLE_RATE_SGIX',
    'GL_VERTEX_ARRAY_BINDING',
    'GL_PROGRAM_POINT_SIZE',
    'GL_NUM_COMPRESSED_TEXTURE_FORMATS',
    'GL_COMPRESSED_TEXTURE_FORMATS',
    'GL_NUM_PROGRAM_BINARY_FORMATS',
    'GL_PROGRAM_BINARY_FORMATS',
    'GL_STENCIL_BACK_FUNC',
    'GL_STENCIL_BACK_FAIL',
    'GL_STENCIL_BACK_PASS_DEPTH_FAIL',
    'GL_STENCIL_BACK_PASS_DEPTH_PASS',
    'GL_MAX_DRAW_BUFFERS',
    'GL_BLEND_EQUATION_ALPHA',
    'GL_MAX_VERTEX_ATTRIBS',
    'GL_MAX_TEXTURE_IMAGE_UNITS',
    'GL_ARRAY_BUFFER_BINDING',
    'GL_ELEMENT_ARRAY_BUFFER_BINDING',
    'GL_PIXEL_PACK_BUFFER_BINDING',
    'GL_PIXEL_UNPACK_BUFFER_BINDING',
    'GL_MAX_DUAL_SOURCE_DRAW_BUFFERS',
    'GL_MAX_ARRAY_TEXTURE_LAYERS',
    'GL_MIN_PROGRAM_TEXEL_OFFSET',
    'GL_MAX_PROGRAM_TEXEL_OFFSET',
    'GL_SAMPLER_BINDING',
    'GL_FRAGMENT_SHADER_ATI',
    'GL_UNIFORM_BUFFER_BINDING',
    'GL_UNIFORM_BUFFER_START',
    'GL_UNIFORM_BUFFER_SIZE',
    'GL_MAX_VERTEX_UNIFORM_BLOCKS',
    'GL_MAX_GEOMETRY_UNIFORM_BLOCKS',
    'GL_MAX_FRAGMENT_UNIFORM_BLOCKS',
    'GL_MAX_COMBINED_UNIFORM_BLOCKS',
    'GL_MAX_UNIFORM_BUFFER_BINDINGS',
    'GL_MAX_UNIFORM_BLOCK_SIZE',
    'GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS',
    'GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS',
    'GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS',
    'GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT',
    'GL_MAX_FRAGMENT_UNIFORM_COMPONENTS',
    'GL_MAX_VERTEX_UNIFORM_COMPONENTS',
    'GL_MAX_VARYING_FLOATS',
    'GL_MAX_VARYING_COMPONENTS',
    'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS',
    'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS',
    'GL_FRAGMENT_SHADER_DERIVATIVE_HINT',
    'GL_CURRENT_PROGRAM',
    'GL_IMPLEMENTATION_COLOR_READ_TYPE',
    'GL_IMPLEMENTATION_COLOR_READ_FORMAT',
    'GL_TEXTURE_BINDING_1D_ARRAY',
    'GL_TEXTURE_BINDING_2D_ARRAY',
    'GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS',
    'GL_MAX_TEXTURE_BUFFER_SIZE',
    'GL_TEXTURE_BINDING_BUFFER',
    'GL_TRANSFORM_FEEDBACK_BUFFER_START',
    'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE',
    'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING',
    'GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM',
    'GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM',
    'GL_STENCIL_BACK_REF',
    'GL_STENCIL_BACK_VALUE_MASK',
    'GL_STENCIL_BACK_WRITEMASK',
    'GL_DRAW_FRAMEBUFFER_BINDING',
    'GL_RENDERBUFFER_BINDING',
    'GL_READ_FRAMEBUFFER_BINDING',
    'GL_MAX_COLOR_ATTACHMENTS',
    'GL_MAX_COLOR_ATTACHMENTS_EXT',
    'GL_MAX_COLOR_ATTACHMENTS_NV',
    'GL_MAX_ELEMENT_INDEX',
    'GL_MAX_GEOMETRY_UNIFORM_COMPONENTS',
    'GL_SHADER_BINARY_FORMATS',
    'GL_NUM_SHADER_BINARY_FORMATS',
    'GL_SHADER_COMPILER',
    'GL_MAX_VERTEX_UNIFORM_VECTORS',
    'GL_MAX_VARYING_VECTORS',
    'GL_MAX_FRAGMENT_UNIFORM_VECTORS',
    'GL_TIMESTAMP',
    'GL_TIMESTAMP_EXT',
    'GL_PROVOKING_VERTEX',
    'GL_MAX_SAMPLE_MASK_WORDS',
    'GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS',
    'GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS',
    'GL_FETCH_PER_SAMPLE_ARM',
    'GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM',
    'GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT',
    'GL_PRIMITIVE_RESTART_INDEX',
    'GL_MIN_MAP_BUFFER_ALIGNMENT',
    'GL_SHADER_STORAGE_BUFFER_BINDING',
    'GL_SHADER_STORAGE_BUFFER_START',
    'GL_SHADER_STORAGE_BUFFER_SIZE',
    'GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS',
    'GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS',
    'GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS',
    'GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS',
    'GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS',
    'GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS',
    'GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS',
    'GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS',
    'GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT',
    'GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS',
    'GL_DISPATCH_INDIRECT_BUFFER_BINDING',
    'GL_TEXTURE_BINDING_2D_MULTISAMPLE',
    'GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY',
    'GL_MAX_COLOR_TEXTURE_SAMPLES',
    'GL_MAX_DEPTH_TEXTURE_SAMPLES',
    'GL_MAX_INTEGER_SAMPLES',
    'GL_MAX_SERVER_WAIT_TIMEOUT',
    'GL_MAX_VERTEX_OUTPUT_COMPONENTS',
    'GL_MAX_GEOMETRY_INPUT_COMPONENTS',
    'GL_MAX_GEOMETRY_OUTPUT_COMPONENTS',
    'GL_MAX_FRAGMENT_INPUT_COMPONENTS',
    'GL_CONTEXT_PROFILE_MASK',
    'GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT',
    'GL_MAX_COMPUTE_UNIFORM_BLOCKS',
    'GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS',
    'GL_MAX_COMPUTE_WORK_GROUP_COUNT',
    'GL_MAX_COMPUTE_WORK_GROUP_SIZE',
    'GL_MAX_VERTEX_ATOMIC_COUNTERS',
    'GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS',
    'GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS',
    'GL_MAX_GEOMETRY_ATOMIC_COUNTERS',
    'GL_MAX_FRAGMENT_ATOMIC_COUNTERS',
    'GL_MAX_COMBINED_ATOMIC_COUNTERS',
    'GL_MAX_FRAMEBUFFER_WIDTH',
    'GL_MAX_FRAMEBUFFER_HEIGHT',
    'GL_MAX_FRAMEBUFFER_LAYERS',
    'GL_MAX_FRAMEBUFFER_SAMPLES',
    'GL_NUM_DEVICE_UUIDS_EXT',
    'GL_DEVICE_UUID_EXT',
    'GL_DRIVER_UUID_EXT',
    'GL_DEVICE_LUID_EXT',
    'GL_DEVICE_NODE_MASK_EXT',
    'GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV',
    'GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV',
    'GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV',
    'GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM',
    'GL_SHADING_RATE_QCOM',
    'GL_SHADING_RATE_EXT',
    'GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT',
    'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT',
    'GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT',
    'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT',
    'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT',
    'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT',
    'GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT',
    'GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT',
    'GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT',
    'GL_SHADER_CORE_COUNT_ARM',
    'GL_SHADER_CORE_ACTIVE_COUNT_ARM',
    'GL_SHADER_CORE_PRESENT_MASK_ARM',
    'GL_SHADER_CORE_MAX_WARP_COUNT_ARM',
    'GL_SHADER_CORE_PIXEL_RATE_ARM',
    'GL_SHADER_CORE_TEXEL_RATE_ARM',
    'GL_SHADER_CORE_FMA_RATE_ARM',
    'GL_MAX_TASK_WORK_GROUP_TOTAL_COUNT_EXT',
    'GL_MAX_MESH_WORK_GROUP_TOTAL_COUNT_EXT',
    'GL_MAX_TASK_PAYLOAD_SIZE_EXT',
    'GL_MAX_TASK_SHARED_MEMORY_SIZE_EXT',
    'GL_MAX_MESH_SHARED_MEMORY_SIZE_EXT',
    'GL_MAX_TASK_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT',
    'GL_MAX_MESH_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT',
    'GL_MAX_MESH_OUTPUT_MEMORY_SIZE_EXT',
    'GL_MAX_MESH_PAYLOAD_AND_OUTPUT_MEMORY_SIZE_EXT',
    'GL_MAX_MESH_OUTPUT_COMPONENTS_EXT',
    'GL_MAX_MESH_OUTPUT_LAYERS_EXT',
    'GL_MAX_PREFERRED_TASK_WORK_GROUP_INVOCATIONS_EXT',
    'GL_MAX_PREFERRED_MESH_WORK_GROUP_INVOCATIONS_EXT',
    'GL_MESH_PREFERS_LOCAL_INVOCATION_VERTEX_OUTPUT_EXT',
    'GL_MESH_PREFERS_LOCAL_INVOCATION_PRIMITIVE_OUTPUT_EXT',
    'GL_MESH_PREFERS_COMPACT_VERTEX_OUTPUT_EXT',
    'GL_MESH_PREFERS_COMPACT_PRIMITIVE_OUTPUT_EXT',
    'GL_MAX_TASK_WORK_GROUP_COUNT_EXT',
    'GL_MAX_MESH_WORK_GROUP_COUNT_EXT',
    'GL_MAX_MESH_OUTPUT_PRIMITIVES_EXT',
    'GL_MAX_MESH_WORK_GROUP_INVOCATIONS_EXT',
    'GL_MAX_MESH_WORK_GROUP_SIZE_EXT',
    'GL_MAX_TASK_WORK_GROUP_INVOCATIONS_EXT',
    'GL_MAX_TASK_WORK_GROUP_SIZE_EXT',
    'GL_FRAGMENT_SHADING_RATE_PRIMITIVE_RATE_WITH_MULTI_VIEWPORT_SUPPORTED_EXT'
  ],
  'GetPointervPName' => [
    'GL_FEEDBACK_BUFFER_POINTER',
    'GL_SELECTION_BUFFER_POINTER',
    'GL_VERTEX_ARRAY_POINTER',
    'GL_VERTEX_ARRAY_POINTER_EXT',
    'GL_NORMAL_ARRAY_POINTER',
    'GL_NORMAL_ARRAY_POINTER_EXT',
    'GL_COLOR_ARRAY_POINTER',
    'GL_COLOR_ARRAY_POINTER_EXT',
    'GL_INDEX_ARRAY_POINTER',
    'GL_INDEX_ARRAY_POINTER_EXT',
    'GL_TEXTURE_COORD_ARRAY_POINTER',
    'GL_TEXTURE_COORD_ARRAY_POINTER_EXT',
    'GL_EDGE_FLAG_ARRAY_POINTER',
    'GL_EDGE_FLAG_ARRAY_POINTER_EXT',
    'GL_INSTRUMENT_BUFFER_POINTER_SGIX',
    'GL_DEBUG_CALLBACK_FUNCTION',
    'GL_DEBUG_CALLBACK_USER_PARAM'
  ],
  'GetTexBumpParameterATI' => [
    'GL_BUMP_ROT_MATRIX_ATI',
    'GL_BUMP_ROT_MATRIX_SIZE_ATI',
    'GL_BUMP_NUM_TEX_UNITS_ATI',
    'GL_BUMP_TEX_UNITS_ATI'
  ],
  'GetTextureParameter' => [
    'GL_TEXTURE_WIDTH',
    'GL_TEXTURE_HEIGHT',
    'GL_TEXTURE_INTERNAL_FORMAT',
    'GL_TEXTURE_COMPONENTS',
    'GL_TEXTURE_BORDER_COLOR',
    'GL_TEXTURE_BORDER_COLOR_NV',
    'GL_TEXTURE_BORDER',
    'GL_TEXTURE_MAG_FILTER',
    'GL_TEXTURE_MIN_FILTER',
    'GL_TEXTURE_WRAP_S',
    'GL_TEXTURE_WRAP_T',
    'GL_TEXTURE_RED_SIZE',
    'GL_TEXTURE_GREEN_SIZE',
    'GL_TEXTURE_BLUE_SIZE',
    'GL_TEXTURE_ALPHA_SIZE',
    'GL_TEXTURE_LUMINANCE_SIZE',
    'GL_TEXTURE_INTENSITY_SIZE',
    'GL_TEXTURE_PRIORITY',
    'GL_TEXTURE_RESIDENT',
    'GL_TEXTURE_DEPTH_EXT',
    'GL_TEXTURE_WRAP_R_EXT',
    'GL_DETAIL_TEXTURE_LEVEL_SGIS',
    'GL_DETAIL_TEXTURE_MODE_SGIS',
    'GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS',
    'GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS',
    'GL_SHADOW_AMBIENT_SGIX',
    'GL_DUAL_TEXTURE_SELECT_SGIS',
    'GL_QUAD_TEXTURE_SELECT_SGIS',
    'GL_TEXTURE_4DSIZE_SGIS',
    'GL_TEXTURE_WRAP_Q_SGIS',
    'GL_TEXTURE_MIN_LOD_SGIS',
    'GL_TEXTURE_MAX_LOD_SGIS',
    'GL_TEXTURE_BASE_LEVEL_SGIS',
    'GL_TEXTURE_MAX_LEVEL_SGIS',
    'GL_TEXTURE_FILTER4_SIZE_SGIS',
    'GL_TEXTURE_CLIPMAP_CENTER_SGIX',
    'GL_TEXTURE_CLIPMAP_FRAME_SGIX',
    'GL_TEXTURE_CLIPMAP_OFFSET_SGIX',
    'GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX',
    'GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX',
    'GL_TEXTURE_CLIPMAP_DEPTH_SGIX',
    'GL_POST_TEXTURE_FILTER_BIAS_SGIX',
    'GL_POST_TEXTURE_FILTER_SCALE_SGIX',
    'GL_TEXTURE_LOD_BIAS_S_SGIX',
    'GL_TEXTURE_LOD_BIAS_T_SGIX',
    'GL_TEXTURE_LOD_BIAS_R_SGIX',
    'GL_GENERATE_MIPMAP_SGIS',
    'GL_TEXTURE_COMPARE_SGIX',
    'GL_TEXTURE_COMPARE_OPERATOR_SGIX',
    'GL_TEXTURE_LEQUAL_R_SGIX',
    'GL_TEXTURE_GEQUAL_R_SGIX',
    'GL_TEXTURE_MAX_CLAMP_S_SGIX',
    'GL_TEXTURE_MAX_CLAMP_T_SGIX',
    'GL_TEXTURE_MAX_CLAMP_R_SGIX',
    'GL_NORMAL_MAP',
    'GL_NORMAL_MAP_ARB',
    'GL_NORMAL_MAP_EXT',
    'GL_NORMAL_MAP_NV',
    'GL_REFLECTION_MAP',
    'GL_REFLECTION_MAP_ARB',
    'GL_REFLECTION_MAP_EXT',
    'GL_REFLECTION_MAP_NV',
    'GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM',
    'GL_SURFACE_COMPRESSION_EXT',
    'GL_TEXTURE_Y_DEGAMMA_QCOM',
    'GL_TEXTURE_CBCR_DEGAMMA_QCOM'
  ],
  'GetVariantValueEXT' => [
    'GL_VARIANT_VALUE_EXT',
    'GL_VARIANT_DATATYPE_EXT',
    'GL_VARIANT_ARRAY_STRIDE_EXT',
    'GL_VARIANT_ARRAY_TYPE_EXT'
  ],
  'GraphicsResetStatus' => [
    'GL_NO_ERROR',
    'GL_GUILTY_CONTEXT_RESET',
    'GL_INNOCENT_CONTEXT_RESET',
    'GL_UNKNOWN_CONTEXT_RESET'
  ],
  'HintMode' => [
    'GL_DONT_CARE',
    'GL_FASTEST',
    'GL_NICEST'
  ],
  'HintTarget' => [
    'GL_PERSPECTIVE_CORRECTION_HINT',
    'GL_POINT_SMOOTH_HINT',
    'GL_LINE_SMOOTH_HINT',
    'GL_POLYGON_SMOOTH_HINT',
    'GL_FOG_HINT',
    'GL_PACK_CMYK_HINT_EXT',
    'GL_UNPACK_CMYK_HINT_EXT',
    'GL_PHONG_HINT_WIN',
    'GL_CLIP_VOLUME_CLIPPING_HINT_EXT',
    'GL_TEXTURE_MULTI_BUFFER_HINT_SGIX',
    'GL_GENERATE_MIPMAP_HINT',
    'GL_GENERATE_MIPMAP_HINT_SGIS',
    'GL_PROGRAM_BINARY_RETRIEVABLE_HINT',
    'GL_CONVOLUTION_HINT_SGIX',
    'GL_SCALEBIAS_HINT_SGIX',
    'GL_LINE_QUALITY_HINT_SGIX',
    'GL_VERTEX_PRECLIP_SGIX',
    'GL_VERTEX_PRECLIP_HINT_SGIX',
    'GL_TEXTURE_COMPRESSION_HINT',
    'GL_TEXTURE_COMPRESSION_HINT_ARB',
    'GL_VERTEX_ARRAY_STORAGE_HINT_APPLE',
    'GL_MULTISAMPLE_FILTER_HINT_NV',
    'GL_TRANSFORM_HINT_APPLE',
    'GL_TEXTURE_STORAGE_HINT_APPLE',
    'GL_FRAGMENT_SHADER_DERIVATIVE_HINT',
    'GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB',
    'GL_BINNING_CONTROL_HINT_QCOM',
    'GL_PREFER_DOUBLEBUFFER_HINT_PGI',
    'GL_CONSERVE_MEMORY_HINT_PGI',
    'GL_RECLAIM_MEMORY_HINT_PGI',
    'GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI',
    'GL_NATIVE_GRAPHICS_END_HINT_PGI',
    'GL_ALWAYS_FAST_HINT_PGI',
    'GL_ALWAYS_SOFT_HINT_PGI',
    'GL_ALLOW_DRAW_OBJ_HINT_PGI',
    'GL_ALLOW_DRAW_WIN_HINT_PGI',
    'GL_ALLOW_DRAW_FRG_HINT_PGI',
    'GL_ALLOW_DRAW_MEM_HINT_PGI',
    'GL_STRICT_DEPTHFUNC_HINT_PGI',
    'GL_STRICT_LIGHTING_HINT_PGI',
    'GL_STRICT_SCISSOR_HINT_PGI',
    'GL_FULL_STIPPLE_HINT_PGI',
    'GL_CLIP_NEAR_HINT_PGI',
    'GL_CLIP_FAR_HINT_PGI',
    'GL_WIDE_LINE_HINT_PGI',
    'GL_BACK_NORMALS_HINT_PGI',
    'GL_VERTEX_DATA_HINT_PGI',
    'GL_VERTEX_CONSISTENT_HINT_PGI',
    'GL_MATERIAL_SIDE_HINT_PGI',
    'GL_MAX_VERTEX_HINT_PGI'
  ],
  'HintTargetPGI' => [
    'GL_VERTEX_DATA_HINT_PGI',
    'GL_VERTEX_CONSISTENT_HINT_PGI',
    'GL_MATERIAL_SIDE_HINT_PGI',
    'GL_MAX_VERTEX_HINT_PGI'
  ],
  'HistogramTarget' => [
    'GL_HISTOGRAM',
    'GL_PROXY_HISTOGRAM'
  ],
  'HistogramTargetEXT' => [
    'GL_HISTOGRAM',
    'GL_HISTOGRAM_EXT',
    'GL_PROXY_HISTOGRAM',
    'GL_PROXY_HISTOGRAM_EXT'
  ],
  'ImageTransformPNameHP' => [
    'GL_IMAGE_SCALE_X_HP',
    'GL_IMAGE_SCALE_Y_HP',
    'GL_IMAGE_TRANSLATE_X_HP',
    'GL_IMAGE_TRANSLATE_Y_HP',
    'GL_IMAGE_ROTATE_ANGLE_HP',
    'GL_IMAGE_ROTATE_ORIGIN_X_HP',
    'GL_IMAGE_ROTATE_ORIGIN_Y_HP',
    'GL_IMAGE_MAG_FILTER_HP',
    'GL_IMAGE_MIN_FILTER_HP',
    'GL_IMAGE_CUBIC_WEIGHT_HP'
  ],
  'ImageTransformTargetHP' => [
    'GL_IMAGE_TRANSFORM_2D_HP'
  ],
  'IndexFunctionEXT' => [
    'GL_NEVER',
    'GL_LESS',
    'GL_EQUAL',
    'GL_LEQUAL',
    'GL_GREATER',
    'GL_NOTEQUAL',
    'GL_GEQUAL',
    'GL_ALWAYS'
  ],
  'IndexMaterialParameterEXT' => [
    'GL_INDEX_OFFSET'
  ],
  'IndexPointerType' => [
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'InstancedPathCoverMode' => [
    'GL_PATH_FILL_COVER_MODE_NV',
    'GL_CONVEX_HULL_NV',
    'GL_BOUNDING_BOX_NV',
    'GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV'
  ],
  'InterleavedArrayFormat' => [
    'GL_V2F',
    'GL_V3F',
    'GL_C4UB_V2F',
    'GL_C4UB_V3F',
    'GL_C3F_V3F',
    'GL_N3F_V3F',
    'GL_C4F_N3F_V3F',
    'GL_T2F_V3F',
    'GL_T4F_V4F',
    'GL_T2F_C4UB_V3F',
    'GL_T2F_C3F_V3F',
    'GL_T2F_N3F_V3F',
    'GL_T2F_C4F_N3F_V3F',
    'GL_T4F_C4F_N3F_V4F'
  ],
  'InternalFormat' => [
    'GL_STENCIL_INDEX',
    'GL_DEPTH_COMPONENT',
    'GL_RED',
    'GL_RED_EXT',
    'GL_RGB',
    'GL_RGBA',
    'GL_R3_G3_B2',
    'GL_ALPHA4',
    'GL_ALPHA4_EXT',
    'GL_ALPHA8',
    'GL_ALPHA8_EXT',
    'GL_ALPHA12',
    'GL_ALPHA12_EXT',
    'GL_ALPHA16',
    'GL_ALPHA16_EXT',
    'GL_LUMINANCE4',
    'GL_LUMINANCE4_EXT',
    'GL_LUMINANCE8',
    'GL_LUMINANCE8_EXT',
    'GL_LUMINANCE12',
    'GL_LUMINANCE12_EXT',
    'GL_LUMINANCE16',
    'GL_LUMINANCE16_EXT',
    'GL_LUMINANCE4_ALPHA4',
    'GL_LUMINANCE4_ALPHA4_EXT',
    'GL_LUMINANCE6_ALPHA2',
    'GL_LUMINANCE6_ALPHA2_EXT',
    'GL_LUMINANCE8_ALPHA8',
    'GL_LUMINANCE8_ALPHA8_EXT',
    'GL_LUMINANCE12_ALPHA4',
    'GL_LUMINANCE12_ALPHA4_EXT',
    'GL_LUMINANCE12_ALPHA12',
    'GL_LUMINANCE12_ALPHA12_EXT',
    'GL_LUMINANCE16_ALPHA16',
    'GL_LUMINANCE16_ALPHA16_EXT',
    'GL_INTENSITY',
    'GL_INTENSITY4',
    'GL_INTENSITY4_EXT',
    'GL_INTENSITY8',
    'GL_INTENSITY8_EXT',
    'GL_INTENSITY12',
    'GL_INTENSITY12_EXT',
    'GL_INTENSITY16',
    'GL_INTENSITY16_EXT',
    'GL_RGB2_EXT',
    'GL_RGB4',
    'GL_RGB4_EXT',
    'GL_RGB5',
    'GL_RGB5_EXT',
    'GL_RGB8',
    'GL_RGB8_EXT',
    'GL_RGB10',
    'GL_RGB10_EXT',
    'GL_RGB12',
    'GL_RGB12_EXT',
    'GL_RGB16',
    'GL_RGB16_EXT',
    'GL_RGBA2',
    'GL_RGBA2_EXT',
    'GL_RGBA4',
    'GL_RGBA4_EXT',
    'GL_RGB5_A1',
    'GL_RGB5_A1_EXT',
    'GL_RGBA8',
    'GL_RGBA8_EXT',
    'GL_RGB10_A2',
    'GL_RGB10_A2_EXT',
    'GL_RGBA12',
    'GL_RGBA12_EXT',
    'GL_RGBA16',
    'GL_RGBA16_EXT',
    'GL_DUAL_ALPHA4_SGIS',
    'GL_DUAL_ALPHA8_SGIS',
    'GL_DUAL_ALPHA12_SGIS',
    'GL_DUAL_ALPHA16_SGIS',
    'GL_DUAL_LUMINANCE4_SGIS',
    'GL_DUAL_LUMINANCE8_SGIS',
    'GL_DUAL_LUMINANCE12_SGIS',
    'GL_DUAL_LUMINANCE16_SGIS',
    'GL_DUAL_INTENSITY4_SGIS',
    'GL_DUAL_INTENSITY8_SGIS',
    'GL_DUAL_INTENSITY12_SGIS',
    'GL_DUAL_INTENSITY16_SGIS',
    'GL_DUAL_LUMINANCE_ALPHA4_SGIS',
    'GL_DUAL_LUMINANCE_ALPHA8_SGIS',
    'GL_QUAD_ALPHA4_SGIS',
    'GL_QUAD_ALPHA8_SGIS',
    'GL_QUAD_LUMINANCE4_SGIS',
    'GL_QUAD_LUMINANCE8_SGIS',
    'GL_QUAD_INTENSITY4_SGIS',
    'GL_QUAD_INTENSITY8_SGIS',
    'GL_DEPTH_COMPONENT16',
    'GL_DEPTH_COMPONENT16_ARB',
    'GL_DEPTH_COMPONENT16_SGIX',
    'GL_DEPTH_COMPONENT24',
    'GL_DEPTH_COMPONENT24_ARB',
    'GL_DEPTH_COMPONENT24_SGIX',
    'GL_DEPTH_COMPONENT32',
    'GL_DEPTH_COMPONENT32_ARB',
    'GL_DEPTH_COMPONENT32_SGIX',
    'GL_COMPRESSED_RED',
    'GL_COMPRESSED_RG',
    'GL_RG',
    'GL_R8',
    'GL_R8_EXT',
    'GL_R16',
    'GL_R16_EXT',
    'GL_RG8',
    'GL_RG8_EXT',
    'GL_RG16',
    'GL_RG16_EXT',
    'GL_R16F',
    'GL_R16F_EXT',
    'GL_R32F',
    'GL_R32F_EXT',
    'GL_RG16F',
    'GL_RG16F_EXT',
    'GL_RG32F',
    'GL_RG32F_EXT',
    'GL_R8I',
    'GL_R8UI',
    'GL_R16I',
    'GL_R16UI',
    'GL_R32I',
    'GL_R32UI',
    'GL_RG8I',
    'GL_RG8UI',
    'GL_RG16I',
    'GL_RG16UI',
    'GL_RG32I',
    'GL_RG32UI',
    'GL_COMPRESSED_RGB_S3TC_DXT1_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE',
    'GL_COMPRESSED_RGBA_S3TC_DXT3_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE',
    'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT',
    'GL_COMPRESSED_RGB',
    'GL_COMPRESSED_RGBA',
    'GL_DEPTH_STENCIL',
    'GL_DEPTH_STENCIL_EXT',
    'GL_DEPTH_STENCIL_NV',
    'GL_DEPTH_STENCIL_MESA',
    'GL_RGBA32F',
    'GL_RGBA32F_ARB',
    'GL_RGBA32F_EXT',
    'GL_RGB32F',
    'GL_RGB32F_ARB',
    'GL_RGB32F_EXT',
    'GL_RGBA16F',
    'GL_RGBA16F_ARB',
    'GL_RGBA16F_EXT',
    'GL_RGB16F',
    'GL_RGB16F_ARB',
    'GL_RGB16F_EXT',
    'GL_DEPTH24_STENCIL8',
    'GL_DEPTH24_STENCIL8_EXT',
    'GL_R11F_G11F_B10F',
    'GL_R11F_G11F_B10F_APPLE',
    'GL_R11F_G11F_B10F_EXT',
    'GL_RGB9_E5',
    'GL_RGB9_E5_APPLE',
    'GL_RGB9_E5_EXT',
    'GL_SRGB',
    'GL_SRGB_EXT',
    'GL_SRGB8',
    'GL_SRGB8_EXT',
    'GL_SRGB8_NV',
    'GL_SRGB_ALPHA',
    'GL_SRGB_ALPHA_EXT',
    'GL_SRGB8_ALPHA8',
    'GL_SRGB8_ALPHA8_EXT',
    'GL_COMPRESSED_SRGB',
    'GL_COMPRESSED_SRGB_ALPHA',
    'GL_COMPRESSED_SRGB_S3TC_DXT1_EXT',
    'GL_COMPRESSED_SRGB_S3TC_DXT1_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV',
    'GL_DEPTH_COMPONENT32F',
    'GL_DEPTH32F_STENCIL8',
    'GL_STENCIL_INDEX1',
    'GL_STENCIL_INDEX1_EXT',
    'GL_STENCIL_INDEX4',
    'GL_STENCIL_INDEX4_EXT',
    'GL_STENCIL_INDEX8',
    'GL_STENCIL_INDEX8_EXT',
    'GL_STENCIL_INDEX16',
    'GL_STENCIL_INDEX16_EXT',
    'GL_RGB565',
    'GL_RGBA32UI',
    'GL_RGBA32UI_EXT',
    'GL_RGB32UI',
    'GL_RGB32UI_EXT',
    'GL_ALPHA32UI_EXT',
    'GL_INTENSITY32UI_EXT',
    'GL_LUMINANCE32UI_EXT',
    'GL_LUMINANCE_ALPHA32UI_EXT',
    'GL_RGBA16UI',
    'GL_RGBA16UI_EXT',
    'GL_RGB16UI',
    'GL_RGB16UI_EXT',
    'GL_ALPHA16UI_EXT',
    'GL_INTENSITY16UI_EXT',
    'GL_LUMINANCE16UI_EXT',
    'GL_LUMINANCE_ALPHA16UI_EXT',
    'GL_RGBA8UI',
    'GL_RGBA8UI_EXT',
    'GL_RGB8UI',
    'GL_RGB8UI_EXT',
    'GL_ALPHA8UI_EXT',
    'GL_INTENSITY8UI_EXT',
    'GL_LUMINANCE8UI_EXT',
    'GL_LUMINANCE_ALPHA8UI_EXT',
    'GL_RGBA32I',
    'GL_RGBA32I_EXT',
    'GL_RGB32I',
    'GL_RGB32I_EXT',
    'GL_ALPHA32I_EXT',
    'GL_INTENSITY32I_EXT',
    'GL_LUMINANCE32I_EXT',
    'GL_LUMINANCE_ALPHA32I_EXT',
    'GL_RGBA16I',
    'GL_RGBA16I_EXT',
    'GL_RGB16I',
    'GL_RGB16I_EXT',
    'GL_ALPHA16I_EXT',
    'GL_INTENSITY16I_EXT',
    'GL_LUMINANCE16I_EXT',
    'GL_LUMINANCE_ALPHA16I_EXT',
    'GL_RGBA8I',
    'GL_RGBA8I_EXT',
    'GL_RGB8I',
    'GL_RGB8I_EXT',
    'GL_ALPHA8I_EXT',
    'GL_INTENSITY8I_EXT',
    'GL_LUMINANCE8I_EXT',
    'GL_LUMINANCE_ALPHA8I_EXT',
    'GL_DEPTH_COMPONENT32F_NV',
    'GL_DEPTH32F_STENCIL8_NV',
    'GL_COMPRESSED_RED_RGTC1',
    'GL_COMPRESSED_RED_RGTC1_EXT',
    'GL_COMPRESSED_SIGNED_RED_RGTC1',
    'GL_COMPRESSED_SIGNED_RED_RGTC1_EXT',
    'GL_COMPRESSED_RED_GREEN_RGTC2_EXT',
    'GL_COMPRESSED_RG_RGTC2',
    'GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT',
    'GL_COMPRESSED_SIGNED_RG_RGTC2',
    'GL_COMPRESSED_RGBA_BPTC_UNORM',
    'GL_COMPRESSED_RGBA_BPTC_UNORM_ARB',
    'GL_COMPRESSED_RGBA_BPTC_UNORM_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT',
    'GL_R8_SNORM',
    'GL_RG8_SNORM',
    'GL_RGB8_SNORM',
    'GL_RGBA8_SNORM',
    'GL_R16_SNORM',
    'GL_R16_SNORM_EXT',
    'GL_RG16_SNORM',
    'GL_RG16_SNORM_EXT',
    'GL_RGB16_SNORM',
    'GL_RGB16_SNORM_EXT',
    'GL_RGBA16_SNORM',
    'GL_RGBA16_SNORM_EXT',
    'GL_SR8_EXT',
    'GL_SRG8_EXT',
    'GL_RGB10_A2UI',
    'GL_COMPRESSED_R11_EAC',
    'GL_COMPRESSED_SIGNED_R11_EAC',
    'GL_COMPRESSED_RG11_EAC',
    'GL_COMPRESSED_SIGNED_RG11_EAC',
    'GL_COMPRESSED_RGB8_ETC2',
    'GL_COMPRESSED_SRGB8_ETC2',
    'GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2',
    'GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2',
    'GL_COMPRESSED_RGBA8_ETC2_EAC',
    'GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC',
    'GL_COMPRESSED_RGBA_ASTC_4x4',
    'GL_COMPRESSED_RGBA_ASTC_4x4_KHR',
    'GL_COMPRESSED_RGBA_ASTC_5x4',
    'GL_COMPRESSED_RGBA_ASTC_5x4_KHR',
    'GL_COMPRESSED_RGBA_ASTC_5x5',
    'GL_COMPRESSED_RGBA_ASTC_5x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_6x5',
    'GL_COMPRESSED_RGBA_ASTC_6x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_6x6',
    'GL_COMPRESSED_RGBA_ASTC_6x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x5',
    'GL_COMPRESSED_RGBA_ASTC_8x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x6',
    'GL_COMPRESSED_RGBA_ASTC_8x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x8',
    'GL_COMPRESSED_RGBA_ASTC_8x8_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x5',
    'GL_COMPRESSED_RGBA_ASTC_10x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x6',
    'GL_COMPRESSED_RGBA_ASTC_10x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x8',
    'GL_COMPRESSED_RGBA_ASTC_10x8_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x10',
    'GL_COMPRESSED_RGBA_ASTC_10x10_KHR',
    'GL_COMPRESSED_RGBA_ASTC_12x10',
    'GL_COMPRESSED_RGBA_ASTC_12x10_KHR',
    'GL_COMPRESSED_RGBA_ASTC_12x12',
    'GL_COMPRESSED_RGBA_ASTC_12x12_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR'
  ],
  'InternalFormatPName' => [
    'GL_SAMPLES',
    'GL_GENERATE_MIPMAP',
    'GL_INTERNALFORMAT_SUPPORTED',
    'GL_INTERNALFORMAT_PREFERRED',
    'GL_INTERNALFORMAT_RED_SIZE',
    'GL_INTERNALFORMAT_GREEN_SIZE',
    'GL_INTERNALFORMAT_BLUE_SIZE',
    'GL_INTERNALFORMAT_ALPHA_SIZE',
    'GL_INTERNALFORMAT_DEPTH_SIZE',
    'GL_INTERNALFORMAT_STENCIL_SIZE',
    'GL_INTERNALFORMAT_SHARED_SIZE',
    'GL_INTERNALFORMAT_RED_TYPE',
    'GL_INTERNALFORMAT_GREEN_TYPE',
    'GL_INTERNALFORMAT_BLUE_TYPE',
    'GL_INTERNALFORMAT_ALPHA_TYPE',
    'GL_INTERNALFORMAT_DEPTH_TYPE',
    'GL_INTERNALFORMAT_STENCIL_TYPE',
    'GL_MAX_WIDTH',
    'GL_MAX_HEIGHT',
    'GL_MAX_DEPTH',
    'GL_MAX_LAYERS',
    'GL_COLOR_COMPONENTS',
    'GL_COLOR_RENDERABLE',
    'GL_DEPTH_RENDERABLE',
    'GL_STENCIL_RENDERABLE',
    'GL_FRAMEBUFFER_RENDERABLE',
    'GL_FRAMEBUFFER_RENDERABLE_LAYERED',
    'GL_FRAMEBUFFER_BLEND',
    'GL_READ_PIXELS',
    'GL_READ_PIXELS_FORMAT',
    'GL_READ_PIXELS_TYPE',
    'GL_TEXTURE_IMAGE_FORMAT',
    'GL_TEXTURE_IMAGE_TYPE',
    'GL_GET_TEXTURE_IMAGE_FORMAT',
    'GL_GET_TEXTURE_IMAGE_TYPE',
    'GL_MIPMAP',
    'GL_AUTO_GENERATE_MIPMAP',
    'GL_COLOR_ENCODING',
    'GL_SRGB_READ',
    'GL_SRGB_WRITE',
    'GL_FILTER',
    'GL_VERTEX_TEXTURE',
    'GL_TESS_CONTROL_TEXTURE',
    'GL_TESS_EVALUATION_TEXTURE',
    'GL_GEOMETRY_TEXTURE',
    'GL_FRAGMENT_TEXTURE',
    'GL_COMPUTE_TEXTURE',
    'GL_TEXTURE_SHADOW',
    'GL_TEXTURE_GATHER',
    'GL_TEXTURE_GATHER_SHADOW',
    'GL_SHADER_IMAGE_LOAD',
    'GL_SHADER_IMAGE_STORE',
    'GL_SHADER_IMAGE_ATOMIC',
    'GL_IMAGE_TEXEL_SIZE',
    'GL_IMAGE_COMPATIBILITY_CLASS',
    'GL_IMAGE_PIXEL_FORMAT',
    'GL_IMAGE_PIXEL_TYPE',
    'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST',
    'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST',
    'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE',
    'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE',
    'GL_TEXTURE_COMPRESSED_BLOCK_WIDTH',
    'GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT',
    'GL_TEXTURE_COMPRESSED_BLOCK_SIZE',
    'GL_CLEAR_BUFFER',
    'GL_TEXTURE_VIEW',
    'GL_VIEW_COMPATIBILITY_CLASS',
    'GL_TEXTURE_COMPRESSED',
    'GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT',
    'GL_IMAGE_FORMAT_COMPATIBILITY_TYPE',
    'GL_CLEAR_TEXTURE',
    'GL_NUM_SAMPLE_COUNTS'
  ],
  'InvalidateFramebufferAttachment' => [
    'GL_COLOR',
    'GL_DEPTH',
    'GL_STENCIL',
    'GL_DEPTH_STENCIL_ATTACHMENT',
    'GL_COLOR_ATTACHMENT0',
    'GL_COLOR_ATTACHMENT0_EXT',
    'GL_COLOR_ATTACHMENT0_NV',
    'GL_COLOR_ATTACHMENT1',
    'GL_COLOR_ATTACHMENT1_EXT',
    'GL_COLOR_ATTACHMENT1_NV',
    'GL_COLOR_ATTACHMENT2',
    'GL_COLOR_ATTACHMENT2_EXT',
    'GL_COLOR_ATTACHMENT2_NV',
    'GL_COLOR_ATTACHMENT3',
    'GL_COLOR_ATTACHMENT3_EXT',
    'GL_COLOR_ATTACHMENT3_NV',
    'GL_COLOR_ATTACHMENT4',
    'GL_COLOR_ATTACHMENT4_EXT',
    'GL_COLOR_ATTACHMENT4_NV',
    'GL_COLOR_ATTACHMENT5',
    'GL_COLOR_ATTACHMENT5_EXT',
    'GL_COLOR_ATTACHMENT5_NV',
    'GL_COLOR_ATTACHMENT6',
    'GL_COLOR_ATTACHMENT6_EXT',
    'GL_COLOR_ATTACHMENT6_NV',
    'GL_COLOR_ATTACHMENT7',
    'GL_COLOR_ATTACHMENT7_EXT',
    'GL_COLOR_ATTACHMENT7_NV',
    'GL_COLOR_ATTACHMENT8',
    'GL_COLOR_ATTACHMENT8_EXT',
    'GL_COLOR_ATTACHMENT8_NV',
    'GL_COLOR_ATTACHMENT9',
    'GL_COLOR_ATTACHMENT9_EXT',
    'GL_COLOR_ATTACHMENT9_NV',
    'GL_COLOR_ATTACHMENT10',
    'GL_COLOR_ATTACHMENT10_EXT',
    'GL_COLOR_ATTACHMENT10_NV',
    'GL_COLOR_ATTACHMENT11',
    'GL_COLOR_ATTACHMENT11_EXT',
    'GL_COLOR_ATTACHMENT11_NV',
    'GL_COLOR_ATTACHMENT12',
    'GL_COLOR_ATTACHMENT12_EXT',
    'GL_COLOR_ATTACHMENT12_NV',
    'GL_COLOR_ATTACHMENT13',
    'GL_COLOR_ATTACHMENT13_EXT',
    'GL_COLOR_ATTACHMENT13_NV',
    'GL_COLOR_ATTACHMENT14',
    'GL_COLOR_ATTACHMENT14_EXT',
    'GL_COLOR_ATTACHMENT14_NV',
    'GL_COLOR_ATTACHMENT15',
    'GL_COLOR_ATTACHMENT15_EXT',
    'GL_COLOR_ATTACHMENT15_NV',
    'GL_COLOR_ATTACHMENT16',
    'GL_COLOR_ATTACHMENT17',
    'GL_COLOR_ATTACHMENT18',
    'GL_COLOR_ATTACHMENT19',
    'GL_COLOR_ATTACHMENT20',
    'GL_COLOR_ATTACHMENT21',
    'GL_COLOR_ATTACHMENT22',
    'GL_COLOR_ATTACHMENT23',
    'GL_COLOR_ATTACHMENT24',
    'GL_COLOR_ATTACHMENT25',
    'GL_COLOR_ATTACHMENT26',
    'GL_COLOR_ATTACHMENT27',
    'GL_COLOR_ATTACHMENT28',
    'GL_COLOR_ATTACHMENT29',
    'GL_COLOR_ATTACHMENT30',
    'GL_COLOR_ATTACHMENT31',
    'GL_DEPTH_ATTACHMENT',
    'GL_DEPTH_ATTACHMENT_EXT',
    'GL_STENCIL_ATTACHMENT_EXT'
  ],
  'LightEnvModeSGIX' => [
    'GL_ADD',
    'GL_REPLACE',
    'GL_MODULATE'
  ],
  'LightEnvParameterSGIX' => [
    'GL_LIGHT_ENV_MODE_SGIX'
  ],
  'LightModelColorControl' => [
    'GL_SINGLE_COLOR',
    'GL_SINGLE_COLOR_EXT',
    'GL_SEPARATE_SPECULAR_COLOR',
    'GL_SEPARATE_SPECULAR_COLOR_EXT'
  ],
  'LightModelParameter' => [
    'GL_LIGHT_MODEL_LOCAL_VIEWER',
    'GL_LIGHT_MODEL_TWO_SIDE',
    'GL_LIGHT_MODEL_AMBIENT',
    'GL_LIGHT_MODEL_COLOR_CONTROL',
    'GL_LIGHT_MODEL_COLOR_CONTROL_EXT'
  ],
  'LightName' => [
    'GL_LIGHT0',
    'GL_LIGHT1',
    'GL_LIGHT2',
    'GL_LIGHT3',
    'GL_LIGHT4',
    'GL_LIGHT5',
    'GL_LIGHT6',
    'GL_LIGHT7',
    'GL_FRAGMENT_LIGHT0_SGIX',
    'GL_FRAGMENT_LIGHT1_SGIX',
    'GL_FRAGMENT_LIGHT2_SGIX',
    'GL_FRAGMENT_LIGHT3_SGIX',
    'GL_FRAGMENT_LIGHT4_SGIX',
    'GL_FRAGMENT_LIGHT5_SGIX',
    'GL_FRAGMENT_LIGHT6_SGIX',
    'GL_FRAGMENT_LIGHT7_SGIX'
  ],
  'LightParameter' => [
    'GL_AMBIENT',
    'GL_DIFFUSE',
    'GL_SPECULAR',
    'GL_POSITION',
    'GL_SPOT_DIRECTION',
    'GL_SPOT_EXPONENT',
    'GL_SPOT_CUTOFF',
    'GL_CONSTANT_ATTENUATION',
    'GL_LINEAR_ATTENUATION',
    'GL_QUADRATIC_ATTENUATION'
  ],
  'LightTextureModeEXT' => [
    'GL_FRAGMENT_MATERIAL_EXT',
    'GL_FRAGMENT_NORMAL_EXT',
    'GL_FRAGMENT_COLOR_EXT',
    'GL_FRAGMENT_DEPTH',
    'GL_FRAGMENT_DEPTH_EXT'
  ],
  'LightTexturePNameEXT' => [
    'GL_ATTENUATION_EXT',
    'GL_SHADOW_ATTENUATION_EXT'
  ],
  'ListMode' => [
    'GL_COMPILE',
    'GL_COMPILE_AND_EXECUTE'
  ],
  'ListNameType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_2_BYTES',
    'GL_3_BYTES',
    'GL_4_BYTES'
  ],
  'ListParameterName' => [
    'GL_LIST_PRIORITY_SGIX'
  ],
  'LogicOp' => [
    'GL_CLEAR',
    'GL_AND',
    'GL_AND_REVERSE',
    'GL_COPY',
    'GL_AND_INVERTED',
    'GL_NOOP',
    'GL_XOR',
    'GL_OR',
    'GL_NOR',
    'GL_EQUIV',
    'GL_INVERT',
    'GL_OR_REVERSE',
    'GL_COPY_INVERTED',
    'GL_OR_INVERTED',
    'GL_NAND',
    'GL_SET'
  ],
  'MapAttribParameterNV' => [
    'GL_MAP_ATTRIB_U_ORDER_NV',
    'GL_MAP_ATTRIB_V_ORDER_NV'
  ],
  'MapBufferAccessMask' => [
    'GL_MAP_READ_BIT',
    'GL_MAP_READ_BIT_EXT',
    'GL_MAP_WRITE_BIT',
    'GL_MAP_WRITE_BIT_EXT',
    'GL_MAP_INVALIDATE_RANGE_BIT',
    'GL_MAP_INVALIDATE_RANGE_BIT_EXT',
    'GL_MAP_INVALIDATE_BUFFER_BIT',
    'GL_MAP_INVALIDATE_BUFFER_BIT_EXT',
    'GL_MAP_FLUSH_EXPLICIT_BIT',
    'GL_MAP_FLUSH_EXPLICIT_BIT_EXT',
    'GL_MAP_UNSYNCHRONIZED_BIT',
    'GL_MAP_UNSYNCHRONIZED_BIT_EXT',
    'GL_MAP_PERSISTENT_BIT',
    'GL_MAP_PERSISTENT_BIT_EXT',
    'GL_MAP_COHERENT_BIT',
    'GL_MAP_COHERENT_BIT_EXT'
  ],
  'MapParameterNV' => [
    'GL_MAP_TESSELLATION_NV'
  ],
  'MapQuery' => [
    'GL_COEFF',
    'GL_ORDER',
    'GL_DOMAIN'
  ],
  'MapTarget' => [
    'GL_MAP1_COLOR_4',
    'GL_MAP1_INDEX',
    'GL_MAP1_NORMAL',
    'GL_MAP1_TEXTURE_COORD_1',
    'GL_MAP1_TEXTURE_COORD_2',
    'GL_MAP1_TEXTURE_COORD_3',
    'GL_MAP1_TEXTURE_COORD_4',
    'GL_MAP1_VERTEX_3',
    'GL_MAP1_VERTEX_4',
    'GL_MAP2_COLOR_4',
    'GL_MAP2_INDEX',
    'GL_MAP2_NORMAL',
    'GL_MAP2_TEXTURE_COORD_1',
    'GL_MAP2_TEXTURE_COORD_2',
    'GL_MAP2_TEXTURE_COORD_3',
    'GL_MAP2_TEXTURE_COORD_4',
    'GL_MAP2_VERTEX_3',
    'GL_MAP2_VERTEX_4',
    'GL_GEOMETRY_DEFORMATION_SGIX',
    'GL_TEXTURE_DEFORMATION_SGIX'
  ],
  'MapTextureFormatINTEL' => [
    'GL_LAYOUT_DEFAULT_INTEL',
    'GL_LAYOUT_LINEAR_INTEL',
    'GL_LAYOUT_LINEAR_CPU_CACHED_INTEL'
  ],
  'MapTypeNV' => [
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'MaterialParameter' => [
    'GL_AMBIENT',
    'GL_DIFFUSE',
    'GL_SPECULAR',
    'GL_EMISSION',
    'GL_SHININESS',
    'GL_AMBIENT_AND_DIFFUSE',
    'GL_COLOR_INDEXES'
  ],
  'MatrixIndexPointerTypeARB' => [
    'GL_UNSIGNED_BYTE',
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT'
  ],
  'MatrixMode' => [
    'GL_MODELVIEW',
    'GL_MODELVIEW0_EXT',
    'GL_PROJECTION',
    'GL_TEXTURE'
  ],
  'MemoryBarrierMask' => [
    'GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT',
    'GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT',
    'GL_ELEMENT_ARRAY_BARRIER_BIT',
    'GL_ELEMENT_ARRAY_BARRIER_BIT_EXT',
    'GL_UNIFORM_BARRIER_BIT',
    'GL_UNIFORM_BARRIER_BIT_EXT',
    'GL_TEXTURE_FETCH_BARRIER_BIT',
    'GL_TEXTURE_FETCH_BARRIER_BIT_EXT',
    'GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV',
    'GL_SHADER_IMAGE_ACCESS_BARRIER_BIT',
    'GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT',
    'GL_COMMAND_BARRIER_BIT',
    'GL_COMMAND_BARRIER_BIT_EXT',
    'GL_PIXEL_BUFFER_BARRIER_BIT',
    'GL_PIXEL_BUFFER_BARRIER_BIT_EXT',
    'GL_TEXTURE_UPDATE_BARRIER_BIT',
    'GL_TEXTURE_UPDATE_BARRIER_BIT_EXT',
    'GL_BUFFER_UPDATE_BARRIER_BIT',
    'GL_BUFFER_UPDATE_BARRIER_BIT_EXT',
    'GL_FRAMEBUFFER_BARRIER_BIT',
    'GL_FRAMEBUFFER_BARRIER_BIT_EXT',
    'GL_TRANSFORM_FEEDBACK_BARRIER_BIT',
    'GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT',
    'GL_ATOMIC_COUNTER_BARRIER_BIT',
    'GL_ATOMIC_COUNTER_BARRIER_BIT_EXT',
    'GL_SHADER_STORAGE_BARRIER_BIT',
    'GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT',
    'GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT',
    'GL_QUERY_BUFFER_BARRIER_BIT',
    'GL_ALL_BARRIER_BITS',
    'GL_ALL_BARRIER_BITS_EXT'
  ],
  'MemoryObjectParameterName' => [
    'GL_DEDICATED_MEMORY_OBJECT_EXT',
    'GL_PROTECTED_MEMORY_OBJECT_EXT'
  ],
  'MeshMode1' => [
    'GL_POINT',
    'GL_LINE'
  ],
  'MeshMode2' => [
    'GL_POINT',
    'GL_LINE',
    'GL_FILL'
  ],
  'MinmaxTarget' => [
    'GL_MINMAX'
  ],
  'MinmaxTargetEXT' => [
    'GL_MINMAX',
    'GL_MINMAX_EXT'
  ],
  'NormalPointerType' => [
    'GL_BYTE',
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'ObjectIdentifier' => [
    'GL_TEXTURE',
    'GL_VERTEX_ARRAY',
    'GL_BUFFER',
    'GL_SHADER',
    'GL_PROGRAM',
    'GL_QUERY',
    'GL_PROGRAM_PIPELINE',
    'GL_SAMPLER',
    'GL_FRAMEBUFFER',
    'GL_RENDERBUFFER',
    'GL_TRANSFORM_FEEDBACK'
  ],
  'ObjectTypeAPPLE' => [
    'GL_DRAW_PIXELS_APPLE',
    'GL_FENCE_APPLE'
  ],
  'OcclusionQueryEventMaskAMD' => [
    'GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD',
    'GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD',
    'GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD',
    'GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD',
    'GL_QUERY_ALL_EVENT_BITS_AMD'
  ],
  'OcclusionQueryParameterNameNV' => [
    'GL_PIXEL_COUNT_NV',
    'GL_PIXEL_COUNT_AVAILABLE_NV'
  ],
  'PNTrianglesPNameATI' => [
    'GL_PN_TRIANGLES_POINT_MODE_ATI',
    'GL_PN_TRIANGLES_NORMAL_MODE_ATI',
    'GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI'
  ],
  'ParameterRangeEXT' => [
    'GL_NORMALIZED_RANGE_EXT',
    'GL_FULL_RANGE_EXT'
  ],
  'PatchParameterName' => [
    'GL_PATCH_VERTICES',
    'GL_PATCH_DEFAULT_INNER_LEVEL',
    'GL_PATCH_DEFAULT_OUTER_LEVEL'
  ],
  'PathColor' => [
    'GL_PRIMARY_COLOR_NV',
    'GL_SECONDARY_COLOR_NV',
    'GL_PRIMARY_COLOR'
  ],
  'PathColorFormat' => [
    'GL_NONE',
    'GL_ALPHA',
    'GL_RGB',
    'GL_RGBA',
    'GL_LUMINANCE',
    'GL_LUMINANCE_ALPHA',
    'GL_INTENSITY'
  ],
  'PathCoordType' => [
    'GL_CLOSE_PATH_NV',
    'GL_MOVE_TO_NV',
    'GL_RELATIVE_MOVE_TO_NV',
    'GL_LINE_TO_NV',
    'GL_RELATIVE_LINE_TO_NV',
    'GL_HORIZONTAL_LINE_TO_NV',
    'GL_RELATIVE_HORIZONTAL_LINE_TO_NV',
    'GL_VERTICAL_LINE_TO_NV',
    'GL_RELATIVE_VERTICAL_LINE_TO_NV',
    'GL_QUADRATIC_CURVE_TO_NV',
    'GL_RELATIVE_QUADRATIC_CURVE_TO_NV',
    'GL_CUBIC_CURVE_TO_NV',
    'GL_RELATIVE_CUBIC_CURVE_TO_NV',
    'GL_SMOOTH_QUADRATIC_CURVE_TO_NV',
    'GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV',
    'GL_SMOOTH_CUBIC_CURVE_TO_NV',
    'GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV',
    'GL_SMALL_CCW_ARC_TO_NV',
    'GL_RELATIVE_SMALL_CCW_ARC_TO_NV',
    'GL_SMALL_CW_ARC_TO_NV',
    'GL_RELATIVE_SMALL_CW_ARC_TO_NV',
    'GL_LARGE_CCW_ARC_TO_NV',
    'GL_RELATIVE_LARGE_CCW_ARC_TO_NV',
    'GL_LARGE_CW_ARC_TO_NV',
    'GL_RELATIVE_LARGE_CW_ARC_TO_NV',
    'GL_CONIC_CURVE_TO_NV',
    'GL_RELATIVE_CONIC_CURVE_TO_NV',
    'GL_ROUNDED_RECT_NV',
    'GL_RELATIVE_ROUNDED_RECT_NV',
    'GL_ROUNDED_RECT2_NV',
    'GL_RELATIVE_ROUNDED_RECT2_NV',
    'GL_ROUNDED_RECT4_NV',
    'GL_RELATIVE_ROUNDED_RECT4_NV',
    'GL_ROUNDED_RECT8_NV',
    'GL_RELATIVE_ROUNDED_RECT8_NV',
    'GL_RESTART_PATH_NV',
    'GL_DUP_FIRST_CUBIC_CURVE_TO_NV',
    'GL_DUP_LAST_CUBIC_CURVE_TO_NV',
    'GL_RECT_NV',
    'GL_RELATIVE_RECT_NV',
    'GL_CIRCULAR_CCW_ARC_TO_NV',
    'GL_CIRCULAR_CW_ARC_TO_NV',
    'GL_CIRCULAR_TANGENT_ARC_TO_NV',
    'GL_ARC_TO_NV',
    'GL_RELATIVE_ARC_TO_NV'
  ],
  'PathCoverMode' => [
    'GL_PATH_FILL_COVER_MODE_NV',
    'GL_CONVEX_HULL_NV',
    'GL_BOUNDING_BOX_NV'
  ],
  'PathElementType' => [
    'GL_UTF8_NV',
    'GL_UTF16_NV'
  ],
  'PathFillMode' => [
    'GL_INVERT',
    'GL_PATH_FILL_MODE_NV',
    'GL_COUNT_UP_NV',
    'GL_COUNT_DOWN_NV'
  ],
  'PathFontStyle' => [
    'GL_BOLD_BIT_NV',
    'GL_ITALIC_BIT_NV',
    'GL_NONE'
  ],
  'PathFontTarget' => [
    'GL_STANDARD_FONT_NAME_NV',
    'GL_SYSTEM_FONT_NAME_NV',
    'GL_FILE_NAME_NV'
  ],
  'PathGenMode' => [
    'GL_NONE',
    'GL_EYE_LINEAR',
    'GL_OBJECT_LINEAR',
    'GL_CONSTANT',
    'GL_PATH_OBJECT_BOUNDING_BOX_NV'
  ],
  'PathHandleMissingGlyphs' => [
    'GL_SKIP_MISSING_GLYPH_NV',
    'GL_USE_MISSING_GLYPH_NV'
  ],
  'PathListMode' => [
    'GL_ACCUM_ADJACENT_PAIRS_NV',
    'GL_ADJACENT_PAIRS_NV',
    'GL_FIRST_TO_REST_NV'
  ],
  'PathMetricMask' => [
    'GL_GLYPH_WIDTH_BIT_NV',
    'GL_GLYPH_HEIGHT_BIT_NV',
    'GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV',
    'GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV',
    'GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV',
    'GL_GLYPH_VERTICAL_BEARING_X_BIT_NV',
    'GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV',
    'GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV',
    'GL_GLYPH_HAS_KERNING_BIT_NV',
    'GL_FONT_X_MIN_BOUNDS_BIT_NV',
    'GL_FONT_Y_MIN_BOUNDS_BIT_NV',
    'GL_FONT_X_MAX_BOUNDS_BIT_NV',
    'GL_FONT_Y_MAX_BOUNDS_BIT_NV',
    'GL_FONT_UNITS_PER_EM_BIT_NV',
    'GL_FONT_ASCENDER_BIT_NV',
    'GL_FONT_DESCENDER_BIT_NV',
    'GL_FONT_HEIGHT_BIT_NV',
    'GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV',
    'GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV',
    'GL_FONT_UNDERLINE_POSITION_BIT_NV',
    'GL_FONT_UNDERLINE_THICKNESS_BIT_NV',
    'GL_FONT_HAS_KERNING_BIT_NV',
    'GL_FONT_NUM_GLYPH_INDICES_BIT_NV'
  ],
  'PathParameter' => [
    'GL_PATH_STROKE_WIDTH_NV',
    'GL_PATH_END_CAPS_NV',
    'GL_PATH_INITIAL_END_CAP_NV',
    'GL_PATH_TERMINAL_END_CAP_NV',
    'GL_PATH_JOIN_STYLE_NV',
    'GL_PATH_MITER_LIMIT_NV',
    'GL_PATH_DASH_CAPS_NV',
    'GL_PATH_INITIAL_DASH_CAP_NV',
    'GL_PATH_TERMINAL_DASH_CAP_NV',
    'GL_PATH_DASH_OFFSET_NV',
    'GL_PATH_CLIENT_LENGTH_NV',
    'GL_PATH_FILL_MODE_NV',
    'GL_PATH_FILL_MASK_NV',
    'GL_PATH_FILL_COVER_MODE_NV',
    'GL_PATH_STROKE_COVER_MODE_NV',
    'GL_PATH_STROKE_MASK_NV',
    'GL_PATH_OBJECT_BOUNDING_BOX_NV',
    'GL_PATH_COMMAND_COUNT_NV',
    'GL_PATH_COORD_COUNT_NV',
    'GL_PATH_DASH_ARRAY_COUNT_NV',
    'GL_PATH_COMPUTED_LENGTH_NV',
    'GL_PATH_FILL_BOUNDING_BOX_NV',
    'GL_PATH_STROKE_BOUNDING_BOX_NV',
    'GL_PATH_DASH_OFFSET_RESET_NV'
  ],
  'PathStringFormat' => [
    'GL_PATH_FORMAT_SVG_NV',
    'GL_PATH_FORMAT_PS_NV'
  ],
  'PathTransformType' => [
    'GL_NONE',
    'GL_TRANSLATE_X_NV',
    'GL_TRANSLATE_Y_NV',
    'GL_TRANSLATE_2D_NV',
    'GL_TRANSLATE_3D_NV',
    'GL_AFFINE_2D_NV',
    'GL_AFFINE_3D_NV',
    'GL_TRANSPOSE_AFFINE_2D_NV',
    'GL_TRANSPOSE_AFFINE_3D_NV'
  ],
  'PerfQueryDataFlags' => [
    'GL_PERFQUERY_DONOT_FLUSH_INTEL',
    'GL_PERFQUERY_FLUSH_INTEL',
    'GL_PERFQUERY_WAIT_INTEL'
  ],
  'PerformanceQueryCapsMaskINTEL' => [
    'GL_PERFQUERY_SINGLE_CONTEXT_INTEL',
    'GL_PERFQUERY_GLOBAL_CONTEXT_INTEL'
  ],
  'PipelineParameterName' => [
    'GL_ACTIVE_PROGRAM',
    'GL_FRAGMENT_SHADER',
    'GL_VERTEX_SHADER',
    'GL_INFO_LOG_LENGTH',
    'GL_GEOMETRY_SHADER',
    'GL_TESS_EVALUATION_SHADER',
    'GL_TESS_CONTROL_SHADER'
  ],
  'PixelCopyType' => [
    'GL_COLOR',
    'GL_COLOR_EXT',
    'GL_DEPTH',
    'GL_DEPTH_EXT',
    'GL_STENCIL',
    'GL_STENCIL_EXT'
  ],
  'PixelDataRangeTargetNV' => [
    'GL_WRITE_PIXEL_DATA_RANGE_NV',
    'GL_READ_PIXEL_DATA_RANGE_NV'
  ],
  'PixelFormat' => [
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT',
    'GL_COLOR_INDEX',
    'GL_STENCIL_INDEX',
    'GL_DEPTH_COMPONENT',
    'GL_RED',
    'GL_RED_EXT',
    'GL_GREEN',
    'GL_BLUE',
    'GL_ALPHA',
    'GL_RGB',
    'GL_RGBA',
    'GL_LUMINANCE',
    'GL_LUMINANCE_ALPHA',
    'GL_ABGR_EXT',
    'GL_CMYK_EXT',
    'GL_CMYKA_EXT',
    'GL_BGR',
    'GL_BGR_EXT',
    'GL_BGRA',
    'GL_BGRA_EXT',
    'GL_BGRA_IMG',
    'GL_YCRCB_422_SGIX',
    'GL_YCRCB_444_SGIX',
    'GL_RG',
    'GL_RG_INTEGER',
    'GL_DEPTH_STENCIL',
    'GL_RED_INTEGER',
    'GL_GREEN_INTEGER',
    'GL_BLUE_INTEGER',
    'GL_RGB_INTEGER',
    'GL_RGBA_INTEGER',
    'GL_BGR_INTEGER',
    'GL_BGRA_INTEGER'
  ],
  'PixelMap' => [
    'GL_PIXEL_MAP_I_TO_I',
    'GL_PIXEL_MAP_S_TO_S',
    'GL_PIXEL_MAP_I_TO_R',
    'GL_PIXEL_MAP_I_TO_G',
    'GL_PIXEL_MAP_I_TO_B',
    'GL_PIXEL_MAP_I_TO_A',
    'GL_PIXEL_MAP_R_TO_R',
    'GL_PIXEL_MAP_G_TO_G',
    'GL_PIXEL_MAP_B_TO_B',
    'GL_PIXEL_MAP_A_TO_A'
  ],
  'PixelStoreParameter' => [
    'GL_UNPACK_SWAP_BYTES',
    'GL_UNPACK_LSB_FIRST',
    'GL_UNPACK_ROW_LENGTH',
    'GL_UNPACK_ROW_LENGTH_EXT',
    'GL_UNPACK_SKIP_ROWS',
    'GL_UNPACK_SKIP_ROWS_EXT',
    'GL_UNPACK_SKIP_PIXELS',
    'GL_UNPACK_SKIP_PIXELS_EXT',
    'GL_UNPACK_ALIGNMENT',
    'GL_PACK_SWAP_BYTES',
    'GL_PACK_LSB_FIRST',
    'GL_PACK_ROW_LENGTH',
    'GL_PACK_ROW_LENGTH_NV',
    'GL_PACK_SKIP_ROWS',
    'GL_PACK_SKIP_ROWS_NV',
    'GL_PACK_SKIP_PIXELS',
    'GL_PACK_SKIP_PIXELS_NV',
    'GL_PACK_ALIGNMENT',
    'GL_PACK_SKIP_IMAGES',
    'GL_PACK_SKIP_IMAGES_EXT',
    'GL_PACK_IMAGE_HEIGHT',
    'GL_PACK_IMAGE_HEIGHT_EXT',
    'GL_UNPACK_SKIP_IMAGES',
    'GL_UNPACK_SKIP_IMAGES_EXT',
    'GL_UNPACK_IMAGE_HEIGHT',
    'GL_UNPACK_IMAGE_HEIGHT_EXT',
    'GL_PACK_SKIP_VOLUMES_SGIS',
    'GL_PACK_IMAGE_DEPTH_SGIS',
    'GL_UNPACK_SKIP_VOLUMES_SGIS',
    'GL_UNPACK_IMAGE_DEPTH_SGIS',
    'GL_PIXEL_TILE_WIDTH_SGIX',
    'GL_PIXEL_TILE_HEIGHT_SGIX',
    'GL_PIXEL_TILE_GRID_WIDTH_SGIX',
    'GL_PIXEL_TILE_GRID_HEIGHT_SGIX',
    'GL_PIXEL_TILE_GRID_DEPTH_SGIX',
    'GL_PIXEL_TILE_CACHE_SIZE_SGIX',
    'GL_PACK_RESAMPLE_SGIX',
    'GL_UNPACK_RESAMPLE_SGIX',
    'GL_PACK_SUBSAMPLE_RATE_SGIX',
    'GL_UNPACK_SUBSAMPLE_RATE_SGIX',
    'GL_PACK_RESAMPLE_OML',
    'GL_UNPACK_RESAMPLE_OML'
  ],
  'PixelStoreResampleMode' => [
    'GL_RESAMPLE_DECIMATE_SGIX',
    'GL_RESAMPLE_REPLICATE_SGIX',
    'GL_RESAMPLE_ZERO_FILL_SGIX'
  ],
  'PixelStoreSubsampleRate' => [
    'GL_PIXEL_SUBSAMPLE_4444_SGIX',
    'GL_PIXEL_SUBSAMPLE_2424_SGIX',
    'GL_PIXEL_SUBSAMPLE_4242_SGIX'
  ],
  'PixelTexGenModeSGIX' => [
    'GL_NONE',
    'GL_ALPHA',
    'GL_RGB',
    'GL_RGBA',
    'GL_PIXEL_TEX_GEN_Q_CEILING_SGIX',
    'GL_PIXEL_TEX_GEN_Q_ROUND_SGIX',
    'GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX',
    'GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX',
    'GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX'
  ],
  'PixelTexGenParameterNameSGIS' => [
    'GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS',
    'GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS'
  ],
  'PixelTransferParameter' => [
    'GL_MAP_COLOR',
    'GL_MAP_STENCIL',
    'GL_INDEX_SHIFT',
    'GL_INDEX_OFFSET',
    'GL_RED_SCALE',
    'GL_RED_BIAS',
    'GL_GREEN_SCALE',
    'GL_GREEN_BIAS',
    'GL_BLUE_SCALE',
    'GL_BLUE_BIAS',
    'GL_ALPHA_SCALE',
    'GL_ALPHA_BIAS',
    'GL_DEPTH_SCALE',
    'GL_DEPTH_BIAS',
    'GL_POST_CONVOLUTION_RED_SCALE',
    'GL_POST_CONVOLUTION_RED_SCALE_EXT',
    'GL_POST_CONVOLUTION_GREEN_SCALE',
    'GL_POST_CONVOLUTION_GREEN_SCALE_EXT',
    'GL_POST_CONVOLUTION_BLUE_SCALE',
    'GL_POST_CONVOLUTION_BLUE_SCALE_EXT',
    'GL_POST_CONVOLUTION_ALPHA_SCALE',
    'GL_POST_CONVOLUTION_ALPHA_SCALE_EXT',
    'GL_POST_CONVOLUTION_RED_BIAS',
    'GL_POST_CONVOLUTION_RED_BIAS_EXT',
    'GL_POST_CONVOLUTION_GREEN_BIAS',
    'GL_POST_CONVOLUTION_GREEN_BIAS_EXT',
    'GL_POST_CONVOLUTION_BLUE_BIAS',
    'GL_POST_CONVOLUTION_BLUE_BIAS_EXT',
    'GL_POST_CONVOLUTION_ALPHA_BIAS',
    'GL_POST_CONVOLUTION_ALPHA_BIAS_EXT',
    'GL_POST_COLOR_MATRIX_RED_SCALE',
    'GL_POST_COLOR_MATRIX_RED_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_GREEN_SCALE',
    'GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_BLUE_SCALE',
    'GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_ALPHA_SCALE',
    'GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI',
    'GL_POST_COLOR_MATRIX_RED_BIAS',
    'GL_POST_COLOR_MATRIX_RED_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_GREEN_BIAS',
    'GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_BLUE_BIAS',
    'GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI',
    'GL_POST_COLOR_MATRIX_ALPHA_BIAS',
    'GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI'
  ],
  'PixelTransformPNameEXT' => [
    'GL_PIXEL_MAG_FILTER_EXT',
    'GL_PIXEL_MIN_FILTER_EXT',
    'GL_PIXEL_CUBIC_WEIGHT_EXT'
  ],
  'PixelTransformTargetEXT' => [
    'GL_PIXEL_TRANSFORM_2D_EXT'
  ],
  'PixelType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_HALF_FLOAT',
    'GL_HALF_FLOAT_ARB',
    'GL_HALF_FLOAT_NV',
    'GL_HALF_APPLE',
    'GL_BITMAP',
    'GL_UNSIGNED_BYTE_3_3_2',
    'GL_UNSIGNED_BYTE_3_3_2_EXT',
    'GL_UNSIGNED_SHORT_4_4_4_4',
    'GL_UNSIGNED_SHORT_4_4_4_4_EXT',
    'GL_UNSIGNED_SHORT_5_5_5_1',
    'GL_UNSIGNED_SHORT_5_5_5_1_EXT',
    'GL_UNSIGNED_INT_8_8_8_8',
    'GL_UNSIGNED_INT_8_8_8_8_EXT',
    'GL_UNSIGNED_INT_10_10_10_2',
    'GL_UNSIGNED_INT_10_10_10_2_EXT',
    'GL_UNSIGNED_BYTE_2_3_3_REV',
    'GL_UNSIGNED_BYTE_2_3_3_REV_EXT',
    'GL_UNSIGNED_SHORT_5_6_5',
    'GL_UNSIGNED_SHORT_5_6_5_EXT',
    'GL_UNSIGNED_SHORT_5_6_5_REV',
    'GL_UNSIGNED_SHORT_5_6_5_REV_EXT',
    'GL_UNSIGNED_SHORT_4_4_4_4_REV',
    'GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT',
    'GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG',
    'GL_UNSIGNED_SHORT_1_5_5_5_REV',
    'GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT',
    'GL_UNSIGNED_INT_8_8_8_8_REV',
    'GL_UNSIGNED_INT_8_8_8_8_REV_EXT',
    'GL_UNSIGNED_INT_2_10_10_10_REV',
    'GL_UNSIGNED_INT_2_10_10_10_REV_EXT',
    'GL_UNSIGNED_INT_24_8',
    'GL_UNSIGNED_INT_24_8_EXT',
    'GL_UNSIGNED_INT_24_8_NV',
    'GL_UNSIGNED_INT_10F_11F_11F_REV',
    'GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE',
    'GL_UNSIGNED_INT_10F_11F_11F_REV_EXT',
    'GL_UNSIGNED_INT_5_9_9_9_REV',
    'GL_UNSIGNED_INT_5_9_9_9_REV_APPLE',
    'GL_UNSIGNED_INT_5_9_9_9_REV_EXT',
    'GL_FLOAT_32_UNSIGNED_INT_24_8_REV',
    'GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV'
  ],
  'PointParameterNameARB' => [
    'GL_POINT_SIZE_MIN',
    'GL_POINT_SIZE_MIN_ARB',
    'GL_POINT_SIZE_MIN_EXT',
    'GL_POINT_SIZE_MIN_SGIS',
    'GL_POINT_SIZE_MAX',
    'GL_POINT_SIZE_MAX_ARB',
    'GL_POINT_SIZE_MAX_EXT',
    'GL_POINT_SIZE_MAX_SGIS',
    'GL_POINT_FADE_THRESHOLD_SIZE',
    'GL_POINT_FADE_THRESHOLD_SIZE_ARB',
    'GL_POINT_FADE_THRESHOLD_SIZE_EXT',
    'GL_POINT_FADE_THRESHOLD_SIZE_SGIS',
    'GL_DISTANCE_ATTENUATION_EXT',
    'GL_DISTANCE_ATTENUATION_SGIS',
    'GL_POINT_DISTANCE_ATTENUATION',
    'GL_POINT_DISTANCE_ATTENUATION_ARB'
  ],
  'PolygonMode' => [
    'GL_POINT',
    'GL_LINE',
    'GL_FILL'
  ],
  'PrecisionType' => [
    'GL_LOW_FLOAT',
    'GL_MEDIUM_FLOAT',
    'GL_HIGH_FLOAT',
    'GL_LOW_INT',
    'GL_MEDIUM_INT',
    'GL_HIGH_INT'
  ],
  'PreserveModeATI' => [
    'GL_PRESERVE_ATI',
    'GL_DISCARD_ATI'
  ],
  'PrimitiveType' => [
    'GL_POINTS',
    'GL_LINES',
    'GL_LINE_LOOP',
    'GL_LINE_STRIP',
    'GL_TRIANGLES',
    'GL_TRIANGLE_STRIP',
    'GL_TRIANGLE_FAN',
    'GL_QUADS',
    'GL_QUADS_EXT',
    'GL_QUAD_STRIP',
    'GL_POLYGON',
    'GL_LINES_ADJACENCY',
    'GL_LINES_ADJACENCY_ARB',
    'GL_LINES_ADJACENCY_EXT',
    'GL_LINE_STRIP_ADJACENCY',
    'GL_LINE_STRIP_ADJACENCY_ARB',
    'GL_LINE_STRIP_ADJACENCY_EXT',
    'GL_TRIANGLES_ADJACENCY',
    'GL_TRIANGLES_ADJACENCY_ARB',
    'GL_TRIANGLES_ADJACENCY_EXT',
    'GL_TRIANGLE_STRIP_ADJACENCY',
    'GL_TRIANGLE_STRIP_ADJACENCY_ARB',
    'GL_TRIANGLE_STRIP_ADJACENCY_EXT',
    'GL_PATCHES',
    'GL_PATCHES_EXT'
  ],
  'ProgramFormat' => [
    'GL_PROGRAM_FORMAT_ASCII_ARB'
  ],
  'ProgramInterface' => [
    'GL_TRANSFORM_FEEDBACK_BUFFER',
    'GL_UNIFORM',
    'GL_UNIFORM_BLOCK',
    'GL_PROGRAM_INPUT',
    'GL_PROGRAM_OUTPUT',
    'GL_BUFFER_VARIABLE',
    'GL_SHADER_STORAGE_BLOCK',
    'GL_VERTEX_SUBROUTINE',
    'GL_TESS_CONTROL_SUBROUTINE',
    'GL_TESS_EVALUATION_SUBROUTINE',
    'GL_GEOMETRY_SUBROUTINE',
    'GL_FRAGMENT_SUBROUTINE',
    'GL_COMPUTE_SUBROUTINE',
    'GL_VERTEX_SUBROUTINE_UNIFORM',
    'GL_TESS_CONTROL_SUBROUTINE_UNIFORM',
    'GL_TESS_EVALUATION_SUBROUTINE_UNIFORM',
    'GL_GEOMETRY_SUBROUTINE_UNIFORM',
    'GL_FRAGMENT_SUBROUTINE_UNIFORM',
    'GL_COMPUTE_SUBROUTINE_UNIFORM',
    'GL_TRANSFORM_FEEDBACK_VARYING'
  ],
  'ProgramInterfacePName' => [
    'GL_ACTIVE_RESOURCES',
    'GL_MAX_NAME_LENGTH',
    'GL_MAX_NUM_ACTIVE_VARIABLES',
    'GL_MAX_NUM_COMPATIBLE_SUBROUTINES'
  ],
  'ProgramParameterPName' => [
    'GL_PROGRAM_BINARY_RETRIEVABLE_HINT',
    'GL_PROGRAM_SEPARABLE'
  ],
  'ProgramPropertyARB' => [
    'GL_COMPUTE_WORK_GROUP_SIZE',
    'GL_PROGRAM_BINARY_LENGTH',
    'GL_GEOMETRY_VERTICES_OUT',
    'GL_GEOMETRY_INPUT_TYPE',
    'GL_GEOMETRY_OUTPUT_TYPE',
    'GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH',
    'GL_ACTIVE_UNIFORM_BLOCKS',
    'GL_DELETE_STATUS',
    'GL_LINK_STATUS',
    'GL_VALIDATE_STATUS',
    'GL_INFO_LOG_LENGTH',
    'GL_ATTACHED_SHADERS',
    'GL_ACTIVE_UNIFORMS',
    'GL_ACTIVE_UNIFORM_MAX_LENGTH',
    'GL_ACTIVE_ATTRIBUTES',
    'GL_ACTIVE_ATTRIBUTE_MAX_LENGTH',
    'GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH',
    'GL_TRANSFORM_FEEDBACK_BUFFER_MODE',
    'GL_TRANSFORM_FEEDBACK_VARYINGS',
    'GL_ACTIVE_ATOMIC_COUNTER_BUFFERS'
  ],
  'ProgramResourceProperty' => [
    'GL_NUM_COMPATIBLE_SUBROUTINES',
    'GL_COMPATIBLE_SUBROUTINES',
    'GL_UNIFORM',
    'GL_IS_PER_PATCH',
    'GL_NAME_LENGTH',
    'GL_TYPE',
    'GL_ARRAY_SIZE',
    'GL_OFFSET',
    'GL_BLOCK_INDEX',
    'GL_ARRAY_STRIDE',
    'GL_MATRIX_STRIDE',
    'GL_IS_ROW_MAJOR',
    'GL_ATOMIC_COUNTER_BUFFER_INDEX',
    'GL_BUFFER_BINDING',
    'GL_BUFFER_DATA_SIZE',
    'GL_NUM_ACTIVE_VARIABLES',
    'GL_ACTIVE_VARIABLES',
    'GL_REFERENCED_BY_VERTEX_SHADER',
    'GL_REFERENCED_BY_TESS_CONTROL_SHADER',
    'GL_REFERENCED_BY_TESS_EVALUATION_SHADER',
    'GL_REFERENCED_BY_GEOMETRY_SHADER',
    'GL_REFERENCED_BY_FRAGMENT_SHADER',
    'GL_REFERENCED_BY_COMPUTE_SHADER',
    'GL_TOP_LEVEL_ARRAY_SIZE',
    'GL_TOP_LEVEL_ARRAY_STRIDE',
    'GL_LOCATION',
    'GL_LOCATION_INDEX',
    'GL_LOCATION_COMPONENT',
    'GL_TRANSFORM_FEEDBACK_BUFFER_INDEX',
    'GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE'
  ],
  'ProgramStagePName' => [
    'GL_ACTIVE_SUBROUTINES',
    'GL_ACTIVE_SUBROUTINE_UNIFORMS',
    'GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS',
    'GL_ACTIVE_SUBROUTINE_MAX_LENGTH',
    'GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH'
  ],
  'ProgramStringProperty' => [
    'GL_PROGRAM_STRING_ARB'
  ],
  'ProgramTarget' => [
    'GL_TEXT_FRAGMENT_SHADER_ATI',
    'GL_VERTEX_PROGRAM_ARB',
    'GL_FRAGMENT_PROGRAM_ARB',
    'GL_TESS_CONTROL_PROGRAM_NV',
    'GL_TESS_EVALUATION_PROGRAM_NV',
    'GL_GEOMETRY_PROGRAM_NV',
    'GL_COMPUTE_PROGRAM_NV'
  ],
  'QueryCounterTarget' => [
    'GL_TIMESTAMP',
    'GL_TIMESTAMP_EXT'
  ],
  'QueryObjectParameterName' => [
    'GL_QUERY_TARGET',
    'GL_QUERY_RESULT',
    'GL_QUERY_RESULT_AVAILABLE',
    'GL_QUERY_RESULT_NO_WAIT'
  ],
  'QueryParameterName' => [
    'GL_QUERY_COUNTER_BITS',
    'GL_CURRENT_QUERY'
  ],
  'QueryTarget' => [
    'GL_TRANSFORM_FEEDBACK_OVERFLOW',
    'GL_VERTICES_SUBMITTED',
    'GL_PRIMITIVES_SUBMITTED',
    'GL_VERTEX_SHADER_INVOCATIONS',
    'GL_TIME_ELAPSED',
    'GL_SAMPLES_PASSED',
    'GL_ANY_SAMPLES_PASSED',
    'GL_PRIMITIVES_GENERATED',
    'GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN',
    'GL_ANY_SAMPLES_PASSED_CONSERVATIVE',
    'GL_TASK_SHADER_INVOCATIONS_EXT',
    'GL_MESH_SHADER_INVOCATIONS_EXT',
    'GL_MESH_PRIMITIVES_GENERATED_EXT'
  ],
  'ReadBufferMode' => [
    'GL_NONE',
    'GL_FRONT_LEFT',
    'GL_FRONT_RIGHT',
    'GL_BACK_LEFT',
    'GL_BACK_RIGHT',
    'GL_FRONT',
    'GL_BACK',
    'GL_LEFT',
    'GL_RIGHT',
    'GL_AUX0',
    'GL_AUX1',
    'GL_AUX2',
    'GL_AUX3',
    'GL_COLOR_ATTACHMENT0',
    'GL_COLOR_ATTACHMENT1',
    'GL_COLOR_ATTACHMENT2',
    'GL_COLOR_ATTACHMENT3',
    'GL_COLOR_ATTACHMENT4',
    'GL_COLOR_ATTACHMENT5',
    'GL_COLOR_ATTACHMENT6',
    'GL_COLOR_ATTACHMENT7',
    'GL_COLOR_ATTACHMENT8',
    'GL_COLOR_ATTACHMENT9',
    'GL_COLOR_ATTACHMENT10',
    'GL_COLOR_ATTACHMENT11',
    'GL_COLOR_ATTACHMENT12',
    'GL_COLOR_ATTACHMENT13',
    'GL_COLOR_ATTACHMENT14',
    'GL_COLOR_ATTACHMENT15'
  ],
  'RenderbufferParameterName' => [
    'GL_RENDERBUFFER_COVERAGE_SAMPLES_NV',
    'GL_RENDERBUFFER_SAMPLES',
    'GL_RENDERBUFFER_SAMPLES_ANGLE',
    'GL_RENDERBUFFER_SAMPLES_APPLE',
    'GL_RENDERBUFFER_SAMPLES_EXT',
    'GL_RENDERBUFFER_SAMPLES_NV',
    'GL_RENDERBUFFER_WIDTH',
    'GL_RENDERBUFFER_WIDTH_EXT',
    'GL_RENDERBUFFER_HEIGHT',
    'GL_RENDERBUFFER_HEIGHT_EXT',
    'GL_RENDERBUFFER_INTERNAL_FORMAT',
    'GL_RENDERBUFFER_INTERNAL_FORMAT_EXT',
    'GL_RENDERBUFFER_RED_SIZE',
    'GL_RENDERBUFFER_RED_SIZE_EXT',
    'GL_RENDERBUFFER_GREEN_SIZE',
    'GL_RENDERBUFFER_GREEN_SIZE_EXT',
    'GL_RENDERBUFFER_BLUE_SIZE',
    'GL_RENDERBUFFER_BLUE_SIZE_EXT',
    'GL_RENDERBUFFER_ALPHA_SIZE',
    'GL_RENDERBUFFER_ALPHA_SIZE_EXT',
    'GL_RENDERBUFFER_DEPTH_SIZE',
    'GL_RENDERBUFFER_DEPTH_SIZE_EXT',
    'GL_RENDERBUFFER_STENCIL_SIZE',
    'GL_RENDERBUFFER_STENCIL_SIZE_EXT',
    'GL_RENDERBUFFER_COLOR_SAMPLES_NV',
    'GL_RENDERBUFFER_SAMPLES_IMG',
    'GL_RENDERBUFFER_STORAGE_SAMPLES_AMD'
  ],
  'RenderbufferTarget' => [
    'GL_RENDERBUFFER'
  ],
  'RenderingMode' => [
    'GL_RENDER',
    'GL_FEEDBACK',
    'GL_SELECT'
  ],
  'ReplacementCodeTypeSUN' => [
    'GL_UNSIGNED_BYTE',
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT'
  ],
  'SamplePatternEXT' => [
    'GL_1PASS_EXT',
    'GL_2PASS_0_EXT',
    'GL_2PASS_1_EXT',
    'GL_4PASS_0_EXT',
    'GL_4PASS_1_EXT',
    'GL_4PASS_2_EXT',
    'GL_4PASS_3_EXT'
  ],
  'SamplePatternSGIS' => [
    'GL_1PASS_EXT',
    'GL_1PASS_SGIS',
    'GL_2PASS_0_EXT',
    'GL_2PASS_0_SGIS',
    'GL_2PASS_1_EXT',
    'GL_2PASS_1_SGIS',
    'GL_4PASS_0_EXT',
    'GL_4PASS_0_SGIS',
    'GL_4PASS_1_EXT',
    'GL_4PASS_1_SGIS',
    'GL_4PASS_2_EXT',
    'GL_4PASS_2_SGIS',
    'GL_4PASS_3_EXT',
    'GL_4PASS_3_SGIS'
  ],
  'SamplerParameterF' => [
    'GL_TEXTURE_BORDER_COLOR',
    'GL_TEXTURE_MIN_LOD',
    'GL_TEXTURE_MAX_LOD',
    'GL_TEXTURE_MAX_ANISOTROPY',
    'GL_TEXTURE_LOD_BIAS',
    'GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM'
  ],
  'SamplerParameterI' => [
    'GL_TEXTURE_MAG_FILTER',
    'GL_TEXTURE_MIN_FILTER',
    'GL_TEXTURE_WRAP_S',
    'GL_TEXTURE_WRAP_T',
    'GL_TEXTURE_WRAP_R',
    'GL_TEXTURE_COMPARE_MODE',
    'GL_TEXTURE_COMPARE_FUNC',
    'GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM'
  ],
  'ScalarType' => [
    'GL_UNSIGNED_BYTE',
    'GL_UNSIGNED_SHORT',
    'GL_UNSIGNED_INT'
  ],
  'SecondaryColorPointerTypeIBM' => [
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'SemaphoreParameterName' => [
    'GL_D3D12_FENCE_VALUE_EXT',
    'GL_TIMELINE_SEMAPHORE_VALUE_NV',
    'GL_SEMAPHORE_TYPE_NV',
    'GL_SEMAPHORE_TYPE_BINARY_NV',
    'GL_SEMAPHORE_TYPE_TIMELINE_NV'
  ],
  'SeparableTarget' => [
    'GL_SEPARABLE_2D'
  ],
  'SeparableTargetEXT' => [
    'GL_SEPARABLE_2D',
    'GL_SEPARABLE_2D_EXT'
  ],
  'ShaderBinaryFormat' => [
    'GL_SGX_BINARY_IMG',
    'GL_MALI_SHADER_BINARY_ARM',
    'GL_SHADER_BINARY_VIV',
    'GL_SHADER_BINARY_DMP',
    'GL_GCCSO_SHADER_BINARY_FJ',
    'GL_SHADER_BINARY_FORMAT_SPIR_V',
    'GL_SHADER_BINARY_HUAWEI'
  ],
  'ShaderParameterName' => [
    'GL_SHADER_TYPE',
    'GL_DELETE_STATUS',
    'GL_COMPILE_STATUS',
    'GL_INFO_LOG_LENGTH',
    'GL_SHADER_SOURCE_LENGTH'
  ],
  'ShaderType' => [
    'GL_FRAGMENT_SHADER',
    'GL_FRAGMENT_SHADER_ARB',
    'GL_VERTEX_SHADER',
    'GL_VERTEX_SHADER_ARB',
    'GL_GEOMETRY_SHADER',
    'GL_TESS_EVALUATION_SHADER',
    'GL_TESS_CONTROL_SHADER',
    'GL_COMPUTE_SHADER'
  ],
  'ShadingModel' => [
    'GL_FLAT',
    'GL_SMOOTH'
  ],
  'ShadingRate' => [
    'GL_SHADING_RATE_1X1_PIXELS_EXT',
    'GL_SHADING_RATE_1X2_PIXELS_EXT',
    'GL_SHADING_RATE_2X1_PIXELS_EXT',
    'GL_SHADING_RATE_2X2_PIXELS_EXT',
    'GL_SHADING_RATE_1X4_PIXELS_EXT',
    'GL_SHADING_RATE_4X1_PIXELS_EXT',
    'GL_SHADING_RATE_4X2_PIXELS_EXT',
    'GL_SHADING_RATE_2X4_PIXELS_EXT',
    'GL_SHADING_RATE_4X4_PIXELS_EXT'
  ],
  'ShadingRateCombinerOp' => [
    'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT',
    'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT',
    'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT',
    'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT',
    'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT'
  ],
  'ShadingRateQCOM' => [
    'GL_SHADING_RATE_1X1_PIXELS_QCOM',
    'GL_SHADING_RATE_1X2_PIXELS_QCOM',
    'GL_SHADING_RATE_2X1_PIXELS_QCOM',
    'GL_SHADING_RATE_2X2_PIXELS_QCOM',
    'GL_SHADING_RATE_1X4_PIXELS_QCOM',
    'GL_SHADING_RATE_4X1_PIXELS_QCOM',
    'GL_SHADING_RATE_4X2_PIXELS_QCOM',
    'GL_SHADING_RATE_2X4_PIXELS_QCOM',
    'GL_SHADING_RATE_4X4_PIXELS_QCOM'
  ],
  'SizedInternalFormat' => [
    'GL_R3_G3_B2',
    'GL_ALPHA4',
    'GL_ALPHA4_EXT',
    'GL_ALPHA8',
    'GL_ALPHA8_EXT',
    'GL_ALPHA12',
    'GL_ALPHA12_EXT',
    'GL_ALPHA16',
    'GL_ALPHA16_EXT',
    'GL_LUMINANCE4',
    'GL_LUMINANCE4_EXT',
    'GL_LUMINANCE8',
    'GL_LUMINANCE8_EXT',
    'GL_LUMINANCE12',
    'GL_LUMINANCE12_EXT',
    'GL_LUMINANCE16',
    'GL_LUMINANCE16_EXT',
    'GL_LUMINANCE4_ALPHA4',
    'GL_LUMINANCE4_ALPHA4_EXT',
    'GL_LUMINANCE6_ALPHA2',
    'GL_LUMINANCE6_ALPHA2_EXT',
    'GL_LUMINANCE8_ALPHA8',
    'GL_LUMINANCE8_ALPHA8_EXT',
    'GL_LUMINANCE12_ALPHA4',
    'GL_LUMINANCE12_ALPHA4_EXT',
    'GL_LUMINANCE12_ALPHA12',
    'GL_LUMINANCE12_ALPHA12_EXT',
    'GL_LUMINANCE16_ALPHA16',
    'GL_LUMINANCE16_ALPHA16_EXT',
    'GL_INTENSITY4',
    'GL_INTENSITY4_EXT',
    'GL_INTENSITY8',
    'GL_INTENSITY8_EXT',
    'GL_INTENSITY12',
    'GL_INTENSITY12_EXT',
    'GL_INTENSITY16',
    'GL_INTENSITY16_EXT',
    'GL_RGB2_EXT',
    'GL_RGB4',
    'GL_RGB4_EXT',
    'GL_RGB5',
    'GL_RGB5_EXT',
    'GL_RGB8',
    'GL_RGB8_EXT',
    'GL_RGB10',
    'GL_RGB10_EXT',
    'GL_RGB12',
    'GL_RGB12_EXT',
    'GL_RGB16',
    'GL_RGB16_EXT',
    'GL_RGBA2',
    'GL_RGBA2_EXT',
    'GL_RGBA4',
    'GL_RGBA4_EXT',
    'GL_RGB5_A1',
    'GL_RGB5_A1_EXT',
    'GL_RGBA8',
    'GL_RGBA8_EXT',
    'GL_RGB10_A2',
    'GL_RGB10_A2_EXT',
    'GL_RGBA12',
    'GL_RGBA12_EXT',
    'GL_RGBA16',
    'GL_RGBA16_EXT',
    'GL_DEPTH_COMPONENT16',
    'GL_DEPTH_COMPONENT16_ARB',
    'GL_DEPTH_COMPONENT16_SGIX',
    'GL_DEPTH_COMPONENT24',
    'GL_DEPTH_COMPONENT24_ARB',
    'GL_DEPTH_COMPONENT24_SGIX',
    'GL_DEPTH_COMPONENT32',
    'GL_DEPTH_COMPONENT32_ARB',
    'GL_DEPTH_COMPONENT32_SGIX',
    'GL_R8',
    'GL_R8_EXT',
    'GL_R16',
    'GL_R16_EXT',
    'GL_RG8',
    'GL_RG8_EXT',
    'GL_RG16',
    'GL_RG16_EXT',
    'GL_R16F',
    'GL_R16F_EXT',
    'GL_R32F',
    'GL_R32F_EXT',
    'GL_RG16F',
    'GL_RG16F_EXT',
    'GL_RG32F',
    'GL_RG32F_EXT',
    'GL_R8I',
    'GL_R8UI',
    'GL_R16I',
    'GL_R16UI',
    'GL_R32I',
    'GL_R32UI',
    'GL_RG8I',
    'GL_RG8UI',
    'GL_RG16I',
    'GL_RG16UI',
    'GL_RG32I',
    'GL_RG32UI',
    'GL_COMPRESSED_RGB_S3TC_DXT1_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE',
    'GL_COMPRESSED_RGBA_S3TC_DXT3_EXT',
    'GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE',
    'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT',
    'GL_RGBA32F',
    'GL_RGBA32F_ARB',
    'GL_RGBA32F_EXT',
    'GL_RGB32F',
    'GL_RGB32F_ARB',
    'GL_RGB32F_EXT',
    'GL_RGBA16F',
    'GL_RGBA16F_ARB',
    'GL_RGBA16F_EXT',
    'GL_RGB16F',
    'GL_RGB16F_ARB',
    'GL_RGB16F_EXT',
    'GL_DEPTH24_STENCIL8',
    'GL_DEPTH24_STENCIL8_EXT',
    'GL_R11F_G11F_B10F',
    'GL_R11F_G11F_B10F_APPLE',
    'GL_R11F_G11F_B10F_EXT',
    'GL_RGB9_E5',
    'GL_RGB9_E5_APPLE',
    'GL_RGB9_E5_EXT',
    'GL_SRGB8',
    'GL_SRGB8_EXT',
    'GL_SRGB8_NV',
    'GL_SRGB8_ALPHA8',
    'GL_SRGB8_ALPHA8_EXT',
    'GL_COMPRESSED_SRGB_S3TC_DXT1_EXT',
    'GL_COMPRESSED_SRGB_S3TC_DXT1_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV',
    'GL_DEPTH_COMPONENT32F',
    'GL_DEPTH32F_STENCIL8',
    'GL_STENCIL_INDEX1',
    'GL_STENCIL_INDEX1_EXT',
    'GL_STENCIL_INDEX4',
    'GL_STENCIL_INDEX4_EXT',
    'GL_STENCIL_INDEX8',
    'GL_STENCIL_INDEX8_EXT',
    'GL_STENCIL_INDEX16',
    'GL_STENCIL_INDEX16_EXT',
    'GL_RGB565',
    'GL_RGBA32UI',
    'GL_RGBA32UI_EXT',
    'GL_RGB32UI',
    'GL_RGB32UI_EXT',
    'GL_ALPHA32UI_EXT',
    'GL_INTENSITY32UI_EXT',
    'GL_LUMINANCE32UI_EXT',
    'GL_LUMINANCE_ALPHA32UI_EXT',
    'GL_RGBA16UI',
    'GL_RGBA16UI_EXT',
    'GL_RGB16UI',
    'GL_RGB16UI_EXT',
    'GL_ALPHA16UI_EXT',
    'GL_INTENSITY16UI_EXT',
    'GL_LUMINANCE16UI_EXT',
    'GL_LUMINANCE_ALPHA16UI_EXT',
    'GL_RGBA8UI',
    'GL_RGBA8UI_EXT',
    'GL_RGB8UI',
    'GL_RGB8UI_EXT',
    'GL_ALPHA8UI_EXT',
    'GL_INTENSITY8UI_EXT',
    'GL_LUMINANCE8UI_EXT',
    'GL_LUMINANCE_ALPHA8UI_EXT',
    'GL_RGBA32I',
    'GL_RGBA32I_EXT',
    'GL_RGB32I',
    'GL_RGB32I_EXT',
    'GL_ALPHA32I_EXT',
    'GL_INTENSITY32I_EXT',
    'GL_LUMINANCE32I_EXT',
    'GL_LUMINANCE_ALPHA32I_EXT',
    'GL_RGBA16I',
    'GL_RGBA16I_EXT',
    'GL_RGB16I',
    'GL_RGB16I_EXT',
    'GL_ALPHA16I_EXT',
    'GL_INTENSITY16I_EXT',
    'GL_LUMINANCE16I_EXT',
    'GL_LUMINANCE_ALPHA16I_EXT',
    'GL_RGBA8I',
    'GL_RGBA8I_EXT',
    'GL_RGB8I',
    'GL_RGB8I_EXT',
    'GL_ALPHA8I_EXT',
    'GL_INTENSITY8I_EXT',
    'GL_LUMINANCE8I_EXT',
    'GL_LUMINANCE_ALPHA8I_EXT',
    'GL_DEPTH_COMPONENT32F_NV',
    'GL_DEPTH32F_STENCIL8_NV',
    'GL_COMPRESSED_RED_RGTC1',
    'GL_COMPRESSED_RED_RGTC1_EXT',
    'GL_COMPRESSED_SIGNED_RED_RGTC1',
    'GL_COMPRESSED_SIGNED_RED_RGTC1_EXT',
    'GL_COMPRESSED_RED_GREEN_RGTC2_EXT',
    'GL_COMPRESSED_RG_RGTC2',
    'GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT',
    'GL_COMPRESSED_SIGNED_RG_RGTC2',
    'GL_COMPRESSED_RGBA_BPTC_UNORM',
    'GL_COMPRESSED_RGBA_BPTC_UNORM_ARB',
    'GL_COMPRESSED_RGBA_BPTC_UNORM_EXT',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB',
    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB',
    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB',
    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT',
    'GL_R8_SNORM',
    'GL_RG8_SNORM',
    'GL_RGB8_SNORM',
    'GL_RGBA8_SNORM',
    'GL_R16_SNORM',
    'GL_R16_SNORM_EXT',
    'GL_RG16_SNORM',
    'GL_RG16_SNORM_EXT',
    'GL_RGB16_SNORM',
    'GL_RGB16_SNORM_EXT',
    'GL_RGBA16_SNORM',
    'GL_RGBA16_SNORM_EXT',
    'GL_RGB10_A2UI',
    'GL_COMPRESSED_R11_EAC',
    'GL_COMPRESSED_SIGNED_R11_EAC',
    'GL_COMPRESSED_RG11_EAC',
    'GL_COMPRESSED_SIGNED_RG11_EAC',
    'GL_COMPRESSED_RGB8_ETC2',
    'GL_COMPRESSED_SRGB8_ETC2',
    'GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2',
    'GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2',
    'GL_COMPRESSED_RGBA8_ETC2_EAC',
    'GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC',
    'GL_COMPRESSED_RGBA_ASTC_4x4',
    'GL_COMPRESSED_RGBA_ASTC_4x4_KHR',
    'GL_COMPRESSED_RGBA_ASTC_5x4',
    'GL_COMPRESSED_RGBA_ASTC_5x4_KHR',
    'GL_COMPRESSED_RGBA_ASTC_5x5',
    'GL_COMPRESSED_RGBA_ASTC_5x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_6x5',
    'GL_COMPRESSED_RGBA_ASTC_6x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_6x6',
    'GL_COMPRESSED_RGBA_ASTC_6x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x5',
    'GL_COMPRESSED_RGBA_ASTC_8x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x6',
    'GL_COMPRESSED_RGBA_ASTC_8x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_8x8',
    'GL_COMPRESSED_RGBA_ASTC_8x8_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x5',
    'GL_COMPRESSED_RGBA_ASTC_10x5_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x6',
    'GL_COMPRESSED_RGBA_ASTC_10x6_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x8',
    'GL_COMPRESSED_RGBA_ASTC_10x8_KHR',
    'GL_COMPRESSED_RGBA_ASTC_10x10',
    'GL_COMPRESSED_RGBA_ASTC_10x10_KHR',
    'GL_COMPRESSED_RGBA_ASTC_12x10',
    'GL_COMPRESSED_RGBA_ASTC_12x10_KHR',
    'GL_COMPRESSED_RGBA_ASTC_12x12',
    'GL_COMPRESSED_RGBA_ASTC_12x12_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12',
    'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR'
  ],
  'SpecialNumbers' => [
    'GL_FALSE',
    'GL_NO_ERROR',
    'GL_ZERO',
    'GL_NONE',
    'GL_TRUE',
    'GL_ONE',
    'GL_INVALID_INDEX',
    'GL_ALL_PIXELS_AMD',
    'GL_TIMEOUT_IGNORED',
    'GL_TIMEOUT_IGNORED_APPLE',
    'GL_VERSION_ES_CL_1_0',
    'GL_VERSION_ES_CM_1_1',
    'GL_VERSION_ES_CL_1_1',
    'GL_UUID_SIZE_EXT',
    'GL_LUID_SIZE_EXT'
  ],
  'SpriteModeSGIX' => [
    'GL_SPRITE_AXIAL_SGIX',
    'GL_SPRITE_OBJECT_ALIGNED_SGIX',
    'GL_SPRITE_EYE_ALIGNED_SGIX'
  ],
  'SpriteParameterNameSGIX' => [
    'GL_SPRITE_MODE_SGIX'
  ],
  'StencilFunction' => [
    'GL_NEVER',
    'GL_LESS',
    'GL_EQUAL',
    'GL_LEQUAL',
    'GL_GREATER',
    'GL_NOTEQUAL',
    'GL_GEQUAL',
    'GL_ALWAYS'
  ],
  'StencilOp' => [
    'GL_ZERO',
    'GL_INVERT',
    'GL_KEEP',
    'GL_REPLACE',
    'GL_INCR',
    'GL_DECR',
    'GL_INCR_WRAP',
    'GL_DECR_WRAP'
  ],
  'StringName' => [
    'GL_VENDOR',
    'GL_RENDERER',
    'GL_VERSION',
    'GL_EXTENSIONS',
    'GL_SHADING_LANGUAGE_VERSION'
  ],
  'SubgroupSupportedFeatures' => [
    'GL_SUBGROUP_FEATURE_BASIC_BIT_KHR',
    'GL_SUBGROUP_FEATURE_VOTE_BIT_KHR',
    'GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR',
    'GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR',
    'GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR',
    'GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR',
    'GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR',
    'GL_SUBGROUP_FEATURE_QUAD_BIT_KHR',
    'GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV'
  ],
  'SubroutineParameterName' => [
    'GL_UNIFORM_SIZE',
    'GL_UNIFORM_NAME_LENGTH',
    'GL_NUM_COMPATIBLE_SUBROUTINES',
    'GL_COMPATIBLE_SUBROUTINES'
  ],
  'SwizzleOpATI' => [
    'GL_SWIZZLE_STR_ATI',
    'GL_SWIZZLE_STQ_ATI',
    'GL_SWIZZLE_STR_DR_ATI',
    'GL_SWIZZLE_STQ_DQ_ATI'
  ],
  'SyncBehaviorFlags' => [
    'GL_NONE'
  ],
  'SyncCondition' => [
    'GL_SYNC_GPU_COMMANDS_COMPLETE'
  ],
  'SyncObjectMask' => [
    'GL_SYNC_FLUSH_COMMANDS_BIT',
    'GL_SYNC_FLUSH_COMMANDS_BIT_APPLE'
  ],
  'SyncParameterName' => [
    'GL_OBJECT_TYPE',
    'GL_SYNC_CONDITION',
    'GL_SYNC_STATUS',
    'GL_SYNC_FLAGS'
  ],
  'SyncStatus' => [
    'GL_ALREADY_SIGNALED',
    'GL_TIMEOUT_EXPIRED',
    'GL_CONDITION_SATISFIED',
    'GL_WAIT_FAILED'
  ],
  'TangentPointerTypeEXT' => [
    'GL_BYTE',
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_DOUBLE_EXT'
  ],
  'TexBumpParameterATI' => [
    'GL_BUMP_ROT_MATRIX_ATI'
  ],
  'TexCoordPointerType' => [
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'TexStorageAttribs' => [
    'GL_SURFACE_COMPRESSION_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT',
    'GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT'
  ],
  'TextureCompareMode' => [
    'GL_NONE',
    'GL_COMPARE_R_TO_TEXTURE',
    'GL_COMPARE_REF_TO_TEXTURE'
  ],
  'TextureCoordName' => [
    'GL_S',
    'GL_T',
    'GL_R',
    'GL_Q'
  ],
  'TextureEnvMode' => [
    'GL_ADD',
    'GL_BLEND',
    'GL_REPLACE',
    'GL_MODULATE',
    'GL_DECAL',
    'GL_REPLACE_EXT',
    'GL_TEXTURE_ENV_BIAS_SGIX',
    'GL_COMBINE'
  ],
  'TextureEnvParameter' => [
    'GL_ALPHA_SCALE',
    'GL_TEXTURE_ENV_MODE',
    'GL_TEXTURE_ENV_COLOR',
    'GL_TEXTURE_LOD_BIAS',
    'GL_COMBINE',
    'GL_COMBINE_ARB',
    'GL_COMBINE_EXT',
    'GL_COMBINE_RGB',
    'GL_COMBINE_RGB_ARB',
    'GL_COMBINE_RGB_EXT',
    'GL_COMBINE_ALPHA',
    'GL_COMBINE_ALPHA_ARB',
    'GL_COMBINE_ALPHA_EXT',
    'GL_RGB_SCALE',
    'GL_RGB_SCALE_ARB',
    'GL_RGB_SCALE_EXT',
    'GL_ADD_SIGNED',
    'GL_ADD_SIGNED_ARB',
    'GL_ADD_SIGNED_EXT',
    'GL_INTERPOLATE',
    'GL_INTERPOLATE_ARB',
    'GL_INTERPOLATE_EXT',
    'GL_CONSTANT',
    'GL_CONSTANT_ARB',
    'GL_CONSTANT_EXT',
    'GL_CONSTANT_NV',
    'GL_PRIMARY_COLOR',
    'GL_PRIMARY_COLOR_ARB',
    'GL_PRIMARY_COLOR_EXT',
    'GL_PREVIOUS',
    'GL_PREVIOUS_ARB',
    'GL_PREVIOUS_EXT',
    'GL_SOURCE0_RGB',
    'GL_SOURCE0_RGB_ARB',
    'GL_SOURCE0_RGB_EXT',
    'GL_SRC0_RGB',
    'GL_SOURCE1_RGB',
    'GL_SOURCE1_RGB_ARB',
    'GL_SOURCE1_RGB_EXT',
    'GL_SRC1_RGB',
    'GL_SOURCE2_RGB',
    'GL_SOURCE2_RGB_ARB',
    'GL_SOURCE2_RGB_EXT',
    'GL_SRC2_RGB',
    'GL_SOURCE3_RGB_NV',
    'GL_SOURCE0_ALPHA',
    'GL_SOURCE0_ALPHA_ARB',
    'GL_SOURCE0_ALPHA_EXT',
    'GL_SRC0_ALPHA',
    'GL_SOURCE1_ALPHA',
    'GL_SOURCE1_ALPHA_ARB',
    'GL_SOURCE1_ALPHA_EXT',
    'GL_SRC1_ALPHA',
    'GL_SRC1_ALPHA_EXT',
    'GL_SOURCE2_ALPHA',
    'GL_SOURCE2_ALPHA_ARB',
    'GL_SOURCE2_ALPHA_EXT',
    'GL_SRC2_ALPHA',
    'GL_SOURCE3_ALPHA_NV',
    'GL_OPERAND0_RGB',
    'GL_OPERAND0_RGB_ARB',
    'GL_OPERAND0_RGB_EXT',
    'GL_OPERAND1_RGB',
    'GL_OPERAND1_RGB_ARB',
    'GL_OPERAND1_RGB_EXT',
    'GL_OPERAND2_RGB',
    'GL_OPERAND2_RGB_ARB',
    'GL_OPERAND2_RGB_EXT',
    'GL_OPERAND3_RGB_NV',
    'GL_OPERAND0_ALPHA',
    'GL_OPERAND0_ALPHA_ARB',
    'GL_OPERAND0_ALPHA_EXT',
    'GL_OPERAND1_ALPHA',
    'GL_OPERAND1_ALPHA_ARB',
    'GL_OPERAND1_ALPHA_EXT',
    'GL_OPERAND2_ALPHA',
    'GL_OPERAND2_ALPHA_ARB',
    'GL_OPERAND2_ALPHA_EXT',
    'GL_OPERAND3_ALPHA_NV',
    'GL_COORD_REPLACE'
  ],
  'TextureEnvTarget' => [
    'GL_TEXTURE_ENV',
    'GL_TEXTURE_FILTER_CONTROL',
    'GL_POINT_SPRITE'
  ],
  'TextureFilterSGIS' => [
    'GL_FILTER4_SGIS'
  ],
  'TextureGenMode' => [
    'GL_EYE_LINEAR',
    'GL_OBJECT_LINEAR',
    'GL_SPHERE_MAP',
    'GL_EYE_DISTANCE_TO_POINT_SGIS',
    'GL_OBJECT_DISTANCE_TO_POINT_SGIS',
    'GL_EYE_DISTANCE_TO_LINE_SGIS',
    'GL_OBJECT_DISTANCE_TO_LINE_SGIS'
  ],
  'TextureGenParameter' => [
    'GL_TEXTURE_GEN_MODE',
    'GL_OBJECT_PLANE',
    'GL_EYE_PLANE',
    'GL_EYE_POINT_SGIS',
    'GL_OBJECT_POINT_SGIS',
    'GL_EYE_LINE_SGIS',
    'GL_OBJECT_LINE_SGIS'
  ],
  'TextureLayout' => [
    'GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT',
    'GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT',
    'GL_LAYOUT_GENERAL_EXT',
    'GL_LAYOUT_COLOR_ATTACHMENT_EXT',
    'GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT',
    'GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT',
    'GL_LAYOUT_SHADER_READ_ONLY_EXT',
    'GL_LAYOUT_TRANSFER_SRC_EXT',
    'GL_LAYOUT_TRANSFER_DST_EXT'
  ],
  'TextureMagFilter' => [
    'GL_NEAREST',
    'GL_LINEAR',
    'GL_LINEAR_DETAIL_SGIS',
    'GL_LINEAR_DETAIL_ALPHA_SGIS',
    'GL_LINEAR_DETAIL_COLOR_SGIS',
    'GL_LINEAR_SHARPEN_SGIS',
    'GL_LINEAR_SHARPEN_ALPHA_SGIS',
    'GL_LINEAR_SHARPEN_COLOR_SGIS',
    'GL_FILTER4_SGIS',
    'GL_PIXEL_TEX_GEN_Q_CEILING_SGIX',
    'GL_PIXEL_TEX_GEN_Q_ROUND_SGIX',
    'GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX'
  ],
  'TextureMinFilter' => [
    'GL_NEAREST',
    'GL_LINEAR',
    'GL_NEAREST_MIPMAP_NEAREST',
    'GL_LINEAR_MIPMAP_NEAREST',
    'GL_NEAREST_MIPMAP_LINEAR',
    'GL_LINEAR_MIPMAP_LINEAR',
    'GL_FILTER4_SGIS',
    'GL_LINEAR_CLIPMAP_LINEAR_SGIX',
    'GL_PIXEL_TEX_GEN_Q_CEILING_SGIX',
    'GL_PIXEL_TEX_GEN_Q_ROUND_SGIX',
    'GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX',
    'GL_NEAREST_CLIPMAP_NEAREST_SGIX',
    'GL_NEAREST_CLIPMAP_LINEAR_SGIX',
    'GL_LINEAR_CLIPMAP_NEAREST_SGIX'
  ],
  'TextureNormalModeEXT' => [
    'GL_PERTURB_EXT'
  ],
  'TextureParameterName' => [
    'GL_TEXTURE_WIDTH',
    'GL_TEXTURE_HEIGHT',
    'GL_TEXTURE_INTERNAL_FORMAT',
    'GL_TEXTURE_COMPONENTS',
    'GL_TEXTURE_BORDER_COLOR',
    'GL_TEXTURE_BORDER_COLOR_NV',
    'GL_TEXTURE_BORDER',
    'GL_TEXTURE_MAG_FILTER',
    'GL_TEXTURE_MIN_FILTER',
    'GL_TEXTURE_WRAP_S',
    'GL_TEXTURE_WRAP_T',
    'GL_TEXTURE_RED_SIZE',
    'GL_TEXTURE_GREEN_SIZE',
    'GL_TEXTURE_BLUE_SIZE',
    'GL_TEXTURE_ALPHA_SIZE',
    'GL_TEXTURE_LUMINANCE_SIZE',
    'GL_TEXTURE_INTENSITY_SIZE',
    'GL_TEXTURE_PRIORITY',
    'GL_TEXTURE_PRIORITY_EXT',
    'GL_TEXTURE_RESIDENT',
    'GL_TEXTURE_DEPTH_EXT',
    'GL_TEXTURE_WRAP_R',
    'GL_TEXTURE_WRAP_R_EXT',
    'GL_DETAIL_TEXTURE_LEVEL_SGIS',
    'GL_DETAIL_TEXTURE_MODE_SGIS',
    'GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS',
    'GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS',
    'GL_SHADOW_AMBIENT_SGIX',
    'GL_DUAL_TEXTURE_SELECT_SGIS',
    'GL_QUAD_TEXTURE_SELECT_SGIS',
    'GL_TEXTURE_4DSIZE_SGIS',
    'GL_TEXTURE_WRAP_Q_SGIS',
    'GL_TEXTURE_MIN_LOD',
    'GL_TEXTURE_MIN_LOD_SGIS',
    'GL_TEXTURE_MAX_LOD',
    'GL_TEXTURE_MAX_LOD_SGIS',
    'GL_TEXTURE_BASE_LEVEL',
    'GL_TEXTURE_BASE_LEVEL_SGIS',
    'GL_TEXTURE_MAX_LEVEL',
    'GL_TEXTURE_MAX_LEVEL_SGIS',
    'GL_TEXTURE_FILTER4_SIZE_SGIS',
    'GL_TEXTURE_CLIPMAP_CENTER_SGIX',
    'GL_TEXTURE_CLIPMAP_FRAME_SGIX',
    'GL_TEXTURE_CLIPMAP_OFFSET_SGIX',
    'GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX',
    'GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX',
    'GL_TEXTURE_CLIPMAP_DEPTH_SGIX',
    'GL_POST_TEXTURE_FILTER_BIAS_SGIX',
    'GL_POST_TEXTURE_FILTER_SCALE_SGIX',
    'GL_TEXTURE_LOD_BIAS_S_SGIX',
    'GL_TEXTURE_LOD_BIAS_T_SGIX',
    'GL_TEXTURE_LOD_BIAS_R_SGIX',
    'GL_GENERATE_MIPMAP',
    'GL_GENERATE_MIPMAP_SGIS',
    'GL_TEXTURE_COMPARE_SGIX',
    'GL_TEXTURE_COMPARE_OPERATOR_SGIX',
    'GL_TEXTURE_LEQUAL_R_SGIX',
    'GL_TEXTURE_GEQUAL_R_SGIX',
    'GL_TEXTURE_MAX_CLAMP_S_SGIX',
    'GL_TEXTURE_MAX_CLAMP_T_SGIX',
    'GL_TEXTURE_MAX_CLAMP_R_SGIX',
    'GL_TEXTURE_MEMORY_LAYOUT_INTEL',
    'GL_TEXTURE_MAX_ANISOTROPY',
    'GL_TEXTURE_LOD_BIAS',
    'GL_TEXTURE_COMPARE_MODE',
    'GL_TEXTURE_COMPARE_FUNC',
    'GL_TEXTURE_SWIZZLE_R',
    'GL_TEXTURE_SWIZZLE_G',
    'GL_TEXTURE_SWIZZLE_B',
    'GL_TEXTURE_SWIZZLE_A',
    'GL_TEXTURE_SWIZZLE_RGBA',
    'GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM',
    'GL_DEPTH_STENCIL_TEXTURE_MODE',
    'GL_TEXTURE_TILING_EXT',
    'GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM',
    'GL_TEXTURE_Y_DEGAMMA_QCOM',
    'GL_TEXTURE_CBCR_DEGAMMA_QCOM'
  ],
  'TextureStorageMaskAMD' => [
    'GL_TEXTURE_STORAGE_SPARSE_BIT_AMD'
  ],
  'TextureSwizzle' => [
    'GL_ZERO',
    'GL_ONE',
    'GL_RED',
    'GL_GREEN',
    'GL_BLUE',
    'GL_ALPHA'
  ],
  'TextureTarget' => [
    'GL_TEXTURE_1D',
    'GL_TEXTURE_2D',
    'GL_PROXY_TEXTURE_1D',
    'GL_PROXY_TEXTURE_1D_EXT',
    'GL_PROXY_TEXTURE_2D',
    'GL_PROXY_TEXTURE_2D_EXT',
    'GL_TEXTURE_3D',
    'GL_TEXTURE_3D_EXT',
    'GL_PROXY_TEXTURE_3D',
    'GL_PROXY_TEXTURE_3D_EXT',
    'GL_DETAIL_TEXTURE_2D_SGIS',
    'GL_TEXTURE_4D_SGIS',
    'GL_PROXY_TEXTURE_4D_SGIS',
    'GL_TEXTURE_RECTANGLE',
    'GL_TEXTURE_RECTANGLE_ARB',
    'GL_TEXTURE_RECTANGLE_NV',
    'GL_PROXY_TEXTURE_RECTANGLE',
    'GL_PROXY_TEXTURE_RECTANGLE_ARB',
    'GL_PROXY_TEXTURE_RECTANGLE_NV',
    'GL_TEXTURE_CUBE_MAP',
    'GL_TEXTURE_CUBE_MAP_ARB',
    'GL_TEXTURE_CUBE_MAP_EXT',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_X',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_X',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Y',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Z',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB',
    'GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB',
    'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT',
    'GL_PROXY_TEXTURE_CUBE_MAP',
    'GL_PROXY_TEXTURE_CUBE_MAP_ARB',
    'GL_PROXY_TEXTURE_CUBE_MAP_EXT',
    'GL_TEXTURE_1D_ARRAY',
    'GL_PROXY_TEXTURE_1D_ARRAY',
    'GL_PROXY_TEXTURE_1D_ARRAY_EXT',
    'GL_TEXTURE_2D_ARRAY',
    'GL_PROXY_TEXTURE_2D_ARRAY',
    'GL_PROXY_TEXTURE_2D_ARRAY_EXT',
    'GL_TEXTURE_BUFFER',
    'GL_RENDERBUFFER',
    'GL_TEXTURE_CUBE_MAP_ARRAY',
    'GL_TEXTURE_CUBE_MAP_ARRAY_ARB',
    'GL_TEXTURE_CUBE_MAP_ARRAY_EXT',
    'GL_PROXY_TEXTURE_CUBE_MAP_ARRAY',
    'GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB',
    'GL_TEXTURE_2D_MULTISAMPLE',
    'GL_PROXY_TEXTURE_2D_MULTISAMPLE',
    'GL_TEXTURE_2D_MULTISAMPLE_ARRAY',
    'GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY'
  ],
  'TextureUnit' => [
    'GL_TEXTURE0',
    'GL_TEXTURE1',
    'GL_TEXTURE2',
    'GL_TEXTURE3',
    'GL_TEXTURE4',
    'GL_TEXTURE5',
    'GL_TEXTURE6',
    'GL_TEXTURE7',
    'GL_TEXTURE8',
    'GL_TEXTURE9',
    'GL_TEXTURE10',
    'GL_TEXTURE11',
    'GL_TEXTURE12',
    'GL_TEXTURE13',
    'GL_TEXTURE14',
    'GL_TEXTURE15',
    'GL_TEXTURE16',
    'GL_TEXTURE17',
    'GL_TEXTURE18',
    'GL_TEXTURE19',
    'GL_TEXTURE20',
    'GL_TEXTURE21',
    'GL_TEXTURE22',
    'GL_TEXTURE23',
    'GL_TEXTURE24',
    'GL_TEXTURE25',
    'GL_TEXTURE26',
    'GL_TEXTURE27',
    'GL_TEXTURE28',
    'GL_TEXTURE29',
    'GL_TEXTURE30',
    'GL_TEXTURE31'
  ],
  'TextureWrapMode' => [
    'GL_CLAMP',
    'GL_REPEAT',
    'GL_CLAMP_TO_BORDER',
    'GL_CLAMP_TO_BORDER_ARB',
    'GL_CLAMP_TO_BORDER_EXT',
    'GL_CLAMP_TO_BORDER_NV',
    'GL_CLAMP_TO_BORDER_SGIS',
    'GL_CLAMP_TO_EDGE',
    'GL_CLAMP_TO_EDGE_SGIS',
    'GL_MIRRORED_REPEAT',
    'GL_MIRRORED_REPEAT_ARB',
    'GL_MIRRORED_REPEAT_IBM'
  ],
  'TraceMaskMESA' => [
    'GL_TRACE_OPERATIONS_BIT_MESA',
    'GL_TRACE_PRIMITIVES_BIT_MESA',
    'GL_TRACE_ARRAYS_BIT_MESA',
    'GL_TRACE_TEXTURES_BIT_MESA',
    'GL_TRACE_PIXELS_BIT_MESA',
    'GL_TRACE_ERRORS_BIT_MESA',
    'GL_TRACE_ALL_BITS_MESA'
  ],
  'TransformFeedbackBufferMode' => [
    'GL_INTERLEAVED_ATTRIBS',
    'GL_SEPARATE_ATTRIBS'
  ],
  'TransformFeedbackPName' => [
    'GL_TRANSFORM_FEEDBACK_BUFFER_START',
    'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE',
    'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING',
    'GL_TRANSFORM_FEEDBACK_PAUSED',
    'GL_TRANSFORM_FEEDBACK_ACTIVE'
  ],
  'TransformFeedbackTokenNV' => [
    'GL_NEXT_BUFFER_NV',
    'GL_SKIP_COMPONENTS4_NV',
    'GL_SKIP_COMPONENTS3_NV',
    'GL_SKIP_COMPONENTS2_NV',
    'GL_SKIP_COMPONENTS1_NV'
  ],
  'TriangleFace' => [
    'GL_FRONT',
    'GL_BACK',
    'GL_FRONT_AND_BACK'
  ],
  'TriangleListSUN' => [
    'GL_RESTART_SUN',
    'GL_REPLACE_MIDDLE_SUN',
    'GL_REPLACE_OLDEST_SUN'
  ],
  'UniformBlockPName' => [
    'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER',
    'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER',
    'GL_UNIFORM_BLOCK_BINDING',
    'GL_UNIFORM_BLOCK_DATA_SIZE',
    'GL_UNIFORM_BLOCK_NAME_LENGTH',
    'GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS',
    'GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES',
    'GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER',
    'GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER',
    'GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER',
    'GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER'
  ],
  'UniformPName' => [
    'GL_UNIFORM_TYPE',
    'GL_UNIFORM_SIZE',
    'GL_UNIFORM_NAME_LENGTH',
    'GL_UNIFORM_BLOCK_INDEX',
    'GL_UNIFORM_OFFSET',
    'GL_UNIFORM_ARRAY_STRIDE',
    'GL_UNIFORM_MATRIX_STRIDE',
    'GL_UNIFORM_IS_ROW_MAJOR',
    'GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX'
  ],
  'UniformType' => [
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_FLOAT_VEC2',
    'GL_FLOAT_VEC3',
    'GL_FLOAT_VEC4',
    'GL_INT_VEC2',
    'GL_INT_VEC3',
    'GL_INT_VEC4',
    'GL_BOOL',
    'GL_BOOL_VEC2',
    'GL_BOOL_VEC3',
    'GL_BOOL_VEC4',
    'GL_FLOAT_MAT2',
    'GL_FLOAT_MAT3',
    'GL_FLOAT_MAT4',
    'GL_SAMPLER_1D',
    'GL_SAMPLER_2D',
    'GL_SAMPLER_3D',
    'GL_SAMPLER_CUBE',
    'GL_SAMPLER_1D_SHADOW',
    'GL_SAMPLER_2D_SHADOW',
    'GL_SAMPLER_2D_RECT',
    'GL_SAMPLER_2D_RECT_SHADOW',
    'GL_FLOAT_MAT2x3',
    'GL_FLOAT_MAT2x4',
    'GL_FLOAT_MAT3x2',
    'GL_FLOAT_MAT3x4',
    'GL_FLOAT_MAT4x2',
    'GL_FLOAT_MAT4x3',
    'GL_SAMPLER_1D_ARRAY',
    'GL_SAMPLER_2D_ARRAY',
    'GL_SAMPLER_BUFFER',
    'GL_SAMPLER_1D_ARRAY_SHADOW',
    'GL_SAMPLER_2D_ARRAY_SHADOW',
    'GL_SAMPLER_CUBE_SHADOW',
    'GL_UNSIGNED_INT_VEC2',
    'GL_UNSIGNED_INT_VEC3',
    'GL_UNSIGNED_INT_VEC4',
    'GL_INT_SAMPLER_1D',
    'GL_INT_SAMPLER_2D',
    'GL_INT_SAMPLER_3D',
    'GL_INT_SAMPLER_CUBE',
    'GL_INT_SAMPLER_2D_RECT',
    'GL_INT_SAMPLER_1D_ARRAY',
    'GL_INT_SAMPLER_2D_ARRAY',
    'GL_INT_SAMPLER_BUFFER',
    'GL_UNSIGNED_INT_SAMPLER_1D',
    'GL_UNSIGNED_INT_SAMPLER_2D',
    'GL_UNSIGNED_INT_SAMPLER_3D',
    'GL_UNSIGNED_INT_SAMPLER_CUBE',
    'GL_UNSIGNED_INT_SAMPLER_2D_RECT',
    'GL_UNSIGNED_INT_SAMPLER_1D_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_2D_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_BUFFER',
    'GL_DOUBLE_MAT2',
    'GL_DOUBLE_MAT3',
    'GL_DOUBLE_MAT4',
    'GL_DOUBLE_MAT2x3',
    'GL_DOUBLE_MAT2x4',
    'GL_DOUBLE_MAT3x2',
    'GL_DOUBLE_MAT3x4',
    'GL_DOUBLE_MAT4x2',
    'GL_DOUBLE_MAT4x3',
    'GL_DOUBLE_VEC2',
    'GL_DOUBLE_VEC3',
    'GL_DOUBLE_VEC4',
    'GL_SAMPLER_CUBE_MAP_ARRAY',
    'GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW',
    'GL_INT_SAMPLER_CUBE_MAP_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY',
    'GL_SAMPLER_2D_MULTISAMPLE',
    'GL_INT_SAMPLER_2D_MULTISAMPLE',
    'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE',
    'GL_SAMPLER_2D_MULTISAMPLE_ARRAY',
    'GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY',
    'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
  ],
  'UseProgramStageMask' => [
    'GL_VERTEX_SHADER_BIT',
    'GL_VERTEX_SHADER_BIT_EXT',
    'GL_FRAGMENT_SHADER_BIT',
    'GL_FRAGMENT_SHADER_BIT_EXT',
    'GL_GEOMETRY_SHADER_BIT',
    'GL_GEOMETRY_SHADER_BIT_EXT',
    'GL_TESS_CONTROL_SHADER_BIT',
    'GL_TESS_CONTROL_SHADER_BIT_EXT',
    'GL_TESS_EVALUATION_SHADER_BIT',
    'GL_TESS_EVALUATION_SHADER_BIT_EXT',
    'GL_COMPUTE_SHADER_BIT',
    'GL_MESH_SHADER_BIT_NV',
    'GL_MESH_SHADER_BIT_EXT',
    'GL_TASK_SHADER_BIT_NV',
    'GL_TASK_SHADER_BIT_EXT',
    'GL_ALL_SHADER_BITS',
    'GL_ALL_SHADER_BITS_EXT'
  ],
  'VariantCapEXT' => [
    'GL_VARIANT_ARRAY_EXT'
  ],
  'VertexArrayPName' => [
    'GL_VERTEX_ATTRIB_RELATIVE_OFFSET',
    'GL_VERTEX_ATTRIB_ARRAY_ENABLED',
    'GL_VERTEX_ATTRIB_ARRAY_SIZE',
    'GL_VERTEX_ATTRIB_ARRAY_STRIDE',
    'GL_VERTEX_ATTRIB_ARRAY_TYPE',
    'GL_VERTEX_ATTRIB_ARRAY_LONG',
    'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED',
    'GL_VERTEX_ATTRIB_ARRAY_INTEGER',
    'GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
  ],
  'VertexArrayPNameAPPLE' => [
    'GL_STORAGE_CLIENT_APPLE',
    'GL_STORAGE_CACHED_APPLE',
    'GL_STORAGE_SHARED_APPLE'
  ],
  'VertexAttribEnum' => [
    'GL_VERTEX_ATTRIB_ARRAY_ENABLED',
    'GL_VERTEX_ATTRIB_ARRAY_SIZE',
    'GL_VERTEX_ATTRIB_ARRAY_STRIDE',
    'GL_VERTEX_ATTRIB_ARRAY_TYPE',
    'GL_CURRENT_VERTEX_ATTRIB',
    'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED',
    'GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING',
    'GL_VERTEX_ATTRIB_ARRAY_INTEGER',
    'GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
  ],
  'VertexAttribEnumNV' => [
    'GL_PROGRAM_PARAMETER_NV'
  ],
  'VertexAttribIType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT'
  ],
  'VertexAttribLType' => [
    'GL_DOUBLE'
  ],
  'VertexAttribPointerPropertyARB' => [
    'GL_VERTEX_ATTRIB_ARRAY_POINTER',
    'GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB'
  ],
  'VertexAttribPointerType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_HALF_FLOAT',
    'GL_FIXED',
    'GL_INT64_ARB',
    'GL_INT64_NV',
    'GL_UNSIGNED_INT64_ARB',
    'GL_UNSIGNED_INT64_NV',
    'GL_UNSIGNED_INT_2_10_10_10_REV',
    'GL_UNSIGNED_INT_2_10_10_10_REV_EXT',
    'GL_UNSIGNED_INT_10F_11F_11F_REV',
    'GL_INT_2_10_10_10_REV'
  ],
  'VertexAttribPropertyARB' => [
    'GL_VERTEX_ATTRIB_BINDING',
    'GL_VERTEX_ATTRIB_RELATIVE_OFFSET',
    'GL_VERTEX_ATTRIB_ARRAY_ENABLED',
    'GL_VERTEX_ATTRIB_ARRAY_SIZE',
    'GL_VERTEX_ATTRIB_ARRAY_STRIDE',
    'GL_VERTEX_ATTRIB_ARRAY_TYPE',
    'GL_CURRENT_VERTEX_ATTRIB',
    'GL_VERTEX_ATTRIB_ARRAY_LONG',
    'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED',
    'GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING',
    'GL_VERTEX_ATTRIB_ARRAY_INTEGER',
    'GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT',
    'GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
  ],
  'VertexAttribType' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE',
    'GL_HALF_FLOAT',
    'GL_FIXED',
    'GL_UNSIGNED_INT_2_10_10_10_REV',
    'GL_UNSIGNED_INT_2_10_10_10_REV_EXT',
    'GL_UNSIGNED_INT_10F_11F_11F_REV',
    'GL_INT_2_10_10_10_REV'
  ],
  'VertexHintsMaskPGI' => [
    'GL_VERTEX23_BIT_PGI',
    'GL_VERTEX4_BIT_PGI',
    'GL_COLOR3_BIT_PGI',
    'GL_COLOR4_BIT_PGI',
    'GL_EDGEFLAG_BIT_PGI',
    'GL_INDEX_BIT_PGI',
    'GL_MAT_AMBIENT_BIT_PGI',
    'GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI',
    'GL_MAT_DIFFUSE_BIT_PGI',
    'GL_MAT_EMISSION_BIT_PGI',
    'GL_MAT_COLOR_INDEXES_BIT_PGI',
    'GL_MAT_SHININESS_BIT_PGI',
    'GL_MAT_SPECULAR_BIT_PGI',
    'GL_NORMAL_BIT_PGI',
    'GL_TEXCOORD1_BIT_PGI',
    'GL_TEXCOORD2_BIT_PGI',
    'GL_TEXCOORD3_BIT_PGI',
    'GL_TEXCOORD4_BIT_PGI'
  ],
  'VertexPointerType' => [
    'GL_SHORT',
    'GL_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ],
  'VertexProvokingMode' => [
    'GL_FIRST_VERTEX_CONVENTION',
    'GL_LAST_VERTEX_CONVENTION'
  ],
  'VertexShaderCoordOutEXT' => [
    'GL_X_EXT',
    'GL_Y_EXT',
    'GL_Z_EXT',
    'GL_W_EXT',
    'GL_NEGATIVE_X_EXT',
    'GL_NEGATIVE_Y_EXT',
    'GL_NEGATIVE_Z_EXT',
    'GL_NEGATIVE_W_EXT',
    'GL_ZERO_EXT',
    'GL_ONE_EXT',
    'GL_NEGATIVE_ONE_EXT'
  ],
  'VertexShaderOpEXT' => [
    'GL_OP_INDEX_EXT',
    'GL_OP_NEGATE_EXT',
    'GL_OP_DOT3_EXT',
    'GL_OP_DOT4_EXT',
    'GL_OP_MUL_EXT',
    'GL_OP_ADD_EXT',
    'GL_OP_MADD_EXT',
    'GL_OP_FRAC_EXT',
    'GL_OP_MAX_EXT',
    'GL_OP_MIN_EXT',
    'GL_OP_SET_GE_EXT',
    'GL_OP_SET_LT_EXT',
    'GL_OP_CLAMP_EXT',
    'GL_OP_FLOOR_EXT',
    'GL_OP_ROUND_EXT',
    'GL_OP_EXP_BASE_2_EXT',
    'GL_OP_LOG_BASE_2_EXT',
    'GL_OP_POWER_EXT',
    'GL_OP_RECIP_EXT',
    'GL_OP_RECIP_SQRT_EXT',
    'GL_OP_SUB_EXT',
    'GL_OP_CROSS_PRODUCT_EXT',
    'GL_OP_MULTIPLY_MATRIX_EXT',
    'GL_OP_MOV_EXT'
  ],
  'VertexShaderParameterEXT' => [
    'GL_CURRENT_VERTEX_EXT',
    'GL_MVP_MATRIX_EXT'
  ],
  'VertexShaderStorageTypeEXT' => [
    'GL_VARIANT_EXT',
    'GL_INVARIANT_EXT',
    'GL_LOCAL_CONSTANT_EXT',
    'GL_LOCAL_EXT'
  ],
  'VertexShaderTextureUnitParameter' => [
    'GL_CURRENT_TEXTURE_COORDS',
    'GL_TEXTURE_MATRIX'
  ],
  'VertexShaderWriteMaskEXT' => [
    'GL_FALSE',
    'GL_TRUE'
  ],
  'VertexStreamATI' => [
    'GL_VERTEX_STREAM0_ATI',
    'GL_VERTEX_STREAM1_ATI',
    'GL_VERTEX_STREAM2_ATI',
    'GL_VERTEX_STREAM3_ATI',
    'GL_VERTEX_STREAM4_ATI',
    'GL_VERTEX_STREAM5_ATI',
    'GL_VERTEX_STREAM6_ATI',
    'GL_VERTEX_STREAM7_ATI'
  ],
  'VertexWeightPointerTypeEXT' => [
    'GL_FLOAT'
  ],
  'WeightPointerTypeARB' => [
    'GL_BYTE',
    'GL_UNSIGNED_BYTE',
    'GL_SHORT',
    'GL_UNSIGNED_SHORT',
    'GL_INT',
    'GL_UNSIGNED_INT',
    'GL_FLOAT',
    'GL_DOUBLE'
  ]
);

our %enums = (
  'GL_1PASS_EXT' => '0x80A1',
  'GL_1PASS_SGIS' => '0x80A1',
  'GL_2D' => '0x0600',
  'GL_2PASS_0_EXT' => '0x80A2',
  'GL_2PASS_0_SGIS' => '0x80A2',
  'GL_2PASS_1_EXT' => '0x80A3',
  'GL_2PASS_1_SGIS' => '0x80A3',
  'GL_2X_BIT_ATI' => '0x00000001',
  'GL_2_BYTES' => '0x1407',
  'GL_3D' => '0x0601',
  'GL_3D_COLOR' => '0x0602',
  'GL_3D_COLOR_TEXTURE' => '0x0603',
  'GL_3_BYTES' => '0x1408',
  'GL_4D_COLOR_TEXTURE' => '0x0604',
  'GL_4PASS_0_EXT' => '0x80A4',
  'GL_4PASS_0_SGIS' => '0x80A4',
  'GL_4PASS_1_EXT' => '0x80A5',
  'GL_4PASS_1_SGIS' => '0x80A5',
  'GL_4PASS_2_EXT' => '0x80A6',
  'GL_4PASS_2_SGIS' => '0x80A6',
  'GL_4PASS_3_EXT' => '0x80A7',
  'GL_4PASS_3_SGIS' => '0x80A7',
  'GL_4X_BIT_ATI' => '0x00000002',
  'GL_4_BYTES' => '0x1409',
  'GL_8X_BIT_ATI' => '0x00000004',
  'GL_ABGR_EXT' => '0x8000',
  'GL_ACCUM' => '0x0100',
  'GL_ACCUM_ADJACENT_PAIRS_NV' => '0x90AD',
  'GL_ACCUM_ALPHA_BITS' => '0x0D5B',
  'GL_ACCUM_BLUE_BITS' => '0x0D5A',
  'GL_ACCUM_BUFFER_BIT' => '0x00000200',
  'GL_ACCUM_CLEAR_VALUE' => '0x0B80',
  'GL_ACCUM_GREEN_BITS' => '0x0D59',
  'GL_ACCUM_RED_BITS' => '0x0D58',
  'GL_ACTIVE_ATOMIC_COUNTER_BUFFERS' => '0x92D9',
  'GL_ACTIVE_ATTRIBUTES' => '0x8B89',
  'GL_ACTIVE_ATTRIBUTE_MAX_LENGTH' => '0x8B8A',
  'GL_ACTIVE_PROGRAM' => '0x8259',
  'GL_ACTIVE_RESOURCES' => '0x92F5',
  'GL_ACTIVE_SUBROUTINES' => '0x8DE5',
  'GL_ACTIVE_SUBROUTINE_MAX_LENGTH' => '0x8E48',
  'GL_ACTIVE_SUBROUTINE_UNIFORMS' => '0x8DE6',
  'GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS' => '0x8E47',
  'GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH' => '0x8E49',
  'GL_ACTIVE_TEXTURE' => '0x84E0',
  'GL_ACTIVE_UNIFORMS' => '0x8B86',
  'GL_ACTIVE_UNIFORM_BLOCKS' => '0x8A36',
  'GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH' => '0x8A35',
  'GL_ACTIVE_UNIFORM_MAX_LENGTH' => '0x8B87',
  'GL_ACTIVE_VARIABLES' => '0x9305',
  'GL_ADD' => '0x0104',
  'GL_ADD_ATI' => '0x8963',
  'GL_ADD_SIGNED' => '0x8574',
  'GL_ADD_SIGNED_ARB' => '0x8574',
  'GL_ADD_SIGNED_EXT' => '0x8574',
  'GL_ADJACENT_PAIRS_NV' => '0x90AE',
  'GL_AFFINE_2D_NV' => '0x9092',
  'GL_AFFINE_3D_NV' => '0x9094',
  'GL_ALIASED_LINE_WIDTH_RANGE' => '0x846E',
  'GL_ALIASED_POINT_SIZE_RANGE' => '0x846D',
  'GL_ALLOW_DRAW_FRG_HINT_PGI' => '0x1A210',
  'GL_ALLOW_DRAW_MEM_HINT_PGI' => '0x1A211',
  'GL_ALLOW_DRAW_OBJ_HINT_PGI' => '0x1A20E',
  'GL_ALLOW_DRAW_WIN_HINT_PGI' => '0x1A20F',
  'GL_ALL_ATTRIB_BITS' => '0xFFFFFFFF',
  'GL_ALL_BARRIER_BITS' => '0xFFFFFFFF',
  'GL_ALL_BARRIER_BITS_EXT' => '0xFFFFFFFF',
  'GL_ALL_COMPLETED_NV' => '0x84F2',
  'GL_ALL_PIXELS_AMD' => '0xFFFFFFFF',
  'GL_ALL_SHADER_BITS' => '0xFFFFFFFF',
  'GL_ALL_SHADER_BITS_EXT' => '0xFFFFFFFF',
  'GL_ALPHA' => '0x1906',
  'GL_ALPHA12' => '0x803D',
  'GL_ALPHA12_EXT' => '0x803D',
  'GL_ALPHA16' => '0x803E',
  'GL_ALPHA16I_EXT' => '0x8D8A',
  'GL_ALPHA16UI_EXT' => '0x8D78',
  'GL_ALPHA16_EXT' => '0x803E',
  'GL_ALPHA32I_EXT' => '0x8D84',
  'GL_ALPHA32UI_EXT' => '0x8D72',
  'GL_ALPHA4' => '0x803B',
  'GL_ALPHA4_EXT' => '0x803B',
  'GL_ALPHA8' => '0x803C',
  'GL_ALPHA8I_EXT' => '0x8D90',
  'GL_ALPHA8UI_EXT' => '0x8D7E',
  'GL_ALPHA8_EXT' => '0x803C',
  'GL_ALPHA_BIAS' => '0x0D1D',
  'GL_ALPHA_BITS' => '0x0D55',
  'GL_ALPHA_MAX_SGIX' => '0x8321',
  'GL_ALPHA_MIN_SGIX' => '0x8320',
  'GL_ALPHA_REF_COMMAND_NV' => '0x000F',
  'GL_ALPHA_SCALE' => '0x0D1C',
  'GL_ALPHA_TEST' => '0x0BC0',
  'GL_ALPHA_TEST_FUNC' => '0x0BC1',
  'GL_ALPHA_TEST_FUNC_QCOM' => '0x0BC1',
  'GL_ALPHA_TEST_QCOM' => '0x0BC0',
  'GL_ALPHA_TEST_REF' => '0x0BC2',
  'GL_ALPHA_TEST_REF_QCOM' => '0x0BC2',
  'GL_ALREADY_SIGNALED' => '0x911A',
  'GL_ALWAYS' => '0x0207',
  'GL_ALWAYS_FAST_HINT_PGI' => '0x1A20C',
  'GL_ALWAYS_SOFT_HINT_PGI' => '0x1A20D',
  'GL_AMBIENT' => '0x1200',
  'GL_AMBIENT_AND_DIFFUSE' => '0x1602',
  'GL_AND' => '0x1501',
  'GL_AND_INVERTED' => '0x1504',
  'GL_AND_REVERSE' => '0x1502',
  'GL_ANY_SAMPLES_PASSED' => '0x8C2F',
  'GL_ANY_SAMPLES_PASSED_CONSERVATIVE' => '0x8D6A',
  'GL_ARC_TO_NV' => '0xFE',
  'GL_ARRAY_BUFFER' => '0x8892',
  'GL_ARRAY_BUFFER_BINDING' => '0x8894',
  'GL_ARRAY_SIZE' => '0x92FB',
  'GL_ARRAY_STRIDE' => '0x92FE',
  'GL_ASYNC_DRAW_PIXELS_SGIX' => '0x835D',
  'GL_ASYNC_HISTOGRAM_SGIX' => '0x832C',
  'GL_ASYNC_MARKER_SGIX' => '0x8329',
  'GL_ASYNC_READ_PIXELS_SGIX' => '0x835E',
  'GL_ASYNC_TEX_IMAGE_SGIX' => '0x835C',
  'GL_ATOMIC_COUNTER_BARRIER_BIT' => '0x00001000',
  'GL_ATOMIC_COUNTER_BARRIER_BIT_EXT' => '0x00001000',
  'GL_ATOMIC_COUNTER_BUFFER' => '0x92C0',
  'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS' => '0x92C5',
  'GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES' => '0x92C6',
  'GL_ATOMIC_COUNTER_BUFFER_BINDING' => '0x92C1',
  'GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE' => '0x92C4',
  'GL_ATOMIC_COUNTER_BUFFER_INDEX' => '0x9301',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER' => '0x90ED',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER' => '0x92CB',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER' => '0x92CA',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER' => '0x92C8',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER' => '0x92C9',
  'GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER' => '0x92C7',
  'GL_ATTACHED_SHADERS' => '0x8B85',
  'GL_ATTENUATION_EXT' => '0x834D',
  'GL_ATTRIBUTE_ADDRESS_COMMAND_NV' => '0x0009',
  'GL_ATTRIB_STACK_DEPTH' => '0x0BB0',
  'GL_AUTO_GENERATE_MIPMAP' => '0x8295',
  'GL_AUTO_NORMAL' => '0x0D80',
  'GL_AUX0' => '0x0409',
  'GL_AUX1' => '0x040A',
  'GL_AUX2' => '0x040B',
  'GL_AUX3' => '0x040C',
  'GL_AUX_BUFFERS' => '0x0C00',
  'GL_BACK' => '0x0405',
  'GL_BACK_LEFT' => '0x0402',
  'GL_BACK_NORMALS_HINT_PGI' => '0x1A223',
  'GL_BACK_RIGHT' => '0x0403',
  'GL_BGR' => '0x80E0',
  'GL_BGRA' => '0x80E1',
  'GL_BGRA_EXT' => '0x80E1',
  'GL_BGRA_IMG' => '0x80E1',
  'GL_BGRA_INTEGER' => '0x8D9B',
  'GL_BGR_EXT' => '0x80E0',
  'GL_BGR_INTEGER' => '0x8D9A',
  'GL_BIAS_BIT_ATI' => '0x00000008',
  'GL_BIAS_BY_NEGATIVE_ONE_HALF_NV' => '0x8541',
  'GL_BINNING_CONTROL_HINT_QCOM' => '0x8FB0',
  'GL_BITMAP' => '0x1A00',
  'GL_BITMAP_TOKEN' => '0x0704',
  'GL_BLEND' => '0x0BE2',
  'GL_BLEND_COLOR' => '0x8005',
  'GL_BLEND_COLOR_COMMAND_NV' => '0x000B',
  'GL_BLEND_COLOR_EXT' => '0x8005',
  'GL_BLEND_DST' => '0x0BE0',
  'GL_BLEND_DST_ALPHA' => '0x80CA',
  'GL_BLEND_DST_RGB' => '0x80C8',
  'GL_BLEND_EQUATION' => '0x8009',
  'GL_BLEND_EQUATION_ALPHA' => '0x883D',
  'GL_BLEND_EQUATION_EXT' => '0x8009',
  'GL_BLEND_EQUATION_RGB' => '0x8009',
  'GL_BLEND_SRC' => '0x0BE1',
  'GL_BLEND_SRC_ALPHA' => '0x80CB',
  'GL_BLEND_SRC_RGB' => '0x80C9',
  'GL_BLOCK_INDEX' => '0x92FD',
  'GL_BLUE' => '0x1905',
  'GL_BLUE_BIAS' => '0x0D1B',
  'GL_BLUE_BITS' => '0x0D54',
  'GL_BLUE_BIT_ATI' => '0x00000004',
  'GL_BLUE_INTEGER' => '0x8D96',
  'GL_BLUE_SCALE' => '0x0D1A',
  'GL_BOLD_BIT_NV' => '0x01',
  'GL_BOOL' => '0x8B56',
  'GL_BOOL_ARB' => '0x8B56',
  'GL_BOOL_VEC2' => '0x8B57',
  'GL_BOOL_VEC2_ARB' => '0x8B57',
  'GL_BOOL_VEC3' => '0x8B58',
  'GL_BOOL_VEC3_ARB' => '0x8B58',
  'GL_BOOL_VEC4' => '0x8B59',
  'GL_BOOL_VEC4_ARB' => '0x8B59',
  'GL_BOUNDING_BOX_NV' => '0x908D',
  'GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV' => '0x909C',
  'GL_BUFFER' => '0x82E0',
  'GL_BUFFER_ACCESS' => '0x88BB',
  'GL_BUFFER_ACCESS_ARB' => '0x88BB',
  'GL_BUFFER_ACCESS_FLAGS' => '0x911F',
  'GL_BUFFER_BINDING' => '0x9302',
  'GL_BUFFER_DATA_SIZE' => '0x9303',
  'GL_BUFFER_IMMUTABLE_STORAGE' => '0x821F',
  'GL_BUFFER_MAPPED' => '0x88BC',
  'GL_BUFFER_MAPPED_ARB' => '0x88BC',
  'GL_BUFFER_MAP_LENGTH' => '0x9120',
  'GL_BUFFER_MAP_OFFSET' => '0x9121',
  'GL_BUFFER_MAP_POINTER' => '0x88BD',
  'GL_BUFFER_MAP_POINTER_ARB' => '0x88BD',
  'GL_BUFFER_SIZE' => '0x8764',
  'GL_BUFFER_SIZE_ARB' => '0x8764',
  'GL_BUFFER_STORAGE_FLAGS' => '0x8220',
  'GL_BUFFER_UPDATE_BARRIER_BIT' => '0x00000200',
  'GL_BUFFER_UPDATE_BARRIER_BIT_EXT' => '0x00000200',
  'GL_BUFFER_USAGE' => '0x8765',
  'GL_BUFFER_USAGE_ARB' => '0x8765',
  'GL_BUFFER_VARIABLE' => '0x92E5',
  'GL_BUMP_NUM_TEX_UNITS_ATI' => '0x8777',
  'GL_BUMP_ROT_MATRIX_ATI' => '0x8775',
  'GL_BUMP_ROT_MATRIX_SIZE_ATI' => '0x8776',
  'GL_BUMP_TEX_UNITS_ATI' => '0x8778',
  'GL_BYTE' => '0x1400',
  'GL_C3F_V3F' => '0x2A24',
  'GL_C4F_N3F_V3F' => '0x2A26',
  'GL_C4UB_V2F' => '0x2A22',
  'GL_C4UB_V3F' => '0x2A23',
  'GL_CALLIGRAPHIC_FRAGMENT_SGIX' => '0x8183',
  'GL_CCW' => '0x0901',
  'GL_CIRCULAR_CCW_ARC_TO_NV' => '0xF8',
  'GL_CIRCULAR_CW_ARC_TO_NV' => '0xFA',
  'GL_CIRCULAR_TANGENT_ARC_TO_NV' => '0xFC',
  'GL_CLAMP' => '0x2900',
  'GL_CLAMP_FRAGMENT_COLOR_ARB' => '0x891B',
  'GL_CLAMP_READ_COLOR' => '0x891C',
  'GL_CLAMP_READ_COLOR_ARB' => '0x891C',
  'GL_CLAMP_TO_BORDER' => '0x812D',
  'GL_CLAMP_TO_BORDER_ARB' => '0x812D',
  'GL_CLAMP_TO_BORDER_EXT' => '0x812D',
  'GL_CLAMP_TO_BORDER_NV' => '0x812D',
  'GL_CLAMP_TO_BORDER_SGIS' => '0x812D',
  'GL_CLAMP_TO_EDGE' => '0x812F',
  'GL_CLAMP_TO_EDGE_SGIS' => '0x812F',
  'GL_CLAMP_VERTEX_COLOR_ARB' => '0x891A',
  'GL_CLEAR' => '0x1500',
  'GL_CLEAR_BUFFER' => '0x82B4',
  'GL_CLEAR_TEXTURE' => '0x9365',
  'GL_CLIENT_ALL_ATTRIB_BITS' => '0xFFFFFFFF',
  'GL_CLIENT_ATTRIB_STACK_DEPTH' => '0x0BB1',
  'GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT' => '0x00004000',
  'GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT' => '0x00004000',
  'GL_CLIENT_PIXEL_STORE_BIT' => '0x00000001',
  'GL_CLIENT_STORAGE_BIT' => '0x0200',
  'GL_CLIENT_STORAGE_BIT_EXT' => '0x0200',
  'GL_CLIENT_VERTEX_ARRAY_BIT' => '0x00000002',
  'GL_CLIP_DISTANCE0' => '0x3000',
  'GL_CLIP_DISTANCE1' => '0x3001',
  'GL_CLIP_DISTANCE2' => '0x3002',
  'GL_CLIP_DISTANCE3' => '0x3003',
  'GL_CLIP_DISTANCE4' => '0x3004',
  'GL_CLIP_DISTANCE5' => '0x3005',
  'GL_CLIP_DISTANCE6' => '0x3006',
  'GL_CLIP_DISTANCE7' => '0x3007',
  'GL_CLIP_FAR_HINT_PGI' => '0x1A221',
  'GL_CLIP_NEAR_HINT_PGI' => '0x1A220',
  'GL_CLIP_PLANE0' => '0x3000',
  'GL_CLIP_PLANE1' => '0x3001',
  'GL_CLIP_PLANE2' => '0x3002',
  'GL_CLIP_PLANE3' => '0x3003',
  'GL_CLIP_PLANE4' => '0x3004',
  'GL_CLIP_PLANE5' => '0x3005',
  'GL_CLIP_VOLUME_CLIPPING_HINT_EXT' => '0x80F0',
  'GL_CLOSE_PATH_NV' => '0x00',
  'GL_CMYKA_EXT' => '0x800D',
  'GL_CMYK_EXT' => '0x800C',
  'GL_CND0_ATI' => '0x896B',
  'GL_CND_ATI' => '0x896A',
  'GL_COEFF' => '0x0A00',
  'GL_COLOR' => '0x1800',
  'GL_COLOR3_BIT_PGI' => '0x00010000',
  'GL_COLOR4_BIT_PGI' => '0x00020000',
  'GL_COLOR_ARRAY' => '0x8076',
  'GL_COLOR_ARRAY_COUNT_EXT' => '0x8084',
  'GL_COLOR_ARRAY_POINTER' => '0x8090',
  'GL_COLOR_ARRAY_POINTER_EXT' => '0x8090',
  'GL_COLOR_ARRAY_SIZE' => '0x8081',
  'GL_COLOR_ARRAY_STRIDE' => '0x8083',
  'GL_COLOR_ARRAY_TYPE' => '0x8082',
  'GL_COLOR_ATTACHMENT0' => '0x8CE0',
  'GL_COLOR_ATTACHMENT0_EXT' => '0x8CE0',
  'GL_COLOR_ATTACHMENT0_NV' => '0x8CE0',
  'GL_COLOR_ATTACHMENT1' => '0x8CE1',
  'GL_COLOR_ATTACHMENT10' => '0x8CEA',
  'GL_COLOR_ATTACHMENT10_EXT' => '0x8CEA',
  'GL_COLOR_ATTACHMENT10_NV' => '0x8CEA',
  'GL_COLOR_ATTACHMENT11' => '0x8CEB',
  'GL_COLOR_ATTACHMENT11_EXT' => '0x8CEB',
  'GL_COLOR_ATTACHMENT11_NV' => '0x8CEB',
  'GL_COLOR_ATTACHMENT12' => '0x8CEC',
  'GL_COLOR_ATTACHMENT12_EXT' => '0x8CEC',
  'GL_COLOR_ATTACHMENT12_NV' => '0x8CEC',
  'GL_COLOR_ATTACHMENT13' => '0x8CED',
  'GL_COLOR_ATTACHMENT13_EXT' => '0x8CED',
  'GL_COLOR_ATTACHMENT13_NV' => '0x8CED',
  'GL_COLOR_ATTACHMENT14' => '0x8CEE',
  'GL_COLOR_ATTACHMENT14_EXT' => '0x8CEE',
  'GL_COLOR_ATTACHMENT14_NV' => '0x8CEE',
  'GL_COLOR_ATTACHMENT15' => '0x8CEF',
  'GL_COLOR_ATTACHMENT15_EXT' => '0x8CEF',
  'GL_COLOR_ATTACHMENT15_NV' => '0x8CEF',
  'GL_COLOR_ATTACHMENT16' => '0x8CF0',
  'GL_COLOR_ATTACHMENT17' => '0x8CF1',
  'GL_COLOR_ATTACHMENT18' => '0x8CF2',
  'GL_COLOR_ATTACHMENT19' => '0x8CF3',
  'GL_COLOR_ATTACHMENT1_EXT' => '0x8CE1',
  'GL_COLOR_ATTACHMENT1_NV' => '0x8CE1',
  'GL_COLOR_ATTACHMENT2' => '0x8CE2',
  'GL_COLOR_ATTACHMENT20' => '0x8CF4',
  'GL_COLOR_ATTACHMENT21' => '0x8CF5',
  'GL_COLOR_ATTACHMENT22' => '0x8CF6',
  'GL_COLOR_ATTACHMENT23' => '0x8CF7',
  'GL_COLOR_ATTACHMENT24' => '0x8CF8',
  'GL_COLOR_ATTACHMENT25' => '0x8CF9',
  'GL_COLOR_ATTACHMENT26' => '0x8CFA',
  'GL_COLOR_ATTACHMENT27' => '0x8CFB',
  'GL_COLOR_ATTACHMENT28' => '0x8CFC',
  'GL_COLOR_ATTACHMENT29' => '0x8CFD',
  'GL_COLOR_ATTACHMENT2_EXT' => '0x8CE2',
  'GL_COLOR_ATTACHMENT2_NV' => '0x8CE2',
  'GL_COLOR_ATTACHMENT3' => '0x8CE3',
  'GL_COLOR_ATTACHMENT30' => '0x8CFE',
  'GL_COLOR_ATTACHMENT31' => '0x8CFF',
  'GL_COLOR_ATTACHMENT3_EXT' => '0x8CE3',
  'GL_COLOR_ATTACHMENT3_NV' => '0x8CE3',
  'GL_COLOR_ATTACHMENT4' => '0x8CE4',
  'GL_COLOR_ATTACHMENT4_EXT' => '0x8CE4',
  'GL_COLOR_ATTACHMENT4_NV' => '0x8CE4',
  'GL_COLOR_ATTACHMENT5' => '0x8CE5',
  'GL_COLOR_ATTACHMENT5_EXT' => '0x8CE5',
  'GL_COLOR_ATTACHMENT5_NV' => '0x8CE5',
  'GL_COLOR_ATTACHMENT6' => '0x8CE6',
  'GL_COLOR_ATTACHMENT6_EXT' => '0x8CE6',
  'GL_COLOR_ATTACHMENT6_NV' => '0x8CE6',
  'GL_COLOR_ATTACHMENT7' => '0x8CE7',
  'GL_COLOR_ATTACHMENT7_EXT' => '0x8CE7',
  'GL_COLOR_ATTACHMENT7_NV' => '0x8CE7',
  'GL_COLOR_ATTACHMENT8' => '0x8CE8',
  'GL_COLOR_ATTACHMENT8_EXT' => '0x8CE8',
  'GL_COLOR_ATTACHMENT8_NV' => '0x8CE8',
  'GL_COLOR_ATTACHMENT9' => '0x8CE9',
  'GL_COLOR_ATTACHMENT9_EXT' => '0x8CE9',
  'GL_COLOR_ATTACHMENT9_NV' => '0x8CE9',
  'GL_COLOR_BUFFER_BIT' => '0x00004000',
  'GL_COLOR_BUFFER_BIT0_QCOM' => '0x00000001',
  'GL_COLOR_BUFFER_BIT1_QCOM' => '0x00000002',
  'GL_COLOR_BUFFER_BIT2_QCOM' => '0x00000004',
  'GL_COLOR_BUFFER_BIT3_QCOM' => '0x00000008',
  'GL_COLOR_BUFFER_BIT4_QCOM' => '0x00000010',
  'GL_COLOR_BUFFER_BIT5_QCOM' => '0x00000020',
  'GL_COLOR_BUFFER_BIT6_QCOM' => '0x00000040',
  'GL_COLOR_BUFFER_BIT7_QCOM' => '0x00000080',
  'GL_COLOR_CLEAR_VALUE' => '0x0C22',
  'GL_COLOR_COMPONENTS' => '0x8283',
  'GL_COLOR_ENCODING' => '0x8296',
  'GL_COLOR_EXT' => '0x1800',
  'GL_COLOR_INDEX' => '0x1900',
  'GL_COLOR_INDEXES' => '0x1603',
  'GL_COLOR_LOGIC_OP' => '0x0BF2',
  'GL_COLOR_MATERIAL' => '0x0B57',
  'GL_COLOR_MATERIAL_FACE' => '0x0B55',
  'GL_COLOR_MATERIAL_PARAMETER' => '0x0B56',
  'GL_COLOR_MATRIX_SGI' => '0x80B1',
  'GL_COLOR_MATRIX_STACK_DEPTH_SGI' => '0x80B2',
  'GL_COLOR_RENDERABLE' => '0x8286',
  'GL_COLOR_TABLE' => '0x80D0',
  'GL_COLOR_TABLE_ALPHA_SIZE' => '0x80DD',
  'GL_COLOR_TABLE_ALPHA_SIZE_SGI' => '0x80DD',
  'GL_COLOR_TABLE_BIAS' => '0x80D7',
  'GL_COLOR_TABLE_BIAS_SGI' => '0x80D7',
  'GL_COLOR_TABLE_BLUE_SIZE' => '0x80DC',
  'GL_COLOR_TABLE_BLUE_SIZE_SGI' => '0x80DC',
  'GL_COLOR_TABLE_FORMAT' => '0x80D8',
  'GL_COLOR_TABLE_FORMAT_SGI' => '0x80D8',
  'GL_COLOR_TABLE_GREEN_SIZE' => '0x80DB',
  'GL_COLOR_TABLE_GREEN_SIZE_SGI' => '0x80DB',
  'GL_COLOR_TABLE_INTENSITY_SIZE' => '0x80DF',
  'GL_COLOR_TABLE_INTENSITY_SIZE_SGI' => '0x80DF',
  'GL_COLOR_TABLE_LUMINANCE_SIZE' => '0x80DE',
  'GL_COLOR_TABLE_LUMINANCE_SIZE_SGI' => '0x80DE',
  'GL_COLOR_TABLE_RED_SIZE' => '0x80DA',
  'GL_COLOR_TABLE_RED_SIZE_SGI' => '0x80DA',
  'GL_COLOR_TABLE_SCALE' => '0x80D6',
  'GL_COLOR_TABLE_SCALE_SGI' => '0x80D6',
  'GL_COLOR_TABLE_SGI' => '0x80D0',
  'GL_COLOR_TABLE_WIDTH' => '0x80D9',
  'GL_COLOR_TABLE_WIDTH_SGI' => '0x80D9',
  'GL_COLOR_WRITEMASK' => '0x0C23',
  'GL_COMBINE' => '0x8570',
  'GL_COMBINER0_NV' => '0x8550',
  'GL_COMBINER1_NV' => '0x8551',
  'GL_COMBINER2_NV' => '0x8552',
  'GL_COMBINER3_NV' => '0x8553',
  'GL_COMBINER4_NV' => '0x8554',
  'GL_COMBINER5_NV' => '0x8555',
  'GL_COMBINER6_NV' => '0x8556',
  'GL_COMBINER7_NV' => '0x8557',
  'GL_COMBINER_COMPONENT_USAGE_NV' => '0x8544',
  'GL_COMBINER_INPUT_NV' => '0x8542',
  'GL_COMBINER_MAPPING_NV' => '0x8543',
  'GL_COMBINE_ALPHA' => '0x8572',
  'GL_COMBINE_ALPHA_ARB' => '0x8572',
  'GL_COMBINE_ALPHA_EXT' => '0x8572',
  'GL_COMBINE_ARB' => '0x8570',
  'GL_COMBINE_EXT' => '0x8570',
  'GL_COMBINE_RGB' => '0x8571',
  'GL_COMBINE_RGB_ARB' => '0x8571',
  'GL_COMBINE_RGB_EXT' => '0x8571',
  'GL_COMMAND_BARRIER_BIT' => '0x00000040',
  'GL_COMMAND_BARRIER_BIT_EXT' => '0x00000040',
  'GL_COMPARE_REF_TO_TEXTURE' => '0x884E',
  'GL_COMPARE_R_TO_TEXTURE' => '0x884E',
  'GL_COMPATIBLE_SUBROUTINES' => '0x8E4B',
  'GL_COMPILE' => '0x1300',
  'GL_COMPILE_AND_EXECUTE' => '0x1301',
  'GL_COMPILE_STATUS' => '0x8B81',
  'GL_COMPRESSED_R11_EAC' => '0x9270',
  'GL_COMPRESSED_RED' => '0x8225',
  'GL_COMPRESSED_RED_GREEN_RGTC2_EXT' => '0x8DBD',
  'GL_COMPRESSED_RED_RGTC1' => '0x8DBB',
  'GL_COMPRESSED_RED_RGTC1_EXT' => '0x8DBB',
  'GL_COMPRESSED_RG' => '0x8226',
  'GL_COMPRESSED_RG11_EAC' => '0x9272',
  'GL_COMPRESSED_RGB' => '0x84ED',
  'GL_COMPRESSED_RGB8_ETC2' => '0x9274',
  'GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2' => '0x9276',
  'GL_COMPRESSED_RGBA' => '0x84EE',
  'GL_COMPRESSED_RGBA8_ETC2_EAC' => '0x9278',
  'GL_COMPRESSED_RGBA_ASTC_10x10' => '0x93BB',
  'GL_COMPRESSED_RGBA_ASTC_10x10_KHR' => '0x93BB',
  'GL_COMPRESSED_RGBA_ASTC_10x5' => '0x93B8',
  'GL_COMPRESSED_RGBA_ASTC_10x5_KHR' => '0x93B8',
  'GL_COMPRESSED_RGBA_ASTC_10x6' => '0x93B9',
  'GL_COMPRESSED_RGBA_ASTC_10x6_KHR' => '0x93B9',
  'GL_COMPRESSED_RGBA_ASTC_10x8' => '0x93BA',
  'GL_COMPRESSED_RGBA_ASTC_10x8_KHR' => '0x93BA',
  'GL_COMPRESSED_RGBA_ASTC_12x10' => '0x93BC',
  'GL_COMPRESSED_RGBA_ASTC_12x10_KHR' => '0x93BC',
  'GL_COMPRESSED_RGBA_ASTC_12x12' => '0x93BD',
  'GL_COMPRESSED_RGBA_ASTC_12x12_KHR' => '0x93BD',
  'GL_COMPRESSED_RGBA_ASTC_4x4' => '0x93B0',
  'GL_COMPRESSED_RGBA_ASTC_4x4_KHR' => '0x93B0',
  'GL_COMPRESSED_RGBA_ASTC_5x4' => '0x93B1',
  'GL_COMPRESSED_RGBA_ASTC_5x4_KHR' => '0x93B1',
  'GL_COMPRESSED_RGBA_ASTC_5x5' => '0x93B2',
  'GL_COMPRESSED_RGBA_ASTC_5x5_KHR' => '0x93B2',
  'GL_COMPRESSED_RGBA_ASTC_6x5' => '0x93B3',
  'GL_COMPRESSED_RGBA_ASTC_6x5_KHR' => '0x93B3',
  'GL_COMPRESSED_RGBA_ASTC_6x6' => '0x93B4',
  'GL_COMPRESSED_RGBA_ASTC_6x6_KHR' => '0x93B4',
  'GL_COMPRESSED_RGBA_ASTC_8x5' => '0x93B5',
  'GL_COMPRESSED_RGBA_ASTC_8x5_KHR' => '0x93B5',
  'GL_COMPRESSED_RGBA_ASTC_8x6' => '0x93B6',
  'GL_COMPRESSED_RGBA_ASTC_8x6_KHR' => '0x93B6',
  'GL_COMPRESSED_RGBA_ASTC_8x8' => '0x93B7',
  'GL_COMPRESSED_RGBA_ASTC_8x8_KHR' => '0x93B7',
  'GL_COMPRESSED_RGBA_BPTC_UNORM' => '0x8E8C',
  'GL_COMPRESSED_RGBA_BPTC_UNORM_ARB' => '0x8E8C',
  'GL_COMPRESSED_RGBA_BPTC_UNORM_EXT' => '0x8E8C',
  'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT' => '0x83F1',
  'GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE' => '0x83F2',
  'GL_COMPRESSED_RGBA_S3TC_DXT3_EXT' => '0x83F2',
  'GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE' => '0x83F3',
  'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT' => '0x83F3',
  'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT' => '0x8E8E',
  'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB' => '0x8E8E',
  'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT' => '0x8E8E',
  'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT' => '0x8E8F',
  'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB' => '0x8E8F',
  'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT' => '0x8E8F',
  'GL_COMPRESSED_RGB_S3TC_DXT1_EXT' => '0x83F0',
  'GL_COMPRESSED_RG_RGTC2' => '0x8DBD',
  'GL_COMPRESSED_SIGNED_R11_EAC' => '0x9271',
  'GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT' => '0x8DBE',
  'GL_COMPRESSED_SIGNED_RED_RGTC1' => '0x8DBC',
  'GL_COMPRESSED_SIGNED_RED_RGTC1_EXT' => '0x8DBC',
  'GL_COMPRESSED_SIGNED_RG11_EAC' => '0x9273',
  'GL_COMPRESSED_SIGNED_RG_RGTC2' => '0x8DBE',
  'GL_COMPRESSED_SRGB' => '0x8C48',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10' => '0x93DB',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR' => '0x93DB',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5' => '0x93D8',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR' => '0x93D8',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6' => '0x93D9',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR' => '0x93D9',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8' => '0x93DA',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR' => '0x93DA',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10' => '0x93DC',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR' => '0x93DC',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12' => '0x93DD',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR' => '0x93DD',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4' => '0x93D0',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR' => '0x93D0',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4' => '0x93D1',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR' => '0x93D1',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5' => '0x93D2',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR' => '0x93D2',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5' => '0x93D3',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR' => '0x93D3',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6' => '0x93D4',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR' => '0x93D4',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5' => '0x93D5',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR' => '0x93D5',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6' => '0x93D6',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR' => '0x93D6',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8' => '0x93D7',
  'GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR' => '0x93D7',
  'GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC' => '0x9279',
  'GL_COMPRESSED_SRGB8_ETC2' => '0x9275',
  'GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2' => '0x9277',
  'GL_COMPRESSED_SRGB_ALPHA' => '0x8C49',
  'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM' => '0x8E8D',
  'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB' => '0x8E8D',
  'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT' => '0x8E8D',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT' => '0x8C4D',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV' => '0x8C4D',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT' => '0x8C4E',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV' => '0x8C4E',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT' => '0x8C4F',
  'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV' => '0x8C4F',
  'GL_COMPRESSED_SRGB_S3TC_DXT1_EXT' => '0x8C4C',
  'GL_COMPRESSED_SRGB_S3TC_DXT1_NV' => '0x8C4C',
  'GL_COMPRESSED_TEXTURE_FORMATS' => '0x86A3',
  'GL_COMPUTE_PROGRAM_NV' => '0x90FB',
  'GL_COMPUTE_SHADER' => '0x91B9',
  'GL_COMPUTE_SHADER_BIT' => '0x00000020',
  'GL_COMPUTE_SUBROUTINE' => '0x92ED',
  'GL_COMPUTE_SUBROUTINE_UNIFORM' => '0x92F3',
  'GL_COMPUTE_TEXTURE' => '0x82A0',
  'GL_COMPUTE_WORK_GROUP_SIZE' => '0x8267',
  'GL_COMP_BIT_ATI' => '0x00000002',
  'GL_CONDITION_SATISFIED' => '0x911C',
  'GL_CONIC_CURVE_TO_NV' => '0x1A',
  'GL_CONSERVE_MEMORY_HINT_PGI' => '0x1A1FD',
  'GL_CONSTANT' => '0x8576',
  'GL_CONSTANT_ALPHA' => '0x8003',
  'GL_CONSTANT_ARB' => '0x8576',
  'GL_CONSTANT_ATTENUATION' => '0x1207',
  'GL_CONSTANT_COLOR' => '0x8001',
  'GL_CONSTANT_EXT' => '0x8576',
  'GL_CONSTANT_NV' => '0x8576',
  'GL_CONTEXT_COMPATIBILITY_PROFILE_BIT' => '0x00000002',
  'GL_CONTEXT_CORE_PROFILE_BIT' => '0x00000001',
  'GL_CONTEXT_FLAGS' => '0x821E',
  'GL_CONTEXT_FLAG_DEBUG_BIT' => '0x00000002',
  'GL_CONTEXT_FLAG_DEBUG_BIT_KHR' => '0x00000002',
  'GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT' => '0x00000001',
  'GL_CONTEXT_FLAG_NO_ERROR_BIT' => '0x00000008',
  'GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR' => '0x00000008',
  'GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT' => '0x00000010',
  'GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT' => '0x00000004',
  'GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB' => '0x00000004',
  'GL_CONTEXT_PROFILE_MASK' => '0x9126',
  'GL_CONVEX_HULL_NV' => '0x908B',
  'GL_CONVOLUTION_1D' => '0x8010',
  'GL_CONVOLUTION_1D_EXT' => '0x8010',
  'GL_CONVOLUTION_2D' => '0x8011',
  'GL_CONVOLUTION_2D_EXT' => '0x8011',
  'GL_CONVOLUTION_BORDER_COLOR' => '0x8154',
  'GL_CONVOLUTION_BORDER_MODE' => '0x8013',
  'GL_CONVOLUTION_BORDER_MODE_EXT' => '0x8013',
  'GL_CONVOLUTION_FILTER_BIAS' => '0x8015',
  'GL_CONVOLUTION_FILTER_BIAS_EXT' => '0x8015',
  'GL_CONVOLUTION_FILTER_SCALE' => '0x8014',
  'GL_CONVOLUTION_FILTER_SCALE_EXT' => '0x8014',
  'GL_CONVOLUTION_FORMAT' => '0x8017',
  'GL_CONVOLUTION_FORMAT_EXT' => '0x8017',
  'GL_CONVOLUTION_HEIGHT' => '0x8019',
  'GL_CONVOLUTION_HEIGHT_EXT' => '0x8019',
  'GL_CONVOLUTION_HINT_SGIX' => '0x8316',
  'GL_CONVOLUTION_WIDTH' => '0x8018',
  'GL_CONVOLUTION_WIDTH_EXT' => '0x8018',
  'GL_CON_0_ATI' => '0x8941',
  'GL_CON_10_ATI' => '0x894B',
  'GL_CON_11_ATI' => '0x894C',
  'GL_CON_12_ATI' => '0x894D',
  'GL_CON_13_ATI' => '0x894E',
  'GL_CON_14_ATI' => '0x894F',
  'GL_CON_15_ATI' => '0x8950',
  'GL_CON_16_ATI' => '0x8951',
  'GL_CON_17_ATI' => '0x8952',
  'GL_CON_18_ATI' => '0x8953',
  'GL_CON_19_ATI' => '0x8954',
  'GL_CON_1_ATI' => '0x8942',
  'GL_CON_20_ATI' => '0x8955',
  'GL_CON_21_ATI' => '0x8956',
  'GL_CON_22_ATI' => '0x8957',
  'GL_CON_23_ATI' => '0x8958',
  'GL_CON_24_ATI' => '0x8959',
  'GL_CON_25_ATI' => '0x895A',
  'GL_CON_26_ATI' => '0x895B',
  'GL_CON_27_ATI' => '0x895C',
  'GL_CON_28_ATI' => '0x895D',
  'GL_CON_29_ATI' => '0x895E',
  'GL_CON_2_ATI' => '0x8943',
  'GL_CON_30_ATI' => '0x895F',
  'GL_CON_31_ATI' => '0x8960',
  'GL_CON_3_ATI' => '0x8944',
  'GL_CON_4_ATI' => '0x8945',
  'GL_CON_5_ATI' => '0x8946',
  'GL_CON_6_ATI' => '0x8947',
  'GL_CON_7_ATI' => '0x8948',
  'GL_CON_8_ATI' => '0x8949',
  'GL_CON_9_ATI' => '0x894A',
  'GL_COORD_REPLACE' => '0x8862',
  'GL_COPY' => '0x1503',
  'GL_COPY_INVERTED' => '0x150C',
  'GL_COPY_PIXEL_TOKEN' => '0x0706',
  'GL_COPY_READ_BUFFER' => '0x8F36',
  'GL_COPY_WRITE_BUFFER' => '0x8F37',
  'GL_COUNT_DOWN_NV' => '0x9089',
  'GL_COUNT_UP_NV' => '0x9088',
  'GL_COVERAGE_BUFFER_BIT_NV' => '0x00008000',
  'GL_CUBIC_CURVE_TO_NV' => '0x0C',
  'GL_CULL_FACE' => '0x0B44',
  'GL_CULL_FACE_MODE' => '0x0B45',
  'GL_CULL_VERTEX_EYE_POSITION_EXT' => '0x81AB',
  'GL_CULL_VERTEX_OBJECT_POSITION_EXT' => '0x81AC',
  'GL_CURRENT_BIT' => '0x00000001',
  'GL_CURRENT_COLOR' => '0x0B00',
  'GL_CURRENT_INDEX' => '0x0B01',
  'GL_CURRENT_NORMAL' => '0x0B02',
  'GL_CURRENT_PROGRAM' => '0x8B8D',
  'GL_CURRENT_QUERY' => '0x8865',
  'GL_CURRENT_RASTER_COLOR' => '0x0B04',
  'GL_CURRENT_RASTER_DISTANCE' => '0x0B09',
  'GL_CURRENT_RASTER_INDEX' => '0x0B05',
  'GL_CURRENT_RASTER_POSITION' => '0x0B07',
  'GL_CURRENT_RASTER_POSITION_VALID' => '0x0B08',
  'GL_CURRENT_RASTER_TEXTURE_COORDS' => '0x0B06',
  'GL_CURRENT_TEXTURE_COORDS' => '0x0B03',
  'GL_CURRENT_VERTEX_ATTRIB' => '0x8626',
  'GL_CURRENT_VERTEX_EXT' => '0x87E2',
  'GL_CW' => '0x0900',
  'GL_D3D12_FENCE_VALUE_EXT' => '0x9595',
  'GL_DEBUG_CALLBACK_FUNCTION' => '0x8244',
  'GL_DEBUG_CALLBACK_USER_PARAM' => '0x8245',
  'GL_DEBUG_GROUP_STACK_DEPTH' => '0x826D',
  'GL_DEBUG_OUTPUT' => '0x92E0',
  'GL_DEBUG_OUTPUT_SYNCHRONOUS' => '0x8242',
  'GL_DEBUG_SEVERITY_HIGH' => '0x9146',
  'GL_DEBUG_SEVERITY_LOW' => '0x9148',
  'GL_DEBUG_SEVERITY_MEDIUM' => '0x9147',
  'GL_DEBUG_SEVERITY_NOTIFICATION' => '0x826B',
  'GL_DEBUG_SOURCE_API' => '0x8246',
  'GL_DEBUG_SOURCE_APPLICATION' => '0x824A',
  'GL_DEBUG_SOURCE_OTHER' => '0x824B',
  'GL_DEBUG_SOURCE_SHADER_COMPILER' => '0x8248',
  'GL_DEBUG_SOURCE_THIRD_PARTY' => '0x8249',
  'GL_DEBUG_SOURCE_WINDOW_SYSTEM' => '0x8247',
  'GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR' => '0x824D',
  'GL_DEBUG_TYPE_ERROR' => '0x824C',
  'GL_DEBUG_TYPE_MARKER' => '0x8268',
  'GL_DEBUG_TYPE_OTHER' => '0x8251',
  'GL_DEBUG_TYPE_PERFORMANCE' => '0x8250',
  'GL_DEBUG_TYPE_POP_GROUP' => '0x826A',
  'GL_DEBUG_TYPE_PORTABILITY' => '0x824F',
  'GL_DEBUG_TYPE_PUSH_GROUP' => '0x8269',
  'GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR' => '0x824E',
  'GL_DECAL' => '0x2101',
  'GL_DECR' => '0x1E03',
  'GL_DECR_WRAP' => '0x8508',
  'GL_DEDICATED_MEMORY_OBJECT_EXT' => '0x9581',
  'GL_DEFORMATIONS_MASK_SGIX' => '0x8196',
  'GL_DELETE_STATUS' => '0x8B80',
  'GL_DEPTH' => '0x1801',
  'GL_DEPTH24_STENCIL8' => '0x88F0',
  'GL_DEPTH24_STENCIL8_EXT' => '0x88F0',
  'GL_DEPTH32F_STENCIL8' => '0x8CAD',
  'GL_DEPTH32F_STENCIL8_NV' => '0x8DAC',
  'GL_DEPTH_ATTACHMENT' => '0x8D00',
  'GL_DEPTH_ATTACHMENT_EXT' => '0x8D00',
  'GL_DEPTH_BIAS' => '0x0D1F',
  'GL_DEPTH_BITS' => '0x0D56',
  'GL_DEPTH_BUFFER_BIT' => '0x00000100',
  'GL_DEPTH_BUFFER_BIT0_QCOM' => '0x00000100',
  'GL_DEPTH_BUFFER_BIT1_QCOM' => '0x00000200',
  'GL_DEPTH_BUFFER_BIT2_QCOM' => '0x00000400',
  'GL_DEPTH_BUFFER_BIT3_QCOM' => '0x00000800',
  'GL_DEPTH_BUFFER_BIT4_QCOM' => '0x00001000',
  'GL_DEPTH_BUFFER_BIT5_QCOM' => '0x00002000',
  'GL_DEPTH_BUFFER_BIT6_QCOM' => '0x00004000',
  'GL_DEPTH_BUFFER_BIT7_QCOM' => '0x00008000',
  'GL_DEPTH_CLAMP' => '0x864F',
  'GL_DEPTH_CLEAR_VALUE' => '0x0B73',
  'GL_DEPTH_COMPONENT' => '0x1902',
  'GL_DEPTH_COMPONENT16' => '0x81A5',
  'GL_DEPTH_COMPONENT16_ARB' => '0x81A5',
  'GL_DEPTH_COMPONENT16_SGIX' => '0x81A5',
  'GL_DEPTH_COMPONENT24' => '0x81A6',
  'GL_DEPTH_COMPONENT24_ARB' => '0x81A6',
  'GL_DEPTH_COMPONENT24_SGIX' => '0x81A6',
  'GL_DEPTH_COMPONENT32' => '0x81A7',
  'GL_DEPTH_COMPONENT32F' => '0x8CAC',
  'GL_DEPTH_COMPONENT32F_NV' => '0x8DAB',
  'GL_DEPTH_COMPONENT32_ARB' => '0x81A7',
  'GL_DEPTH_COMPONENT32_SGIX' => '0x81A7',
  'GL_DEPTH_EXT' => '0x1801',
  'GL_DEPTH_FUNC' => '0x0B74',
  'GL_DEPTH_RANGE' => '0x0B70',
  'GL_DEPTH_RENDERABLE' => '0x8287',
  'GL_DEPTH_SCALE' => '0x0D1E',
  'GL_DEPTH_STENCIL' => '0x84F9',
  'GL_DEPTH_STENCIL_ATTACHMENT' => '0x821A',
  'GL_DEPTH_STENCIL_EXT' => '0x84F9',
  'GL_DEPTH_STENCIL_MESA' => '0x8750',
  'GL_DEPTH_STENCIL_NV' => '0x84F9',
  'GL_DEPTH_STENCIL_TEXTURE_MODE' => '0x90EA',
  'GL_DEPTH_TEST' => '0x0B71',
  'GL_DEPTH_WRITEMASK' => '0x0B72',
  'GL_DETAIL_TEXTURE_2D_BINDING_SGIS' => '0x8096',
  'GL_DETAIL_TEXTURE_2D_SGIS' => '0x8095',
  'GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS' => '0x809C',
  'GL_DETAIL_TEXTURE_LEVEL_SGIS' => '0x809A',
  'GL_DETAIL_TEXTURE_MODE_SGIS' => '0x809B',
  'GL_DEVICE_LUID_EXT' => '0x9599',
  'GL_DEVICE_NODE_MASK_EXT' => '0x959A',
  'GL_DEVICE_UUID_EXT' => '0x9597',
  'GL_DIFFUSE' => '0x1201',
  'GL_DISCARD_ATI' => '0x8763',
  'GL_DISCARD_NV' => '0x8530',
  'GL_DISPATCH_INDIRECT_BUFFER' => '0x90EE',
  'GL_DISPATCH_INDIRECT_BUFFER_BINDING' => '0x90EF',
  'GL_DISTANCE_ATTENUATION_EXT' => '0x8129',
  'GL_DISTANCE_ATTENUATION_SGIS' => '0x8129',
  'GL_DITHER' => '0x0BD0',
  'GL_DOMAIN' => '0x0A02',
  'GL_DONT_CARE' => '0x1100',
  'GL_DOT2_ADD_ATI' => '0x896C',
  'GL_DOT3_ATI' => '0x8966',
  'GL_DOT4_ATI' => '0x8967',
  'GL_DOUBLE' => '0x140A',
  'GL_DOUBLEBUFFER' => '0x0C32',
  'GL_DOUBLE_EXT' => '0x140A',
  'GL_DOUBLE_MAT2' => '0x8F46',
  'GL_DOUBLE_MAT2x3' => '0x8F49',
  'GL_DOUBLE_MAT2x4' => '0x8F4A',
  'GL_DOUBLE_MAT3' => '0x8F47',
  'GL_DOUBLE_MAT3x2' => '0x8F4B',
  'GL_DOUBLE_MAT3x4' => '0x8F4C',
  'GL_DOUBLE_MAT4' => '0x8F48',
  'GL_DOUBLE_MAT4x2' => '0x8F4D',
  'GL_DOUBLE_MAT4x3' => '0x8F4E',
  'GL_DOUBLE_VEC2' => '0x8FFC',
  'GL_DOUBLE_VEC3' => '0x8FFD',
  'GL_DOUBLE_VEC4' => '0x8FFE',
  'GL_DRAW_ARRAYS_COMMAND_NV' => '0x0003',
  'GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV' => '0x0007',
  'GL_DRAW_ARRAYS_STRIP_COMMAND_NV' => '0x0005',
  'GL_DRAW_BUFFER' => '0x0C01',
  'GL_DRAW_BUFFER_EXT' => '0x0C01',
  'GL_DRAW_ELEMENTS_COMMAND_NV' => '0x0002',
  'GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV' => '0x0006',
  'GL_DRAW_ELEMENTS_STRIP_COMMAND_NV' => '0x0004',
  'GL_DRAW_FRAMEBUFFER' => '0x8CA9',
  'GL_DRAW_FRAMEBUFFER_BINDING' => '0x8CA6',
  'GL_DRAW_INDIRECT_BUFFER' => '0x8F3F',
  'GL_DRAW_PIXELS_APPLE' => '0x8A0A',
  'GL_DRAW_PIXEL_TOKEN' => '0x0705',
  'GL_DRIVER_UUID_EXT' => '0x9598',
  'GL_DST_ALPHA' => '0x0304',
  'GL_DST_COLOR' => '0x0306',
  'GL_DUAL_ALPHA12_SGIS' => '0x8112',
  'GL_DUAL_ALPHA16_SGIS' => '0x8113',
  'GL_DUAL_ALPHA4_SGIS' => '0x8110',
  'GL_DUAL_ALPHA8_SGIS' => '0x8111',
  'GL_DUAL_INTENSITY12_SGIS' => '0x811A',
  'GL_DUAL_INTENSITY16_SGIS' => '0x811B',
  'GL_DUAL_INTENSITY4_SGIS' => '0x8118',
  'GL_DUAL_INTENSITY8_SGIS' => '0x8119',
  'GL_DUAL_LUMINANCE12_SGIS' => '0x8116',
  'GL_DUAL_LUMINANCE16_SGIS' => '0x8117',
  'GL_DUAL_LUMINANCE4_SGIS' => '0x8114',
  'GL_DUAL_LUMINANCE8_SGIS' => '0x8115',
  'GL_DUAL_LUMINANCE_ALPHA4_SGIS' => '0x811C',
  'GL_DUAL_LUMINANCE_ALPHA8_SGIS' => '0x811D',
  'GL_DUAL_TEXTURE_SELECT_SGIS' => '0x8124',
  'GL_DUP_FIRST_CUBIC_CURVE_TO_NV' => '0xF2',
  'GL_DUP_LAST_CUBIC_CURVE_TO_NV' => '0xF4',
  'GL_DYNAMIC_ATI' => '0x8761',
  'GL_DYNAMIC_COPY' => '0x88EA',
  'GL_DYNAMIC_DRAW' => '0x88E8',
  'GL_DYNAMIC_READ' => '0x88E9',
  'GL_DYNAMIC_STORAGE_BIT' => '0x0100',
  'GL_DYNAMIC_STORAGE_BIT_EXT' => '0x0100',
  'GL_EDGEFLAG_BIT_PGI' => '0x00040000',
  'GL_EDGE_FLAG' => '0x0B43',
  'GL_EDGE_FLAG_ARRAY' => '0x8079',
  'GL_EDGE_FLAG_ARRAY_COUNT_EXT' => '0x808D',
  'GL_EDGE_FLAG_ARRAY_POINTER' => '0x8093',
  'GL_EDGE_FLAG_ARRAY_POINTER_EXT' => '0x8093',
  'GL_EDGE_FLAG_ARRAY_STRIDE' => '0x808C',
  'GL_EIGHTH_BIT_ATI' => '0x00000020',
  'GL_ELEMENT_ADDRESS_COMMAND_NV' => '0x0008',
  'GL_ELEMENT_ARRAY_BARRIER_BIT' => '0x00000002',
  'GL_ELEMENT_ARRAY_BARRIER_BIT_EXT' => '0x00000002',
  'GL_ELEMENT_ARRAY_BUFFER' => '0x8893',
  'GL_ELEMENT_ARRAY_BUFFER_BINDING' => '0x8895',
  'GL_EMISSION' => '0x1600',
  'GL_ENABLE_BIT' => '0x00002000',
  'GL_EQUAL' => '0x0202',
  'GL_EQUIV' => '0x1509',
  'GL_EVAL_2D_NV' => '0x86C0',
  'GL_EVAL_BIT' => '0x00010000',
  'GL_EVAL_TRIANGULAR_2D_NV' => '0x86C1',
  'GL_EXP' => '0x0800',
  'GL_EXP2' => '0x0801',
  'GL_EXPAND_NEGATE_NV' => '0x8539',
  'GL_EXPAND_NORMAL_NV' => '0x8538',
  'GL_EXTENSIONS' => '0x1F03',
  'GL_EXTERNAL_STORAGE_BIT_NVX' => '0x2000',
  'GL_EYE_DISTANCE_TO_LINE_SGIS' => '0x81F2',
  'GL_EYE_DISTANCE_TO_POINT_SGIS' => '0x81F0',
  'GL_EYE_LINEAR' => '0x2400',
  'GL_EYE_LINE_SGIS' => '0x81F6',
  'GL_EYE_PLANE' => '0x2502',
  'GL_EYE_POINT_SGIS' => '0x81F4',
  'GL_FALSE' => '0',
  'GL_FASTEST' => '0x1101',
  'GL_FEEDBACK' => '0x1C01',
  'GL_FEEDBACK_BUFFER_POINTER' => '0x0DF0',
  'GL_FEEDBACK_BUFFER_SIZE' => '0x0DF1',
  'GL_FEEDBACK_BUFFER_TYPE' => '0x0DF2',
  'GL_FENCE_APPLE' => '0x8A0B',
  'GL_FENCE_CONDITION_NV' => '0x84F4',
  'GL_FENCE_STATUS_NV' => '0x84F3',
  'GL_FETCH_PER_SAMPLE_ARM' => '0x8F65',
  'GL_FILE_NAME_NV' => '0x9074',
  'GL_FILL' => '0x1B02',
  'GL_FILL_NV' => '0x1B02',
  'GL_FILTER' => '0x829A',
  'GL_FILTER4_SGIS' => '0x8146',
  'GL_FIRST_TO_REST_NV' => '0x90AF',
  'GL_FIRST_VERTEX_CONVENTION' => '0x8E4D',
  'GL_FIXED' => '0x140C',
  'GL_FIXED_ONLY' => '0x891D',
  'GL_FIXED_ONLY_ARB' => '0x891D',
  'GL_FLAT' => '0x1D00',
  'GL_FLOAT' => '0x1406',
  'GL_FLOAT_32_UNSIGNED_INT_24_8_REV' => '0x8DAD',
  'GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV' => '0x8DAD',
  'GL_FLOAT_MAT2' => '0x8B5A',
  'GL_FLOAT_MAT2_ARB' => '0x8B5A',
  'GL_FLOAT_MAT2x3' => '0x8B65',
  'GL_FLOAT_MAT2x3_NV' => '0x8B65',
  'GL_FLOAT_MAT2x4' => '0x8B66',
  'GL_FLOAT_MAT2x4_NV' => '0x8B66',
  'GL_FLOAT_MAT3' => '0x8B5B',
  'GL_FLOAT_MAT3_ARB' => '0x8B5B',
  'GL_FLOAT_MAT3x2' => '0x8B67',
  'GL_FLOAT_MAT3x2_NV' => '0x8B67',
  'GL_FLOAT_MAT3x4' => '0x8B68',
  'GL_FLOAT_MAT3x4_NV' => '0x8B68',
  'GL_FLOAT_MAT4' => '0x8B5C',
  'GL_FLOAT_MAT4_ARB' => '0x8B5C',
  'GL_FLOAT_MAT4x2' => '0x8B69',
  'GL_FLOAT_MAT4x2_NV' => '0x8B69',
  'GL_FLOAT_MAT4x3' => '0x8B6A',
  'GL_FLOAT_MAT4x3_NV' => '0x8B6A',
  'GL_FLOAT_VEC2' => '0x8B50',
  'GL_FLOAT_VEC2_ARB' => '0x8B50',
  'GL_FLOAT_VEC3' => '0x8B51',
  'GL_FLOAT_VEC3_ARB' => '0x8B51',
  'GL_FLOAT_VEC4' => '0x8B52',
  'GL_FLOAT_VEC4_ARB' => '0x8B52',
  'GL_FOG' => '0x0B60',
  'GL_FOG_BIT' => '0x00000080',
  'GL_FOG_COLOR' => '0x0B66',
  'GL_FOG_COORD' => '0x8451',
  'GL_FOG_COORDINATE' => '0x8451',
  'GL_FOG_COORDINATE_EXT' => '0x8451',
  'GL_FOG_COORD_SRC' => '0x8450',
  'GL_FOG_DENSITY' => '0x0B62',
  'GL_FOG_END' => '0x0B64',
  'GL_FOG_FUNC_POINTS_SGIS' => '0x812B',
  'GL_FOG_FUNC_SGIS' => '0x812A',
  'GL_FOG_HINT' => '0x0C54',
  'GL_FOG_INDEX' => '0x0B61',
  'GL_FOG_MODE' => '0x0B65',
  'GL_FOG_OFFSET_SGIX' => '0x8198',
  'GL_FOG_OFFSET_VALUE_SGIX' => '0x8199',
  'GL_FOG_START' => '0x0B63',
  'GL_FONT_ASCENDER_BIT_NV' => '0x00200000',
  'GL_FONT_DESCENDER_BIT_NV' => '0x00400000',
  'GL_FONT_HAS_KERNING_BIT_NV' => '0x10000000',
  'GL_FONT_HEIGHT_BIT_NV' => '0x00800000',
  'GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV' => '0x02000000',
  'GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV' => '0x01000000',
  'GL_FONT_NUM_GLYPH_INDICES_BIT_NV' => '0x20000000',
  'GL_FONT_UNDERLINE_POSITION_BIT_NV' => '0x04000000',
  'GL_FONT_UNDERLINE_THICKNESS_BIT_NV' => '0x08000000',
  'GL_FONT_UNITS_PER_EM_BIT_NV' => '0x00100000',
  'GL_FONT_X_MAX_BOUNDS_BIT_NV' => '0x00040000',
  'GL_FONT_X_MIN_BOUNDS_BIT_NV' => '0x00010000',
  'GL_FONT_Y_MAX_BOUNDS_BIT_NV' => '0x00080000',
  'GL_FONT_Y_MIN_BOUNDS_BIT_NV' => '0x00020000',
  'GL_FOVEATION_ENABLE_BIT_QCOM' => '0x00000001',
  'GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM' => '0x00000002',
  'GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM' => '0x00000004',
  'GL_FRAGMENT_COLOR_EXT' => '0x834C',
  'GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX' => '0x8402',
  'GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX' => '0x8403',
  'GL_FRAGMENT_COLOR_MATERIAL_SGIX' => '0x8401',
  'GL_FRAGMENT_DEPTH' => '0x8452',
  'GL_FRAGMENT_DEPTH_EXT' => '0x8452',
  'GL_FRAGMENT_LIGHT0_SGIX' => '0x840C',
  'GL_FRAGMENT_LIGHT1_SGIX' => '0x840D',
  'GL_FRAGMENT_LIGHT2_SGIX' => '0x840E',
  'GL_FRAGMENT_LIGHT3_SGIX' => '0x840F',
  'GL_FRAGMENT_LIGHT4_SGIX' => '0x8410',
  'GL_FRAGMENT_LIGHT5_SGIX' => '0x8411',
  'GL_FRAGMENT_LIGHT6_SGIX' => '0x8412',
  'GL_FRAGMENT_LIGHT7_SGIX' => '0x8413',
  'GL_FRAGMENT_LIGHTING_SGIX' => '0x8400',
  'GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX' => '0x840A',
  'GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX' => '0x8408',
  'GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX' => '0x840B',
  'GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX' => '0x8409',
  'GL_FRAGMENT_MATERIAL_EXT' => '0x8349',
  'GL_FRAGMENT_NORMAL_EXT' => '0x834A',
  'GL_FRAGMENT_PROGRAM_ARB' => '0x8804',
  'GL_FRAGMENT_SHADER' => '0x8B30',
  'GL_FRAGMENT_SHADER_ARB' => '0x8B30',
  'GL_FRAGMENT_SHADER_ATI' => '0x8920',
  'GL_FRAGMENT_SHADER_BIT' => '0x00000002',
  'GL_FRAGMENT_SHADER_BIT_EXT' => '0x00000002',
  'GL_FRAGMENT_SHADER_DERIVATIVE_HINT' => '0x8B8B',
  'GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB' => '0x8B8B',
  'GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM' => '0x8F66',
  'GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT' => '0x96DF',
  'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT' => '0x96D2',
  'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT' => '0x96D5',
  'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT' => '0x96D4',
  'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT' => '0x96D6',
  'GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT' => '0x96D3',
  'GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT' => '0x8F6F',
  'GL_FRAGMENT_SHADING_RATE_PRIMITIVE_RATE_WITH_MULTI_VIEWPORT_SUPPORTED_EXT' => '0x9780',
  'GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT' => '0x96DE',
  'GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT' => '0x96DD',
  'GL_FRAGMENT_SUBROUTINE' => '0x92EC',
  'GL_FRAGMENT_SUBROUTINE_UNIFORM' => '0x92F2',
  'GL_FRAGMENT_TEXTURE' => '0x829F',
  'GL_FRAMEBUFFER' => '0x8D40',
  'GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE' => '0x8215',
  'GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE' => '0x8214',
  'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING' => '0x8210',
  'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT' => '0x8210',
  'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE' => '0x8211',
  'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT' => '0x8211',
  'GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE' => '0x8216',
  'GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE' => '0x8213',
  'GL_FRAMEBUFFER_ATTACHMENT_LAYERED' => '0x8DA7',
  'GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB' => '0x8DA7',
  'GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT' => '0x8DA7',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME' => '0x8CD1',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT' => '0x8CD1',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE' => '0x8CD0',
  'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT' => '0x8CD0',
  'GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE' => '0x8212',
  'GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE' => '0x8217',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT' => '0x8CD4',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR' => '0x9632',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE' => '0x8CD3',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT' => '0x8CD3',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER' => '0x8CD4',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT' => '0x8CD4',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL' => '0x8CD2',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT' => '0x8CD2',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR' => '0x9630',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT' => '0x8D6C',
  'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG' => '0x913F',
  'GL_FRAMEBUFFER_BARRIER_BIT' => '0x00000400',
  'GL_FRAMEBUFFER_BARRIER_BIT_EXT' => '0x00000400',
  'GL_FRAMEBUFFER_BLEND' => '0x828B',
  'GL_FRAMEBUFFER_COMPLETE' => '0x8CD5',
  'GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS' => '0x9314',
  'GL_FRAMEBUFFER_DEFAULT_HEIGHT' => '0x9311',
  'GL_FRAMEBUFFER_DEFAULT_LAYERS' => '0x9312',
  'GL_FRAMEBUFFER_DEFAULT_SAMPLES' => '0x9313',
  'GL_FRAMEBUFFER_DEFAULT_WIDTH' => '0x9310',
  'GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM' => '0x96A2',
  'GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT' => '0x8CD6',
  'GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER' => '0x8CDB',
  'GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS' => '0x8DA8',
  'GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT' => '0x8CD7',
  'GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE' => '0x8D56',
  'GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER' => '0x8CDC',
  'GL_FRAMEBUFFER_RENDERABLE' => '0x8289',
  'GL_FRAMEBUFFER_RENDERABLE_LAYERED' => '0x828A',
  'GL_FRAMEBUFFER_SRGB' => '0x8DB9',
  'GL_FRAMEBUFFER_UNDEFINED' => '0x8219',
  'GL_FRAMEBUFFER_UNSUPPORTED' => '0x8CDD',
  'GL_FRAMEZOOM_FACTOR_SGIX' => '0x818C',
  'GL_FRAMEZOOM_SGIX' => '0x818B',
  'GL_FRONT' => '0x0404',
  'GL_FRONT_AND_BACK' => '0x0408',
  'GL_FRONT_FACE' => '0x0B46',
  'GL_FRONT_FACE_COMMAND_NV' => '0x0012',
  'GL_FRONT_LEFT' => '0x0400',
  'GL_FRONT_RIGHT' => '0x0401',
  'GL_FULL_RANGE_EXT' => '0x87E1',
  'GL_FULL_STIPPLE_HINT_PGI' => '0x1A219',
  'GL_FUNC_ADD' => '0x8006',
  'GL_FUNC_ADD_EXT' => '0x8006',
  'GL_FUNC_REVERSE_SUBTRACT' => '0x800B',
  'GL_FUNC_REVERSE_SUBTRACT_EXT' => '0x800B',
  'GL_FUNC_SUBTRACT' => '0x800A',
  'GL_FUNC_SUBTRACT_EXT' => '0x800A',
  'GL_GCCSO_SHADER_BINARY_FJ' => '0x9260',
  'GL_GENERATE_MIPMAP' => '0x8191',
  'GL_GENERATE_MIPMAP_HINT' => '0x8192',
  'GL_GENERATE_MIPMAP_HINT_SGIS' => '0x8192',
  'GL_GENERATE_MIPMAP_SGIS' => '0x8191',
  'GL_GEOMETRY_DEFORMATION_BIT_SGIX' => '0x00000002',
  'GL_GEOMETRY_DEFORMATION_SGIX' => '0x8194',
  'GL_GEOMETRY_INPUT_TYPE' => '0x8917',
  'GL_GEOMETRY_OUTPUT_TYPE' => '0x8918',
  'GL_GEOMETRY_PROGRAM_NV' => '0x8C26',
  'GL_GEOMETRY_SHADER' => '0x8DD9',
  'GL_GEOMETRY_SHADER_BIT' => '0x00000004',
  'GL_GEOMETRY_SHADER_BIT_EXT' => '0x00000004',
  'GL_GEOMETRY_SUBROUTINE' => '0x92EB',
  'GL_GEOMETRY_SUBROUTINE_UNIFORM' => '0x92F1',
  'GL_GEOMETRY_TEXTURE' => '0x829E',
  'GL_GEOMETRY_VERTICES_OUT' => '0x8916',
  'GL_GEQUAL' => '0x0206',
  'GL_GET_TEXTURE_IMAGE_FORMAT' => '0x8291',
  'GL_GET_TEXTURE_IMAGE_TYPE' => '0x8292',
  'GL_GLYPH_HAS_KERNING_BIT_NV' => '0x100',
  'GL_GLYPH_HEIGHT_BIT_NV' => '0x02',
  'GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV' => '0x10',
  'GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV' => '0x04',
  'GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV' => '0x08',
  'GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV' => '0x80',
  'GL_GLYPH_VERTICAL_BEARING_X_BIT_NV' => '0x20',
  'GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV' => '0x40',
  'GL_GLYPH_WIDTH_BIT_NV' => '0x01',
  'GL_GREATER' => '0x0204',
  'GL_GREEN' => '0x1904',
  'GL_GREEN_BIAS' => '0x0D19',
  'GL_GREEN_BITS' => '0x0D53',
  'GL_GREEN_BIT_ATI' => '0x00000002',
  'GL_GREEN_INTEGER' => '0x8D95',
  'GL_GREEN_SCALE' => '0x0D18',
  'GL_GUILTY_CONTEXT_RESET' => '0x8253',
  'GL_HALF_APPLE' => '0x140B',
  'GL_HALF_BIAS_NEGATE_NV' => '0x853B',
  'GL_HALF_BIAS_NORMAL_NV' => '0x853A',
  'GL_HALF_BIT_ATI' => '0x00000008',
  'GL_HALF_FLOAT' => '0x140B',
  'GL_HALF_FLOAT_ARB' => '0x140B',
  'GL_HALF_FLOAT_NV' => '0x140B',
  'GL_HANDLE_TYPE_D3D11_IMAGE_EXT' => '0x958B',
  'GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT' => '0x958C',
  'GL_HANDLE_TYPE_D3D12_FENCE_EXT' => '0x9594',
  'GL_HANDLE_TYPE_D3D12_RESOURCE_EXT' => '0x958A',
  'GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT' => '0x9589',
  'GL_HANDLE_TYPE_OPAQUE_FD_EXT' => '0x9586',
  'GL_HANDLE_TYPE_OPAQUE_WIN32_EXT' => '0x9587',
  'GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT' => '0x9588',
  'GL_HIGH_FLOAT' => '0x8DF2',
  'GL_HIGH_INT' => '0x8DF5',
  'GL_HINT_BIT' => '0x00008000',
  'GL_HISTOGRAM' => '0x8024',
  'GL_HISTOGRAM_ALPHA_SIZE' => '0x802B',
  'GL_HISTOGRAM_ALPHA_SIZE_EXT' => '0x802B',
  'GL_HISTOGRAM_BLUE_SIZE' => '0x802A',
  'GL_HISTOGRAM_BLUE_SIZE_EXT' => '0x802A',
  'GL_HISTOGRAM_EXT' => '0x8024',
  'GL_HISTOGRAM_FORMAT' => '0x8027',
  'GL_HISTOGRAM_FORMAT_EXT' => '0x8027',
  'GL_HISTOGRAM_GREEN_SIZE' => '0x8029',
  'GL_HISTOGRAM_GREEN_SIZE_EXT' => '0x8029',
  'GL_HISTOGRAM_LUMINANCE_SIZE' => '0x802C',
  'GL_HISTOGRAM_LUMINANCE_SIZE_EXT' => '0x802C',
  'GL_HISTOGRAM_RED_SIZE' => '0x8028',
  'GL_HISTOGRAM_RED_SIZE_EXT' => '0x8028',
  'GL_HISTOGRAM_SINK' => '0x802D',
  'GL_HISTOGRAM_SINK_EXT' => '0x802D',
  'GL_HISTOGRAM_WIDTH' => '0x8026',
  'GL_HISTOGRAM_WIDTH_EXT' => '0x8026',
  'GL_HORIZONTAL_LINE_TO_NV' => '0x06',
  'GL_IMAGE_1D' => '0x904C',
  'GL_IMAGE_1D_ARRAY' => '0x9052',
  'GL_IMAGE_2D' => '0x904D',
  'GL_IMAGE_2D_ARRAY' => '0x9053',
  'GL_IMAGE_2D_MULTISAMPLE' => '0x9055',
  'GL_IMAGE_2D_MULTISAMPLE_ARRAY' => '0x9056',
  'GL_IMAGE_2D_RECT' => '0x904F',
  'GL_IMAGE_3D' => '0x904E',
  'GL_IMAGE_BUFFER' => '0x9051',
  'GL_IMAGE_COMPATIBILITY_CLASS' => '0x82A8',
  'GL_IMAGE_CUBE' => '0x9050',
  'GL_IMAGE_CUBE_MAP_ARRAY' => '0x9054',
  'GL_IMAGE_CUBIC_WEIGHT_HP' => '0x815E',
  'GL_IMAGE_FORMAT_COMPATIBILITY_TYPE' => '0x90C7',
  'GL_IMAGE_MAG_FILTER_HP' => '0x815C',
  'GL_IMAGE_MIN_FILTER_HP' => '0x815D',
  'GL_IMAGE_PIXEL_FORMAT' => '0x82A9',
  'GL_IMAGE_PIXEL_TYPE' => '0x82AA',
  'GL_IMAGE_ROTATE_ANGLE_HP' => '0x8159',
  'GL_IMAGE_ROTATE_ORIGIN_X_HP' => '0x815A',
  'GL_IMAGE_ROTATE_ORIGIN_Y_HP' => '0x815B',
  'GL_IMAGE_SCALE_X_HP' => '0x8155',
  'GL_IMAGE_SCALE_Y_HP' => '0x8156',
  'GL_IMAGE_TEXEL_SIZE' => '0x82A7',
  'GL_IMAGE_TRANSFORM_2D_HP' => '0x8161',
  'GL_IMAGE_TRANSLATE_X_HP' => '0x8157',
  'GL_IMAGE_TRANSLATE_Y_HP' => '0x8158',
  'GL_IMPLEMENTATION_COLOR_READ_FORMAT' => '0x8B9B',
  'GL_IMPLEMENTATION_COLOR_READ_TYPE' => '0x8B9A',
  'GL_INCR' => '0x1E02',
  'GL_INCR_WRAP' => '0x8507',
  'GL_INDEX_ARRAY' => '0x8077',
  'GL_INDEX_ARRAY_COUNT_EXT' => '0x8087',
  'GL_INDEX_ARRAY_POINTER' => '0x8091',
  'GL_INDEX_ARRAY_POINTER_EXT' => '0x8091',
  'GL_INDEX_ARRAY_STRIDE' => '0x8086',
  'GL_INDEX_ARRAY_TYPE' => '0x8085',
  'GL_INDEX_BITS' => '0x0D51',
  'GL_INDEX_BIT_PGI' => '0x00080000',
  'GL_INDEX_CLEAR_VALUE' => '0x0C20',
  'GL_INDEX_LOGIC_OP' => '0x0BF1',
  'GL_INDEX_MODE' => '0x0C30',
  'GL_INDEX_OFFSET' => '0x0D13',
  'GL_INDEX_SHIFT' => '0x0D12',
  'GL_INDEX_WRITEMASK' => '0x0C21',
  'GL_INFO_LOG_LENGTH' => '0x8B84',
  'GL_INNOCENT_CONTEXT_RESET' => '0x8254',
  'GL_INSTRUMENT_BUFFER_POINTER_SGIX' => '0x8180',
  'GL_INSTRUMENT_MEASUREMENTS_SGIX' => '0x8181',
  'GL_INT' => '0x1404',
  'GL_INT64_ARB' => '0x140E',
  'GL_INT64_NV' => '0x140E',
  'GL_INT64_VEC2_ARB' => '0x8FE9',
  'GL_INT64_VEC3_ARB' => '0x8FEA',
  'GL_INT64_VEC4_ARB' => '0x8FEB',
  'GL_INTENSITY' => '0x8049',
  'GL_INTENSITY12' => '0x804C',
  'GL_INTENSITY12_EXT' => '0x804C',
  'GL_INTENSITY16' => '0x804D',
  'GL_INTENSITY16I_EXT' => '0x8D8B',
  'GL_INTENSITY16UI_EXT' => '0x8D79',
  'GL_INTENSITY16_EXT' => '0x804D',
  'GL_INTENSITY32I_EXT' => '0x8D85',
  'GL_INTENSITY32UI_EXT' => '0x8D73',
  'GL_INTENSITY4' => '0x804A',
  'GL_INTENSITY4_EXT' => '0x804A',
  'GL_INTENSITY8' => '0x804B',
  'GL_INTENSITY8I_EXT' => '0x8D91',
  'GL_INTENSITY8UI_EXT' => '0x8D7F',
  'GL_INTENSITY8_EXT' => '0x804B',
  'GL_INTERLACE_SGIX' => '0x8094',
  'GL_INTERLEAVED_ATTRIBS' => '0x8C8C',
  'GL_INTERNALFORMAT_ALPHA_SIZE' => '0x8274',
  'GL_INTERNALFORMAT_ALPHA_TYPE' => '0x827B',
  'GL_INTERNALFORMAT_BLUE_SIZE' => '0x8273',
  'GL_INTERNALFORMAT_BLUE_TYPE' => '0x827A',
  'GL_INTERNALFORMAT_DEPTH_SIZE' => '0x8275',
  'GL_INTERNALFORMAT_DEPTH_TYPE' => '0x827C',
  'GL_INTERNALFORMAT_GREEN_SIZE' => '0x8272',
  'GL_INTERNALFORMAT_GREEN_TYPE' => '0x8279',
  'GL_INTERNALFORMAT_PREFERRED' => '0x8270',
  'GL_INTERNALFORMAT_RED_SIZE' => '0x8271',
  'GL_INTERNALFORMAT_RED_TYPE' => '0x8278',
  'GL_INTERNALFORMAT_SHARED_SIZE' => '0x8277',
  'GL_INTERNALFORMAT_STENCIL_SIZE' => '0x8276',
  'GL_INTERNALFORMAT_STENCIL_TYPE' => '0x827D',
  'GL_INTERNALFORMAT_SUPPORTED' => '0x826F',
  'GL_INTERPOLATE' => '0x8575',
  'GL_INTERPOLATE_ARB' => '0x8575',
  'GL_INTERPOLATE_EXT' => '0x8575',
  'GL_INT_2_10_10_10_REV' => '0x8D9F',
  'GL_INT_IMAGE_1D' => '0x9057',
  'GL_INT_IMAGE_1D_ARRAY' => '0x905D',
  'GL_INT_IMAGE_2D' => '0x9058',
  'GL_INT_IMAGE_2D_ARRAY' => '0x905E',
  'GL_INT_IMAGE_2D_MULTISAMPLE' => '0x9060',
  'GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY' => '0x9061',
  'GL_INT_IMAGE_2D_RECT' => '0x905A',
  'GL_INT_IMAGE_3D' => '0x9059',
  'GL_INT_IMAGE_BUFFER' => '0x905C',
  'GL_INT_IMAGE_CUBE' => '0x905B',
  'GL_INT_IMAGE_CUBE_MAP_ARRAY' => '0x905F',
  'GL_INT_SAMPLER_1D' => '0x8DC9',
  'GL_INT_SAMPLER_1D_ARRAY' => '0x8DCE',
  'GL_INT_SAMPLER_2D' => '0x8DCA',
  'GL_INT_SAMPLER_2D_ARRAY' => '0x8DCF',
  'GL_INT_SAMPLER_2D_MULTISAMPLE' => '0x9109',
  'GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY' => '0x910C',
  'GL_INT_SAMPLER_2D_RECT' => '0x8DCD',
  'GL_INT_SAMPLER_3D' => '0x8DCB',
  'GL_INT_SAMPLER_BUFFER' => '0x8DD0',
  'GL_INT_SAMPLER_CUBE' => '0x8DCC',
  'GL_INT_SAMPLER_CUBE_MAP_ARRAY' => '0x900E',
  'GL_INT_VEC2' => '0x8B53',
  'GL_INT_VEC2_ARB' => '0x8B53',
  'GL_INT_VEC3' => '0x8B54',
  'GL_INT_VEC3_ARB' => '0x8B54',
  'GL_INT_VEC4' => '0x8B55',
  'GL_INT_VEC4_ARB' => '0x8B55',
  'GL_INVALID_ENUM' => '0x0500',
  'GL_INVALID_FRAMEBUFFER_OPERATION' => '0x0506',
  'GL_INVALID_FRAMEBUFFER_OPERATION_EXT' => '0x0506',
  'GL_INVALID_INDEX' => '0xFFFFFFFF',
  'GL_INVALID_OPERATION' => '0x0502',
  'GL_INVALID_VALUE' => '0x0501',
  'GL_INVARIANT_EXT' => '0x87C2',
  'GL_INVERT' => '0x150A',
  'GL_IR_INSTRUMENT1_SGIX' => '0x817F',
  'GL_IS_PER_PATCH' => '0x92E7',
  'GL_IS_ROW_MAJOR' => '0x9300',
  'GL_ITALIC_BIT_NV' => '0x02',
  'GL_KEEP' => '0x1E00',
  'GL_LARGE_CCW_ARC_TO_NV' => '0x16',
  'GL_LARGE_CW_ARC_TO_NV' => '0x18',
  'GL_LAST_VERTEX_CONVENTION' => '0x8E4E',
  'GL_LAYER_PROVOKING_VERTEX' => '0x825E',
  'GL_LAYOUT_COLOR_ATTACHMENT_EXT' => '0x958E',
  'GL_LAYOUT_DEFAULT_INTEL' => '0',
  'GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT' => '0x9531',
  'GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT' => '0x9530',
  'GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT' => '0x958F',
  'GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT' => '0x9590',
  'GL_LAYOUT_GENERAL_EXT' => '0x958D',
  'GL_LAYOUT_LINEAR_CPU_CACHED_INTEL' => '2',
  'GL_LAYOUT_LINEAR_INTEL' => '1',
  'GL_LAYOUT_SHADER_READ_ONLY_EXT' => '0x9591',
  'GL_LAYOUT_TRANSFER_DST_EXT' => '0x9593',
  'GL_LAYOUT_TRANSFER_SRC_EXT' => '0x9592',
  'GL_LEFT' => '0x0406',
  'GL_LEQUAL' => '0x0203',
  'GL_LERP_ATI' => '0x8969',
  'GL_LESS' => '0x0201',
  'GL_LGPU_SEPARATE_STORAGE_BIT_NVX' => '0x0800',
  'GL_LIGHT0' => '0x4000',
  'GL_LIGHT1' => '0x4001',
  'GL_LIGHT2' => '0x4002',
  'GL_LIGHT3' => '0x4003',
  'GL_LIGHT4' => '0x4004',
  'GL_LIGHT5' => '0x4005',
  'GL_LIGHT6' => '0x4006',
  'GL_LIGHT7' => '0x4007',
  'GL_LIGHTING' => '0x0B50',
  'GL_LIGHTING_BIT' => '0x00000040',
  'GL_LIGHT_ENV_MODE_SGIX' => '0x8407',
  'GL_LIGHT_MODEL_AMBIENT' => '0x0B53',
  'GL_LIGHT_MODEL_COLOR_CONTROL' => '0x81F8',
  'GL_LIGHT_MODEL_COLOR_CONTROL_EXT' => '0x81F8',
  'GL_LIGHT_MODEL_LOCAL_VIEWER' => '0x0B51',
  'GL_LIGHT_MODEL_TWO_SIDE' => '0x0B52',
  'GL_LINE' => '0x1B01',
  'GL_LINEAR' => '0x2601',
  'GL_LINEAR_ATTENUATION' => '0x1208',
  'GL_LINEAR_CLIPMAP_LINEAR_SGIX' => '0x8170',
  'GL_LINEAR_CLIPMAP_NEAREST_SGIX' => '0x844F',
  'GL_LINEAR_DETAIL_ALPHA_SGIS' => '0x8098',
  'GL_LINEAR_DETAIL_COLOR_SGIS' => '0x8099',
  'GL_LINEAR_DETAIL_SGIS' => '0x8097',
  'GL_LINEAR_MIPMAP_LINEAR' => '0x2703',
  'GL_LINEAR_MIPMAP_NEAREST' => '0x2701',
  'GL_LINEAR_SHARPEN_ALPHA_SGIS' => '0x80AE',
  'GL_LINEAR_SHARPEN_COLOR_SGIS' => '0x80AF',
  'GL_LINEAR_SHARPEN_SGIS' => '0x80AD',
  'GL_LINES' => '0x0001',
  'GL_LINES_ADJACENCY' => '0x000A',
  'GL_LINES_ADJACENCY_ARB' => '0x000A',
  'GL_LINES_ADJACENCY_EXT' => '0x000A',
  'GL_LINE_BIT' => '0x00000004',
  'GL_LINE_LOOP' => '0x0002',
  'GL_LINE_QUALITY_HINT_SGIX' => '0x835B',
  'GL_LINE_RESET_TOKEN' => '0x0707',
  'GL_LINE_SMOOTH' => '0x0B20',
  'GL_LINE_SMOOTH_HINT' => '0x0C52',
  'GL_LINE_STIPPLE' => '0x0B24',
  'GL_LINE_STIPPLE_PATTERN' => '0x0B25',
  'GL_LINE_STIPPLE_REPEAT' => '0x0B26',
  'GL_LINE_STRIP' => '0x0003',
  'GL_LINE_STRIP_ADJACENCY' => '0x000B',
  'GL_LINE_STRIP_ADJACENCY_ARB' => '0x000B',
  'GL_LINE_STRIP_ADJACENCY_EXT' => '0x000B',
  'GL_LINE_TOKEN' => '0x0702',
  'GL_LINE_TO_NV' => '0x04',
  'GL_LINE_WIDTH' => '0x0B21',
  'GL_LINE_WIDTH_COMMAND_NV' => '0x000D',
  'GL_LINE_WIDTH_GRANULARITY' => '0x0B23',
  'GL_LINE_WIDTH_RANGE' => '0x0B22',
  'GL_LINK_STATUS' => '0x8B82',
  'GL_LIST_BASE' => '0x0B32',
  'GL_LIST_BIT' => '0x00020000',
  'GL_LIST_INDEX' => '0x0B33',
  'GL_LIST_MODE' => '0x0B30',
  'GL_LIST_PRIORITY_SGIX' => '0x8182',
  'GL_LOAD' => '0x0101',
  'GL_LOCAL_CONSTANT_EXT' => '0x87C3',
  'GL_LOCAL_EXT' => '0x87C4',
  'GL_LOCATION' => '0x930E',
  'GL_LOCATION_COMPONENT' => '0x934A',
  'GL_LOCATION_INDEX' => '0x930F',
  'GL_LOGIC_OP' => '0x0BF1',
  'GL_LOGIC_OP_MODE' => '0x0BF0',
  'GL_LOWER_LEFT' => '0x8CA1',
  'GL_LOW_FLOAT' => '0x8DF0',
  'GL_LOW_INT' => '0x8DF3',
  'GL_LUID_SIZE_EXT' => '8',
  'GL_LUMINANCE' => '0x1909',
  'GL_LUMINANCE12' => '0x8041',
  'GL_LUMINANCE12_ALPHA12' => '0x8047',
  'GL_LUMINANCE12_ALPHA12_EXT' => '0x8047',
  'GL_LUMINANCE12_ALPHA4' => '0x8046',
  'GL_LUMINANCE12_ALPHA4_EXT' => '0x8046',
  'GL_LUMINANCE12_EXT' => '0x8041',
  'GL_LUMINANCE16' => '0x8042',
  'GL_LUMINANCE16I_EXT' => '0x8D8C',
  'GL_LUMINANCE16UI_EXT' => '0x8D7A',
  'GL_LUMINANCE16_ALPHA16' => '0x8048',
  'GL_LUMINANCE16_ALPHA16_EXT' => '0x8048',
  'GL_LUMINANCE16_EXT' => '0x8042',
  'GL_LUMINANCE32I_EXT' => '0x8D86',
  'GL_LUMINANCE32UI_EXT' => '0x8D74',
  'GL_LUMINANCE4' => '0x803F',
  'GL_LUMINANCE4_ALPHA4' => '0x8043',
  'GL_LUMINANCE4_ALPHA4_EXT' => '0x8043',
  'GL_LUMINANCE4_EXT' => '0x803F',
  'GL_LUMINANCE6_ALPHA2' => '0x8044',
  'GL_LUMINANCE6_ALPHA2_EXT' => '0x8044',
  'GL_LUMINANCE8' => '0x8040',
  'GL_LUMINANCE8I_EXT' => '0x8D92',
  'GL_LUMINANCE8UI_EXT' => '0x8D80',
  'GL_LUMINANCE8_ALPHA8' => '0x8045',
  'GL_LUMINANCE8_ALPHA8_EXT' => '0x8045',
  'GL_LUMINANCE8_EXT' => '0x8040',
  'GL_LUMINANCE_ALPHA' => '0x190A',
  'GL_LUMINANCE_ALPHA16I_EXT' => '0x8D8D',
  'GL_LUMINANCE_ALPHA16UI_EXT' => '0x8D7B',
  'GL_LUMINANCE_ALPHA32I_EXT' => '0x8D87',
  'GL_LUMINANCE_ALPHA32UI_EXT' => '0x8D75',
  'GL_LUMINANCE_ALPHA8I_EXT' => '0x8D93',
  'GL_LUMINANCE_ALPHA8UI_EXT' => '0x8D81',
  'GL_MAD_ATI' => '0x8968',
  'GL_MAJOR_VERSION' => '0x821B',
  'GL_MALI_SHADER_BINARY_ARM' => '0x8F60',
  'GL_MAP1_COLOR_4' => '0x0D90',
  'GL_MAP1_GRID_DOMAIN' => '0x0DD0',
  'GL_MAP1_GRID_SEGMENTS' => '0x0DD1',
  'GL_MAP1_INDEX' => '0x0D91',
  'GL_MAP1_NORMAL' => '0x0D92',
  'GL_MAP1_TEXTURE_COORD_1' => '0x0D93',
  'GL_MAP1_TEXTURE_COORD_2' => '0x0D94',
  'GL_MAP1_TEXTURE_COORD_3' => '0x0D95',
  'GL_MAP1_TEXTURE_COORD_4' => '0x0D96',
  'GL_MAP1_VERTEX_3' => '0x0D97',
  'GL_MAP1_VERTEX_4' => '0x0D98',
  'GL_MAP2_COLOR_4' => '0x0DB0',
  'GL_MAP2_GRID_DOMAIN' => '0x0DD2',
  'GL_MAP2_GRID_SEGMENTS' => '0x0DD3',
  'GL_MAP2_INDEX' => '0x0DB1',
  'GL_MAP2_NORMAL' => '0x0DB2',
  'GL_MAP2_TEXTURE_COORD_1' => '0x0DB3',
  'GL_MAP2_TEXTURE_COORD_2' => '0x0DB4',
  'GL_MAP2_TEXTURE_COORD_3' => '0x0DB5',
  'GL_MAP2_TEXTURE_COORD_4' => '0x0DB6',
  'GL_MAP2_VERTEX_3' => '0x0DB7',
  'GL_MAP2_VERTEX_4' => '0x0DB8',
  'GL_MAP_ATTRIB_U_ORDER_NV' => '0x86C3',
  'GL_MAP_ATTRIB_V_ORDER_NV' => '0x86C4',
  'GL_MAP_COHERENT_BIT' => '0x0080',
  'GL_MAP_COHERENT_BIT_EXT' => '0x0080',
  'GL_MAP_COLOR' => '0x0D10',
  'GL_MAP_FLUSH_EXPLICIT_BIT' => '0x0010',
  'GL_MAP_FLUSH_EXPLICIT_BIT_EXT' => '0x0010',
  'GL_MAP_INVALIDATE_BUFFER_BIT' => '0x0008',
  'GL_MAP_INVALIDATE_BUFFER_BIT_EXT' => '0x0008',
  'GL_MAP_INVALIDATE_RANGE_BIT' => '0x0004',
  'GL_MAP_INVALIDATE_RANGE_BIT_EXT' => '0x0004',
  'GL_MAP_PERSISTENT_BIT' => '0x0040',
  'GL_MAP_PERSISTENT_BIT_EXT' => '0x0040',
  'GL_MAP_READ_BIT' => '0x0001',
  'GL_MAP_READ_BIT_EXT' => '0x0001',
  'GL_MAP_STENCIL' => '0x0D11',
  'GL_MAP_TESSELLATION_NV' => '0x86C2',
  'GL_MAP_UNSYNCHRONIZED_BIT' => '0x0020',
  'GL_MAP_UNSYNCHRONIZED_BIT_EXT' => '0x0020',
  'GL_MAP_WRITE_BIT' => '0x0002',
  'GL_MAP_WRITE_BIT_EXT' => '0x0002',
  'GL_MATERIAL_SIDE_HINT_PGI' => '0x1A22C',
  'GL_MATRIX_EXT' => '0x87C0',
  'GL_MATRIX_MODE' => '0x0BA0',
  'GL_MATRIX_STRIDE' => '0x92FF',
  'GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI' => '0x00200000',
  'GL_MAT_AMBIENT_BIT_PGI' => '0x00100000',
  'GL_MAT_COLOR_INDEXES_BIT_PGI' => '0x01000000',
  'GL_MAT_DIFFUSE_BIT_PGI' => '0x00400000',
  'GL_MAT_EMISSION_BIT_PGI' => '0x00800000',
  'GL_MAT_SHININESS_BIT_PGI' => '0x02000000',
  'GL_MAT_SPECULAR_BIT_PGI' => '0x04000000',
  'GL_MAX' => '0x8008',
  'GL_MAX_3D_TEXTURE_SIZE' => '0x8073',
  'GL_MAX_3D_TEXTURE_SIZE_EXT' => '0x8073',
  'GL_MAX_4D_TEXTURE_SIZE_SGIS' => '0x8138',
  'GL_MAX_ACTIVE_LIGHTS_SGIX' => '0x8405',
  'GL_MAX_ARRAY_TEXTURE_LAYERS' => '0x88FF',
  'GL_MAX_ASYNC_DRAW_PIXELS_SGIX' => '0x8360',
  'GL_MAX_ASYNC_HISTOGRAM_SGIX' => '0x832D',
  'GL_MAX_ASYNC_READ_PIXELS_SGIX' => '0x8361',
  'GL_MAX_ASYNC_TEX_IMAGE_SGIX' => '0x835F',
  'GL_MAX_ATTRIB_STACK_DEPTH' => '0x0D35',
  'GL_MAX_CLIENT_ATTRIB_STACK_DEPTH' => '0x0D3B',
  'GL_MAX_CLIPMAP_DEPTH_SGIX' => '0x8177',
  'GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX' => '0x8178',
  'GL_MAX_CLIP_DISTANCES' => '0x0D32',
  'GL_MAX_CLIP_PLANES' => '0x0D32',
  'GL_MAX_COLOR_ATTACHMENTS' => '0x8CDF',
  'GL_MAX_COLOR_ATTACHMENTS_EXT' => '0x8CDF',
  'GL_MAX_COLOR_ATTACHMENTS_NV' => '0x8CDF',
  'GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI' => '0x80B3',
  'GL_MAX_COLOR_TEXTURE_SAMPLES' => '0x910E',
  'GL_MAX_COMBINED_ATOMIC_COUNTERS' => '0x92D7',
  'GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS' => '0x8266',
  'GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS' => '0x8A33',
  'GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS' => '0x8A32',
  'GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS' => '0x90DC',
  'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS' => '0x8B4D',
  'GL_MAX_COMBINED_UNIFORM_BLOCKS' => '0x8A2E',
  'GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS' => '0x8A31',
  'GL_MAX_COMPUTE_ATOMIC_COUNTERS' => '0x8265',
  'GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS' => '0x8264',
  'GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS' => '0x90DB',
  'GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS' => '0x91BC',
  'GL_MAX_COMPUTE_UNIFORM_BLOCKS' => '0x91BB',
  'GL_MAX_COMPUTE_UNIFORM_COMPONENTS' => '0x8263',
  'GL_MAX_COMPUTE_WORK_GROUP_COUNT' => '0x91BE',
  'GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS' => '0x90EB',
  'GL_MAX_COMPUTE_WORK_GROUP_SIZE' => '0x91BF',
  'GL_MAX_CONVOLUTION_HEIGHT' => '0x801B',
  'GL_MAX_CONVOLUTION_HEIGHT_EXT' => '0x801B',
  'GL_MAX_CONVOLUTION_WIDTH' => '0x801A',
  'GL_MAX_CONVOLUTION_WIDTH_EXT' => '0x801A',
  'GL_MAX_CUBE_MAP_TEXTURE_SIZE' => '0x851C',
  'GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB' => '0x851C',
  'GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT' => '0x851C',
  'GL_MAX_DEBUG_GROUP_STACK_DEPTH' => '0x826C',
  'GL_MAX_DEPTH' => '0x8280',
  'GL_MAX_DEPTH_TEXTURE_SAMPLES' => '0x910F',
  'GL_MAX_DRAW_BUFFERS' => '0x8824',
  'GL_MAX_DUAL_SOURCE_DRAW_BUFFERS' => '0x88FC',
  'GL_MAX_ELEMENTS_INDICES' => '0x80E9',
  'GL_MAX_ELEMENTS_VERTICES' => '0x80E8',
  'GL_MAX_ELEMENT_INDEX' => '0x8D6B',
  'GL_MAX_EVAL_ORDER' => '0x0D30',
  'GL_MAX_EXT' => '0x8008',
  'GL_MAX_FOG_FUNC_POINTS_SGIS' => '0x812C',
  'GL_MAX_FRAGMENT_ATOMIC_COUNTERS' => '0x92D6',
  'GL_MAX_FRAGMENT_INPUT_COMPONENTS' => '0x9125',
  'GL_MAX_FRAGMENT_LIGHTS_SGIX' => '0x8404',
  'GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS' => '0x90DA',
  'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT' => '0x96DC',
  'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT' => '0x96DB',
  'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT' => '0x96DA',
  'GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT' => '0x96D8',
  'GL_MAX_FRAGMENT_UNIFORM_BLOCKS' => '0x8A2D',
  'GL_MAX_FRAGMENT_UNIFORM_COMPONENTS' => '0x8B49',
  'GL_MAX_FRAGMENT_UNIFORM_VECTORS' => '0x8DFD',
  'GL_MAX_FRAMEBUFFER_HEIGHT' => '0x9316',
  'GL_MAX_FRAMEBUFFER_LAYERS' => '0x9317',
  'GL_MAX_FRAMEBUFFER_SAMPLES' => '0x9318',
  'GL_MAX_FRAMEBUFFER_WIDTH' => '0x9315',
  'GL_MAX_FRAMEZOOM_FACTOR_SGIX' => '0x818D',
  'GL_MAX_GEOMETRY_ATOMIC_COUNTERS' => '0x92D5',
  'GL_MAX_GEOMETRY_INPUT_COMPONENTS' => '0x9123',
  'GL_MAX_GEOMETRY_OUTPUT_COMPONENTS' => '0x9124',
  'GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS' => '0x90D7',
  'GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS' => '0x8C29',
  'GL_MAX_GEOMETRY_UNIFORM_BLOCKS' => '0x8A2C',
  'GL_MAX_GEOMETRY_UNIFORM_COMPONENTS' => '0x8DDF',
  'GL_MAX_HEIGHT' => '0x827F',
  'GL_MAX_INTEGER_SAMPLES' => '0x9110',
  'GL_MAX_LABEL_LENGTH' => '0x82E8',
  'GL_MAX_LAYERS' => '0x8281',
  'GL_MAX_LIGHTS' => '0x0D31',
  'GL_MAX_LIST_NESTING' => '0x0B31',
  'GL_MAX_MESH_OUTPUT_COMPONENTS_EXT' => '0x9749',
  'GL_MAX_MESH_OUTPUT_LAYERS_EXT' => '0x974A',
  'GL_MAX_MESH_OUTPUT_MEMORY_SIZE_EXT' => '0x9747',
  'GL_MAX_MESH_OUTPUT_PRIMITIVES_EXT' => '0x9756',
  'GL_MAX_MESH_PAYLOAD_AND_OUTPUT_MEMORY_SIZE_EXT' => '0x9748',
  'GL_MAX_MESH_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT' => '0x9746',
  'GL_MAX_MESH_SHARED_MEMORY_SIZE_EXT' => '0x9744',
  'GL_MAX_MESH_WORK_GROUP_COUNT_EXT' => '0x9752',
  'GL_MAX_MESH_WORK_GROUP_INVOCATIONS_EXT' => '0x9757',
  'GL_MAX_MESH_WORK_GROUP_SIZE_EXT' => '0x9758',
  'GL_MAX_MESH_WORK_GROUP_TOTAL_COUNT_EXT' => '0x9741',
  'GL_MAX_MODELVIEW_STACK_DEPTH' => '0x0D36',
  'GL_MAX_NAME_LENGTH' => '0x92F6',
  'GL_MAX_NAME_STACK_DEPTH' => '0x0D37',
  'GL_MAX_NUM_ACTIVE_VARIABLES' => '0x92F7',
  'GL_MAX_NUM_COMPATIBLE_SUBROUTINES' => '0x92F8',
  'GL_MAX_PIXEL_MAP_TABLE' => '0x0D34',
  'GL_MAX_PREFERRED_MESH_WORK_GROUP_INVOCATIONS_EXT' => '0x974C',
  'GL_MAX_PREFERRED_TASK_WORK_GROUP_INVOCATIONS_EXT' => '0x974B',
  'GL_MAX_PROGRAM_TEXEL_OFFSET' => '0x8905',
  'GL_MAX_PROJECTION_STACK_DEPTH' => '0x0D38',
  'GL_MAX_RECTANGLE_TEXTURE_SIZE' => '0x84F8',
  'GL_MAX_RENDERBUFFER_SIZE' => '0x84E8',
  'GL_MAX_SAMPLE_MASK_WORDS' => '0x8E59',
  'GL_MAX_SERVER_WAIT_TIMEOUT' => '0x9111',
  'GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS' => '0x90DD',
  'GL_MAX_TASK_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT' => '0x9745',
  'GL_MAX_TASK_PAYLOAD_SIZE_EXT' => '0x9742',
  'GL_MAX_TASK_SHARED_MEMORY_SIZE_EXT' => '0x9743',
  'GL_MAX_TASK_WORK_GROUP_COUNT_EXT' => '0x9751',
  'GL_MAX_TASK_WORK_GROUP_INVOCATIONS_EXT' => '0x9759',
  'GL_MAX_TASK_WORK_GROUP_SIZE_EXT' => '0x975A',
  'GL_MAX_TASK_WORK_GROUP_TOTAL_COUNT_EXT' => '0x9740',
  'GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS' => '0x92D3',
  'GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS' => '0x90D8',
  'GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS' => '0x8E89',
  'GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS' => '0x92D4',
  'GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS' => '0x90D9',
  'GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS' => '0x8E8A',
  'GL_MAX_TEXTURE_BUFFER_SIZE' => '0x8C2B',
  'GL_MAX_TEXTURE_IMAGE_UNITS' => '0x8872',
  'GL_MAX_TEXTURE_LOD_BIAS' => '0x84FD',
  'GL_MAX_TEXTURE_SIZE' => '0x0D33',
  'GL_MAX_TEXTURE_STACK_DEPTH' => '0x0D39',
  'GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV' => '0x95B6',
  'GL_MAX_UNIFORM_BLOCK_SIZE' => '0x8A30',
  'GL_MAX_UNIFORM_BUFFER_BINDINGS' => '0x8A2F',
  'GL_MAX_UNIFORM_LOCATIONS' => '0x826E',
  'GL_MAX_VARYING_COMPONENTS' => '0x8B4B',
  'GL_MAX_VARYING_FLOATS' => '0x8B4B',
  'GL_MAX_VARYING_VECTORS' => '0x8DFC',
  'GL_MAX_VERTEX_ATOMIC_COUNTERS' => '0x92D2',
  'GL_MAX_VERTEX_ATTRIBS' => '0x8869',
  'GL_MAX_VERTEX_ATTRIB_BINDINGS' => '0x82DA',
  'GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET' => '0x82D9',
  'GL_MAX_VERTEX_HINT_PGI' => '0x1A22D',
  'GL_MAX_VERTEX_OUTPUT_COMPONENTS' => '0x9122',
  'GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS' => '0x90D6',
  'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS' => '0x8B4C',
  'GL_MAX_VERTEX_UNIFORM_BLOCKS' => '0x8A2B',
  'GL_MAX_VERTEX_UNIFORM_COMPONENTS' => '0x8B4A',
  'GL_MAX_VERTEX_UNIFORM_VECTORS' => '0x8DFB',
  'GL_MAX_VIEWPORTS' => '0x825B',
  'GL_MAX_VIEWPORT_DIMS' => '0x0D3A',
  'GL_MAX_WIDTH' => '0x827E',
  'GL_MEDIUM_FLOAT' => '0x8DF1',
  'GL_MEDIUM_INT' => '0x8DF4',
  'GL_MESH_PREFERS_COMPACT_PRIMITIVE_OUTPUT_EXT' => '0x9750',
  'GL_MESH_PREFERS_COMPACT_VERTEX_OUTPUT_EXT' => '0x974F',
  'GL_MESH_PREFERS_LOCAL_INVOCATION_PRIMITIVE_OUTPUT_EXT' => '0x974E',
  'GL_MESH_PREFERS_LOCAL_INVOCATION_VERTEX_OUTPUT_EXT' => '0x974D',
  'GL_MESH_PRIMITIVES_GENERATED_EXT' => '0x9755',
  'GL_MESH_SHADER_BIT_EXT' => '0x00000040',
  'GL_MESH_SHADER_BIT_NV' => '0x00000040',
  'GL_MESH_SHADER_INVOCATIONS_EXT' => '0x9754',
  'GL_MIN' => '0x8007',
  'GL_MINMAX' => '0x802E',
  'GL_MINMAX_EXT' => '0x802E',
  'GL_MINMAX_FORMAT' => '0x802F',
  'GL_MINMAX_FORMAT_EXT' => '0x802F',
  'GL_MINMAX_SINK' => '0x8030',
  'GL_MINMAX_SINK_EXT' => '0x8030',
  'GL_MINOR_VERSION' => '0x821C',
  'GL_MIN_EXT' => '0x8007',
  'GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT' => '0x96D9',
  'GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT' => '0x96D7',
  'GL_MIN_MAP_BUFFER_ALIGNMENT' => '0x90BC',
  'GL_MIN_PROGRAM_TEXEL_OFFSET' => '0x8904',
  'GL_MIPMAP' => '0x8293',
  'GL_MIRRORED_REPEAT' => '0x8370',
  'GL_MIRRORED_REPEAT_ARB' => '0x8370',
  'GL_MIRRORED_REPEAT_IBM' => '0x8370',
  'GL_MODELVIEW' => '0x1700',
  'GL_MODELVIEW0_EXT' => '0x1700',
  'GL_MODELVIEW0_MATRIX_EXT' => '0x0BA6',
  'GL_MODELVIEW0_STACK_DEPTH_EXT' => '0x0BA3',
  'GL_MODELVIEW_MATRIX' => '0x0BA6',
  'GL_MODELVIEW_STACK_DEPTH' => '0x0BA3',
  'GL_MODULATE' => '0x2100',
  'GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM' => '0x8C90',
  'GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM' => '0x8C91',
  'GL_MOVE_TO_NV' => '0x02',
  'GL_MOV_ATI' => '0x8961',
  'GL_MULT' => '0x0103',
  'GL_MULTISAMPLE' => '0x809D',
  'GL_MULTISAMPLE_BIT' => '0x20000000',
  'GL_MULTISAMPLE_BIT_3DFX' => '0x20000000',
  'GL_MULTISAMPLE_BIT_ARB' => '0x20000000',
  'GL_MULTISAMPLE_BIT_EXT' => '0x20000000',
  'GL_MULTISAMPLE_BUFFER_BIT0_QCOM' => '0x01000000',
  'GL_MULTISAMPLE_BUFFER_BIT1_QCOM' => '0x02000000',
  'GL_MULTISAMPLE_BUFFER_BIT2_QCOM' => '0x04000000',
  'GL_MULTISAMPLE_BUFFER_BIT3_QCOM' => '0x08000000',
  'GL_MULTISAMPLE_BUFFER_BIT4_QCOM' => '0x10000000',
  'GL_MULTISAMPLE_BUFFER_BIT5_QCOM' => '0x20000000',
  'GL_MULTISAMPLE_BUFFER_BIT6_QCOM' => '0x40000000',
  'GL_MULTISAMPLE_BUFFER_BIT7_QCOM' => '0x80000000',
  'GL_MULTISAMPLE_FILTER_HINT_NV' => '0x8534',
  'GL_MULTISAMPLE_SGIS' => '0x809D',
  'GL_MUL_ATI' => '0x8964',
  'GL_MVP_MATRIX_EXT' => '0x87E3',
  'GL_N3F_V3F' => '0x2A25',
  'GL_NAME_LENGTH' => '0x92F9',
  'GL_NAME_STACK_DEPTH' => '0x0D70',
  'GL_NAND' => '0x150E',
  'GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI' => '0x1A203',
  'GL_NATIVE_GRAPHICS_END_HINT_PGI' => '0x1A204',
  'GL_NEAREST' => '0x2600',
  'GL_NEAREST_CLIPMAP_LINEAR_SGIX' => '0x844E',
  'GL_NEAREST_CLIPMAP_NEAREST_SGIX' => '0x844D',
  'GL_NEAREST_MIPMAP_LINEAR' => '0x2702',
  'GL_NEAREST_MIPMAP_NEAREST' => '0x2700',
  'GL_NEGATE_BIT_ATI' => '0x00000004',
  'GL_NEGATIVE_ONE_EXT' => '0x87DF',
  'GL_NEGATIVE_ONE_TO_ONE' => '0x935E',
  'GL_NEGATIVE_W_EXT' => '0x87DC',
  'GL_NEGATIVE_X_EXT' => '0x87D9',
  'GL_NEGATIVE_Y_EXT' => '0x87DA',
  'GL_NEGATIVE_Z_EXT' => '0x87DB',
  'GL_NEVER' => '0x0200',
  'GL_NEXT_BUFFER_NV' => '-2',
  'GL_NICEST' => '0x1102',
  'GL_NONE' => '0',
  'GL_NOOP' => '0x1505',
  'GL_NOP_COMMAND_NV' => '0x0001',
  'GL_NOR' => '0x1508',
  'GL_NORMALIZE' => '0x0BA1',
  'GL_NORMALIZED_RANGE_EXT' => '0x87E0',
  'GL_NORMAL_ARRAY' => '0x8075',
  'GL_NORMAL_ARRAY_COUNT_EXT' => '0x8080',
  'GL_NORMAL_ARRAY_POINTER' => '0x808F',
  'GL_NORMAL_ARRAY_POINTER_EXT' => '0x808F',
  'GL_NORMAL_ARRAY_STRIDE' => '0x807F',
  'GL_NORMAL_ARRAY_TYPE' => '0x807E',
  'GL_NORMAL_BIT_PGI' => '0x08000000',
  'GL_NORMAL_MAP' => '0x8511',
  'GL_NORMAL_MAP_ARB' => '0x8511',
  'GL_NORMAL_MAP_EXT' => '0x8511',
  'GL_NORMAL_MAP_NV' => '0x8511',
  'GL_NOTEQUAL' => '0x0205',
  'GL_NO_ERROR' => '0',
  'GL_NUM_ACTIVE_VARIABLES' => '0x9304',
  'GL_NUM_COMPATIBLE_SUBROUTINES' => '0x8E4A',
  'GL_NUM_COMPRESSED_TEXTURE_FORMATS' => '0x86A2',
  'GL_NUM_DEVICE_UUIDS_EXT' => '0x9596',
  'GL_NUM_EXTENSIONS' => '0x821D',
  'GL_NUM_PROGRAM_BINARY_FORMATS' => '0x87FE',
  'GL_NUM_SAMPLE_COUNTS' => '0x9380',
  'GL_NUM_SHADER_BINARY_FORMATS' => '0x8DF9',
  'GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT' => '0x8F6E',
  'GL_OBJECT_BUFFER_SIZE_ATI' => '0x8764',
  'GL_OBJECT_BUFFER_USAGE_ATI' => '0x8765',
  'GL_OBJECT_DISTANCE_TO_LINE_SGIS' => '0x81F3',
  'GL_OBJECT_DISTANCE_TO_POINT_SGIS' => '0x81F1',
  'GL_OBJECT_LINEAR' => '0x2401',
  'GL_OBJECT_LINE_SGIS' => '0x81F7',
  'GL_OBJECT_PLANE' => '0x2501',
  'GL_OBJECT_POINT_SGIS' => '0x81F5',
  'GL_OBJECT_TYPE' => '0x9112',
  'GL_OFFSET' => '0x92FC',
  'GL_ONE' => '1',
  'GL_ONE_EXT' => '0x87DE',
  'GL_ONE_MINUS_CONSTANT_ALPHA' => '0x8004',
  'GL_ONE_MINUS_CONSTANT_COLOR' => '0x8002',
  'GL_ONE_MINUS_DST_ALPHA' => '0x0305',
  'GL_ONE_MINUS_DST_COLOR' => '0x0307',
  'GL_ONE_MINUS_SRC1_ALPHA' => '0x88FB',
  'GL_ONE_MINUS_SRC1_COLOR' => '0x88FA',
  'GL_ONE_MINUS_SRC_ALPHA' => '0x0303',
  'GL_ONE_MINUS_SRC_COLOR' => '0x0301',
  'GL_OPERAND0_ALPHA' => '0x8598',
  'GL_OPERAND0_ALPHA_ARB' => '0x8598',
  'GL_OPERAND0_ALPHA_EXT' => '0x8598',
  'GL_OPERAND0_RGB' => '0x8590',
  'GL_OPERAND0_RGB_ARB' => '0x8590',
  'GL_OPERAND0_RGB_EXT' => '0x8590',
  'GL_OPERAND1_ALPHA' => '0x8599',
  'GL_OPERAND1_ALPHA_ARB' => '0x8599',
  'GL_OPERAND1_ALPHA_EXT' => '0x8599',
  'GL_OPERAND1_RGB' => '0x8591',
  'GL_OPERAND1_RGB_ARB' => '0x8591',
  'GL_OPERAND1_RGB_EXT' => '0x8591',
  'GL_OPERAND2_ALPHA' => '0x859A',
  'GL_OPERAND2_ALPHA_ARB' => '0x859A',
  'GL_OPERAND2_ALPHA_EXT' => '0x859A',
  'GL_OPERAND2_RGB' => '0x8592',
  'GL_OPERAND2_RGB_ARB' => '0x8592',
  'GL_OPERAND2_RGB_EXT' => '0x8592',
  'GL_OPERAND3_ALPHA_NV' => '0x859B',
  'GL_OPERAND3_RGB_NV' => '0x8593',
  'GL_OP_ADD_EXT' => '0x8787',
  'GL_OP_CLAMP_EXT' => '0x878E',
  'GL_OP_CROSS_PRODUCT_EXT' => '0x8797',
  'GL_OP_DOT3_EXT' => '0x8784',
  'GL_OP_DOT4_EXT' => '0x8785',
  'GL_OP_EXP_BASE_2_EXT' => '0x8791',
  'GL_OP_FLOOR_EXT' => '0x878F',
  'GL_OP_FRAC_EXT' => '0x8789',
  'GL_OP_INDEX_EXT' => '0x8782',
  'GL_OP_LOG_BASE_2_EXT' => '0x8792',
  'GL_OP_MADD_EXT' => '0x8788',
  'GL_OP_MAX_EXT' => '0x878A',
  'GL_OP_MIN_EXT' => '0x878B',
  'GL_OP_MOV_EXT' => '0x8799',
  'GL_OP_MULTIPLY_MATRIX_EXT' => '0x8798',
  'GL_OP_MUL_EXT' => '0x8786',
  'GL_OP_NEGATE_EXT' => '0x8783',
  'GL_OP_POWER_EXT' => '0x8793',
  'GL_OP_RECIP_EXT' => '0x8794',
  'GL_OP_RECIP_SQRT_EXT' => '0x8795',
  'GL_OP_ROUND_EXT' => '0x8790',
  'GL_OP_SET_GE_EXT' => '0x878C',
  'GL_OP_SET_LT_EXT' => '0x878D',
  'GL_OP_SUB_EXT' => '0x8796',
  'GL_OR' => '0x1507',
  'GL_ORDER' => '0x0A01',
  'GL_OR_INVERTED' => '0x150D',
  'GL_OR_REVERSE' => '0x150B',
  'GL_OUT_OF_MEMORY' => '0x0505',
  'GL_PACK_ALIGNMENT' => '0x0D05',
  'GL_PACK_CMYK_HINT_EXT' => '0x800E',
  'GL_PACK_IMAGE_DEPTH_SGIS' => '0x8131',
  'GL_PACK_IMAGE_HEIGHT' => '0x806C',
  'GL_PACK_IMAGE_HEIGHT_EXT' => '0x806C',
  'GL_PACK_LSB_FIRST' => '0x0D01',
  'GL_PACK_RESAMPLE_OML' => '0x8984',
  'GL_PACK_RESAMPLE_SGIX' => '0x842E',
  'GL_PACK_ROW_LENGTH' => '0x0D02',
  'GL_PACK_ROW_LENGTH_NV' => '0x0D02',
  'GL_PACK_SKIP_IMAGES' => '0x806B',
  'GL_PACK_SKIP_IMAGES_EXT' => '0x806B',
  'GL_PACK_SKIP_PIXELS' => '0x0D04',
  'GL_PACK_SKIP_PIXELS_NV' => '0x0D04',
  'GL_PACK_SKIP_ROWS' => '0x0D03',
  'GL_PACK_SKIP_ROWS_NV' => '0x0D03',
  'GL_PACK_SKIP_VOLUMES_SGIS' => '0x8130',
  'GL_PACK_SUBSAMPLE_RATE_SGIX' => '0x85A0',
  'GL_PACK_SWAP_BYTES' => '0x0D00',
  'GL_PARAMETER_BUFFER' => '0x80EE',
  'GL_PASS_THROUGH_TOKEN' => '0x0700',
  'GL_PATCHES' => '0x000E',
  'GL_PATCHES_EXT' => '0x000E',
  'GL_PATCH_DEFAULT_INNER_LEVEL' => '0x8E73',
  'GL_PATCH_DEFAULT_OUTER_LEVEL' => '0x8E74',
  'GL_PATCH_VERTICES' => '0x8E72',
  'GL_PATH_CLIENT_LENGTH_NV' => '0x907F',
  'GL_PATH_COMMAND_COUNT_NV' => '0x909D',
  'GL_PATH_COMPUTED_LENGTH_NV' => '0x90A0',
  'GL_PATH_COORD_COUNT_NV' => '0x909E',
  'GL_PATH_DASH_ARRAY_COUNT_NV' => '0x909F',
  'GL_PATH_DASH_CAPS_NV' => '0x907B',
  'GL_PATH_DASH_OFFSET_NV' => '0x907E',
  'GL_PATH_DASH_OFFSET_RESET_NV' => '0x90B4',
  'GL_PATH_END_CAPS_NV' => '0x9076',
  'GL_PATH_FILL_BOUNDING_BOX_NV' => '0x90A1',
  'GL_PATH_FILL_COVER_MODE_NV' => '0x9082',
  'GL_PATH_FILL_MASK_NV' => '0x9081',
  'GL_PATH_FILL_MODE_NV' => '0x9080',
  'GL_PATH_FORMAT_PS_NV' => '0x9071',
  'GL_PATH_FORMAT_SVG_NV' => '0x9070',
  'GL_PATH_INITIAL_DASH_CAP_NV' => '0x907C',
  'GL_PATH_INITIAL_END_CAP_NV' => '0x9077',
  'GL_PATH_JOIN_STYLE_NV' => '0x9079',
  'GL_PATH_MITER_LIMIT_NV' => '0x907A',
  'GL_PATH_OBJECT_BOUNDING_BOX_NV' => '0x908A',
  'GL_PATH_STROKE_BOUNDING_BOX_NV' => '0x90A2',
  'GL_PATH_STROKE_COVER_MODE_NV' => '0x9083',
  'GL_PATH_STROKE_MASK_NV' => '0x9084',
  'GL_PATH_STROKE_WIDTH_NV' => '0x9075',
  'GL_PATH_TERMINAL_DASH_CAP_NV' => '0x907D',
  'GL_PATH_TERMINAL_END_CAP_NV' => '0x9078',
  'GL_PERFQUERY_DONOT_FLUSH_INTEL' => '0x83F9',
  'GL_PERFQUERY_FLUSH_INTEL' => '0x83FA',
  'GL_PERFQUERY_GLOBAL_CONTEXT_INTEL' => '0x00000001',
  'GL_PERFQUERY_SINGLE_CONTEXT_INTEL' => '0x00000000',
  'GL_PERFQUERY_WAIT_INTEL' => '0x83FB',
  'GL_PERSPECTIVE_CORRECTION_HINT' => '0x0C50',
  'GL_PERTURB_EXT' => '0x85AE',
  'GL_PER_GPU_STORAGE_BIT_NV' => '0x0800',
  'GL_PHONG_HINT_WIN' => '0x80EB',
  'GL_PIXEL_BUFFER_BARRIER_BIT' => '0x00000080',
  'GL_PIXEL_BUFFER_BARRIER_BIT_EXT' => '0x00000080',
  'GL_PIXEL_COUNT_AVAILABLE_NV' => '0x8867',
  'GL_PIXEL_COUNT_NV' => '0x8866',
  'GL_PIXEL_CUBIC_WEIGHT_EXT' => '0x8333',
  'GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS' => '0x8355',
  'GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS' => '0x8354',
  'GL_PIXEL_MAG_FILTER_EXT' => '0x8331',
  'GL_PIXEL_MAP_A_TO_A' => '0x0C79',
  'GL_PIXEL_MAP_A_TO_A_SIZE' => '0x0CB9',
  'GL_PIXEL_MAP_B_TO_B' => '0x0C78',
  'GL_PIXEL_MAP_B_TO_B_SIZE' => '0x0CB8',
  'GL_PIXEL_MAP_G_TO_G' => '0x0C77',
  'GL_PIXEL_MAP_G_TO_G_SIZE' => '0x0CB7',
  'GL_PIXEL_MAP_I_TO_A' => '0x0C75',
  'GL_PIXEL_MAP_I_TO_A_SIZE' => '0x0CB5',
  'GL_PIXEL_MAP_I_TO_B' => '0x0C74',
  'GL_PIXEL_MAP_I_TO_B_SIZE' => '0x0CB4',
  'GL_PIXEL_MAP_I_TO_G' => '0x0C73',
  'GL_PIXEL_MAP_I_TO_G_SIZE' => '0x0CB3',
  'GL_PIXEL_MAP_I_TO_I' => '0x0C70',
  'GL_PIXEL_MAP_I_TO_I_SIZE' => '0x0CB0',
  'GL_PIXEL_MAP_I_TO_R' => '0x0C72',
  'GL_PIXEL_MAP_I_TO_R_SIZE' => '0x0CB2',
  'GL_PIXEL_MAP_R_TO_R' => '0x0C76',
  'GL_PIXEL_MAP_R_TO_R_SIZE' => '0x0CB6',
  'GL_PIXEL_MAP_S_TO_S' => '0x0C71',
  'GL_PIXEL_MAP_S_TO_S_SIZE' => '0x0CB1',
  'GL_PIXEL_MIN_FILTER_EXT' => '0x8332',
  'GL_PIXEL_MODE_BIT' => '0x00000020',
  'GL_PIXEL_PACK_BUFFER' => '0x88EB',
  'GL_PIXEL_PACK_BUFFER_BINDING' => '0x88ED',
  'GL_PIXEL_SUBSAMPLE_2424_SGIX' => '0x85A3',
  'GL_PIXEL_SUBSAMPLE_4242_SGIX' => '0x85A4',
  'GL_PIXEL_SUBSAMPLE_4444_SGIX' => '0x85A2',
  'GL_PIXEL_TEXTURE_SGIS' => '0x8353',
  'GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX' => '0x8189',
  'GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX' => '0x818A',
  'GL_PIXEL_TEX_GEN_MODE_SGIX' => '0x832B',
  'GL_PIXEL_TEX_GEN_Q_CEILING_SGIX' => '0x8184',
  'GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX' => '0x8186',
  'GL_PIXEL_TEX_GEN_Q_ROUND_SGIX' => '0x8185',
  'GL_PIXEL_TEX_GEN_SGIX' => '0x8139',
  'GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX' => '0x813E',
  'GL_PIXEL_TILE_CACHE_INCREMENT_SGIX' => '0x813F',
  'GL_PIXEL_TILE_CACHE_SIZE_SGIX' => '0x8145',
  'GL_PIXEL_TILE_GRID_DEPTH_SGIX' => '0x8144',
  'GL_PIXEL_TILE_GRID_HEIGHT_SGIX' => '0x8143',
  'GL_PIXEL_TILE_GRID_WIDTH_SGIX' => '0x8142',
  'GL_PIXEL_TILE_HEIGHT_SGIX' => '0x8141',
  'GL_PIXEL_TILE_WIDTH_SGIX' => '0x8140',
  'GL_PIXEL_TRANSFORM_2D_EXT' => '0x8330',
  'GL_PIXEL_UNPACK_BUFFER' => '0x88EC',
  'GL_PIXEL_UNPACK_BUFFER_BINDING' => '0x88EF',
  'GL_PN_TRIANGLES_NORMAL_MODE_ATI' => '0x87F3',
  'GL_PN_TRIANGLES_POINT_MODE_ATI' => '0x87F2',
  'GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI' => '0x87F4',
  'GL_POINT' => '0x1B00',
  'GL_POINTS' => '0x0000',
  'GL_POINT_BIT' => '0x00000002',
  'GL_POINT_DISTANCE_ATTENUATION' => '0x8129',
  'GL_POINT_DISTANCE_ATTENUATION_ARB' => '0x8129',
  'GL_POINT_FADE_THRESHOLD_SIZE' => '0x8128',
  'GL_POINT_FADE_THRESHOLD_SIZE_ARB' => '0x8128',
  'GL_POINT_FADE_THRESHOLD_SIZE_EXT' => '0x8128',
  'GL_POINT_FADE_THRESHOLD_SIZE_SGIS' => '0x8128',
  'GL_POINT_SIZE' => '0x0B11',
  'GL_POINT_SIZE_GRANULARITY' => '0x0B13',
  'GL_POINT_SIZE_MAX' => '0x8127',
  'GL_POINT_SIZE_MAX_ARB' => '0x8127',
  'GL_POINT_SIZE_MAX_EXT' => '0x8127',
  'GL_POINT_SIZE_MAX_SGIS' => '0x8127',
  'GL_POINT_SIZE_MIN' => '0x8126',
  'GL_POINT_SIZE_MIN_ARB' => '0x8126',
  'GL_POINT_SIZE_MIN_EXT' => '0x8126',
  'GL_POINT_SIZE_MIN_SGIS' => '0x8126',
  'GL_POINT_SIZE_RANGE' => '0x0B12',
  'GL_POINT_SMOOTH' => '0x0B10',
  'GL_POINT_SMOOTH_HINT' => '0x0C51',
  'GL_POINT_SPRITE' => '0x8861',
  'GL_POINT_TOKEN' => '0x0701',
  'GL_POLYGON' => '0x0009',
  'GL_POLYGON_BIT' => '0x00000008',
  'GL_POLYGON_MODE' => '0x0B40',
  'GL_POLYGON_OFFSET_BIAS_EXT' => '0x8039',
  'GL_POLYGON_OFFSET_COMMAND_NV' => '0x000E',
  'GL_POLYGON_OFFSET_FACTOR' => '0x8038',
  'GL_POLYGON_OFFSET_FILL' => '0x8037',
  'GL_POLYGON_OFFSET_LINE' => '0x2A02',
  'GL_POLYGON_OFFSET_POINT' => '0x2A01',
  'GL_POLYGON_OFFSET_UNITS' => '0x2A00',
  'GL_POLYGON_SMOOTH' => '0x0B41',
  'GL_POLYGON_SMOOTH_HINT' => '0x0C53',
  'GL_POLYGON_STIPPLE' => '0x0B42',
  'GL_POLYGON_STIPPLE_BIT' => '0x00000010',
  'GL_POLYGON_TOKEN' => '0x0703',
  'GL_POSITION' => '0x1203',
  'GL_POST_COLOR_MATRIX_ALPHA_BIAS' => '0x80BB',
  'GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI' => '0x80BB',
  'GL_POST_COLOR_MATRIX_ALPHA_SCALE' => '0x80B7',
  'GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI' => '0x80B7',
  'GL_POST_COLOR_MATRIX_BLUE_BIAS' => '0x80BA',
  'GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI' => '0x80BA',
  'GL_POST_COLOR_MATRIX_BLUE_SCALE' => '0x80B6',
  'GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI' => '0x80B6',
  'GL_POST_COLOR_MATRIX_COLOR_TABLE' => '0x80D2',
  'GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI' => '0x80D2',
  'GL_POST_COLOR_MATRIX_GREEN_BIAS' => '0x80B9',
  'GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI' => '0x80B9',
  'GL_POST_COLOR_MATRIX_GREEN_SCALE' => '0x80B5',
  'GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI' => '0x80B5',
  'GL_POST_COLOR_MATRIX_RED_BIAS' => '0x80B8',
  'GL_POST_COLOR_MATRIX_RED_BIAS_SGI' => '0x80B8',
  'GL_POST_COLOR_MATRIX_RED_SCALE' => '0x80B4',
  'GL_POST_COLOR_MATRIX_RED_SCALE_SGI' => '0x80B4',
  'GL_POST_CONVOLUTION_ALPHA_BIAS' => '0x8023',
  'GL_POST_CONVOLUTION_ALPHA_BIAS_EXT' => '0x8023',
  'GL_POST_CONVOLUTION_ALPHA_SCALE' => '0x801F',
  'GL_POST_CONVOLUTION_ALPHA_SCALE_EXT' => '0x801F',
  'GL_POST_CONVOLUTION_BLUE_BIAS' => '0x8022',
  'GL_POST_CONVOLUTION_BLUE_BIAS_EXT' => '0x8022',
  'GL_POST_CONVOLUTION_BLUE_SCALE' => '0x801E',
  'GL_POST_CONVOLUTION_BLUE_SCALE_EXT' => '0x801E',
  'GL_POST_CONVOLUTION_COLOR_TABLE' => '0x80D1',
  'GL_POST_CONVOLUTION_COLOR_TABLE_SGI' => '0x80D1',
  'GL_POST_CONVOLUTION_GREEN_BIAS' => '0x8021',
  'GL_POST_CONVOLUTION_GREEN_BIAS_EXT' => '0x8021',
  'GL_POST_CONVOLUTION_GREEN_SCALE' => '0x801D',
  'GL_POST_CONVOLUTION_GREEN_SCALE_EXT' => '0x801D',
  'GL_POST_CONVOLUTION_RED_BIAS' => '0x8020',
  'GL_POST_CONVOLUTION_RED_BIAS_EXT' => '0x8020',
  'GL_POST_CONVOLUTION_RED_SCALE' => '0x801C',
  'GL_POST_CONVOLUTION_RED_SCALE_EXT' => '0x801C',
  'GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX' => '0x817B',
  'GL_POST_TEXTURE_FILTER_BIAS_SGIX' => '0x8179',
  'GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX' => '0x817C',
  'GL_POST_TEXTURE_FILTER_SCALE_SGIX' => '0x817A',
  'GL_PREFER_DOUBLEBUFFER_HINT_PGI' => '0x1A1F8',
  'GL_PRESERVE_ATI' => '0x8762',
  'GL_PREVIOUS' => '0x8578',
  'GL_PREVIOUS_ARB' => '0x8578',
  'GL_PREVIOUS_EXT' => '0x8578',
  'GL_PRIMARY_COLOR' => '0x8577',
  'GL_PRIMARY_COLOR_ARB' => '0x8577',
  'GL_PRIMARY_COLOR_EXT' => '0x8577',
  'GL_PRIMARY_COLOR_NV' => '0x852C',
  'GL_PRIMITIVES_GENERATED' => '0x8C87',
  'GL_PRIMITIVES_SUBMITTED' => '0x82EF',
  'GL_PRIMITIVE_RESTART' => '0x8F9D',
  'GL_PRIMITIVE_RESTART_FIXED_INDEX' => '0x8D69',
  'GL_PRIMITIVE_RESTART_INDEX' => '0x8F9E',
  'GL_PROGRAM' => '0x82E2',
  'GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB' => '0x9341',
  'GL_PROGRAM_BINARY_FORMATS' => '0x87FF',
  'GL_PROGRAM_BINARY_LENGTH' => '0x8741',
  'GL_PROGRAM_BINARY_RETRIEVABLE_HINT' => '0x8257',
  'GL_PROGRAM_FORMAT_ASCII_ARB' => '0x8875',
  'GL_PROGRAM_INPUT' => '0x92E3',
  'GL_PROGRAM_OBJECT_ARB' => '0x8B40',
  'GL_PROGRAM_OBJECT_EXT' => '0x8B40',
  'GL_PROGRAM_OUTPUT' => '0x92E4',
  'GL_PROGRAM_PARAMETER_NV' => '0x8644',
  'GL_PROGRAM_PIPELINE' => '0x82E4',
  'GL_PROGRAM_PIPELINE_BINDING' => '0x825A',
  'GL_PROGRAM_POINT_SIZE' => '0x8642',
  'GL_PROGRAM_SEPARABLE' => '0x8258',
  'GL_PROGRAM_STRING_ARB' => '0x8628',
  'GL_PROJECTION' => '0x1701',
  'GL_PROJECTION_MATRIX' => '0x0BA7',
  'GL_PROJECTION_STACK_DEPTH' => '0x0BA4',
  'GL_PROTECTED_MEMORY_OBJECT_EXT' => '0x959B',
  'GL_PROVOKING_VERTEX' => '0x8E4F',
  'GL_PROXY_COLOR_TABLE' => '0x80D3',
  'GL_PROXY_COLOR_TABLE_SGI' => '0x80D3',
  'GL_PROXY_HISTOGRAM' => '0x8025',
  'GL_PROXY_HISTOGRAM_EXT' => '0x8025',
  'GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE' => '0x80D5',
  'GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI' => '0x80D5',
  'GL_PROXY_POST_CONVOLUTION_COLOR_TABLE' => '0x80D4',
  'GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI' => '0x80D4',
  'GL_PROXY_TEXTURE_1D' => '0x8063',
  'GL_PROXY_TEXTURE_1D_ARRAY' => '0x8C19',
  'GL_PROXY_TEXTURE_1D_ARRAY_EXT' => '0x8C19',
  'GL_PROXY_TEXTURE_1D_EXT' => '0x8063',
  'GL_PROXY_TEXTURE_2D' => '0x8064',
  'GL_PROXY_TEXTURE_2D_ARRAY' => '0x8C1B',
  'GL_PROXY_TEXTURE_2D_ARRAY_EXT' => '0x8C1B',
  'GL_PROXY_TEXTURE_2D_EXT' => '0x8064',
  'GL_PROXY_TEXTURE_2D_MULTISAMPLE' => '0x9101',
  'GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY' => '0x9103',
  'GL_PROXY_TEXTURE_3D' => '0x8070',
  'GL_PROXY_TEXTURE_3D_EXT' => '0x8070',
  'GL_PROXY_TEXTURE_4D_SGIS' => '0x8135',
  'GL_PROXY_TEXTURE_COLOR_TABLE_SGI' => '0x80BD',
  'GL_PROXY_TEXTURE_CUBE_MAP' => '0x851B',
  'GL_PROXY_TEXTURE_CUBE_MAP_ARB' => '0x851B',
  'GL_PROXY_TEXTURE_CUBE_MAP_ARRAY' => '0x900B',
  'GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB' => '0x900B',
  'GL_PROXY_TEXTURE_CUBE_MAP_EXT' => '0x851B',
  'GL_PROXY_TEXTURE_RECTANGLE' => '0x84F7',
  'GL_PROXY_TEXTURE_RECTANGLE_ARB' => '0x84F7',
  'GL_PROXY_TEXTURE_RECTANGLE_NV' => '0x84F7',
  'GL_Q' => '0x2003',
  'GL_QUADRATIC_ATTENUATION' => '0x1209',
  'GL_QUADRATIC_CURVE_TO_NV' => '0x0A',
  'GL_QUADS' => '0x0007',
  'GL_QUADS_EXT' => '0x0007',
  'GL_QUAD_ALPHA4_SGIS' => '0x811E',
  'GL_QUAD_ALPHA8_SGIS' => '0x811F',
  'GL_QUAD_INTENSITY4_SGIS' => '0x8122',
  'GL_QUAD_INTENSITY8_SGIS' => '0x8123',
  'GL_QUAD_LUMINANCE4_SGIS' => '0x8120',
  'GL_QUAD_LUMINANCE8_SGIS' => '0x8121',
  'GL_QUAD_STRIP' => '0x0008',
  'GL_QUAD_TEXTURE_SELECT_SGIS' => '0x8125',
  'GL_QUARTER_BIT_ATI' => '0x00000010',
  'GL_QUERY' => '0x82E3',
  'GL_QUERY_ALL_EVENT_BITS_AMD' => '0xFFFFFFFF',
  'GL_QUERY_BUFFER' => '0x9192',
  'GL_QUERY_BUFFER_BARRIER_BIT' => '0x00008000',
  'GL_QUERY_BY_REGION_NO_WAIT' => '0x8E16',
  'GL_QUERY_BY_REGION_NO_WAIT_INVERTED' => '0x8E1A',
  'GL_QUERY_BY_REGION_WAIT' => '0x8E15',
  'GL_QUERY_BY_REGION_WAIT_INVERTED' => '0x8E19',
  'GL_QUERY_COUNTER_BITS' => '0x8864',
  'GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD' => '0x00000008',
  'GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD' => '0x00000002',
  'GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD' => '0x00000001',
  'GL_QUERY_NO_WAIT' => '0x8E14',
  'GL_QUERY_NO_WAIT_INVERTED' => '0x8E18',
  'GL_QUERY_RESULT' => '0x8866',
  'GL_QUERY_RESULT_AVAILABLE' => '0x8867',
  'GL_QUERY_RESULT_NO_WAIT' => '0x9194',
  'GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD' => '0x00000004',
  'GL_QUERY_TARGET' => '0x82EA',
  'GL_QUERY_WAIT' => '0x8E13',
  'GL_QUERY_WAIT_INVERTED' => '0x8E17',
  'GL_R' => '0x2002',
  'GL_R11F_G11F_B10F' => '0x8C3A',
  'GL_R11F_G11F_B10F_APPLE' => '0x8C3A',
  'GL_R11F_G11F_B10F_EXT' => '0x8C3A',
  'GL_R16' => '0x822A',
  'GL_R16F' => '0x822D',
  'GL_R16F_EXT' => '0x822D',
  'GL_R16I' => '0x8233',
  'GL_R16UI' => '0x8234',
  'GL_R16_EXT' => '0x822A',
  'GL_R16_SNORM' => '0x8F98',
  'GL_R16_SNORM_EXT' => '0x8F98',
  'GL_R32F' => '0x822E',
  'GL_R32F_EXT' => '0x822E',
  'GL_R32I' => '0x8235',
  'GL_R32UI' => '0x8236',
  'GL_R3_G3_B2' => '0x2A10',
  'GL_R8' => '0x8229',
  'GL_R8I' => '0x8231',
  'GL_R8UI' => '0x8232',
  'GL_R8_EXT' => '0x8229',
  'GL_R8_SNORM' => '0x8F94',
  'GL_RASTERIZER_DISCARD' => '0x8C89',
  'GL_READ_BUFFER' => '0x0C02',
  'GL_READ_BUFFER_EXT' => '0x0C02',
  'GL_READ_BUFFER_NV' => '0x0C02',
  'GL_READ_FRAMEBUFFER' => '0x8CA8',
  'GL_READ_FRAMEBUFFER_BINDING' => '0x8CAA',
  'GL_READ_ONLY' => '0x88B8',
  'GL_READ_PIXELS' => '0x828C',
  'GL_READ_PIXELS_FORMAT' => '0x828D',
  'GL_READ_PIXELS_TYPE' => '0x828E',
  'GL_READ_PIXEL_DATA_RANGE_NV' => '0x8879',
  'GL_READ_WRITE' => '0x88BA',
  'GL_RECLAIM_MEMORY_HINT_PGI' => '0x1A1FE',
  'GL_RECT_NV' => '0xF6',
  'GL_RED' => '0x1903',
  'GL_REDUCE' => '0x8016',
  'GL_REDUCE_EXT' => '0x8016',
  'GL_RED_BIAS' => '0x0D15',
  'GL_RED_BITS' => '0x0D52',
  'GL_RED_BIT_ATI' => '0x00000001',
  'GL_RED_EXT' => '0x1903',
  'GL_RED_INTEGER' => '0x8D94',
  'GL_RED_SCALE' => '0x0D14',
  'GL_REFERENCED_BY_COMPUTE_SHADER' => '0x930B',
  'GL_REFERENCED_BY_FRAGMENT_SHADER' => '0x930A',
  'GL_REFERENCED_BY_GEOMETRY_SHADER' => '0x9309',
  'GL_REFERENCED_BY_TESS_CONTROL_SHADER' => '0x9307',
  'GL_REFERENCED_BY_TESS_EVALUATION_SHADER' => '0x9308',
  'GL_REFERENCED_BY_VERTEX_SHADER' => '0x9306',
  'GL_REFERENCE_PLANE_EQUATION_SGIX' => '0x817E',
  'GL_REFERENCE_PLANE_SGIX' => '0x817D',
  'GL_REFLECTION_MAP' => '0x8512',
  'GL_REFLECTION_MAP_ARB' => '0x8512',
  'GL_REFLECTION_MAP_EXT' => '0x8512',
  'GL_REFLECTION_MAP_NV' => '0x8512',
  'GL_REG_0_ATI' => '0x8921',
  'GL_REG_10_ATI' => '0x892B',
  'GL_REG_11_ATI' => '0x892C',
  'GL_REG_12_ATI' => '0x892D',
  'GL_REG_13_ATI' => '0x892E',
  'GL_REG_14_ATI' => '0x892F',
  'GL_REG_15_ATI' => '0x8930',
  'GL_REG_16_ATI' => '0x8931',
  'GL_REG_17_ATI' => '0x8932',
  'GL_REG_18_ATI' => '0x8933',
  'GL_REG_19_ATI' => '0x8934',
  'GL_REG_1_ATI' => '0x8922',
  'GL_REG_20_ATI' => '0x8935',
  'GL_REG_21_ATI' => '0x8936',
  'GL_REG_22_ATI' => '0x8937',
  'GL_REG_23_ATI' => '0x8938',
  'GL_REG_24_ATI' => '0x8939',
  'GL_REG_25_ATI' => '0x893A',
  'GL_REG_26_ATI' => '0x893B',
  'GL_REG_27_ATI' => '0x893C',
  'GL_REG_28_ATI' => '0x893D',
  'GL_REG_29_ATI' => '0x893E',
  'GL_REG_2_ATI' => '0x8923',
  'GL_REG_30_ATI' => '0x893F',
  'GL_REG_31_ATI' => '0x8940',
  'GL_REG_3_ATI' => '0x8924',
  'GL_REG_4_ATI' => '0x8925',
  'GL_REG_5_ATI' => '0x8926',
  'GL_REG_6_ATI' => '0x8927',
  'GL_REG_7_ATI' => '0x8928',
  'GL_REG_8_ATI' => '0x8929',
  'GL_REG_9_ATI' => '0x892A',
  'GL_RELATIVE_ARC_TO_NV' => '0xFF',
  'GL_RELATIVE_CONIC_CURVE_TO_NV' => '0x1B',
  'GL_RELATIVE_CUBIC_CURVE_TO_NV' => '0x0D',
  'GL_RELATIVE_HORIZONTAL_LINE_TO_NV' => '0x07',
  'GL_RELATIVE_LARGE_CCW_ARC_TO_NV' => '0x17',
  'GL_RELATIVE_LARGE_CW_ARC_TO_NV' => '0x19',
  'GL_RELATIVE_LINE_TO_NV' => '0x05',
  'GL_RELATIVE_MOVE_TO_NV' => '0x03',
  'GL_RELATIVE_QUADRATIC_CURVE_TO_NV' => '0x0B',
  'GL_RELATIVE_RECT_NV' => '0xF7',
  'GL_RELATIVE_ROUNDED_RECT2_NV' => '0xEB',
  'GL_RELATIVE_ROUNDED_RECT4_NV' => '0xED',
  'GL_RELATIVE_ROUNDED_RECT8_NV' => '0xEF',
  'GL_RELATIVE_ROUNDED_RECT_NV' => '0xE9',
  'GL_RELATIVE_SMALL_CCW_ARC_TO_NV' => '0x13',
  'GL_RELATIVE_SMALL_CW_ARC_TO_NV' => '0x15',
  'GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV' => '0x11',
  'GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV' => '0x0F',
  'GL_RELATIVE_VERTICAL_LINE_TO_NV' => '0x09',
  'GL_RENDER' => '0x1C00',
  'GL_RENDERBUFFER' => '0x8D41',
  'GL_RENDERBUFFER_ALPHA_SIZE' => '0x8D53',
  'GL_RENDERBUFFER_ALPHA_SIZE_EXT' => '0x8D53',
  'GL_RENDERBUFFER_BINDING' => '0x8CA7',
  'GL_RENDERBUFFER_BLUE_SIZE' => '0x8D52',
  'GL_RENDERBUFFER_BLUE_SIZE_EXT' => '0x8D52',
  'GL_RENDERBUFFER_COLOR_SAMPLES_NV' => '0x8E10',
  'GL_RENDERBUFFER_COVERAGE_SAMPLES_NV' => '0x8CAB',
  'GL_RENDERBUFFER_DEPTH_SIZE' => '0x8D54',
  'GL_RENDERBUFFER_DEPTH_SIZE_EXT' => '0x8D54',
  'GL_RENDERBUFFER_GREEN_SIZE' => '0x8D51',
  'GL_RENDERBUFFER_GREEN_SIZE_EXT' => '0x8D51',
  'GL_RENDERBUFFER_HEIGHT' => '0x8D43',
  'GL_RENDERBUFFER_HEIGHT_EXT' => '0x8D43',
  'GL_RENDERBUFFER_INTERNAL_FORMAT' => '0x8D44',
  'GL_RENDERBUFFER_INTERNAL_FORMAT_EXT' => '0x8D44',
  'GL_RENDERBUFFER_RED_SIZE' => '0x8D50',
  'GL_RENDERBUFFER_RED_SIZE_EXT' => '0x8D50',
  'GL_RENDERBUFFER_SAMPLES' => '0x8CAB',
  'GL_RENDERBUFFER_SAMPLES_ANGLE' => '0x8CAB',
  'GL_RENDERBUFFER_SAMPLES_APPLE' => '0x8CAB',
  'GL_RENDERBUFFER_SAMPLES_EXT' => '0x8CAB',
  'GL_RENDERBUFFER_SAMPLES_IMG' => '0x9133',
  'GL_RENDERBUFFER_SAMPLES_NV' => '0x8CAB',
  'GL_RENDERBUFFER_STENCIL_SIZE' => '0x8D55',
  'GL_RENDERBUFFER_STENCIL_SIZE_EXT' => '0x8D55',
  'GL_RENDERBUFFER_STORAGE_SAMPLES_AMD' => '0x91B2',
  'GL_RENDERBUFFER_WIDTH' => '0x8D42',
  'GL_RENDERBUFFER_WIDTH_EXT' => '0x8D42',
  'GL_RENDERER' => '0x1F01',
  'GL_RENDER_MODE' => '0x0C40',
  'GL_REPEAT' => '0x2901',
  'GL_REPLACE' => '0x1E01',
  'GL_REPLACE_EXT' => '0x8062',
  'GL_REPLACE_MIDDLE_SUN' => '0x0002',
  'GL_REPLACE_OLDEST_SUN' => '0x0003',
  'GL_RESAMPLE_DECIMATE_SGIX' => '0x8430',
  'GL_RESAMPLE_REPLICATE_SGIX' => '0x8433',
  'GL_RESAMPLE_ZERO_FILL_SGIX' => '0x8434',
  'GL_RESCALE_NORMAL_EXT' => '0x803A',
  'GL_RESTART_PATH_NV' => '0xF0',
  'GL_RESTART_SUN' => '0x0001',
  'GL_RETURN' => '0x0102',
  'GL_RG' => '0x8227',
  'GL_RG16' => '0x822C',
  'GL_RG16F' => '0x822F',
  'GL_RG16F_EXT' => '0x822F',
  'GL_RG16I' => '0x8239',
  'GL_RG16UI' => '0x823A',
  'GL_RG16_EXT' => '0x822C',
  'GL_RG16_SNORM' => '0x8F99',
  'GL_RG16_SNORM_EXT' => '0x8F99',
  'GL_RG32F' => '0x8230',
  'GL_RG32F_EXT' => '0x8230',
  'GL_RG32I' => '0x823B',
  'GL_RG32UI' => '0x823C',
  'GL_RG8' => '0x822B',
  'GL_RG8I' => '0x8237',
  'GL_RG8UI' => '0x8238',
  'GL_RG8_EXT' => '0x822B',
  'GL_RG8_SNORM' => '0x8F95',
  'GL_RGB' => '0x1907',
  'GL_RGB10' => '0x8052',
  'GL_RGB10_A2' => '0x8059',
  'GL_RGB10_A2UI' => '0x906F',
  'GL_RGB10_A2_EXT' => '0x8059',
  'GL_RGB10_EXT' => '0x8052',
  'GL_RGB12' => '0x8053',
  'GL_RGB12_EXT' => '0x8053',
  'GL_RGB16' => '0x8054',
  'GL_RGB16F' => '0x881B',
  'GL_RGB16F_ARB' => '0x881B',
  'GL_RGB16F_EXT' => '0x881B',
  'GL_RGB16I' => '0x8D89',
  'GL_RGB16I_EXT' => '0x8D89',
  'GL_RGB16UI' => '0x8D77',
  'GL_RGB16UI_EXT' => '0x8D77',
  'GL_RGB16_EXT' => '0x8054',
  'GL_RGB16_SNORM' => '0x8F9A',
  'GL_RGB16_SNORM_EXT' => '0x8F9A',
  'GL_RGB2_EXT' => '0x804E',
  'GL_RGB32F' => '0x8815',
  'GL_RGB32F_ARB' => '0x8815',
  'GL_RGB32F_EXT' => '0x8815',
  'GL_RGB32I' => '0x8D83',
  'GL_RGB32I_EXT' => '0x8D83',
  'GL_RGB32UI' => '0x8D71',
  'GL_RGB32UI_EXT' => '0x8D71',
  'GL_RGB4' => '0x804F',
  'GL_RGB4_EXT' => '0x804F',
  'GL_RGB5' => '0x8050',
  'GL_RGB565' => '0x8D62',
  'GL_RGB5_A1' => '0x8057',
  'GL_RGB5_A1_EXT' => '0x8057',
  'GL_RGB5_EXT' => '0x8050',
  'GL_RGB8' => '0x8051',
  'GL_RGB8I' => '0x8D8F',
  'GL_RGB8I_EXT' => '0x8D8F',
  'GL_RGB8UI' => '0x8D7D',
  'GL_RGB8UI_EXT' => '0x8D7D',
  'GL_RGB8_EXT' => '0x8051',
  'GL_RGB8_SNORM' => '0x8F96',
  'GL_RGB9_E5' => '0x8C3D',
  'GL_RGB9_E5_APPLE' => '0x8C3D',
  'GL_RGB9_E5_EXT' => '0x8C3D',
  'GL_RGBA' => '0x1908',
  'GL_RGBA12' => '0x805A',
  'GL_RGBA12_EXT' => '0x805A',
  'GL_RGBA16' => '0x805B',
  'GL_RGBA16F' => '0x881A',
  'GL_RGBA16F_ARB' => '0x881A',
  'GL_RGBA16F_EXT' => '0x881A',
  'GL_RGBA16I' => '0x8D88',
  'GL_RGBA16I_EXT' => '0x8D88',
  'GL_RGBA16UI' => '0x8D76',
  'GL_RGBA16UI_EXT' => '0x8D76',
  'GL_RGBA16_EXT' => '0x805B',
  'GL_RGBA16_SNORM' => '0x8F9B',
  'GL_RGBA16_SNORM_EXT' => '0x8F9B',
  'GL_RGBA2' => '0x8055',
  'GL_RGBA2_EXT' => '0x8055',
  'GL_RGBA32F' => '0x8814',
  'GL_RGBA32F_ARB' => '0x8814',
  'GL_RGBA32F_EXT' => '0x8814',
  'GL_RGBA32I' => '0x8D82',
  'GL_RGBA32I_EXT' => '0x8D82',
  'GL_RGBA32UI' => '0x8D70',
  'GL_RGBA32UI_EXT' => '0x8D70',
  'GL_RGBA4' => '0x8056',
  'GL_RGBA4_EXT' => '0x8056',
  'GL_RGBA8' => '0x8058',
  'GL_RGBA8I' => '0x8D8E',
  'GL_RGBA8I_EXT' => '0x8D8E',
  'GL_RGBA8UI' => '0x8D7C',
  'GL_RGBA8UI_EXT' => '0x8D7C',
  'GL_RGBA8_EXT' => '0x8058',
  'GL_RGBA8_SNORM' => '0x8F97',
  'GL_RGBA_INTEGER' => '0x8D99',
  'GL_RGBA_MODE' => '0x0C31',
  'GL_RGB_INTEGER' => '0x8D98',
  'GL_RGB_SCALE' => '0x8573',
  'GL_RGB_SCALE_ARB' => '0x8573',
  'GL_RGB_SCALE_EXT' => '0x8573',
  'GL_RG_INTEGER' => '0x8228',
  'GL_RIGHT' => '0x0407',
  'GL_ROUNDED_RECT2_NV' => '0xEA',
  'GL_ROUNDED_RECT4_NV' => '0xEC',
  'GL_ROUNDED_RECT8_NV' => '0xEE',
  'GL_ROUNDED_RECT_NV' => '0xE8',
  'GL_S' => '0x2000',
  'GL_SAMPLER' => '0x82E6',
  'GL_SAMPLER_1D' => '0x8B5D',
  'GL_SAMPLER_1D_ARB' => '0x8B5D',
  'GL_SAMPLER_1D_ARRAY' => '0x8DC0',
  'GL_SAMPLER_1D_ARRAY_SHADOW' => '0x8DC3',
  'GL_SAMPLER_1D_SHADOW' => '0x8B61',
  'GL_SAMPLER_1D_SHADOW_ARB' => '0x8B61',
  'GL_SAMPLER_2D' => '0x8B5E',
  'GL_SAMPLER_2D_ARB' => '0x8B5E',
  'GL_SAMPLER_2D_ARRAY' => '0x8DC1',
  'GL_SAMPLER_2D_ARRAY_SHADOW' => '0x8DC4',
  'GL_SAMPLER_2D_MULTISAMPLE' => '0x9108',
  'GL_SAMPLER_2D_MULTISAMPLE_ARRAY' => '0x910B',
  'GL_SAMPLER_2D_RECT' => '0x8B63',
  'GL_SAMPLER_2D_RECT_ARB' => '0x8B63',
  'GL_SAMPLER_2D_RECT_SHADOW' => '0x8B64',
  'GL_SAMPLER_2D_RECT_SHADOW_ARB' => '0x8B64',
  'GL_SAMPLER_2D_SHADOW' => '0x8B62',
  'GL_SAMPLER_2D_SHADOW_ARB' => '0x8B62',
  'GL_SAMPLER_2D_SHADOW_EXT' => '0x8B62',
  'GL_SAMPLER_3D' => '0x8B5F',
  'GL_SAMPLER_3D_ARB' => '0x8B5F',
  'GL_SAMPLER_BINDING' => '0x8919',
  'GL_SAMPLER_BUFFER' => '0x8DC2',
  'GL_SAMPLER_CUBE' => '0x8B60',
  'GL_SAMPLER_CUBE_ARB' => '0x8B60',
  'GL_SAMPLER_CUBE_MAP_ARRAY' => '0x900C',
  'GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW' => '0x900D',
  'GL_SAMPLER_CUBE_SHADOW' => '0x8DC5',
  'GL_SAMPLES' => '0x80A9',
  'GL_SAMPLES_PASSED' => '0x8914',
  'GL_SAMPLES_SGIS' => '0x80A9',
  'GL_SAMPLE_ALPHA_TO_COVERAGE' => '0x809E',
  'GL_SAMPLE_ALPHA_TO_MASK_SGIS' => '0x809E',
  'GL_SAMPLE_ALPHA_TO_ONE' => '0x809F',
  'GL_SAMPLE_ALPHA_TO_ONE_SGIS' => '0x809F',
  'GL_SAMPLE_BUFFERS' => '0x80A8',
  'GL_SAMPLE_BUFFERS_SGIS' => '0x80A8',
  'GL_SAMPLE_COVERAGE' => '0x80A0',
  'GL_SAMPLE_COVERAGE_INVERT' => '0x80AB',
  'GL_SAMPLE_COVERAGE_VALUE' => '0x80AA',
  'GL_SAMPLE_LOCATION_ARB' => '0x8E50',
  'GL_SAMPLE_MASK' => '0x8E51',
  'GL_SAMPLE_MASK_INVERT_SGIS' => '0x80AB',
  'GL_SAMPLE_MASK_SGIS' => '0x80A0',
  'GL_SAMPLE_MASK_VALUE_SGIS' => '0x80AA',
  'GL_SAMPLE_PATTERN_SGIS' => '0x80AC',
  'GL_SAMPLE_POSITION' => '0x8E50',
  'GL_SAMPLE_SHADING' => '0x8C36',
  'GL_SATURATE_BIT_ATI' => '0x00000040',
  'GL_SCALAR_EXT' => '0x87BE',
  'GL_SCALEBIAS_HINT_SGIX' => '0x8322',
  'GL_SCALE_BY_FOUR_NV' => '0x853F',
  'GL_SCALE_BY_ONE_HALF_NV' => '0x8540',
  'GL_SCALE_BY_TWO_NV' => '0x853E',
  'GL_SCISSOR_BIT' => '0x00080000',
  'GL_SCISSOR_BOX' => '0x0C10',
  'GL_SCISSOR_COMMAND_NV' => '0x0011',
  'GL_SCISSOR_TEST' => '0x0C11',
  'GL_SECONDARY_COLOR_NV' => '0x852D',
  'GL_SECONDARY_INTERPOLATOR_ATI' => '0x896D',
  'GL_SELECT' => '0x1C02',
  'GL_SELECTION_BUFFER_POINTER' => '0x0DF3',
  'GL_SELECTION_BUFFER_SIZE' => '0x0DF4',
  'GL_SEMAPHORE_TYPE_BINARY_NV' => '0x95B4',
  'GL_SEMAPHORE_TYPE_NV' => '0x95B3',
  'GL_SEMAPHORE_TYPE_TIMELINE_NV' => '0x95B5',
  'GL_SEPARABLE_2D' => '0x8012',
  'GL_SEPARABLE_2D_EXT' => '0x8012',
  'GL_SEPARATE_ATTRIBS' => '0x8C8D',
  'GL_SEPARATE_SPECULAR_COLOR' => '0x81FA',
  'GL_SEPARATE_SPECULAR_COLOR_EXT' => '0x81FA',
  'GL_SET' => '0x150F',
  'GL_SGX_BINARY_IMG' => '0x8C0A',
  'GL_SHADER' => '0x82E1',
  'GL_SHADER_BINARY_DMP' => '0x9250',
  'GL_SHADER_BINARY_FORMATS' => '0x8DF8',
  'GL_SHADER_BINARY_FORMAT_SPIR_V' => '0x9551',
  'GL_SHADER_BINARY_HUAWEI' => '0x9770',
  'GL_SHADER_BINARY_VIV' => '0x8FC4',
  'GL_SHADER_COMPILER' => '0x8DFA',
  'GL_SHADER_CORE_ACTIVE_COUNT_ARM' => '0x96F1',
  'GL_SHADER_CORE_COUNT_ARM' => '0x96F0',
  'GL_SHADER_CORE_FMA_RATE_ARM' => '0x96F6',
  'GL_SHADER_CORE_MAX_WARP_COUNT_ARM' => '0x96F3',
  'GL_SHADER_CORE_PIXEL_RATE_ARM' => '0x96F4',
  'GL_SHADER_CORE_PRESENT_MASK_ARM' => '0x96F2',
  'GL_SHADER_CORE_TEXEL_RATE_ARM' => '0x96F5',
  'GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV' => '0x00000010',
  'GL_SHADER_IMAGE_ACCESS_BARRIER_BIT' => '0x00000020',
  'GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT' => '0x00000020',
  'GL_SHADER_IMAGE_ATOMIC' => '0x82A6',
  'GL_SHADER_IMAGE_LOAD' => '0x82A4',
  'GL_SHADER_IMAGE_STORE' => '0x82A5',
  'GL_SHADER_SOURCE_LENGTH' => '0x8B88',
  'GL_SHADER_STORAGE_BARRIER_BIT' => '0x00002000',
  'GL_SHADER_STORAGE_BLOCK' => '0x92E6',
  'GL_SHADER_STORAGE_BUFFER' => '0x90D2',
  'GL_SHADER_STORAGE_BUFFER_BINDING' => '0x90D3',
  'GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT' => '0x90DF',
  'GL_SHADER_STORAGE_BUFFER_SIZE' => '0x90D5',
  'GL_SHADER_STORAGE_BUFFER_START' => '0x90D4',
  'GL_SHADER_TYPE' => '0x8B4F',
  'GL_SHADE_MODEL' => '0x0B54',
  'GL_SHADING_LANGUAGE_VERSION' => '0x8B8C',
  'GL_SHADING_RATE_1X1_PIXELS_EXT' => '0x96A6',
  'GL_SHADING_RATE_1X1_PIXELS_QCOM' => '0x96A6',
  'GL_SHADING_RATE_1X2_PIXELS_EXT' => '0x96A7',
  'GL_SHADING_RATE_1X2_PIXELS_QCOM' => '0x96A7',
  'GL_SHADING_RATE_1X4_PIXELS_EXT' => '0x96AA',
  'GL_SHADING_RATE_1X4_PIXELS_QCOM' => '0x96AA',
  'GL_SHADING_RATE_2X1_PIXELS_EXT' => '0x96A8',
  'GL_SHADING_RATE_2X1_PIXELS_QCOM' => '0x96A8',
  'GL_SHADING_RATE_2X2_PIXELS_EXT' => '0x96A9',
  'GL_SHADING_RATE_2X2_PIXELS_QCOM' => '0x96A9',
  'GL_SHADING_RATE_2X4_PIXELS_EXT' => '0x96AD',
  'GL_SHADING_RATE_2X4_PIXELS_QCOM' => '0x96AD',
  'GL_SHADING_RATE_4X1_PIXELS_EXT' => '0x96AB',
  'GL_SHADING_RATE_4X1_PIXELS_QCOM' => '0x96AB',
  'GL_SHADING_RATE_4X2_PIXELS_EXT' => '0x96AC',
  'GL_SHADING_RATE_4X2_PIXELS_QCOM' => '0x96AC',
  'GL_SHADING_RATE_4X4_PIXELS_EXT' => '0x96AE',
  'GL_SHADING_RATE_4X4_PIXELS_QCOM' => '0x96AE',
  'GL_SHADING_RATE_ATTACHMENT_EXT' => '0x96D1',
  'GL_SHADING_RATE_EXT' => '0x96D0',
  'GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV' => '0x95B2',
  'GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV' => '0x95B1',
  'GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM' => '0x96A5',
  'GL_SHADING_RATE_QCOM' => '0x96A4',
  'GL_SHADOW_AMBIENT_SGIX' => '0x80BF',
  'GL_SHADOW_ATTENUATION_EXT' => '0x834E',
  'GL_SHARED_TEXTURE_PALETTE_EXT' => '0x81FB',
  'GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS' => '0x80B0',
  'GL_SHININESS' => '0x1601',
  'GL_SHORT' => '0x1402',
  'GL_SIGNED_IDENTITY_NV' => '0x853C',
  'GL_SIGNED_NEGATE_NV' => '0x853D',
  'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST' => '0x82AC',
  'GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE' => '0x82AE',
  'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST' => '0x82AD',
  'GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE' => '0x82AF',
  'GL_SINGLE_COLOR' => '0x81F9',
  'GL_SINGLE_COLOR_EXT' => '0x81F9',
  'GL_SKIP_COMPONENTS1_NV' => '-6',
  'GL_SKIP_COMPONENTS2_NV' => '-5',
  'GL_SKIP_COMPONENTS3_NV' => '-4',
  'GL_SKIP_COMPONENTS4_NV' => '-3',
  'GL_SKIP_MISSING_GLYPH_NV' => '0x90A9',
  'GL_SMALL_CCW_ARC_TO_NV' => '0x12',
  'GL_SMALL_CW_ARC_TO_NV' => '0x14',
  'GL_SMOOTH' => '0x1D01',
  'GL_SMOOTH_CUBIC_CURVE_TO_NV' => '0x10',
  'GL_SMOOTH_LINE_WIDTH_GRANULARITY' => '0x0B23',
  'GL_SMOOTH_LINE_WIDTH_RANGE' => '0x0B22',
  'GL_SMOOTH_POINT_SIZE_GRANULARITY' => '0x0B13',
  'GL_SMOOTH_POINT_SIZE_RANGE' => '0x0B12',
  'GL_SMOOTH_QUADRATIC_CURVE_TO_NV' => '0x0E',
  'GL_SOURCE0_ALPHA' => '0x8588',
  'GL_SOURCE0_ALPHA_ARB' => '0x8588',
  'GL_SOURCE0_ALPHA_EXT' => '0x8588',
  'GL_SOURCE0_RGB' => '0x8580',
  'GL_SOURCE0_RGB_ARB' => '0x8580',
  'GL_SOURCE0_RGB_EXT' => '0x8580',
  'GL_SOURCE1_ALPHA' => '0x8589',
  'GL_SOURCE1_ALPHA_ARB' => '0x8589',
  'GL_SOURCE1_ALPHA_EXT' => '0x8589',
  'GL_SOURCE1_RGB' => '0x8581',
  'GL_SOURCE1_RGB_ARB' => '0x8581',
  'GL_SOURCE1_RGB_EXT' => '0x8581',
  'GL_SOURCE2_ALPHA' => '0x858A',
  'GL_SOURCE2_ALPHA_ARB' => '0x858A',
  'GL_SOURCE2_ALPHA_EXT' => '0x858A',
  'GL_SOURCE2_RGB' => '0x8582',
  'GL_SOURCE2_RGB_ARB' => '0x8582',
  'GL_SOURCE2_RGB_EXT' => '0x8582',
  'GL_SOURCE3_ALPHA_NV' => '0x858B',
  'GL_SOURCE3_RGB_NV' => '0x8583',
  'GL_SPARE0_NV' => '0x852E',
  'GL_SPARE1_NV' => '0x852F',
  'GL_SPARSE_STORAGE_BIT_ARB' => '0x0400',
  'GL_SPECULAR' => '0x1202',
  'GL_SPHERE_MAP' => '0x2402',
  'GL_SPOT_CUTOFF' => '0x1206',
  'GL_SPOT_DIRECTION' => '0x1204',
  'GL_SPOT_EXPONENT' => '0x1205',
  'GL_SPRITE_AXIAL_SGIX' => '0x814C',
  'GL_SPRITE_AXIS_SGIX' => '0x814A',
  'GL_SPRITE_EYE_ALIGNED_SGIX' => '0x814E',
  'GL_SPRITE_MODE_SGIX' => '0x8149',
  'GL_SPRITE_OBJECT_ALIGNED_SGIX' => '0x814D',
  'GL_SPRITE_SGIX' => '0x8148',
  'GL_SPRITE_TRANSLATION_SGIX' => '0x814B',
  'GL_SR8_EXT' => '0x8FBD',
  'GL_SRC0_ALPHA' => '0x8588',
  'GL_SRC0_RGB' => '0x8580',
  'GL_SRC1_ALPHA' => '0x8589',
  'GL_SRC1_ALPHA_EXT' => '0x8589',
  'GL_SRC1_COLOR' => '0x88F9',
  'GL_SRC1_RGB' => '0x8581',
  'GL_SRC2_ALPHA' => '0x858A',
  'GL_SRC2_RGB' => '0x8582',
  'GL_SRC_ALPHA' => '0x0302',
  'GL_SRC_ALPHA_SATURATE' => '0x0308',
  'GL_SRC_COLOR' => '0x0300',
  'GL_SRG8_EXT' => '0x8FBE',
  'GL_SRGB' => '0x8C40',
  'GL_SRGB8' => '0x8C41',
  'GL_SRGB8_ALPHA8' => '0x8C43',
  'GL_SRGB8_ALPHA8_EXT' => '0x8C43',
  'GL_SRGB8_EXT' => '0x8C41',
  'GL_SRGB8_NV' => '0x8C41',
  'GL_SRGB_ALPHA' => '0x8C42',
  'GL_SRGB_ALPHA_EXT' => '0x8C42',
  'GL_SRGB_EXT' => '0x8C40',
  'GL_SRGB_READ' => '0x8297',
  'GL_SRGB_WRITE' => '0x8298',
  'GL_STACK_OVERFLOW' => '0x0503',
  'GL_STACK_UNDERFLOW' => '0x0504',
  'GL_STANDARD_FONT_NAME_NV' => '0x9072',
  'GL_STATIC_ATI' => '0x8760',
  'GL_STATIC_COPY' => '0x88E6',
  'GL_STATIC_DRAW' => '0x88E4',
  'GL_STATIC_READ' => '0x88E5',
  'GL_STENCIL' => '0x1802',
  'GL_STENCIL_ATTACHMENT' => '0x8D20',
  'GL_STENCIL_ATTACHMENT_EXT' => '0x8D20',
  'GL_STENCIL_BACK_FAIL' => '0x8801',
  'GL_STENCIL_BACK_FUNC' => '0x8800',
  'GL_STENCIL_BACK_PASS_DEPTH_FAIL' => '0x8802',
  'GL_STENCIL_BACK_PASS_DEPTH_PASS' => '0x8803',
  'GL_STENCIL_BACK_REF' => '0x8CA3',
  'GL_STENCIL_BACK_VALUE_MASK' => '0x8CA4',
  'GL_STENCIL_BACK_WRITEMASK' => '0x8CA5',
  'GL_STENCIL_BITS' => '0x0D57',
  'GL_STENCIL_BUFFER_BIT' => '0x00000400',
  'GL_STENCIL_BUFFER_BIT0_QCOM' => '0x00010000',
  'GL_STENCIL_BUFFER_BIT1_QCOM' => '0x00020000',
  'GL_STENCIL_BUFFER_BIT2_QCOM' => '0x00040000',
  'GL_STENCIL_BUFFER_BIT3_QCOM' => '0x00080000',
  'GL_STENCIL_BUFFER_BIT4_QCOM' => '0x00100000',
  'GL_STENCIL_BUFFER_BIT5_QCOM' => '0x00200000',
  'GL_STENCIL_BUFFER_BIT6_QCOM' => '0x00400000',
  'GL_STENCIL_BUFFER_BIT7_QCOM' => '0x00800000',
  'GL_STENCIL_CLEAR_VALUE' => '0x0B91',
  'GL_STENCIL_EXT' => '0x1802',
  'GL_STENCIL_FAIL' => '0x0B94',
  'GL_STENCIL_FUNC' => '0x0B92',
  'GL_STENCIL_INDEX' => '0x1901',
  'GL_STENCIL_INDEX1' => '0x8D46',
  'GL_STENCIL_INDEX16' => '0x8D49',
  'GL_STENCIL_INDEX16_EXT' => '0x8D49',
  'GL_STENCIL_INDEX1_EXT' => '0x8D46',
  'GL_STENCIL_INDEX4' => '0x8D47',
  'GL_STENCIL_INDEX4_EXT' => '0x8D47',
  'GL_STENCIL_INDEX8' => '0x8D48',
  'GL_STENCIL_INDEX8_EXT' => '0x8D48',
  'GL_STENCIL_PASS_DEPTH_FAIL' => '0x0B95',
  'GL_STENCIL_PASS_DEPTH_PASS' => '0x0B96',
  'GL_STENCIL_REF' => '0x0B97',
  'GL_STENCIL_REF_COMMAND_NV' => '0x000C',
  'GL_STENCIL_RENDERABLE' => '0x8288',
  'GL_STENCIL_TEST' => '0x0B90',
  'GL_STENCIL_VALUE_MASK' => '0x0B93',
  'GL_STENCIL_WRITEMASK' => '0x0B98',
  'GL_STEREO' => '0x0C33',
  'GL_STORAGE_CACHED_APPLE' => '0x85BE',
  'GL_STORAGE_CLIENT_APPLE' => '0x85B4',
  'GL_STORAGE_SHARED_APPLE' => '0x85BF',
  'GL_STREAM_COPY' => '0x88E2',
  'GL_STREAM_DRAW' => '0x88E0',
  'GL_STREAM_READ' => '0x88E1',
  'GL_STRICT_DEPTHFUNC_HINT_PGI' => '0x1A216',
  'GL_STRICT_LIGHTING_HINT_PGI' => '0x1A217',
  'GL_STRICT_SCISSOR_HINT_PGI' => '0x1A218',
  'GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR' => '0x00000004',
  'GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR' => '0x00000008',
  'GL_SUBGROUP_FEATURE_BASIC_BIT_KHR' => '0x00000001',
  'GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR' => '0x00000040',
  'GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV' => '0x00000100',
  'GL_SUBGROUP_FEATURE_QUAD_BIT_KHR' => '0x00000080',
  'GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR' => '0x00000010',
  'GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR' => '0x00000020',
  'GL_SUBGROUP_FEATURE_VOTE_BIT_KHR' => '0x00000002',
  'GL_SUBPIXEL_BITS' => '0x0D50',
  'GL_SUB_ATI' => '0x8965',
  'GL_SURFACE_COMPRESSION_EXT' => '0x96C0',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT' => '0x96CD',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT' => '0x96CE',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT' => '0x96CF',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT' => '0x96C4',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT' => '0x96C5',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT' => '0x96C6',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT' => '0x96C7',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT' => '0x96C8',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT' => '0x96C9',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT' => '0x96CA',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT' => '0x96CB',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT' => '0x96CC',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT' => '0x96C2',
  'GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT' => '0x96C1',
  'GL_SWIZZLE_STQ_ATI' => '0x8977',
  'GL_SWIZZLE_STQ_DQ_ATI' => '0x8979',
  'GL_SWIZZLE_STR_ATI' => '0x8976',
  'GL_SWIZZLE_STR_DR_ATI' => '0x8978',
  'GL_SYNC_CONDITION' => '0x9113',
  'GL_SYNC_FLAGS' => '0x9115',
  'GL_SYNC_FLUSH_COMMANDS_BIT' => '0x00000001',
  'GL_SYNC_FLUSH_COMMANDS_BIT_APPLE' => '0x00000001',
  'GL_SYNC_GPU_COMMANDS_COMPLETE' => '0x9117',
  'GL_SYNC_STATUS' => '0x9114',
  'GL_SYSTEM_FONT_NAME_NV' => '0x9073',
  'GL_T' => '0x2001',
  'GL_T2F_C3F_V3F' => '0x2A2A',
  'GL_T2F_C4F_N3F_V3F' => '0x2A2C',
  'GL_T2F_C4UB_V3F' => '0x2A29',
  'GL_T2F_N3F_V3F' => '0x2A2B',
  'GL_T2F_V3F' => '0x2A27',
  'GL_T4F_C4F_N3F_V4F' => '0x2A2D',
  'GL_T4F_V4F' => '0x2A28',
  'GL_TABLE_TOO_LARGE' => '0x8031',
  'GL_TABLE_TOO_LARGE_EXT' => '0x8031',
  'GL_TASK_SHADER_BIT_EXT' => '0x00000080',
  'GL_TASK_SHADER_BIT_NV' => '0x00000080',
  'GL_TASK_SHADER_INVOCATIONS_EXT' => '0x9753',
  'GL_TERMINATE_SEQUENCE_COMMAND_NV' => '0x0000',
  'GL_TESS_CONTROL_PROGRAM_NV' => '0x891E',
  'GL_TESS_CONTROL_SHADER' => '0x8E88',
  'GL_TESS_CONTROL_SHADER_BIT' => '0x00000008',
  'GL_TESS_CONTROL_SHADER_BIT_EXT' => '0x00000008',
  'GL_TESS_CONTROL_SUBROUTINE' => '0x92E9',
  'GL_TESS_CONTROL_SUBROUTINE_UNIFORM' => '0x92EF',
  'GL_TESS_CONTROL_TEXTURE' => '0x829C',
  'GL_TESS_EVALUATION_PROGRAM_NV' => '0x891F',
  'GL_TESS_EVALUATION_SHADER' => '0x8E87',
  'GL_TESS_EVALUATION_SHADER_BIT' => '0x00000010',
  'GL_TESS_EVALUATION_SHADER_BIT_EXT' => '0x00000010',
  'GL_TESS_EVALUATION_SUBROUTINE' => '0x92EA',
  'GL_TESS_EVALUATION_SUBROUTINE_UNIFORM' => '0x92F0',
  'GL_TESS_EVALUATION_TEXTURE' => '0x829D',
  'GL_TEXCOORD1_BIT_PGI' => '0x10000000',
  'GL_TEXCOORD2_BIT_PGI' => '0x20000000',
  'GL_TEXCOORD3_BIT_PGI' => '0x40000000',
  'GL_TEXCOORD4_BIT_PGI' => '0x80000000',
  'GL_TEXTURE' => '0x1702',
  'GL_TEXTURE0' => '0x84C0',
  'GL_TEXTURE0_ARB' => '0x84C0',
  'GL_TEXTURE1' => '0x84C1',
  'GL_TEXTURE10' => '0x84CA',
  'GL_TEXTURE11' => '0x84CB',
  'GL_TEXTURE12' => '0x84CC',
  'GL_TEXTURE13' => '0x84CD',
  'GL_TEXTURE14' => '0x84CE',
  'GL_TEXTURE15' => '0x84CF',
  'GL_TEXTURE16' => '0x84D0',
  'GL_TEXTURE17' => '0x84D1',
  'GL_TEXTURE18' => '0x84D2',
  'GL_TEXTURE19' => '0x84D3',
  'GL_TEXTURE1_ARB' => '0x84C1',
  'GL_TEXTURE2' => '0x84C2',
  'GL_TEXTURE20' => '0x84D4',
  'GL_TEXTURE21' => '0x84D5',
  'GL_TEXTURE22' => '0x84D6',
  'GL_TEXTURE23' => '0x84D7',
  'GL_TEXTURE24' => '0x84D8',
  'GL_TEXTURE25' => '0x84D9',
  'GL_TEXTURE26' => '0x84DA',
  'GL_TEXTURE27' => '0x84DB',
  'GL_TEXTURE28' => '0x84DC',
  'GL_TEXTURE29' => '0x84DD',
  'GL_TEXTURE3' => '0x84C3',
  'GL_TEXTURE30' => '0x84DE',
  'GL_TEXTURE31' => '0x84DF',
  'GL_TEXTURE4' => '0x84C4',
  'GL_TEXTURE5' => '0x84C5',
  'GL_TEXTURE6' => '0x84C6',
  'GL_TEXTURE7' => '0x84C7',
  'GL_TEXTURE8' => '0x84C8',
  'GL_TEXTURE9' => '0x84C9',
  'GL_TEXTURE_1D' => '0x0DE0',
  'GL_TEXTURE_1D_ARRAY' => '0x8C18',
  'GL_TEXTURE_2D' => '0x0DE1',
  'GL_TEXTURE_2D_ARRAY' => '0x8C1A',
  'GL_TEXTURE_2D_MULTISAMPLE' => '0x9100',
  'GL_TEXTURE_2D_MULTISAMPLE_ARRAY' => '0x9102',
  'GL_TEXTURE_3D' => '0x806F',
  'GL_TEXTURE_3D_BINDING_EXT' => '0x806A',
  'GL_TEXTURE_3D_EXT' => '0x806F',
  'GL_TEXTURE_4DSIZE_SGIS' => '0x8136',
  'GL_TEXTURE_4D_BINDING_SGIS' => '0x814F',
  'GL_TEXTURE_4D_SGIS' => '0x8134',
  'GL_TEXTURE_ALPHA_SIZE' => '0x805F',
  'GL_TEXTURE_BASE_LEVEL' => '0x813C',
  'GL_TEXTURE_BASE_LEVEL_SGIS' => '0x813C',
  'GL_TEXTURE_BINDING_1D' => '0x8068',
  'GL_TEXTURE_BINDING_1D_ARRAY' => '0x8C1C',
  'GL_TEXTURE_BINDING_2D' => '0x8069',
  'GL_TEXTURE_BINDING_2D_ARRAY' => '0x8C1D',
  'GL_TEXTURE_BINDING_2D_MULTISAMPLE' => '0x9104',
  'GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY' => '0x9105',
  'GL_TEXTURE_BINDING_3D' => '0x806A',
  'GL_TEXTURE_BINDING_BUFFER' => '0x8C2C',
  'GL_TEXTURE_BINDING_CUBE_MAP' => '0x8514',
  'GL_TEXTURE_BINDING_CUBE_MAP_ARB' => '0x8514',
  'GL_TEXTURE_BINDING_CUBE_MAP_EXT' => '0x8514',
  'GL_TEXTURE_BINDING_RECTANGLE' => '0x84F6',
  'GL_TEXTURE_BINDING_RECTANGLE_ARB' => '0x84F6',
  'GL_TEXTURE_BINDING_RECTANGLE_NV' => '0x84F6',
  'GL_TEXTURE_BIT' => '0x00040000',
  'GL_TEXTURE_BLUE_SIZE' => '0x805E',
  'GL_TEXTURE_BORDER' => '0x1005',
  'GL_TEXTURE_BORDER_COLOR' => '0x1004',
  'GL_TEXTURE_BORDER_COLOR_NV' => '0x1004',
  'GL_TEXTURE_BUFFER' => '0x8C2A',
  'GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT' => '0x919F',
  'GL_TEXTURE_CBCR_DEGAMMA_QCOM' => '0x9711',
  'GL_TEXTURE_CLIPMAP_CENTER_SGIX' => '0x8171',
  'GL_TEXTURE_CLIPMAP_DEPTH_SGIX' => '0x8176',
  'GL_TEXTURE_CLIPMAP_FRAME_SGIX' => '0x8172',
  'GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX' => '0x8175',
  'GL_TEXTURE_CLIPMAP_OFFSET_SGIX' => '0x8173',
  'GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX' => '0x8174',
  'GL_TEXTURE_COLOR_TABLE_SGI' => '0x80BC',
  'GL_TEXTURE_COMPARE_FUNC' => '0x884D',
  'GL_TEXTURE_COMPARE_MODE' => '0x884C',
  'GL_TEXTURE_COMPARE_OPERATOR_SGIX' => '0x819B',
  'GL_TEXTURE_COMPARE_SGIX' => '0x819A',
  'GL_TEXTURE_COMPONENTS' => '0x1003',
  'GL_TEXTURE_COMPRESSED' => '0x86A1',
  'GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT' => '0x82B2',
  'GL_TEXTURE_COMPRESSED_BLOCK_SIZE' => '0x82B3',
  'GL_TEXTURE_COMPRESSED_BLOCK_WIDTH' => '0x82B1',
  'GL_TEXTURE_COMPRESSION_HINT' => '0x84EF',
  'GL_TEXTURE_COMPRESSION_HINT_ARB' => '0x84EF',
  'GL_TEXTURE_COORD_ARRAY' => '0x8078',
  'GL_TEXTURE_COORD_ARRAY_COUNT_EXT' => '0x808B',
  'GL_TEXTURE_COORD_ARRAY_POINTER' => '0x8092',
  'GL_TEXTURE_COORD_ARRAY_POINTER_EXT' => '0x8092',
  'GL_TEXTURE_COORD_ARRAY_SIZE' => '0x8088',
  'GL_TEXTURE_COORD_ARRAY_STRIDE' => '0x808A',
  'GL_TEXTURE_COORD_ARRAY_TYPE' => '0x8089',
  'GL_TEXTURE_CUBE_MAP' => '0x8513',
  'GL_TEXTURE_CUBE_MAP_ARB' => '0x8513',
  'GL_TEXTURE_CUBE_MAP_ARRAY' => '0x9009',
  'GL_TEXTURE_CUBE_MAP_ARRAY_ARB' => '0x9009',
  'GL_TEXTURE_CUBE_MAP_ARRAY_EXT' => '0x9009',
  'GL_TEXTURE_CUBE_MAP_EXT' => '0x8513',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_X' => '0x8516',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB' => '0x8516',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT' => '0x8516',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y' => '0x8518',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB' => '0x8518',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT' => '0x8518',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z' => '0x851A',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB' => '0x851A',
  'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT' => '0x851A',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_X' => '0x8515',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB' => '0x8515',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT' => '0x8515',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Y' => '0x8517',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB' => '0x8517',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT' => '0x8517',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Z' => '0x8519',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB' => '0x8519',
  'GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT' => '0x8519',
  'GL_TEXTURE_CUBE_MAP_SEAMLESS' => '0x884F',
  'GL_TEXTURE_DEFORMATION_BIT_SGIX' => '0x00000001',
  'GL_TEXTURE_DEFORMATION_SGIX' => '0x8195',
  'GL_TEXTURE_DEPTH_EXT' => '0x8071',
  'GL_TEXTURE_ENV' => '0x2300',
  'GL_TEXTURE_ENV_BIAS_SGIX' => '0x80BE',
  'GL_TEXTURE_ENV_COLOR' => '0x2201',
  'GL_TEXTURE_ENV_MODE' => '0x2200',
  'GL_TEXTURE_FETCH_BARRIER_BIT' => '0x00000008',
  'GL_TEXTURE_FETCH_BARRIER_BIT_EXT' => '0x00000008',
  'GL_TEXTURE_FILTER4_SIZE_SGIS' => '0x8147',
  'GL_TEXTURE_FILTER_CONTROL' => '0x8500',
  'GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM' => '0x96A0',
  'GL_TEXTURE_GATHER' => '0x82A2',
  'GL_TEXTURE_GATHER_SHADOW' => '0x82A3',
  'GL_TEXTURE_GEN_MODE' => '0x2500',
  'GL_TEXTURE_GEN_Q' => '0x0C63',
  'GL_TEXTURE_GEN_R' => '0x0C62',
  'GL_TEXTURE_GEN_S' => '0x0C60',
  'GL_TEXTURE_GEN_T' => '0x0C61',
  'GL_TEXTURE_GEQUAL_R_SGIX' => '0x819D',
  'GL_TEXTURE_GREEN_SIZE' => '0x805D',
  'GL_TEXTURE_HEIGHT' => '0x1001',
  'GL_TEXTURE_IMAGE_FORMAT' => '0x828F',
  'GL_TEXTURE_IMAGE_TYPE' => '0x8290',
  'GL_TEXTURE_INTENSITY_SIZE' => '0x8061',
  'GL_TEXTURE_INTERNAL_FORMAT' => '0x1003',
  'GL_TEXTURE_LEQUAL_R_SGIX' => '0x819C',
  'GL_TEXTURE_LOD_BIAS' => '0x8501',
  'GL_TEXTURE_LOD_BIAS_R_SGIX' => '0x8190',
  'GL_TEXTURE_LOD_BIAS_S_SGIX' => '0x818E',
  'GL_TEXTURE_LOD_BIAS_T_SGIX' => '0x818F',
  'GL_TEXTURE_LUMINANCE_SIZE' => '0x8060',
  'GL_TEXTURE_MAG_FILTER' => '0x2800',
  'GL_TEXTURE_MATRIX' => '0x0BA8',
  'GL_TEXTURE_MAX_ANISOTROPY' => '0x84FE',
  'GL_TEXTURE_MAX_CLAMP_R_SGIX' => '0x836B',
  'GL_TEXTURE_MAX_CLAMP_S_SGIX' => '0x8369',
  'GL_TEXTURE_MAX_CLAMP_T_SGIX' => '0x836A',
  'GL_TEXTURE_MAX_LEVEL' => '0x813D',
  'GL_TEXTURE_MAX_LEVEL_SGIS' => '0x813D',
  'GL_TEXTURE_MAX_LOD' => '0x813B',
  'GL_TEXTURE_MAX_LOD_SGIS' => '0x813B',
  'GL_TEXTURE_MEMORY_LAYOUT_INTEL' => '0x83FF',
  'GL_TEXTURE_MIN_FILTER' => '0x2801',
  'GL_TEXTURE_MIN_LOD' => '0x813A',
  'GL_TEXTURE_MIN_LOD_SGIS' => '0x813A',
  'GL_TEXTURE_MULTI_BUFFER_HINT_SGIX' => '0x812E',
  'GL_TEXTURE_PRIORITY' => '0x8066',
  'GL_TEXTURE_PRIORITY_EXT' => '0x8066',
  'GL_TEXTURE_RECTANGLE' => '0x84F5',
  'GL_TEXTURE_RECTANGLE_ARB' => '0x84F5',
  'GL_TEXTURE_RECTANGLE_NV' => '0x84F5',
  'GL_TEXTURE_RED_SIZE' => '0x805C',
  'GL_TEXTURE_RESIDENT' => '0x8067',
  'GL_TEXTURE_SHADOW' => '0x82A1',
  'GL_TEXTURE_STACK_DEPTH' => '0x0BA5',
  'GL_TEXTURE_STORAGE_HINT_APPLE' => '0x85BC',
  'GL_TEXTURE_STORAGE_SPARSE_BIT_AMD' => '0x00000001',
  'GL_TEXTURE_SWIZZLE_A' => '0x8E45',
  'GL_TEXTURE_SWIZZLE_B' => '0x8E44',
  'GL_TEXTURE_SWIZZLE_G' => '0x8E43',
  'GL_TEXTURE_SWIZZLE_R' => '0x8E42',
  'GL_TEXTURE_SWIZZLE_RGBA' => '0x8E46',
  'GL_TEXTURE_TILING_EXT' => '0x9580',
  'GL_TEXTURE_TOO_LARGE_EXT' => '0x8065',
  'GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM' => '0x8F6A',
  'GL_TEXTURE_UPDATE_BARRIER_BIT' => '0x00000100',
  'GL_TEXTURE_UPDATE_BARRIER_BIT_EXT' => '0x00000100',
  'GL_TEXTURE_VIEW' => '0x82B5',
  'GL_TEXTURE_WIDTH' => '0x1000',
  'GL_TEXTURE_WRAP_Q_SGIS' => '0x8137',
  'GL_TEXTURE_WRAP_R' => '0x8072',
  'GL_TEXTURE_WRAP_R_EXT' => '0x8072',
  'GL_TEXTURE_WRAP_S' => '0x2802',
  'GL_TEXTURE_WRAP_T' => '0x2803',
  'GL_TEXTURE_Y_DEGAMMA_QCOM' => '0x9710',
  'GL_TEXT_FRAGMENT_SHADER_ATI' => '0x8200',
  'GL_TIMELINE_SEMAPHORE_VALUE_NV' => '0x9595',
  'GL_TIMEOUT_EXPIRED' => '0x911B',
  'GL_TIMEOUT_IGNORED' => '0xFFFFFFFFFFFFFFFF',
  'GL_TIMEOUT_IGNORED_APPLE' => '0xFFFFFFFFFFFFFFFF',
  'GL_TIMESTAMP' => '0x8E28',
  'GL_TIMESTAMP_EXT' => '0x8E28',
  'GL_TIME_ELAPSED' => '0x88BF',
  'GL_TOP_LEVEL_ARRAY_SIZE' => '0x930C',
  'GL_TOP_LEVEL_ARRAY_STRIDE' => '0x930D',
  'GL_TRACE_ALL_BITS_MESA' => '0xFFFF',
  'GL_TRACE_ARRAYS_BIT_MESA' => '0x0004',
  'GL_TRACE_ERRORS_BIT_MESA' => '0x0020',
  'GL_TRACE_OPERATIONS_BIT_MESA' => '0x0001',
  'GL_TRACE_PIXELS_BIT_MESA' => '0x0010',
  'GL_TRACE_PRIMITIVES_BIT_MESA' => '0x0002',
  'GL_TRACE_TEXTURES_BIT_MESA' => '0x0008',
  'GL_TRANSFORM_BIT' => '0x00001000',
  'GL_TRANSFORM_FEEDBACK' => '0x8E22',
  'GL_TRANSFORM_FEEDBACK_ACTIVE' => '0x8E24',
  'GL_TRANSFORM_FEEDBACK_BARRIER_BIT' => '0x00000800',
  'GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT' => '0x00000800',
  'GL_TRANSFORM_FEEDBACK_BUFFER' => '0x8C8E',
  'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING' => '0x8C8F',
  'GL_TRANSFORM_FEEDBACK_BUFFER_INDEX' => '0x934B',
  'GL_TRANSFORM_FEEDBACK_BUFFER_MODE' => '0x8C7F',
  'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE' => '0x8C85',
  'GL_TRANSFORM_FEEDBACK_BUFFER_START' => '0x8C84',
  'GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE' => '0x934C',
  'GL_TRANSFORM_FEEDBACK_OVERFLOW' => '0x82EC',
  'GL_TRANSFORM_FEEDBACK_PAUSED' => '0x8E23',
  'GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN' => '0x8C88',
  'GL_TRANSFORM_FEEDBACK_VARYING' => '0x92F4',
  'GL_TRANSFORM_FEEDBACK_VARYINGS' => '0x8C83',
  'GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH' => '0x8C76',
  'GL_TRANSFORM_HINT_APPLE' => '0x85B1',
  'GL_TRANSLATE_2D_NV' => '0x9090',
  'GL_TRANSLATE_3D_NV' => '0x9091',
  'GL_TRANSLATE_X_NV' => '0x908E',
  'GL_TRANSLATE_Y_NV' => '0x908F',
  'GL_TRANSPOSE_AFFINE_2D_NV' => '0x9096',
  'GL_TRANSPOSE_AFFINE_3D_NV' => '0x9098',
  'GL_TRIANGLES' => '0x0004',
  'GL_TRIANGLES_ADJACENCY' => '0x000C',
  'GL_TRIANGLES_ADJACENCY_ARB' => '0x000C',
  'GL_TRIANGLES_ADJACENCY_EXT' => '0x000C',
  'GL_TRIANGLE_FAN' => '0x0006',
  'GL_TRIANGLE_STRIP' => '0x0005',
  'GL_TRIANGLE_STRIP_ADJACENCY' => '0x000D',
  'GL_TRIANGLE_STRIP_ADJACENCY_ARB' => '0x000D',
  'GL_TRIANGLE_STRIP_ADJACENCY_EXT' => '0x000D',
  'GL_TRUE' => '1',
  'GL_TYPE' => '0x92FA',
  'GL_UNIFORM' => '0x92E1',
  'GL_UNIFORM_ADDRESS_COMMAND_NV' => '0x000A',
  'GL_UNIFORM_ARRAY_STRIDE' => '0x8A3C',
  'GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX' => '0x92DA',
  'GL_UNIFORM_BARRIER_BIT' => '0x00000004',
  'GL_UNIFORM_BARRIER_BIT_EXT' => '0x00000004',
  'GL_UNIFORM_BLOCK' => '0x92E2',
  'GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS' => '0x8A42',
  'GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES' => '0x8A43',
  'GL_UNIFORM_BLOCK_BINDING' => '0x8A3F',
  'GL_UNIFORM_BLOCK_DATA_SIZE' => '0x8A40',
  'GL_UNIFORM_BLOCK_INDEX' => '0x8A3A',
  'GL_UNIFORM_BLOCK_NAME_LENGTH' => '0x8A41',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER' => '0x90EC',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER' => '0x8A46',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER' => '0x8A45',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER' => '0x84F0',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER' => '0x84F1',
  'GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER' => '0x8A44',
  'GL_UNIFORM_BUFFER' => '0x8A11',
  'GL_UNIFORM_BUFFER_BINDING' => '0x8A28',
  'GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT' => '0x8A34',
  'GL_UNIFORM_BUFFER_SIZE' => '0x8A2A',
  'GL_UNIFORM_BUFFER_START' => '0x8A29',
  'GL_UNIFORM_IS_ROW_MAJOR' => '0x8A3E',
  'GL_UNIFORM_MATRIX_STRIDE' => '0x8A3D',
  'GL_UNIFORM_NAME_LENGTH' => '0x8A39',
  'GL_UNIFORM_OFFSET' => '0x8A3B',
  'GL_UNIFORM_SIZE' => '0x8A38',
  'GL_UNIFORM_TYPE' => '0x8A37',
  'GL_UNKNOWN_CONTEXT_RESET' => '0x8255',
  'GL_UNPACK_ALIGNMENT' => '0x0CF5',
  'GL_UNPACK_CMYK_HINT_EXT' => '0x800F',
  'GL_UNPACK_IMAGE_DEPTH_SGIS' => '0x8133',
  'GL_UNPACK_IMAGE_HEIGHT' => '0x806E',
  'GL_UNPACK_IMAGE_HEIGHT_EXT' => '0x806E',
  'GL_UNPACK_LSB_FIRST' => '0x0CF1',
  'GL_UNPACK_RESAMPLE_OML' => '0x8985',
  'GL_UNPACK_RESAMPLE_SGIX' => '0x842F',
  'GL_UNPACK_ROW_LENGTH' => '0x0CF2',
  'GL_UNPACK_ROW_LENGTH_EXT' => '0x0CF2',
  'GL_UNPACK_SKIP_IMAGES' => '0x806D',
  'GL_UNPACK_SKIP_IMAGES_EXT' => '0x806D',
  'GL_UNPACK_SKIP_PIXELS' => '0x0CF4',
  'GL_UNPACK_SKIP_PIXELS_EXT' => '0x0CF4',
  'GL_UNPACK_SKIP_ROWS' => '0x0CF3',
  'GL_UNPACK_SKIP_ROWS_EXT' => '0x0CF3',
  'GL_UNPACK_SKIP_VOLUMES_SGIS' => '0x8132',
  'GL_UNPACK_SUBSAMPLE_RATE_SGIX' => '0x85A1',
  'GL_UNPACK_SWAP_BYTES' => '0x0CF0',
  'GL_UNSIGNED_BYTE' => '0x1401',
  'GL_UNSIGNED_BYTE_2_3_3_REV' => '0x8362',
  'GL_UNSIGNED_BYTE_2_3_3_REV_EXT' => '0x8362',
  'GL_UNSIGNED_BYTE_3_3_2' => '0x8032',
  'GL_UNSIGNED_BYTE_3_3_2_EXT' => '0x8032',
  'GL_UNSIGNED_IDENTITY_NV' => '0x8536',
  'GL_UNSIGNED_INT' => '0x1405',
  'GL_UNSIGNED_INT64_ARB' => '0x140F',
  'GL_UNSIGNED_INT64_NV' => '0x140F',
  'GL_UNSIGNED_INT64_VEC2_ARB' => '0x8FF5',
  'GL_UNSIGNED_INT64_VEC3_ARB' => '0x8FF6',
  'GL_UNSIGNED_INT64_VEC4_ARB' => '0x8FF7',
  'GL_UNSIGNED_INT_10F_11F_11F_REV' => '0x8C3B',
  'GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE' => '0x8C3B',
  'GL_UNSIGNED_INT_10F_11F_11F_REV_EXT' => '0x8C3B',
  'GL_UNSIGNED_INT_10_10_10_2' => '0x8036',
  'GL_UNSIGNED_INT_10_10_10_2_EXT' => '0x8036',
  'GL_UNSIGNED_INT_24_8' => '0x84FA',
  'GL_UNSIGNED_INT_24_8_EXT' => '0x84FA',
  'GL_UNSIGNED_INT_24_8_NV' => '0x84FA',
  'GL_UNSIGNED_INT_2_10_10_10_REV' => '0x8368',
  'GL_UNSIGNED_INT_2_10_10_10_REV_EXT' => '0x8368',
  'GL_UNSIGNED_INT_5_9_9_9_REV' => '0x8C3E',
  'GL_UNSIGNED_INT_5_9_9_9_REV_APPLE' => '0x8C3E',
  'GL_UNSIGNED_INT_5_9_9_9_REV_EXT' => '0x8C3E',
  'GL_UNSIGNED_INT_8_8_8_8' => '0x8035',
  'GL_UNSIGNED_INT_8_8_8_8_EXT' => '0x8035',
  'GL_UNSIGNED_INT_8_8_8_8_REV' => '0x8367',
  'GL_UNSIGNED_INT_8_8_8_8_REV_EXT' => '0x8367',
  'GL_UNSIGNED_INT_IMAGE_1D' => '0x9062',
  'GL_UNSIGNED_INT_IMAGE_1D_ARRAY' => '0x9068',
  'GL_UNSIGNED_INT_IMAGE_2D' => '0x9063',
  'GL_UNSIGNED_INT_IMAGE_2D_ARRAY' => '0x9069',
  'GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE' => '0x906B',
  'GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY' => '0x906C',
  'GL_UNSIGNED_INT_IMAGE_2D_RECT' => '0x9065',
  'GL_UNSIGNED_INT_IMAGE_3D' => '0x9064',
  'GL_UNSIGNED_INT_IMAGE_BUFFER' => '0x9067',
  'GL_UNSIGNED_INT_IMAGE_CUBE' => '0x9066',
  'GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY' => '0x906A',
  'GL_UNSIGNED_INT_SAMPLER_1D' => '0x8DD1',
  'GL_UNSIGNED_INT_SAMPLER_1D_ARRAY' => '0x8DD6',
  'GL_UNSIGNED_INT_SAMPLER_2D' => '0x8DD2',
  'GL_UNSIGNED_INT_SAMPLER_2D_ARRAY' => '0x8DD7',
  'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE' => '0x910A',
  'GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY' => '0x910D',
  'GL_UNSIGNED_INT_SAMPLER_2D_RECT' => '0x8DD5',
  'GL_UNSIGNED_INT_SAMPLER_3D' => '0x8DD3',
  'GL_UNSIGNED_INT_SAMPLER_BUFFER' => '0x8DD8',
  'GL_UNSIGNED_INT_SAMPLER_CUBE' => '0x8DD4',
  'GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY' => '0x900F',
  'GL_UNSIGNED_INT_VEC2' => '0x8DC6',
  'GL_UNSIGNED_INT_VEC3' => '0x8DC7',
  'GL_UNSIGNED_INT_VEC4' => '0x8DC8',
  'GL_UNSIGNED_INVERT_NV' => '0x8537',
  'GL_UNSIGNED_SHORT' => '0x1403',
  'GL_UNSIGNED_SHORT_1_5_5_5_REV' => '0x8366',
  'GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT' => '0x8366',
  'GL_UNSIGNED_SHORT_4_4_4_4' => '0x8033',
  'GL_UNSIGNED_SHORT_4_4_4_4_EXT' => '0x8033',
  'GL_UNSIGNED_SHORT_4_4_4_4_REV' => '0x8365',
  'GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT' => '0x8365',
  'GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG' => '0x8365',
  'GL_UNSIGNED_SHORT_5_5_5_1' => '0x8034',
  'GL_UNSIGNED_SHORT_5_5_5_1_EXT' => '0x8034',
  'GL_UNSIGNED_SHORT_5_6_5' => '0x8363',
  'GL_UNSIGNED_SHORT_5_6_5_EXT' => '0x8363',
  'GL_UNSIGNED_SHORT_5_6_5_REV' => '0x8364',
  'GL_UNSIGNED_SHORT_5_6_5_REV_EXT' => '0x8364',
  'GL_UPPER_LEFT' => '0x8CA2',
  'GL_USE_MISSING_GLYPH_NV' => '0x90AA',
  'GL_UTF16_NV' => '0x909B',
  'GL_UTF8_NV' => '0x909A',
  'GL_UUID_SIZE_EXT' => '16',
  'GL_V2F' => '0x2A20',
  'GL_V3F' => '0x2A21',
  'GL_VALIDATE_STATUS' => '0x8B83',
  'GL_VARIABLE_A_NV' => '0x8523',
  'GL_VARIABLE_B_NV' => '0x8524',
  'GL_VARIABLE_C_NV' => '0x8525',
  'GL_VARIABLE_D_NV' => '0x8526',
  'GL_VARIABLE_E_NV' => '0x8527',
  'GL_VARIABLE_F_NV' => '0x8528',
  'GL_VARIABLE_G_NV' => '0x8529',
  'GL_VARIANT_ARRAY_EXT' => '0x87E8',
  'GL_VARIANT_ARRAY_STRIDE_EXT' => '0x87E6',
  'GL_VARIANT_ARRAY_TYPE_EXT' => '0x87E7',
  'GL_VARIANT_DATATYPE_EXT' => '0x87E5',
  'GL_VARIANT_EXT' => '0x87C1',
  'GL_VARIANT_VALUE_EXT' => '0x87E4',
  'GL_VECTOR_EXT' => '0x87BF',
  'GL_VENDOR' => '0x1F00',
  'GL_VERSION' => '0x1F02',
  'GL_VERSION_ES_CL_1_0' => '1',
  'GL_VERSION_ES_CL_1_1' => '1',
  'GL_VERSION_ES_CM_1_1' => '1',
  'GL_VERTEX23_BIT_PGI' => '0x00000004',
  'GL_VERTEX4_BIT_PGI' => '0x00000008',
  'GL_VERTEX_ARRAY' => '0x8074',
  'GL_VERTEX_ARRAY_BINDING' => '0x85B5',
  'GL_VERTEX_ARRAY_COUNT_EXT' => '0x807D',
  'GL_VERTEX_ARRAY_POINTER' => '0x808E',
  'GL_VERTEX_ARRAY_POINTER_EXT' => '0x808E',
  'GL_VERTEX_ARRAY_SIZE' => '0x807A',
  'GL_VERTEX_ARRAY_STORAGE_HINT_APPLE' => '0x851F',
  'GL_VERTEX_ARRAY_STRIDE' => '0x807C',
  'GL_VERTEX_ARRAY_TYPE' => '0x807B',
  'GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT' => '0x00000001',
  'GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT' => '0x00000001',
  'GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING' => '0x889F',
  'GL_VERTEX_ATTRIB_ARRAY_DIVISOR' => '0x88FE',
  'GL_VERTEX_ATTRIB_ARRAY_ENABLED' => '0x8622',
  'GL_VERTEX_ATTRIB_ARRAY_INTEGER' => '0x88FD',
  'GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT' => '0x88FD',
  'GL_VERTEX_ATTRIB_ARRAY_LONG' => '0x874E',
  'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED' => '0x886A',
  'GL_VERTEX_ATTRIB_ARRAY_POINTER' => '0x8645',
  'GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB' => '0x8645',
  'GL_VERTEX_ATTRIB_ARRAY_SIZE' => '0x8623',
  'GL_VERTEX_ATTRIB_ARRAY_STRIDE' => '0x8624',
  'GL_VERTEX_ATTRIB_ARRAY_TYPE' => '0x8625',
  'GL_VERTEX_ATTRIB_BINDING' => '0x82D4',
  'GL_VERTEX_ATTRIB_RELATIVE_OFFSET' => '0x82D5',
  'GL_VERTEX_BINDING_DIVISOR' => '0x82D6',
  'GL_VERTEX_BINDING_OFFSET' => '0x82D7',
  'GL_VERTEX_BINDING_STRIDE' => '0x82D8',
  'GL_VERTEX_CONSISTENT_HINT_PGI' => '0x1A22B',
  'GL_VERTEX_DATA_HINT_PGI' => '0x1A22A',
  'GL_VERTEX_PRECLIP_HINT_SGIX' => '0x83EF',
  'GL_VERTEX_PRECLIP_SGIX' => '0x83EE',
  'GL_VERTEX_PROGRAM_ARB' => '0x8620',
  'GL_VERTEX_SHADER' => '0x8B31',
  'GL_VERTEX_SHADER_ARB' => '0x8B31',
  'GL_VERTEX_SHADER_BIT' => '0x00000001',
  'GL_VERTEX_SHADER_BIT_EXT' => '0x00000001',
  'GL_VERTEX_SHADER_INVOCATIONS' => '0x82F0',
  'GL_VERTEX_STREAM0_ATI' => '0x876C',
  'GL_VERTEX_STREAM1_ATI' => '0x876D',
  'GL_VERTEX_STREAM2_ATI' => '0x876E',
  'GL_VERTEX_STREAM3_ATI' => '0x876F',
  'GL_VERTEX_STREAM4_ATI' => '0x8770',
  'GL_VERTEX_STREAM5_ATI' => '0x8771',
  'GL_VERTEX_STREAM6_ATI' => '0x8772',
  'GL_VERTEX_STREAM7_ATI' => '0x8773',
  'GL_VERTEX_SUBROUTINE' => '0x92E8',
  'GL_VERTEX_SUBROUTINE_UNIFORM' => '0x92EE',
  'GL_VERTEX_TEXTURE' => '0x829B',
  'GL_VERTICAL_LINE_TO_NV' => '0x08',
  'GL_VERTICES_SUBMITTED' => '0x82EE',
  'GL_VIEWPORT' => '0x0BA2',
  'GL_VIEWPORT_BIT' => '0x00000800',
  'GL_VIEWPORT_BOUNDS_RANGE' => '0x825D',
  'GL_VIEWPORT_COMMAND_NV' => '0x0010',
  'GL_VIEWPORT_INDEX_PROVOKING_VERTEX' => '0x825F',
  'GL_VIEWPORT_SUBPIXEL_BITS' => '0x825C',
  'GL_VIEW_COMPATIBILITY_CLASS' => '0x82B6',
  'GL_WAIT_FAILED' => '0x911D',
  'GL_WIDE_LINE_HINT_PGI' => '0x1A222',
  'GL_WRITE_ONLY' => '0x88B9',
  'GL_WRITE_PIXEL_DATA_RANGE_NV' => '0x8878',
  'GL_W_EXT' => '0x87D8',
  'GL_XOR' => '0x1506',
  'GL_X_EXT' => '0x87D5',
  'GL_YCRCB_422_SGIX' => '0x81BB',
  'GL_YCRCB_444_SGIX' => '0x81BC',
  'GL_Y_EXT' => '0x87D6',
  'GL_ZERO' => '0',
  'GL_ZERO_EXT' => '0x87DD',
  'GL_ZERO_TO_ONE' => '0x935F',
  'GL_ZOOM_X' => '0x0D16',
  'GL_ZOOM_Y' => '0x0D17',
  'GL_Z_EXT' => '0x87D7'
);

1;
