package OpenGL::Modern::Registry;

# 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_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_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_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_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_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_EGL_KHR_context_flush_control' => {
    'glewImpl' => 'GLEW_EGL_KHR_context_flush_control',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_EGL_NV_robustness_video_memory_purge' => {
    'glewImpl' => 'GLEW_EGL_NV_robustness_video_memory_purge',
    '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_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_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_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_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_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_framebuffer_blit' => {
    'glewImpl' => 'GLEW_EXT_framebuffer_blit',
    '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_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_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_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_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_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_framebuffer_fetch' => {
    'glewImpl' => 'GLEW_EXT_shader_framebuffer_fetch',
    '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_texture_lod' => {
    'glewImpl' => 'GLEW_EXT_shader_texture_lod',
    '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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_pack_invert' => {
    'glewImpl' => 'GLEW_MESA_pack_invert',
    '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_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_linked_gpu_multicast' => {
    'glewImpl' => 'GLEW_NVX_linked_gpu_multicast',
    '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_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_triangles' => {
    'glewImpl' => 'GLEW_NV_conservative_raster_pre_snap_triangles',
    '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_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_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_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_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_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_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_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_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_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_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_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_byte_coordinates' => {
    'glewImpl' => 'GLEW_OES_byte_coordinates',
    '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_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_framebuffer_foveated' => {
    'glewImpl' => 'GLEW_QCOM_framebuffer_foveated',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_perfmon_global_mode' => {
    'glewImpl' => 'GLEW_QCOM_perfmon_global_mode',
    'glewtype' => 'var',
    'restype' => 'GLboolean'
  },
  'GLEW_QCOM_shader_framebuffer_fetch_noncoherent' => {
    'glewImpl' => 'GLEW_QCOM_shader_framebuffer_fetch_noncoherent',
    '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_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_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 '
      ],
      [
        '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 '
      ]
    ],
    'feature' => 'GL_EXT_stencil_two_side',
    'glewImpl' => '__glewActiveStencilFaceEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glActiveTexture' => {
    'aliases' => {
      'glActiveTextureARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'texture',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glAlphaFragmentOp1ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp1ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFragmentOp2ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg2Rep',
        'GLuint '
      ],
      [
        'arg2Mod',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp2ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFragmentOp3ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg2Rep',
        'GLuint '
      ],
      [
        'arg2Mod',
        'GLuint '
      ],
      [
        'arg3',
        'GLuint '
      ],
      [
        'arg3Rep',
        'GLuint '
      ],
      [
        'arg3Mod',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewAlphaFragmentOp3ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAlphaFunc' => {
    'argdata' => [
      [
        'func',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'ref',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewAlphaFuncx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glApplyTextureEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewApplyTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAreProgramsResidentNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'const GLuint* ',
        'n'
      ],
      [
        'residences',
        'GLboolean *',
        'n'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewAreProgramsResidentNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'GLboolean'
  },
  'glAreTexturesResident' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint *',
        'n'
      ],
      [
        'residences',
        'GLboolean *',
        'n'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'GLboolean'
  },
  'glAreTexturesResidentEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'n'
      ],
      [
        'residences',
        'GLboolean* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewAreTexturesResidentEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'GLboolean'
  },
  'glAreVertexArraysResidentSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ],
      [
        'residences',
        'GLboolean* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewAreVertexArraysResidentSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewArrayObjectATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAsyncMarkerSGIX' => {
    'argdata' => [
      [
        'marker',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewAsyncMarkerSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glAttachShader' => {
    'aliases' => {
      'glAttachObjectARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewAttachShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBegin' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBeginConditionalRender' => {
    'aliases' => {
      'glBeginConditionalRenderNV' => 'GL_NV_conditional_render'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        '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'
  },
  'glBeginQueryIndexed' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBindAttribLocation' => {
    'aliases' => {
      'glBindAttribLocationARB' => 'GL_ARB_vertex_shader'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewBindAttribLocation',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBuffer' => {
    'aliases' => {
      'glBindBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewBindBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindBuffersBase' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'buffers',
        'const GLuint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindBuffersBase',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBindBuffersRange' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 3,
    '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 '
      ],
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewBindFramebuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindFramebufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'framebuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_object',
    'glewImpl' => '__glewBindFramebufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindImageTexture' => {
    'argdata' => [
      [
        'unit',
        'GLuint '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'access',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        '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'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindImageTextures',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBindLightParameterEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'value',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindLightParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindMaterialParameterEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'value',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindMaterialParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindMultiTextureEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewBindMultiTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindParameterEXT' => {
    'argdata' => [
      [
        'value',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindProgramARB' => {
    'aliases' => {
      'glBindProgramNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewBindRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindRenderbufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_framebuffer_object',
    'glewImpl' => '__glewBindRenderbufferEXT',
    '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'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindSamplers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBindTexGenParameterEXT' => {
    'argdata' => [
      [
        'unit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'value',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindTexGenParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindTexture' => {
    'aliases' => {
      'glBindTextureEXT' => 'GL_EXT_texture_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'value',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewBindTextureUnitParameterEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glBindTextures' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_multi_bind',
    'glewImpl' => '__glewBindTextures',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBindTransformFeedback' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewBindTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBindTransformFeedbackNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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'
  },
  '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',
    'has_ptr_arg' => 3,
    '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_coordinate_frame',
    'glewImpl' => '__glewBinormalPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBlendBarrierKHR' => {
    'aliases' => {
      'glBlendBarrier' => 'GL_KHR_blend_equation_advanced',
      '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 '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewBlendEquation',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendEquationSeparate' => {
    'aliases' => {
      'glBlendEquationSeparateEXT' => 'GL_EXT_blend_equation_separate'
    },
    'argdata' => [
      [
        'modeRGB',
        'GLenum '
      ],
      [
        'modeAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewBlendEquationSeparate',
    '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 '
      ],
      [
        'modeAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendEquationSeparatei',
    '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 '
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendEquationi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFunc' => {
    'argdata' => [
      [
        'sfactor',
        'GLenum '
      ],
      [
        'dfactor',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBlendFuncSeparate' => {
    'aliases' => {
      'glBlendFuncSeparateEXT' => 'GL_EXT_blend_func_separate',
      'glBlendFuncSeparateINGR' => undef
    },
    'argdata' => [
      [
        'sfactorRGB',
        'GLenum '
      ],
      [
        'dfactorRGB',
        'GLenum '
      ],
      [
        'sfactorAlpha',
        'GLenum '
      ],
      [
        'dfactorAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewBlendFuncSeparate',
    '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 '
      ],
      [
        'dstRGB',
        'GLenum '
      ],
      [
        'srcAlpha',
        'GLenum '
      ],
      [
        'dstAlpha',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendFuncSeparatei',
    '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 '
      ],
      [
        'dst',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_4_0',
    'glewImpl' => '__glewBlendFunci',
    '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 '
      ],
      [
        'filter',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        'filter',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ANGLE_framebuffer_blit',
    'glewImpl' => '__glewBlitFramebufferANGLE',
    '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 '
      ],
      [
        'filter',
        'GLenum '
      ]
    ],
    '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'
  },
  'glBufferData' => {
    'aliases' => {
      'glBufferDataARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void* ',
        'size'
      ],
      [
        'usage',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBufferData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBufferPageCommitmentARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'commit',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_sparse_buffer',
    'glewImpl' => '__glewBufferPageCommitmentARB',
    '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 '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_buffer_storage',
    'glewImpl' => '__glewBufferStorage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glBufferStorageExternalEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'clientBuffer',
        'GLeglClientBufferEXT '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_EXT_external_buffer',
    'glewImpl' => '__glewBufferStorageExternalEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glBufferStorageMemEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void* ',
        'size'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewBufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'lists',
        'const void *',
        'COMPSIZE(n,type)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCheckFramebufferStatus' => {
    'aliases' => {
      'glCheckFramebufferStatusEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewCheckFramebufferStatus',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glCheckNamedFramebufferStatus' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCheckNamedFramebufferStatus',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glCheckNamedFramebufferStatusEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCheckNamedFramebufferStatusEXT',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glClampColor' => {
    'aliases' => {
      'glClampColorARB' => 'GL_ARB_color_buffer_float'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'clamp',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClampColor',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClear' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    '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 '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearBufferData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearBufferSubData' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearBufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearBufferfi' => {
    'argdata' => [
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawBuffer',
        'GLint '
      ],
      [
        'depth',
        'GLfloat '
      ],
      [
        'stencil',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferfi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearBufferfv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLfloat* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearBufferiv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearBufferuiv' => {
    'argdata' => [
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLuint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewClearBufferuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  '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 '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedBufferData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedBufferDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearNamedBufferDataEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedBufferSubData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedBufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedBufferSubDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_buffer_object',
    'glewImpl' => '__glewClearNamedBufferSubDataEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedFramebufferfi' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'depth',
        'GLfloat '
      ],
      [
        'stencil',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferfi',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClearNamedFramebufferfv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'GLfloat* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedFramebufferiv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearNamedFramebufferuiv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'buffer',
        'GLenum '
      ],
      [
        'drawbuffer',
        'GLint '
      ],
      [
        'value',
        'const GLuint* ',
        'COMPSIZE(buffer)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewClearNamedFramebufferuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClearPixelLocalStorageuiEXT' => {
    'argdata' => [
      [
        'offset',
        'GLsizei '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_shader_pixel_local_storage2',
    'glewImpl' => '__glewClearPixelLocalStorageuiEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_texture',
    'glewImpl' => '__glewClearTexImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type)'
      ]
    ],
    'feature' => 'GL_ARB_clear_texture',
    'glewImpl' => '__glewClearTexSubImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClientActiveTexture' => {
    'aliases' => {
      'glClientActiveTextureARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'texture',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewClientActiveTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientActiveVertexStreamATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewClientActiveVertexStreamATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientAttribDefaultEXT' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewClientAttribDefaultEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClientWaitSync' => {
    'aliases' => {
      'glClientWaitSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'myGLsync',
        'GLsync '
      ],
      [
        'flags',
        'GLbitfield '
      ],
      [
        'timeout',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewClientWaitSync',
    'glewtype' => 'fun',
    'restype' => 'GLenum'
  },
  'glClipControl' => {
    'aliases' => {
      'glClipControlEXT' => undef
    },
    'argdata' => [
      [
        'origin',
        'GLenum '
      ],
      [
        'depth',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_clip_control',
    'glewImpl' => '__glewClipControl',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glClipPlane' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClipPlanef' => {
    'argdata' => [
      [
        'p',
        'GLenum '
      ],
      [
        'eqn',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewClipPlanef',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glClipPlanex' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'const GLfixed* ',
        '4'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewClipPlanex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glColor3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glColor4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewColor4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex2fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glColor4ubv' => {
    'argdata' => [
      [
        'v',
        'const GLubyte *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewColorFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp1ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMask',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewColorFragmentOp1ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp2ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMask',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg2Rep',
        'GLuint '
      ],
      [
        'arg2Mod',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewColorFragmentOp2ATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorFragmentOp3ATI' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'dst',
        'GLuint '
      ],
      [
        'dstMask',
        'GLuint '
      ],
      [
        'dstMod',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg1Rep',
        'GLuint '
      ],
      [
        'arg1Mod',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg2Rep',
        'GLuint '
      ],
      [
        'arg2Mod',
        'GLuint '
      ],
      [
        'arg3',
        'GLuint '
      ],
      [
        'arg3Rep',
        'GLuint '
      ],
      [
        'arg3Mod',
        'GLuint '
      ]
    ],
    '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'
  },
  'glColorMaterial' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glColorP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewColorP4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewColorPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewColorPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewColorPointervINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorSubTable' => {
    'aliases' => {
      'glColorSubTableEXT' => 'GL_EXT_color_subtable'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'start',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(format,type,count)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorSubTable',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorTable' => {
    'aliases' => {
      'glColorTableEXT' => 'GL_EXT_paletted_texture',
      'glColorTableSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'table',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTable',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorTableParameterfv' => {
    'aliases' => {
      'glColorTableParameterfvSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTableParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glColorTableParameteriv' => {
    'aliases' => {
      'glColorTableParameterivSGI' => 'GL_SGI_color_table'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewColorTableParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCombinerInputNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'variable',
        'GLenum '
      ],
      [
        'input',
        'GLenum '
      ],
      [
        'mapping',
        'GLenum '
      ],
      [
        'componentUsage',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerInputNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerOutputNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'abOutput',
        'GLenum '
      ],
      [
        'cdOutput',
        'GLenum '
      ],
      [
        'sumOutput',
        'GLenum '
      ],
      [
        'scale',
        'GLenum '
      ],
      [
        'bias',
        'GLenum '
      ],
      [
        'abDotProduct',
        'GLboolean '
      ],
      [
        'cdDotProduct',
        'GLboolean '
      ],
      [
        'muxSum',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerOutputNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterfNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterfvNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCombinerParameteriNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCombinerParameterivNV' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewCombinerParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCombinerStageParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners2',
    'glewImpl' => '__glewCombinerStageParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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' => {
    'aliases' => {
      'glCompileShaderARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewCompileShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCompileShaderIncludeARB' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'path',
        'const GLchar* const *',
        'count'
      ],
      [
        'length',
        'const GLint *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewCompileShaderIncludeARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glCompressedMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedMultiTexImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedMultiTexSubImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedMultiTexSubImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexImage1D' => {
    'aliases' => {
      'glCompressedTexImage1DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage1D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexImage2D' => {
    'aliases' => {
      'glCompressedTexImage2DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexImage3D' => {
    'aliases' => {
      'glCompressedTexImage3DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexSubImage1D' => {
    'aliases' => {
      'glCompressedTexSubImage1DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage1D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexSubImage2D' => {
    'aliases' => {
      'glCompressedTexSubImage2DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTexSubImage3D' => {
    'aliases' => {
      'glCompressedTexSubImage3DARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewCompressedTexSubImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage1D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'data',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCompressedTextureSubImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'imageSize',
        'GLsizei '
      ],
      [
        'bits',
        'const void *',
        'imageSize'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCompressedTextureSubImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'image',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionFilter1D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glConvolutionFilter2D' => {
    'aliases' => {
      'glConvolutionFilter2DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'image',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionFilter2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glConvolutionParameterf' => {
    'aliases' => {
      'glConvolutionParameterfEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConvolutionParameterfv' => {
    'aliases' => {
      'glConvolutionParameterfvEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glConvolutionParameteri' => {
    'aliases' => {
      'glConvolutionParameteriEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glConvolutionParameteriv' => {
    'aliases' => {
      'glConvolutionParameterivEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewConvolutionParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCopyBufferSubData' => {
    'aliases' => {
      'glCopyBufferSubDataNV' => 'GL_NV_copy_buffer'
    },
    'argdata' => [
      [
        'readtarget',
        'GLenum '
      ],
      [
        'writetarget',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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_ARB_copy_image',
    'glewImpl' => '__glewCopyImageSubData',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyImageSubDataNV' => {
    '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 '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_copy_image',
    'glewImpl' => '__glewCopyImageSubDataNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewCopyMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCopyTexImage1D' => {
    'aliases' => {
      'glCopyTexImage1DEXT' => 'GL_EXT_copy_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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'
  },
  'glCopyTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverFillPathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glCoverFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCoverStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewCoverStrokePathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glCoverStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ]
    ],
    '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'
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewCoverageModulationTableNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateBuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'buffers',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateBuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateCommandListsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'lists',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCreateCommandListsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateFramebuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'framebuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateFramebuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateMemoryObjectsEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'memoryObjects',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewCreateMemoryObjectsEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreatePerfQueryINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'queryHandle',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewCreatePerfQueryINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateProgramPipelines',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateQueries' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateQueries',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateRenderbuffers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateRenderbuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateSamplers' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'samplers',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateSamplers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateShader' => {
    'aliases' => {
      'glCreateShaderObjectARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'type',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewCreateShader',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateShaderProgramEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'string',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_EXT_separate_shader_objects',
    'glewImpl' => '__glewCreateShaderProgramEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glCreateShaderProgramv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'strings',
        'const GLchar * const * ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewCreateShaderProgramv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'GLuint'
  },
  'glCreateStatesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'states',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewCreateStatesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateTextures',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateTransformFeedbacks' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateTransformFeedbacks',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCreateVertexArrays' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewCreateVertexArrays',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCullFace' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glCullParameterdvEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_cull_vertex',
    'glewImpl' => '__glewCullParameterdvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCullParameterfvEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_cull_vertex',
    'glewImpl' => '__glewCullParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glCurrentPaletteMatrixARB' => {
    'argdata' => [
      [
        'index',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewCurrentPaletteMatrixARB',
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDebugMessageCallbackAMD' => {
    'argdata' => [
      [
        'callback',
        'GLDEBUGPROCAMD '
      ],
      [
        'userParam',
        'void *'
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageCallbackAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDebugMessageControl' => {
    'aliases' => {
      'glDebugMessageControlARB' => 'GL_ARB_debug_output',
      'glDebugMessageControlKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'severity',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'count'
      ],
      [
        'enabled',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewDebugMessageControl',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDebugMessageEnableAMD' => {
    'argdata' => [
      [
        'category',
        'GLenum '
      ],
      [
        'severity',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'count'
      ],
      [
        'enabled',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageEnableAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDebugMessageInsert' => {
    'aliases' => {
      'glDebugMessageInsertARB' => 'GL_ARB_debug_output',
      'glDebugMessageInsertKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'severity',
        'GLenum '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'buf',
        'const GLchar* ',
        'COMPSIZE(buf,length)'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewDebugMessageInsert',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDebugMessageInsertAMD' => {
    'argdata' => [
      [
        'category',
        'GLenum '
      ],
      [
        'severity',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'buf',
        'const GLchar* ',
        'length'
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewDebugMessageInsertAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDeformSGIX' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    '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',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewDeleteBuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteCommandListsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'lists',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDeleteCommandListsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteFencesAPPLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewDeleteFencesAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteFencesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewDeleteFencesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewDeleteFramebuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteMemoryObjectsEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'memoryObjects',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewDeleteMemoryObjectsEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_AMD_name_gen_delete',
    'glewImpl' => '__glewDeleteNamesAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewDeleteOcclusionQueriesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewDeletePerfMonitorsAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewDeleteProgramPipelines',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteProgramsARB' => {
    'aliases' => {
      'glDeleteProgramsNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewDeleteProgramsARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteQueries' => {
    'aliases' => {
      'glDeleteQueriesARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewDeleteQueries',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteQueriesANGLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewDeleteQueriesANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteRenderbuffers' => {
    'aliases' => {
      'glDeleteRenderbuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewDeleteRenderbuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteSamplers' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'samplers',
        'const GLuint * ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewDeleteSamplers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteSemaphoresEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'semaphores',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewDeleteSemaphoresEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDeleteStatesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteTexturesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewDeleteTexturesEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteTransformFeedbacks' => {
    'aliases' => {
      'glDeleteTransformFeedbacksNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewDeleteTransformFeedbacks',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteVertexArrays' => {
    'aliases' => {
      'glDeleteVertexArraysAPPLE' => 'GL_APPLE_vertex_array_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewDeleteVertexArrays',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDeleteVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewDeleteVertexArraysSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDepthRangeArrayv' => {
    'argdata' => [
      [
        'first',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLclampd * ',
        'COMPSIZE(count)'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewDepthRangeArrayv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  'glDepthRangex' => {
    'argdata' => [
      [
        'zNear',
        'GLclampx '
      ],
      [
        'zFar',
        'GLclampx '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewDepthRangex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDetachShader' => {
    'aliases' => {
      'glDetachObjectARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shader',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDetachShader',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDetailTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'feature' => 'GL_SGIS_detail_texture',
    'glewImpl' => '__glewDetailTexFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDisable' => {
    'argdata' => [
      [
        'cap',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientState' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientStateIndexedEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewDisableClientStateIndexedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDisableClientStateiEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    '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' => [
      [
        'cap',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewDisablei',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDiscardFramebufferEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments'
      ]
    ],
    'feature' => 'GL_EXT_discard_framebuffer',
    'glewImpl' => '__glewDiscardFramebufferEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawArraysIndirect' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_draw_indirect',
    'glewImpl' => '__glewDrawArraysIndirect',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewDrawArraysInstanced',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawArraysInstancedBaseInstance' => {
    'aliases' => {
      'glDrawArraysInstancedBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'primcount',
        'GLsizei '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawArraysInstancedBaseInstance',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawBuffer' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewDrawBuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawBuffersIndexedEXT' => {
    'argdata' => [
      [
        'n',
        'GLint '
      ],
      [
        'location',
        'const GLenum* ',
        'n'
      ],
      [
        'indices',
        'const GLint *',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewDrawBuffersIndexedEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glDrawBuffersNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_draw_buffers',
    'glewImpl' => '__glewDrawBuffersNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawCommandsAddressNV' => {
    'argdata' => [
      [
        'primitiveMode',
        'GLenum '
      ],
      [
        'indirects',
        'const GLuint64* '
      ],
      [
        'sizes',
        'const GLsizei* '
      ],
      [
        'count',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewDrawCommandsAddressNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 4,
    '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',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glDrawElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewDrawElementArrayAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawElementArrayATI' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ATI_element_array',
    'glewImpl' => '__glewDrawElementArrayATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawElements' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawElementsBaseVertex' => {
    'aliases' => {
      'glDrawElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'void *',
        'COMPSIZE(count,type)'
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawElementsBaseVertex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawElementsIndirect' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_draw_indirect',
    'glewImpl' => '__glewDrawElementsIndirect',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void* ',
        'COMPSIZE(count,type)'
      ],
      [
        'instancecount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewDrawElementsInstanced',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseInstance' => {
    'aliases' => {
      'glDrawElementsInstancedBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *',
        'count'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawElementsInstancedBaseInstance',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseVertex' => {
    'aliases' => {
      'glDrawElementsInstancedBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawElementsInstancedBaseVertex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawElementsInstancedBaseVertexBaseInstance' => {
    'aliases' => {
      'glDrawElementsInstancedBaseVertexBaseInstanceEXT' => 'GL_EXT_base_instance'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *',
        'count'
      ],
      [
        'instancecount',
        'GLsizei '
      ],
      [
        'basevertex',
        'GLint '
      ],
      [
        'baseinstance',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_base_instance',
    'glewImpl' => '__glewDrawElementsInstancedBaseVertexBaseInstance',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawPixels' => {
    'argdata' => [
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawRangeElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'first',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewDrawRangeElementArrayAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawRangeElementArrayATI' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *',
        'COMPSIZE(count,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewDrawRangeElements',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glDrawRangeElementsBaseVertex' => {
    'aliases' => {
      'glDrawRangeElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'void *',
        'COMPSIZE(count,type)'
      ],
      [
        'basevertex',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewDrawRangeElementsBaseVertex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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' => undef,
      'glDrawTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewDrawTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackInstanced' => {
    'aliases' => {
      'glDrawTransformFeedbackInstancedEXT' => undef
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback_instanced',
    'glewImpl' => '__glewDrawTransformFeedbackInstanced',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackStream' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewDrawTransformFeedbackStream',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glDrawTransformFeedbackStreamInstanced' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'stream',
        'GLuint '
      ],
      [
        'primcount',
        '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'
  },
  '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 *',
        'COMPSIZE(stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glEdgeFlagPointerEXT' => {
    'argdata' => [
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const GLboolean* ',
        'COMPSIZE(stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewEdgeFlagPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glEdgeFlagPointerListIBM' => {
    'argdata' => [
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const GLboolean ** ',
        'COMPSIZE(stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewEdgeFlagPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glEdgeFlagv' => {
    'argdata' => [
      [
        'flag',
        'const GLboolean *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glElementPointerAPPLE' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type)'
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewElementPointerAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glElementPointerATI' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type)'
      ]
    ],
    'feature' => 'GL_ATI_element_array',
    'glewImpl' => '__glewElementPointerATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glEnable' => {
    'argdata' => [
      [
        'cap',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientState' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientStateIndexedEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewEnableClientStateIndexedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEnableClientStateiEXT' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    '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' => [
      [
        'cap',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewEnablei',
    '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 '
      ]
    ],
    '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'
  },
  'glEndQueryIndexed' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glEvalMapsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewEvalMapsNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalMesh1' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'i1',
        'GLint '
      ],
      [
        'i2',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glEvalMesh2' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        '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'
  },
  'glExecuteProgramNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewExecuteProgramNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glExtGetBufferPointervQCOM' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetBufferPointervQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glExtGetBuffersQCOM' => {
    'argdata' => [
      [
        'buffers',
        'GLuint* ',
        'maxBuffers'
      ],
      [
        'maxBuffers',
        'GLint '
      ],
      [
        'numBuffers',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetBuffersQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetFramebuffersQCOM' => {
    'argdata' => [
      [
        'framebuffers',
        'GLuint* ',
        'maxFramebuffers'
      ],
      [
        'maxFramebuffers',
        'GLint '
      ],
      [
        'numFramebuffers',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetFramebuffersQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetProgramBinarySourceQCOM' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'source',
        'GLchar* ',
        'length'
      ],
      [
        'length',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetProgramBinarySourceQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetProgramsQCOM' => {
    'argdata' => [
      [
        'programs',
        'GLuint* ',
        'maxPrograms'
      ],
      [
        'maxPrograms',
        'GLint '
      ],
      [
        'numPrograms',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetProgramsQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetRenderbuffersQCOM' => {
    'argdata' => [
      [
        'renderbuffers',
        'GLuint* ',
        'maxRenderbuffers'
      ],
      [
        'maxRenderbuffers',
        'GLint '
      ],
      [
        'numRenderbuffers',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetRenderbuffersQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetShadersQCOM' => {
    'argdata' => [
      [
        'shaders',
        'GLuint* ',
        'maxShaders'
      ],
      [
        'maxShaders',
        'GLint '
      ],
      [
        'numShaders',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get2',
    'glewImpl' => '__glewExtGetShadersQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glExtGetTexLevelParameterivQCOM' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'face',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexLevelParameterivQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glExtGetTexSubImageQCOM' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'texels',
        'void *'
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexSubImageQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glExtGetTexturesQCOM' => {
    'argdata' => [
      [
        'textures',
        'GLuint* '
      ],
      [
        'maxTextures',
        'GLint '
      ],
      [
        'numTextures',
        'GLint* '
      ]
    ],
    'feature' => 'GL_QCOM_extended_get',
    'glewImpl' => '__glewExtGetTexturesQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
  },
  'glFeedbackBuffer' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'buffer',
        'GLfloat *',
        'size'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFenceSync' => {
    'aliases' => {
      'glFenceSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'condition',
        'GLenum '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewFenceSync',
    'glewtype' => 'fun',
    'restype' => 'GLsync'
  },
  'glFinalCombinerInputNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum '
      ],
      [
        'input',
        'GLenum '
      ],
      [
        'mapping',
        'GLenum '
      ],
      [
        'componentUsage',
        'GLenum '
      ]
    ],
    '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'
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewFinishAsyncSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ]
    ],
    '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',
    'has_ptr_arg' => 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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordPointer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogCoordPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewFogCoordPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoorddv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewFogCoordfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogCoordhNV' => {
    'argdata' => [
      [
        'fog',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewFogCoordhNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogCoordhvNV' => {
    'argdata' => [
      [
        'fog',
        'const GLhalf* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewFogCoordhvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogFuncSGIS' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'feature' => 'GL_SGIS_fog_function',
    'glewImpl' => '__glewFogFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogLayersSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_fog_layers',
    'glewImpl' => '__glewFogLayersSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogf' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogfv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogi' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogiv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFogx' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFogx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFogxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewFogxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentColorMaterialEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentColorMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentColorMaterialSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentLightModelfvSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModelfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentLightModeliEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewFragmentLightModeliEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFragmentLightModeliSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentLightModelivSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightModelivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentLightivSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentLightivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFragmentMaterialivSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewFragmentMaterialivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferDrawBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferDrawBuffersEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferDrawBuffersEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_QCOM_framebuffer_foveated',
    'glewImpl' => '__glewFramebufferFoveationConfigQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewFramebufferParameteri',
    '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 '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewFramebufferReadBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferRenderbuffer' => {
    'aliases' => {
      'glFramebufferRenderbufferEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'renderbuffertarget',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferSampleLocationsfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_sample_locations',
    'glewImpl' => '__glewFramebufferSampleLocationsfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFramebufferSampleLocationsfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_sample_locations',
    'glewImpl' => '__glewFramebufferSampleLocationsfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFramebufferSamplePositionsfvAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'values',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewFramebufferSamplePositionsfvAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glFramebufferTexture' => {
    'aliases' => {
      'glFramebufferTextureARB' => 'GL_ARB_geometry_shader4',
      'glFramebufferTextureEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture2DMultisampleEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'samples',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_multisampled_render_to_texture',
    'glewImpl' => '__glewFramebufferTexture2DMultisampleEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTexture3D' => {
    'aliases' => {
      'glFramebufferTexture3DEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTexture3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glFramebufferTextureFaceARB' => {
    'aliases' => {
      'glFramebufferTextureFaceEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'face',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewFramebufferTextureLayer',
    '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 '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    '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'
  },
  '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'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGenBuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenFencesAPPLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewGenFencesAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenFencesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'fences',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewGenFencesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenFramebuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenNamesAMD' => {
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        'num',
        'GLuint '
      ],
      [
        'names',
        'GLuint* ',
        'num'
      ]
    ],
    'feature' => 'GL_AMD_name_gen_delete',
    'glewImpl' => '__glewGenNamesAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenOcclusionQueriesNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGenOcclusionQueriesNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGenPerfMonitorsAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenProgramPipelines' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'pipelines',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGenProgramPipelines',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenProgramsARB' => {
    'aliases' => {
      'glGenProgramsNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGenProgramsARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenQueries' => {
    'aliases' => {
      'glGenQueriesARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGenQueries',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenQueriesANGLE' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGenQueriesANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenRenderbuffers' => {
    'aliases' => {
      'glGenRenderbuffersEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'renderbuffers',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenRenderbuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenSamplers' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'samplers',
        'GLuint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGenSamplers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenSemaphoresEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'semaphores',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewGenSemaphoresEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenSymbolsEXT' => {
    'argdata' => [
      [
        'dataType',
        'GLenum '
      ],
      [
        'storageType',
        'GLenum '
      ],
      [
        'range',
        'GLenum '
      ],
      [
        'components',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGenSymbolsEXT',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGenTextures' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint *',
        'n'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenTexturesEXT' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'textures',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_EXT_texture_object',
    'glewImpl' => '__glewGenTexturesEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenTransformFeedbacks' => {
    'aliases' => {
      'glGenTransformFeedbacksNV' => 'GL_NV_transform_feedback2'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'ids',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewGenTransformFeedbacks',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenVertexArrays' => {
    'aliases' => {
      'glGenVertexArraysAPPLE' => 'GL_APPLE_vertex_array_object'
    },
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_vertex_array_object',
    'glewImpl' => '__glewGenVertexArrays',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGenVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewGenVertexArraysSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGenerateMipmap',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGenerateMultiTexMipmapEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ]
    ],
    '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 '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGenerateTextureMipmapEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetActiveAtomicCounterBufferiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufferIndex',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_atomic_counters',
    'glewImpl' => '__glewGetActiveAtomicCounterBufferiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetActiveAttrib' => {
    'aliases' => {
      'glGetActiveAttribARB' => 'GL_ARB_vertex_shader'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint* ',
        '1'
      ],
      [
        'type',
        'GLenum* ',
        '1'
      ],
      [
        'name',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetActiveAttrib',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glGetActiveSubroutineName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineName',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetActiveSubroutineUniformName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineUniformName',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetActiveSubroutineUniformiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'values',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetActiveSubroutineUniformiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetActiveUniform' => {
    'aliases' => {
      'glGetActiveUniformARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'size',
        'GLint* ',
        '1'
      ],
      [
        'type',
        'GLenum* ',
        '1'
      ],
      [
        'name',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetActiveUniform',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glGetActiveUniformBlockName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockIndex',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'uniformBlockName',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformBlockName',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetActiveUniformBlockiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformBlockIndex',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(program,uniformBlockIndex,pname)'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformBlockiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetActiveUniformName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformIndex',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'uniformName',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformName',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetActiveUniformsiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'uniformCount',
        'GLsizei '
      ],
      [
        'uniformIndices',
        'const GLuint* ',
        'uniformCount'
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(uniformCount,pname)'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetActiveUniformsiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetActiveVaryingNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'size',
        'GLsizei *',
        '1'
      ],
      [
        'type',
        'GLenum *',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewGetActiveVaryingNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glGetArrayObjectfvATI' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetArrayObjectfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetArrayObjectivATI' => {
    'argdata' => [
      [
        'array',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetArrayObjectivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetAttachedObjectsARB' => {
    'argdata' => [
      [
        'containerObj',
        'GLhandleARB '
      ],
      [
        'maxCount',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei* ',
        '1'
      ],
      [
        'obj',
        'GLhandleARB *',
        'maxCount'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetAttachedObjectsARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetAttachedShaders' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'maxCount',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei* ',
        '1'
      ],
      [
        'shaders',
        'GLuint* ',
        'maxCount'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetAttachedShaders',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetAttribLocation' => {
    'aliases' => {
      'glGetAttribLocationARB' => 'GL_ARB_vertex_shader'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetAttribLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetBooleani_v' => {
    'aliases' => {
      'glGetBooleanIndexedvEXT' => 'GL_EXT_draw_buffers2'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLboolean* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetBooleani_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBooleanv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBufferParameteri64v' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64 * ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_3_2',
    'glewImpl' => '__glewGetBufferParameteri64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBufferParameteriv' => {
    'aliases' => {
      'glGetBufferParameterivARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBufferParameterui64vNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetBufferParameterui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBufferPointerv' => {
    'aliases' => {
      'glGetBufferPointervARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferPointerv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetBufferSubData' => {
    'aliases' => {
      'glGetBufferSubDataARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void* ',
        'size'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetBufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetClipPlane' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetClipPlanef' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'GLfloat * ',
        '4'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetClipPlanef',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetClipPlanex' => {
    'argdata' => [
      [
        'plane',
        'GLenum '
      ],
      [
        'equation',
        'GLfixed * ',
        '4'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetClipPlanex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTable' => {
    'aliases' => {
      'glGetColorTableEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'table',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTable',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTableParameterfv' => {
    'aliases' => {
      'glGetColorTableParameterfvEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTableParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTableParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableParameterfvSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTableParameteriv' => {
    'aliases' => {
      'glGetColorTableParameterivEXT' => 'GL_EXT_paletted_texture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetColorTableParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTableParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableParameterivSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetColorTableSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'table',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_SGI_color_table',
    'glewImpl' => '__glewGetColorTableSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCombinerInputParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'variable',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerInputParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCombinerInputParameterivNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'variable',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerInputParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCombinerOutputParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerOutputParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCombinerOutputParameterivNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'portion',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetCombinerOutputParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCombinerStageParameterfvNV' => {
    'argdata' => [
      [
        'stage',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners2',
    'glewImpl' => '__glewGetCombinerStageParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCommandHeaderNV' => {
    'argdata' => [
      [
        'tokenID',
        'GLenum '
      ],
      [
        'size',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewGetCommandHeaderNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetCompressedMultiTexImageEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,lod)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetCompressedMultiTexImageEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCompressedTexImage' => {
    'aliases' => {
      'glGetCompressedTexImageARB' => 'GL_ARB_texture_compression'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,level)'
      ]
    ],
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewGetCompressedTexImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCompressedTextureImage' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetCompressedTextureImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCompressedTextureImageEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'img',
        'void *',
        'COMPSIZE(target,lod)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetCompressedTextureImageEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionFilter' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'image',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionFilter',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionFilterEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'image',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionFilterEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetConvolutionParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetConvolutionParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_convolution',
    'glewImpl' => '__glewGetConvolutionParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetCoverageModulationTableNV' => {
    'argdata' => [
      [
        'bufsize',
        'GLsizei '
      ],
      [
        'v',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewGetCoverageModulationTableNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetDebugMessageLog' => {
    'aliases' => {
      'glGetDebugMessageLogARB' => 'GL_ARB_debug_output',
      'glGetDebugMessageLogKHR' => undef
    },
    'argdata' => [
      [
        'count',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'sources',
        'GLenum* ',
        'count'
      ],
      [
        'types',
        'GLenum* ',
        'count'
      ],
      [
        'ids',
        'GLuint* ',
        'count'
      ],
      [
        'severities',
        'GLenum* ',
        'count'
      ],
      [
        'lengths',
        'GLsizei* ',
        'count'
      ],
      [
        'messageLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewGetDebugMessageLog',
    'glewtype' => 'fun',
    'has_ptr_arg' => 6,
    'restype' => 'GLuint'
  },
  'glGetDebugMessageLogAMD' => {
    'argdata' => [
      [
        'count',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'categories',
        'GLenum* ',
        'count'
      ],
      [
        'severities',
        'GLuint* ',
        'count'
      ],
      [
        'ids',
        'GLuint* ',
        'count'
      ],
      [
        'lengths',
        'GLsizei* ',
        'count'
      ],
      [
        'message',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_AMD_debug_output',
    'glewImpl' => '__glewGetDebugMessageLogAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 5,
    'restype' => 'GLuint'
  },
  'glGetDetailTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'points',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_SGIS_detail_texture',
    'glewImpl' => '__glewGetDetailTexFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetDoublei_v' => {
    'aliases' => {
      'glGetDoubleIndexedvEXT' => 'GL_EXT_direct_state_access',
      'glGetDoublei_vEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLdouble* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewGetDoublei_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetDoublev' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetDriverControlStringQCOM' => {
    'argdata' => [
      [
        'driverControl',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* '
      ],
      [
        'driverControlString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewGetDriverControlStringQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetDriverControlsQCOM' => {
    'argdata' => [
      [
        'num',
        'GLint* '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'driverControls',
        'GLuint *',
        'size'
      ]
    ],
    'feature' => 'GL_QCOM_driver_control',
    'glewImpl' => '__glewGetDriverControlsQCOM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewGetFenceivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFinalCombinerInputParameterfvNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetFinalCombinerInputParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFinalCombinerInputParameterivNV' => {
    'argdata' => [
      [
        'variable',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_register_combiners',
    'glewImpl' => '__glewGetFinalCombinerInputParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFirstPerfQueryIdINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetFirstPerfQueryIdINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFixedv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetFixedv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewGetFloati_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFloatv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFogFuncSGIS' => {
    'argdata' => [
      [
        'points',
        'GLfloat* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_SGIS_fog_function',
    'glewImpl' => '__glewGetFogFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFogLayersSGIX' => {
    'argdata' => [
      [
        'points',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_fog_layers',
    'glewImpl' => '__glewGetFogLayersSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentLightfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentLightivEXT' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentLightivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentLightivSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentLightivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentMaterialfvEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentMaterialfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentMaterialfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentMaterialivEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_fragment_lighting',
    'glewImpl' => '__glewGetFragmentMaterialivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFragmentMaterialivSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_fragment_specular_lighting',
    'glewImpl' => '__glewGetFragmentMaterialivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFramebufferAttachmentParameteriv' => {
    'aliases' => {
      'glGetFramebufferAttachmentParameterivEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGetFramebufferAttachmentParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFramebufferParameterfvAMD' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'size',
        'GLsizei '
      ],
      [
        'values',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewGetFramebufferParameterfvAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFramebufferParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewGetFramebufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFramebufferParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetFramebufferParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetFramebufferPixelLocalStorageSizeEXT' => {
    'argdata' => [
      [
        'target',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_shader_pixel_local_storage2',
    'glewImpl' => '__glewGetFramebufferPixelLocalStorageSizeEXT',
    'glewtype' => 'fun',
    'restype' => 'GLsizei'
  },
  'glGetGraphicsResetStatus' => {
    'aliases' => {
      'glGetGraphicsResetStatusEXT' => undef,
      '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 '
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLhandleARB'
  },
  'glGetHistogram' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogram',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetHistogramEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetHistogramParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogramParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetHistogramParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetHistogramParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetHistogramParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetHistogramParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetHistogramParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetImageHandleARB' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetImageHandleARB',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetImageHandleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layered',
        'GLboolean '
      ],
      [
        'layer',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewGetImageHandleNV',
    'glewtype' => 'fun',
    'restype' => 'GLuint64'
  },
  'glGetImageTransformParameterfvHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewGetImageTransformParameterfvHP',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetImageTransformParameterivHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewGetImageTransformParameterivHP',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInfoLogARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'maxLength',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLcharARB *',
        'maxLength'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetInfoLogARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetInteger64i_v' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint64 * ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_VERSION_3_2',
    'glewImpl' => '__glewGetInteger64i_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInteger64v' => {
    'aliases' => {
      'glGetInteger64vAPPLE' => 'GL_APPLE_sync',
      'glGetInteger64vEXT' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewGetInteger64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetIntegeri_v' => {
    'aliases' => {
      'glGetIntegerIndexedvEXT' => 'GL_EXT_draw_buffers2'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetIntegeri_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetIntegeri_vEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewGetIntegeri_vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetIntegerui64vNV' => {
    'argdata' => [
      [
        'value',
        'GLenum '
      ],
      [
        'result',
        'GLuint64EXT* ',
        'COMPSIZE(value)'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetIntegerui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetIntegerv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInternalformatSampleivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_internalformat_sample_query',
    'glewImpl' => '__glewGetInternalformatSampleivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInternalformati64v' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint64* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_internalformat_query2',
    'glewImpl' => '__glewGetInternalformati64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInternalformativ' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_internalformat_query',
    'glewImpl' => '__glewGetInternalformativ',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInvariantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantBooleanvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInvariantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantFloatvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetInvariantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetInvariantIntegervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLightfv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLightiv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLightxv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetLightxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLocalConstantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantBooleanvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLocalConstantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantFloatvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetLocalConstantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetLocalConstantIntegervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMPEGParameterfvSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGParameterfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMPEGParameterivSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGParameterivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMPEGPredictorSGIX' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *'
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGPredictorSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMPEGQuantTableubv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'values',
        'GLubyte* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewGetMPEGQuantTableubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapAttribParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapAttribParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapAttribParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapAttribParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapControlPointsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'ustride',
        'GLsizei '
      ],
      [
        'vstride',
        'GLsizei '
      ],
      [
        'packed',
        'GLboolean '
      ],
      [
        'points',
        'void *',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapControlPointsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewGetMapParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapdv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'v',
        'GLdouble *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'v',
        'GLfloat *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMapiv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'v',
        'GLint *',
        'COMPSIZE(target,query)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMaterialfv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMaterialiv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMaterialxv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetMaterialxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMemoryObjectParameterivEXT' => {
    'argdata' => [
      [
        'memoryObject',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetMemoryObjectParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmax' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmax',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmaxEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'values',
        'void *',
        'COMPSIZE(target,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmaxParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmaxParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmaxParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmaxParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewGetMinmaxParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMinmaxParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_histogram',
    'glewImpl' => '__glewGetMinmaxParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexEnvfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexEnvfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexEnvivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexEnvivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexGendvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGendvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexGenfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGenfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexGenivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexGenivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexImageEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexImageEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexLevelParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexLevelParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexLevelParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexLevelParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexParameterIivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterIivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexParameterIuivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterIuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultiTexParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetMultiTexParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetMultisamplefv' => {
    'aliases' => {
      'glGetMultisamplefvNV' => 'GL_NV_explicit_multisample'
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'val',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewGetMultisamplefv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferParameteri64v' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameteri64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferParameteriv' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferParameterivEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferParameterui64vNV' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewGetNamedBufferParameterui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferPointerv' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferPointerv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferPointervEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferPointervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferSubData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedBufferSubDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'void *',
        'COMPSIZE(size)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedBufferSubDataEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedFramebufferAttachmentParameteriv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferAttachmentParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedFramebufferAttachmentParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferAttachmentParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedFramebufferParameteriv' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedFramebufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedFramebufferParameterivEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewGetNamedFramebufferParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterIivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterIivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterIuivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLuint* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterIuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterdvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterdvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramLocalParameterfvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramLocalParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramStringEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'string',
        'void *',
        'COMPSIZE(program,pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramStringEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedProgramivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedProgramivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedRenderbufferParameteriv' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetNamedRenderbufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedRenderbufferParameterivEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetNamedRenderbufferParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNamedStringARB' => {
    'argdata' => [
      [
        'namelen',
        'GLint '
      ],
      [
        'name',
        'const GLchar* ',
        'namelen'
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'stringlen',
        'GLint *',
        '1'
      ],
      [
        'string',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_shading_language_include',
    'glewImpl' => '__glewGetNamedStringARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNextPerfQueryIdINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'nextQueryId',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetNextPerfQueryIdINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetNonlinLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint* '
      ],
      [
        'data',
        'GLfloat *'
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewGetNonlinLightfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetNonlinMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint* '
      ],
      [
        'data',
        'const GLfloat *'
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewGetNonlinMaterialfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetObjectBufferfvATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetObjectBufferfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetObjectBufferivATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetObjectBufferivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetObjectLabel' => {
    'aliases' => {
      'glGetObjectLabelKHR' => undef
    },
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'label',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_KHR_debug',
    'glewImpl' => '__glewGetObjectLabel',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetObjectLabelEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'object',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'label',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_EXT_debug_label',
    'glewImpl' => '__glewGetObjectLabelEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetObjectParameterfvARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetObjectParameterfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetObjectParameterivAPPLE' => {
    'argdata' => [
      [
        'objectType',
        'GLenum '
      ],
      [
        'name',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_APPLE_object_purgeable',
    'glewImpl' => '__glewGetObjectParameterivAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetObjectParameterivARB' => {
    'argdata' => [
      [
        'obj',
        'GLhandleARB '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_shader_objects',
    'glewImpl' => '__glewGetObjectParameterivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetOcclusionQueryivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGetOcclusionQueryivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetOcclusionQueryuivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_occlusion_query',
    'glewImpl' => '__glewGetOcclusionQueryuivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathColorGenfvNV' => {
    'argdata' => [
      [
        'color',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathColorGenfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathColorGenivNV' => {
    'argdata' => [
      [
        'color',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathColorGenivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'commands',
        'GLubyte* ',
        'COMPSIZE(path)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathCommandsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coords',
        'GLfloat* ',
        'COMPSIZE(path)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathCoordsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathDashArrayNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'dashArray',
        'GLfloat* ',
        'COMPSIZE(path)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathDashArrayNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'metrics',
        'GLfloat* ',
        'COMPSIZE(metricQueryMask,numPaths,stride)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathMetricRangeNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathMetricsNV' => {
    'argdata' => [
      [
        'metricQueryMask',
        'GLbitfield '
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPathParameterfvNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathParameterivNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathSpacingNV' => {
    'argdata' => [
      [
        'pathListMode',
        'GLenum '
      ],
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'advanceScale',
        'GLfloat '
      ],
      [
        'kerningScale',
        'GLfloat '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'returnedSpacing',
        'GLfloat *',
        'COMPSIZE(pathListMode,numPaths)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathSpacingNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPathTexGenfvNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathTexGenfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPathTexGenivNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetPathTexGenivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 7,
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterDataAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'dataSize',
        'GLsizei '
      ],
      [
        'data',
        'GLuint* ',
        'dataSize/4'
      ],
      [
        'bytesWritten',
        'GLint *',
        '1'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterDataAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterInfoAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'counter',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'void *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterInfoAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPerfMonitorCounterStringAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'counter',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'counterString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCounterStringAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfMonitorCountersAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'numCounters',
        'GLint* ',
        '1'
      ],
      [
        'maxActiveCounters',
        'GLint *',
        '1'
      ],
      [
        'counterSize',
        'GLsizei '
      ],
      [
        'counters',
        'GLuint *',
        'counterSize'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorCountersAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetPerfMonitorGroupStringAMD' => {
    'argdata' => [
      [
        'group',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'groupString',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorGroupStringAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfMonitorGroupsAMD' => {
    'argdata' => [
      [
        'numGroups',
        'GLint* ',
        '1'
      ],
      [
        'groupsSize',
        'GLsizei '
      ],
      [
        'groups',
        'GLuint *',
        'groupsSize'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewGetPerfMonitorGroupsAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfQueryDataINTEL' => {
    'argdata' => [
      [
        'queryHandle',
        'GLuint '
      ],
      [
        'flags',
        'GLuint '
      ],
      [
        'dataSize',
        'GLsizei '
      ],
      [
        'data',
        'void *'
      ],
      [
        'bytesWritten',
        'GLuint *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryDataINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfQueryIdByNameINTEL' => {
    'argdata' => [
      [
        'queryName',
        'GLchar* '
      ],
      [
        'queryId',
        'GLuint *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryIdByNameINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetPerfQueryInfoINTEL' => {
    'argdata' => [
      [
        'queryId',
        'GLuint '
      ],
      [
        'queryNameLength',
        'GLuint '
      ],
      [
        'queryName',
        'GLchar* ',
        'queryNameLength'
      ],
      [
        'dataSize',
        'GLuint *'
      ],
      [
        'noCounters',
        'GLuint *'
      ],
      [
        'noInstances',
        'GLuint *'
      ],
      [
        'capsMask',
        'GLuint *'
      ]
    ],
    'feature' => 'GL_INTEL_performance_query',
    'glewImpl' => '__glewGetPerfQueryInfoINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 5,
    'restype' => 'void'
  },
  'glGetPixelMapfv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'values',
        'GLfloat *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelMapuiv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'values',
        'GLuint *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelMapusv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'values',
        'GLushort *',
        'COMPSIZE(map)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelTransformParameterfvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewGetPixelTransformParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelTransformParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewGetPixelTransformParameterfvSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelTransformParameterivEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewGetPixelTransformParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPixelTransformParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewGetPixelTransformParameterivSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPointerIndexedvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetPointerIndexedvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPointeri_vEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetPointeri_vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPointerv' => {
    'aliases' => {
      'glGetPointervEXT' => undef,
      'glGetPointervKHR' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void* *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetPolygonStipple' => {
    'argdata' => [
      [
        'mask',
        'GLubyte *',
        'COMPSIZE()'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProcAddressREGAL' => {
    'argdata' => [
      [
        'name',
        'const GLchar *'
      ]
    ],
    'feature' => 'GL_REGAL_proc_address',
    'glewImpl' => '__glewGetProcAddressREGAL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glGetProgramBinary' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'binaryFormat',
        'GLenum *',
        '1'
      ],
      [
        'binary',
        'void*',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_get_program_binary',
    'glewImpl' => '__glewGetProgramBinary',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetProgramEnvParameterdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramEnvParameterdvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramEnvParameterfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramEnvParameterfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramInfoLog' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetProgramInfoLog',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetProgramInterfaceiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramInterfaceiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramLocalParameterdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramLocalParameterdvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramLocalParameterfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramLocalParameterfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramNamedParameterdvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'params',
        'GLdouble *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewGetProgramNamedParameterdvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetProgramNamedParameterfvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'params',
        'GLfloat *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewGetProgramNamedParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetProgramParameterdvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramParameterdvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramPipelineInfoLog' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGetProgramPipelineInfoLog',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetProgramPipelineiv' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewGetProgramPipelineiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramResourceIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceIndex',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetProgramResourceLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceLocation',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceLocationIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceLocationIndex',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceLocationIndexEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'name',
        'const GLchar* ',
        'COMPSIZE(name)'
      ]
    ],
    'feature' => 'GL_EXT_blend_func_extended',
    'glewImpl' => '__glewGetProgramResourceLocationIndexEXT',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glGetProgramResourceName' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'name',
        'GLchar *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceName',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetProgramResourcefvNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'propCount',
        'GLsizei '
      ],
      [
        'props',
        'const GLenum* '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'params',
        'GLfloat *',
        'count'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewGetProgramResourcefvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetProgramResourceiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'programInterface',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'propCount',
        'GLsizei '
      ],
      [
        'props',
        'const GLenum* ',
        'propCount'
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei *',
        '1'
      ],
      [
        'params',
        'GLint *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_program_interface_query',
    'glewImpl' => '__glewGetProgramResourceiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetProgramStageiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'values',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetProgramStageiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramStringARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'string',
        'void *',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramStringARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramStringNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'program',
        'GLubyte* ',
        'COMPSIZE(id,pname)'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramStringNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramiv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetProgramiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramivARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewGetProgramivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetProgramivNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetProgramivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryBufferObjecti64v' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjecti64v',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectiv' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectiv',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectui64v' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectui64v',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryBufferObjectuiv' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetQueryBufferObjectuiv',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glGetQueryIndexediv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_transform_feedback3',
    'glewImpl' => '__glewGetQueryIndexediv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjecti64v' => {
    'aliases' => {
      'glGetQueryObjecti64vEXT' => 'GL_EXT_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_timer_query',
    'glewImpl' => '__glewGetQueryObjecti64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjecti64vANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjecti64vANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectiv' => {
    'aliases' => {
      'glGetQueryObjectivARB' => 'GL_ARB_occlusion_query',
      'glGetQueryObjectivEXT' => undef
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryObjectiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectivANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectivANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectui64v' => {
    'aliases' => {
      'glGetQueryObjectui64vEXT' => 'GL_EXT_timer_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_timer_query',
    'glewImpl' => '__glewGetQueryObjectui64v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectui64vANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectui64vANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectuiv' => {
    'aliases' => {
      'glGetQueryObjectuivARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryObjectuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryObjectuivANGLE' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryObjectuivANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryiv' => {
    'aliases' => {
      'glGetQueryivARB' => 'GL_ARB_occlusion_query'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewGetQueryiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetQueryivANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ANGLE_timer_query',
    'glewImpl' => '__glewGetQueryivANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetRenderbufferParameteriv' => {
    'aliases' => {
      'glGetRenderbufferParameterivEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewGetRenderbufferParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSamplerParameterIiv' => {
    'aliases' => {
      'glGetSamplerParameterIivEXT' => undef
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSamplerParameterIuiv' => {
    'aliases' => {
      'glGetSamplerParameterIuivEXT' => undef
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSamplerParameterfv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSamplerParameteriv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewGetSamplerParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSemaphoreParameterui64vEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewGetSemaphoreParameterui64vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSeparableFilter' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetSeparableFilterEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetShaderInfoLog' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'infoLog',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderInfoLog',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetShaderPrecisionFormat' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum '
      ],
      [
        'precisiontype',
        'GLenum '
      ],
      [
        'range',
        'GLint* ',
        '2'
      ],
      [
        'precision',
        'GLint *',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewGetShaderPrecisionFormat',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetShaderSource' => {
    'aliases' => {
      'glGetShaderSourceARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'source',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderSource',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetShaderiv' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetShaderiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetSharpenTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'points',
        'GLfloat* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_SGIS_sharpen_texture',
    'glewImpl' => '__glewGetSharpenTexFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetStageIndexNV' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_command_list',
    'glewImpl' => '__glewGetStageIndexNV',
    'glewtype' => 'fun',
    'restype' => 'GLushort'
  },
  'glGetString' => {
    'argdata' => [
      [
        'name',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'const GLubyte *'
  },
  'glGetSubroutineIndex' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetSubroutineIndex',
    'glewtype' => 'fun',
    'restype' => 'GLuint'
  },
  'glGetSubroutineUniformLocation' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'shadertype',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'values',
        'GLint *',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_sync',
    'glewImpl' => '__glewGetSynciv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetTexBumpParameterfvATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewGetTexBumpParameterfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexBumpParameterivATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewGetTexBumpParameterivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexEnvfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexEnviv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexEnvxv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetTexEnvxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexFilterFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'filter',
        'GLenum '
      ],
      [
        'weights',
        'GLfloat* ',
        'COMPSIZE(target,filter)'
      ]
    ],
    'feature' => 'GL_SGIS_texture_filter4',
    'glewImpl' => '__glewGetTexFilterFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexGendv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexGenfv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexGeniv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexLevelParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexLevelParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameterIiv' => {
    'aliases' => {
      'glGetTexParameterIivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTexParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameterIuiv' => {
    'aliases' => {
      'glGetTexParameterIuivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTexParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameterPointervAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'void **',
        '1'
      ]
    ],
    'feature' => 'GL_APPLE_texture_range',
    'glewImpl' => '__glewGetTexParameterPointervAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTexParameterxv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewGetTexParameterxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureHandleARB' => {
    'aliases' => {
      'glGetTextureHandleIMG' => undef
    },
    '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 '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureImageEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(target,level,format,type)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureImageEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureLevelParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureLevelParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureLevelParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureLevelParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureLevelParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterIiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterIivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterIuiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterIuivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterIuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTextureParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetTextureParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTextureSamplerHandleARB' => {
    'aliases' => {
      'glGetTextureSamplerHandleIMG' => undef
    },
    '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 '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_get_texture_sub_image',
    'glewImpl' => '__glewGetTextureSubImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTrackMatrixivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'address',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewGetTrackMatrixivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ],
      [
        'name',
        'GLchar * ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetTransformFeedbackVarying',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glGetTransformFeedbackVaryingNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'location',
        'GLint *',
        '1'
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewGetTransformFeedbackVaryingNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTransformFeedbacki64_v' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'param',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbacki64_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTransformFeedbacki_v' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbacki_v',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTransformFeedbackiv' => {
    'argdata' => [
      [
        'xfb',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetTransformFeedbackiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetTranslatedShaderSourceANGLE' => {
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'length',
        'GLsizei* ',
        '1'
      ],
      [
        'source',
        'GLchar* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ANGLE_translated_shader_source',
    'glewImpl' => '__glewGetTranslatedShaderSourceANGLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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 * ',
        'COMPSIZE(uniformCount)'
      ],
      [
        'uniformIndices',
        'GLuint* ',
        'COMPSIZE(uniformCount)'
      ]
    ],
    'feature' => 'GL_ARB_uniform_buffer_object',
    'glewImpl' => '__glewGetUniformIndices',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glGetUniformLocation' => {
    'aliases' => {
      'glGetUniformLocationARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'name',
        'const GLchar* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformLocation',
    '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 '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewGetUniformSubroutineuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformdv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewGetUniformdv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformfv' => {
    'aliases' => {
      'glGetUniformfvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformi64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint64* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetUniformi64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformi64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewGetUniformi64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformiv' => {
    'aliases' => {
      'glGetUniformivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetUniformiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint64* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetUniformui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUniformui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(program,location)'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewGetUniformui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUnsignedBytei_vEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'data',
        'GLubyte* ',
        'COMPSIZE(target)'
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetUnsignedBytei_vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetUnsignedBytevEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'data',
        'GLubyte* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewGetUnsignedBytevEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantArrayObjectfvATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetVariantArrayObjectfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantArrayObjectivATI' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewGetVariantArrayObjectivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantBooleanvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLboolean *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantBooleanvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantFloatvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantFloatvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantIntegervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantIntegervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVariantPointervEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'value',
        'GLenum '
      ],
      [
        'data',
        'void **',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewGetVariantPointervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'param',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIndexed64iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayIndexediv' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIndexediv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayIntegeri_vEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIntegeri_vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayIntegervEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayIntegervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayPointeri_vEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayPointeri_vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayPointervEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayPointervEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexArrayiv' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint* '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewGetVertexArrayiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribArrayObjectfvATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_vertex_attrib_array_object',
    'glewImpl' => '__glewGetVertexAttribArrayObjectfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribArrayObjectivATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_vertex_attrib_array_object',
    'glewImpl' => '__glewGetVertexAttribArrayObjectivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribIiv' => {
    'aliases' => {
      'glGetVertexAttribIivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetVertexAttribIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribIuiv' => {
    'aliases' => {
      'glGetVertexAttribIuivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewGetVertexAttribIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribLdv' => {
    'aliases' => {
      'glGetVertexAttribLdvEXT' => 'GL_EXT_vertex_attrib_64bit'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewGetVertexAttribLdv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribLi64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewGetVertexAttribLi64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribLui64vARB' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* '
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewGetVertexAttribLui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribLui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewGetVertexAttribLui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribPointerv' => {
    'aliases' => {
      'glGetVertexAttribPointervARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribPointervNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'pointer',
        'void** ',
        '1'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribPointerv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribdv' => {
    'aliases' => {
      'glGetVertexAttribdvARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribdvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribdv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribfv' => {
    'aliases' => {
      'glGetVertexAttribfvARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribfvNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVertexAttribiv' => {
    'aliases' => {
      'glGetVertexAttribivARB' => 'GL_ARB_vertex_program',
      'glGetVertexAttribivNV' => 'GL_NV_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewGetVertexAttribiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVideoCaptureivNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewGetVideoCaptureivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVideoi64vNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoi64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVideoivNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVideoui64vNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64EXT* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideoui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetVideouivNV' => {
    'argdata' => [
      [
        'video_slot',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_present_video',
    'glewImpl' => '__glewGetVideouivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'table',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnColorTableARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnCompressedTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'GLvoid *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnCompressedTexImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnCompressedTexImageARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'lod',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'img',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnCompressedTexImageARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnConvolutionFilterARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'image',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnConvolutionFilterARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnHistogramARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnHistogramARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnMapdvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLdouble* ',
        'bufSize/8'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapdvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnMapfvARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLfloat* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnMapivARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'query',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'v',
        'GLint* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMapivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnMinmaxARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'reset',
        'GLboolean '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnMinmaxARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnPixelMapfvARB' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnPixelMapuivARB' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLuint* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapuivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnPixelMapusvARB' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'values',
        'GLushort* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPixelMapusvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnPolygonStippleARB' => {
    'argdata' => [
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pattern',
        'GLubyte* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnPolygonStippleARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnSeparableFilterARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'rowBufSize',
        'GLsizei '
      ],
      [
        'row',
        'void* ',
        'rowBufSize'
      ],
      [
        'columnBufSize',
        'GLsizei '
      ],
      [
        'column',
        'void*',
        'columnBufSize'
      ],
      [
        'span',
        'void*'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnSeparableFilterARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glGetnTexImage' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'pixels',
        'GLvoid *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnTexImage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnTexImageARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'img',
        'void* ',
        'bufSize'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnTexImageARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformdv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLdouble *',
        'bufSize/8'
      ]
    ],
    'feature' => 'GL_VERSION_4_5',
    'glewImpl' => '__glewGetnUniformdv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformdvARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLdouble* ',
        'bufSize/8'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformdvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformfv' => {
    'aliases' => {
      'glGetnUniformfvEXT' => undef,
      'glGetnUniformfvKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformfvARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLfloat* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformi64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint64* ',
        'bufSize/8'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetnUniformi64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformiv' => {
    'aliases' => {
      'glGetnUniformivEXT' => undef,
      'glGetnUniformivKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformivARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLint* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformui64vARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint64* ',
        'bufSize/8'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewGetnUniformui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformuiv' => {
    'aliases' => {
      'glGetnUniformuivKHR' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewGetnUniformuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glGetnUniformuivARB' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'params',
        'GLuint* ',
        'bufSize/4'
      ]
    ],
    'feature' => 'GL_ARB_robustness',
    'glewImpl' => '__glewGetnUniformuivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glHistogram' => {
    'aliases' => {
      'glHistogramEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImageTransformParameterfHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfloat '
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterfHP',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImageTransformParameterfvHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterfvHP',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImageTransformParameteriHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLint '
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameteriHP',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImageTransformParameterivHP' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_HP_image_transform',
    'glewImpl' => '__glewImageTransformParameterivHP',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImportMemoryFdEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'fd',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_memory_object_fd',
    'glewImpl' => '__glewImportMemoryFdEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImportMemoryWin32HandleEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'handle',
        'void *'
      ]
    ],
    'feature' => 'GL_EXT_memory_object_win32',
    'glewImpl' => '__glewImportMemoryWin32HandleEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImportMemoryWin32NameEXT' => {
    'argdata' => [
      [
        'memory',
        'GLuint '
      ],
      [
        'size',
        'GLuint64 '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'name',
        'const void *'
      ]
    ],
    'feature' => 'GL_EXT_memory_object_win32',
    'glewImpl' => '__glewImportMemoryWin32NameEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImportSemaphoreFdEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'fd',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_semaphore_fd',
    'glewImpl' => '__glewImportSemaphoreFdEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glImportSemaphoreWin32HandleEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'handle',
        'void *'
      ]
    ],
    'feature' => 'GL_EXT_semaphore_win32',
    'glewImpl' => '__glewImportSemaphoreWin32HandleEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glImportSemaphoreWin32NameEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'handleType',
        'GLenum '
      ],
      [
        'name',
        'const void *'
      ]
    ],
    'feature' => 'GL_EXT_semaphore_win32',
    'glewImpl' => '__glewImportSemaphoreWin32NameEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        '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 '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_index_material',
    'glewImpl' => '__glewIndexMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glIndexPointer' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glIndexPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewIndexPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glIndexPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewIndexPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(format,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments'
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateFramebuffer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glInvalidateNamedFramebufferData' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewInvalidateNamedFramebufferData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glInvalidateNamedFramebufferSubData' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewInvalidateNamedFramebufferSubData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glInvalidateSubFramebuffer' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'numAttachments',
        'GLsizei '
      ],
      [
        'attachments',
        'const GLenum* ',
        'numAttachments'
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_invalidate_subdata',
    'glewImpl' => '__glewInvalidateSubFramebuffer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    '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' => [
      [
        'cap',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewIsEnabledi',
    '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'
  },
  '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'
  },
  'glIsRenderbuffer' => {
    'aliases' => {
      'glIsRenderbufferEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewIsRenderbuffer',
    '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 '
      ]
    ],
    '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'
  },
  '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',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModelfv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLightModeli' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModeliv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLightModelx' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightModelx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightModelxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightModelxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLightf' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightfv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLighti' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightiv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLightx' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLightxv' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLightxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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' => {
    'aliases' => {
      'glLinkProgramARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewLinkProgram',
    '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',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glLoadIdentity' => {
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadIdentityDeformationMapSGIX' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_SGIX_polynomial_ffd',
    'glewImpl' => '__glewLoadIdentityDeformationMapSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadMatrixd' => {
    'argdata' => [
      [
        'm',
        'const GLdouble *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLoadMatrixf' => {
    'argdata' => [
      [
        'm',
        'const GLfloat *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLoadMatrixx' => {
    'argdata' => [
      [
        'm',
        'const GLfixed* ',
        '16'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewLoadMatrixx',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLoadName' => {
    'argdata' => [
      [
        'name',
        'GLuint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glLoadProgramNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'program',
        'const GLubyte* ',
        'len'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewLoadProgramNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLoadTransposeMatrixd' => {
    'aliases' => {
      'glLoadTransposeMatrixdARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLdouble * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewLoadTransposeMatrixd',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glLoadTransposeMatrixf' => {
    'aliases' => {
      'glLoadTransposeMatrixfARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLfloat * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewLoadTransposeMatrixf',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMPEGQuantTableubv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'values',
        'GLubyte* '
      ]
    ],
    'feature' => 'GL_SGIX_mpeg1',
    'glewImpl' => '__glewMPEGQuantTableubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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 '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMap1f' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMap2d' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMap2f' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMapBuffer' => {
    'aliases' => {
      'glMapBufferARB' => 'GL_ARB_vertex_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewMapBuffer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void*'
  },
  'glMapBufferRange' => {
    'aliases' => {
      'glMapBufferRangeEXT' => 'GL_EXT_map_buffer_range'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_map_buffer_range',
    'glewImpl' => '__glewMapBufferRange',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapControlPointsNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewMapNamedBuffer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapNamedBufferEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'access',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapNamedBufferRange' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferRange',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapNamedBufferRangeEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'length',
        'GLsizeiptr '
      ],
      [
        'access',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMapNamedBufferRangeEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapObjectBufferATI' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_map_object_buffer',
    'glewImpl' => '__glewMapObjectBufferATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void *'
  },
  'glMapParameterfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewMapParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMapParameterivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(target,pname)'
      ]
    ],
    'feature' => 'GL_NV_evaluators',
    'glewImpl' => '__glewMapParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMapTexture2DINTEL' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'access',
        'GLbitfield '
      ],
      [
        'stride',
        'GLint* ',
        '1'
      ],
      [
        'layout',
        'GLenum *',
        '1'
      ]
    ],
    'feature' => 'GL_LAYOUT_LINEAR_INTEL',
    'glewImpl' => '__glewMapTexture2DINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMaterialf' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialfv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMateriali' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialiv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMaterialx' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMaterialx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMaterialxv' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMaterialxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixFrustumEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'l',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ],
      [
        'b',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'n',
        'GLdouble '
      ],
      [
        'f',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixFrustumEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixIndexPointerARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexPointerARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixIndexubvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLubyte *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexubvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixIndexuivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLuint *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexuivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixIndexusvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'indices',
        'GLushort *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_matrix_palette',
    'glewImpl' => '__glewMatrixIndexusvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoad3x2fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixLoad3x2fNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoad3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixLoad3x3fNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoadIdentityEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoadTransposedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadTransposedEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoadTransposefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadTransposefEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoaddEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoaddEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixLoadfEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixLoadfEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMode' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMult3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixMult3x3fNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMultTranspose3x3fNV' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewMatrixMultTranspose3x3fNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMultTransposedEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultTransposedEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMultTransposefEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultTransposefEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMultdEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLdouble* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultdEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixMultfEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'm',
        'const GLfloat* ',
        '16'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixMultfEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMatrixOrthoEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'l',
        'GLdouble '
      ],
      [
        'r',
        'GLdouble '
      ],
      [
        'b',
        'GLdouble '
      ],
      [
        't',
        'GLdouble '
      ],
      [
        'n',
        'GLdouble '
      ],
      [
        'f',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixOrthoEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixPopEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixPopEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixPushEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixPushEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixRotatedEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'angle',
        'GLdouble '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixRotatedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixRotatefEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'angle',
        'GLfloat '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixRotatefEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixScaledEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixScaledEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixScalefEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixScalefEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixTranslatedEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixTranslatedEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMatrixTranslatefEXT' => {
    'argdata' => [
      [
        'matrixMode',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMatrixTranslatefEXT',
    '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 '
      ]
    ],
    'feature' => 'GL_ARB_shader_image_load_store',
    'glewImpl' => '__glewMemoryBarrier',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMemoryBarrierByRegion' => {
    'argdata' => [
      [
        'barriers',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_ES3_1_compatibility',
    'glewImpl' => '__glewMemoryBarrierByRegion',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMemoryObjectParameterivEXT' => {
    'argdata' => [
      [
        'memoryObject',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewMemoryObjectParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  'glMinmax' => {
    'aliases' => {
      'glMinmaxEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'sink',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewMinmax',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultMatrixd' => {
    'argdata' => [
      [
        'm',
        'const GLdouble *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultMatrixf' => {
    'argdata' => [
      [
        'm',
        'const GLfloat *',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultMatrixx' => {
    'argdata' => [
      [
        'm',
        'const GLfixed* ',
        '16'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMultMatrixx',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultTransposeMatrixd' => {
    'aliases' => {
      'glMultTransposeMatrixdARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLdouble * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultTransposeMatrixd',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultTransposeMatrixf' => {
    'aliases' => {
      'glMultTransposeMatrixfARB' => 'GL_ARB_transpose_matrix'
    },
    'argdata' => [
      [
        'm',
        'const GLfloat * ',
        '16'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultTransposeMatrixf',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawArrays' => {
    'aliases' => {
      'glMultiDrawArraysEXT' => 'GL_EXT_multi_draw_arrays'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'first',
        'const GLint *',
        'drawcount'
      ],
      [
        'count',
        'const GLsizei *',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewMultiDrawArrays',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirect' => {
    'aliases' => {
      'glMultiDrawArraysIndirectAMD' => 'GL_AMD_multi_draw_indirect',
      'glMultiDrawArraysIndirectEXT' => 'GL_EXT_multi_draw_indirect'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'indirect',
        'const void *',
        'COMPSIZE(drawcount,stride)'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawArraysIndirect',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectBindlessCountNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLintptr '
      ],
      [
        'maxDrawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect_count',
    'glewImpl' => '__glewMultiDrawArraysIndirectBindlessCountNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectBindlessNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawArraysIndirectBindlessNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawArraysIndirectCount' => {
    'aliases' => {
      'glMultiDrawArraysIndirectCountARB' => 'GL_ARB_indirect_parameters'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'indirect',
        'const GLvoid *'
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewMultiDrawArraysIndirectCount',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'first',
        'const GLint* ',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewMultiDrawElementArrayAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glMultiDrawElements' => {
    'aliases' => {
      'glMultiDrawElementsEXT' => 'GL_EXT_multi_draw_arrays'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'const GLsizei *',
        'drawcount'
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *const* ',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewMultiDrawElements',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glMultiDrawElementsBaseVertex' => {
    'aliases' => {
      'glMultiDrawElementsBaseVertexEXT' => 'GL_EXT_draw_elements_base_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei* ',
        'drawcount'
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'void**',
        'drawcount'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'basevertex',
        'GLint *',
        'drawcount'
      ]
    ],
    'feature' => 'GL_ARB_draw_elements_base_vertex',
    'glewImpl' => '__glewMultiDrawElementsBaseVertex',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirect' => {
    'aliases' => {
      'glMultiDrawElementsIndirectAMD' => 'GL_AMD_multi_draw_indirect',
      'glMultiDrawElementsIndirectEXT' => 'GL_EXT_multi_draw_indirect'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indirect',
        'const void *',
        'COMPSIZE(drawcount,stride)'
      ],
      [
        'drawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawElementsIndirect',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectBindlessCountNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLintptr '
      ],
      [
        'maxDrawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect_count',
    'glewImpl' => '__glewMultiDrawElementsIndirectBindlessCountNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectBindlessNV' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indirect',
        'const void *'
      ],
      [
        'drawCount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'vertexBufferCount',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_bindless_multi_draw_indirect',
    'glewImpl' => '__glewMultiDrawElementsIndirectBindlessNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawElementsIndirectCount' => {
    'aliases' => {
      'glMultiDrawElementsIndirectCountARB' => 'GL_ARB_indirect_parameters'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indirect',
        'const GLvoid *'
      ],
      [
        'drawcount',
        'GLintptr '
      ],
      [
        'maxdrawcount',
        'GLsizei '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewMultiDrawElementsIndirectCount',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiDrawRangeElementArrayAPPLE' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'end',
        'GLuint '
      ],
      [
        'first',
        'const GLint* ',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_element_array',
    'glewImpl' => '__glewMultiDrawRangeElementArrayAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glMultiModeDrawArraysIBM' => {
    'argdata' => [
      [
        'mode',
        'const GLenum* ',
        'COMPSIZE(primcount,modestride)'
      ],
      [
        'first',
        'const GLint *',
        'primcount'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ],
      [
        'modestride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_multimode_draw_arrays',
    'glewImpl' => '__glewMultiModeDrawArraysIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glMultiModeDrawElementsIBM' => {
    'argdata' => [
      [
        'mode',
        'const GLenum* ',
        'COMPSIZE(primcount,modestride)'
      ],
      [
        'count',
        'const GLsizei *',
        'primcount'
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'indices',
        'const void *const *',
        'primcount'
      ],
      [
        'primcount',
        'GLsizei '
      ],
      [
        'modestride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_multimode_draw_arrays',
    'glewImpl' => '__glewMultiModeDrawElementsIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glMultiTexBufferEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1d' => {
    'aliases' => {
      'glMultiTexCoord1dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLdouble *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord1f' => {
    'aliases' => {
      'glMultiTexCoord1fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLfloat *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord1hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        's',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord1hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord1hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'v',
        'const GLhalf* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord1hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord1i' => {
    'aliases' => {
      'glMultiTexCoord1iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLint *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord1s' => {
    'aliases' => {
      'glMultiTexCoord1sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLshort *',
        '1'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord1sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord2d' => {
    'aliases' => {
      'glMultiTexCoord2dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLdouble *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord2f' => {
    'aliases' => {
      'glMultiTexCoord2fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord2hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord2hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord2hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'v',
        'const GLhalf* ',
        '2'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord2hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord2i' => {
    'aliases' => {
      'glMultiTexCoord2iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLint *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord2s' => {
    'aliases' => {
      'glMultiTexCoord2sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLshort *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord2sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord3d' => {
    'aliases' => {
      'glMultiTexCoord3dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLdouble *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord3f' => {
    'aliases' => {
      'glMultiTexCoord3fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord3hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord3hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord3hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'v',
        'const GLhalf* ',
        '3'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord3i' => {
    'aliases' => {
      'glMultiTexCoord3iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLint *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord3s' => {
    'aliases' => {
      'glMultiTexCoord3sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLshort *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord3sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4d' => {
    'aliases' => {
      'glMultiTexCoord4dARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLdouble *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4f' => {
    'aliases' => {
      'glMultiTexCoord4fARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4hNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        's',
        'GLhalf '
      ],
      [
        't',
        'GLhalf '
      ],
      [
        'r',
        'GLhalf '
      ],
      [
        'q',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord4hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoord4hvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'v',
        'const GLhalf* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewMultiTexCoord4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4i' => {
    'aliases' => {
      'glMultiTexCoord4iARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLint *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4s' => {
    'aliases' => {
      'glMultiTexCoord4sARB' => 'GL_ARB_multitexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'v',
        'const GLshort *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_3',
    'glewImpl' => '__glewMultiTexCoord4sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoord4x' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        's',
        'GLfixed '
      ],
      [
        't',
        'GLfixed '
      ],
      [
        'r',
        'GLfixed '
      ],
      [
        'q',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewMultiTexCoord4x',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP1ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP1uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoordP2ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP2uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoordP3ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP3uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoordP4ui' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexCoordP4uiv' => {
    'argdata' => [
      [
        'texture',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewMultiTexCoordP4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexCoordPointerEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexCoordPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexEnvfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexEnvfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexEnviEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnviEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexEnvivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexEnvivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexGendEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGendEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGendvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLdouble* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGendvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexGenfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGenfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexGeniEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGeniEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexGenivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexGenivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexParameterIivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterIivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexParameterIuivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterIuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexParameterfEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexParameterfvEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexParameteriEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexParameterivEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexRenderbufferEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glMultiTexSubImage1DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexSubImage2DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMultiTexSubImage3DEXT' => {
    'argdata' => [
      [
        'texunit',
        'GLenum '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewMultiTexSubImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMulticastGetQueryObjecti64vNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint64* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjecti64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectivNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectui64vNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint64* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glMulticastGetQueryObjectuivNV' => {
    'argdata' => [
      [
        'gpu',
        'GLuint '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLuint* '
      ]
    ],
    'feature' => 'GL_NV_gpu_multicast',
    'glewImpl' => '__glewMulticastGetQueryObjectuivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  'glNamedBufferData' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'usage',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedBufferData',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedBufferDataEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'COMPSIZE(size)'
      ],
      [
        'usage',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedBufferDataEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedBufferStorage' => {
    'aliases' => {
      'glNamedBufferStorageEXT' => 'GL_EXT_buffer_storage'
    },
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'data',
        'const void *',
        'size'
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedBufferStorage',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedBufferStorageExternalEXT' => {
    'argdata' => [
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ],
      [
        'clientBuffer',
        'GLeglClientBufferEXT '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferDrawBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferDrawBuffers' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'bufs',
        'const GLenum* ',
        'n'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferDrawBuffers',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedFramebufferParameteri' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferParameteriEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_no_attachments',
    'glewImpl' => '__glewNamedFramebufferParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferReadBuffer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferReadBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferRenderbuffer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'renderbuffertarget',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferRenderbuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferRenderbufferEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'renderbuffertarget',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedFramebufferSampleLocationsfvNV' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'start',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_sample_locations',
    'glewImpl' => '__glewNamedFramebufferSampleLocationsfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedFramebufferSamplePositionsfvAMD' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'numsamples',
        'GLuint '
      ],
      [
        'pixelindex',
        'GLuint '
      ],
      [
        'values',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_AMD_framebuffer_sample_positions',
    'glewImpl' => '__glewNamedFramebufferSamplePositionsfvAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedFramebufferTexture' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture1DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture2DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTexture3DEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'textarget',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTexture3DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureFaceEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'face',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureFaceEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureLayer' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureLayer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedFramebufferTextureLayerEXT' => {
    'argdata' => [
      [
        'framebuffer',
        'GLuint '
      ],
      [
        'attachment',
        'GLenum '
      ],
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'layer',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedFramebufferTextureLayerEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4dEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4dvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParameter4fEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameter4fvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4iEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4ivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParameterI4uiEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint* ',
        '4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameterI4uivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParameters4fvEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParameters4fvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParametersI4ivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParametersI4ivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramLocalParametersI4uivEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramLocalParametersI4uivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedProgramStringEXT' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'string',
        'const void *',
        'len'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedProgramStringEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNamedRenderbufferStorage' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorage',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisample' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisampleCoverageEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewNamedRenderbufferStorageMultisampleCoverageEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNamedRenderbufferStorageMultisampleEXT' => {
    'argdata' => [
      [
        'renderbuffer',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNewObjectBufferATI' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'size'
      ],
      [
        'usage',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewNewObjectBufferATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'GLuint'
  },
  'glNonlinLightfvSGIX' => {
    'argdata' => [
      [
        'light',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint '
      ],
      [
        'params',
        'GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewNonlinLightfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNonlinMaterialfvSGIX' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'terms',
        'GLint '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGIX_nonlinear_lighting_pervertex',
    'glewImpl' => '__glewNonlinMaterialfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glNormal3fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewNormal3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewNormalP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewNormalP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalPointer' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalPointerEXT' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewNormalPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalPointerListIBM' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewNormalPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalPointervINTEL' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewNormalPointervINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalStream3bATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLbyte '
      ],
      [
        'y',
        'GLbyte '
      ],
      [
        'z',
        'GLbyte '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3bATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3bvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLbyte *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3bvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalStream3dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLdouble *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3dvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalStream3fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3fvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalStream3iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLint *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3ivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glNormalStream3sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glNormalStream3svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLshort *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewNormalStream3svATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glObjectLabel' => {
    'aliases' => {
      'glObjectLabelKHR' => undef
    },
    'argdata' => [
      [
        'identifier',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    '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'
  },
  '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 '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_pn_triangles',
    'glewImpl' => '__glewPNTrianglesfATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPNTrianglesiATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_pn_triangles',
    'glewImpl' => '__glewPNTrianglesiATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPassTexCoordATI' => {
    'argdata' => [
      [
        'dst',
        'GLuint '
      ],
      [
        'coord',
        'GLuint '
      ],
      [
        'swizzle',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        'values',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_tessellation_shader',
    'glewImpl' => '__glewPatchParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPatchParameteri' => {
    'aliases' => {
      'glPatchParameteriEXT' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_tessellation_shader',
    'glewImpl' => '__glewPatchParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathColorGenNV' => {
    'argdata' => [
      [
        'color',
        'GLenum '
      ],
      [
        'genMode',
        'GLenum '
      ],
      [
        'colorFormat',
        'GLenum '
      ],
      [
        'coeffs',
        'const GLfloat* ',
        'COMPSIZE(genMode,colorFormat)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathColorGenNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'numCommands',
        'GLsizei '
      ],
      [
        'commands',
        'const GLubyte* ',
        'numCommands'
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum '
      ],
      [
        'coords',
        'const void*',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCommandsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glPathCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum '
      ],
      [
        'coords',
        'const void *',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCoordsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathCoverDepthFuncNV' => {
    'argdata' => [
      [
        'zfunc',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathCoverDepthFuncNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathDashArrayNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'dashCount',
        'GLsizei '
      ],
      [
        'dashArray',
        'const GLfloat* ',
        'dashCount'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathDashArrayNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathFogGenNV' => {
    'argdata' => [
      [
        'genMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathFogGenNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathGlyphIndexArrayNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *'
      ],
      [
        'fontStyle',
        'GLbitfield '
      ],
      [
        'firstGlyphIndex',
        'GLuint '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphIndexArrayNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'GLenum'
  },
  'glPathGlyphIndexRangeNV' => {
    'argdata' => [
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *'
      ],
      [
        'fontStyle',
        'GLbitfield '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ],
      [
        'baseAndCount',
        'GLuint * ',
        '2'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphIndexRangeNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'GLenum'
  },
  'glPathGlyphRangeNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *',
        'COMPSIZE(fontTarget,fontName)'
      ],
      [
        'fontStyle',
        'GLbitfield '
      ],
      [
        'firstGlyph',
        'GLuint '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'handleMissingGlyphs',
        'GLenum '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphRangeNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathGlyphsNV' => {
    'argdata' => [
      [
        'firstPathName',
        'GLuint '
      ],
      [
        'fontTarget',
        'GLenum '
      ],
      [
        'fontName',
        'const void *',
        'COMPSIZE(fontTarget,fontName)'
      ],
      [
        'fontStyle',
        'GLbitfield '
      ],
      [
        'numGlyphs',
        'GLsizei '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'charcodes',
        'const void*',
        'COMPSIZE(numGlyphs,type,charcodes)'
      ],
      [
        'handleMissingGlyphs',
        'GLenum '
      ],
      [
        'pathParameterTemplate',
        'GLuint '
      ],
      [
        'emScale',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathGlyphsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'GLenum'
  },
  'glPathParameterfNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterfNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathParameterfvNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathParameteriNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameteriNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathParameterivNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathParameterivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathStencilDepthOffsetNV' => {
    'argdata' => [
      [
        'factor',
        'GLfloat '
      ],
      [
        'units',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStencilDepthOffsetNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathStencilFuncNV' => {
    'argdata' => [
      [
        'func',
        'GLenum '
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStencilFuncNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPathStringNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pathString',
        'const void *',
        'length'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathStringNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathSubCommandsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'commandStart',
        'GLsizei '
      ],
      [
        'commandsToDelete',
        'GLsizei '
      ],
      [
        'numCommands',
        'GLsizei '
      ],
      [
        'commands',
        'const GLubyte* ',
        'numCommands'
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum '
      ],
      [
        'coords',
        'const void*',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathSubCommandsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glPathSubCoordsNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'coordStart',
        'GLsizei '
      ],
      [
        'numCoords',
        'GLsizei '
      ],
      [
        'coordType',
        'GLenum '
      ],
      [
        'coords',
        'const void *',
        'COMPSIZE(numCoords,coordType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathSubCoordsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPathTexGenNV' => {
    'argdata' => [
      [
        'texCoordSet',
        'GLenum '
      ],
      [
        'genMode',
        'GLenum '
      ],
      [
        'components',
        'GLint '
      ],
      [
        'coeffs',
        'const GLfloat* ',
        'COMPSIZE(genMode,components)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPathTexGenNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPauseTransformFeedback' => {
    'aliases' => {
      'glPauseTransformFeedbackNV' => 'GL_NV_transform_feedback2'
    },
    'feature' => 'GL_ARB_transform_feedback2',
    'glewImpl' => '__glewPauseTransformFeedback',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelDataRangeNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_NV_pixel_data_range',
    'glewImpl' => '__glewPixelDataRangeNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelMapfv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLfloat *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelMapuiv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelMapusv' => {
    'argdata' => [
      [
        'map',
        'GLenum '
      ],
      [
        'mapsize',
        'GLsizei '
      ],
      [
        'values',
        'const GLushort *',
        'mapsize'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelStoref' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelStorei' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTexGenSGIX' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_SGIX_pixel_texture',
    'glewImpl' => '__glewPixelTexGenSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransferf' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransferi' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPixelTransformParameterfEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelTransformParameterfvSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameterfvSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelTransformParameteriEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_pixel_transform',
    'glewImpl' => '__glewPixelTransformParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPixelTransformParameterivSGI' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* '
      ]
    ],
    'feature' => 'GL_SGI_fft',
    'glewImpl' => '__glewPixelTransformParameterivSGI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewPointAlongPathNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'GLboolean'
  },
  'glPointParameterf' => {
    'aliases' => {
      'glPointParameterfARB' => 'GL_ARB_point_parameters',
      'glPointParameterfEXT' => 'GL_EXT_point_parameters',
      'glPointParameterfSGIS' => undef
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPointParameteri' => {
    'aliases' => {
      'glPointParameteriNV' => 'GL_NV_point_sprite'
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointParameteriv' => {
    'aliases' => {
      'glPointParameterivNV' => 'GL_NV_point_sprite'
    },
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewPointParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPointParameterx' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewPointParameterx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPointParameterxv' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewPointParameterxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glPointSizex' => {
    'argdata' => [
      [
        'size',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewPointSizex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPollAsyncSGIX' => {
    'argdata' => [
      [
        'markerp',
        'GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_SGIX_async',
    'glewImpl' => '__glewPollAsyncSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'GLint'
  },
  'glPolygonMode' => {
    'aliases' => {
      'glPolygonModeNV' => 'GL_NV_polygon_mode'
    },
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 1,
    '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' => 'GL_ARB_ES3_2_compatibility',
      'glPrimitiveBoundingBoxEXT' => undef
    },
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glPrioritizeVertexArraysSGIX' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'arrays',
        'const GLuint* '
      ],
      [
        'priorities',
        'const GLclampf* '
      ]
    ],
    'feature' => 'GL_SGIX_vertex_array_object',
    'glewImpl' => '__glewPrioritizeVertexArraysSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramBufferParametersIivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count'
      ]
    ],
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersIivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramBufferParametersIuivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count'
      ]
    ],
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersIuivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramBufferParametersfvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'bindingIndex',
        'GLuint '
      ],
      [
        'wordIndex',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat *',
        'count'
      ]
    ],
    'feature' => 'GL_NV_parameter_buffer_object',
    'glewImpl' => '__glewProgramBufferParametersfvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParameter4dARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4dvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParameter4fARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramEnvParameter4fvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParameterI4iNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4ivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParameterI4uiNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParameterI4uivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParameters4fvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_EXT_gpu_program_parameters',
    'glewImpl' => '__glewProgramEnvParameters4fvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParametersI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParametersI4ivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramEnvParametersI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramEnvParametersI4uivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParameter4dARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4dvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParameter4fARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramLocalParameter4fvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParameterI4iNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLint *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4ivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParameterI4uiNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'params',
        'const GLuint *',
        '4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParameterI4uivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParameters4fvEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_EXT_gpu_program_parameters',
    'glewImpl' => '__glewProgramLocalParameters4fvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParametersI4ivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLint *',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParametersI4ivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramLocalParametersI4uivNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'params',
        'const GLuint *',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_program4',
    'glewImpl' => '__glewProgramLocalParametersI4uivNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramNamedParameter4dvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'v',
        'const GLdouble * ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramNamedParameter4fvNV' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'name',
        'const GLubyte* ',
        '1'
      ],
      [
        'v',
        'const GLfloat * ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_fragment_program',
    'glewImpl' => '__glewProgramNamedParameter4fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glProgramParameter4dNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramParameter4fNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameter4fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramParameteri' => {
    'aliases' => {
      'glProgramParameteriARB' => 'GL_ARB_geometry_shader4',
      'glProgramParameteriEXT' => 'GL_EXT_geometry_shader4'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'value',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_get_program_binary',
    'glewImpl' => '__glewProgramParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProgramParameters4dvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameters4dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramParameters4fvNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewProgramParameters4fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramPathFragmentInputGenNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'genMode',
        'GLenum '
      ],
      [
        'components',
        'GLint '
      ],
      [
        'coeffs',
        'const GLfloat* '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewProgramPathFragmentInputGenNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramStringARB' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'len',
        'GLsizei '
      ],
      [
        'string',
        'const void *',
        'len'
      ]
    ],
    'feature' => 'GL_ARB_vertex_program',
    'glewImpl' => '__glewProgramStringARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform1i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform1iv' => {
    'aliases' => {
      'glProgramUniform1ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform1ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform1ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform1ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform1uiv' => {
    'aliases' => {
      'glProgramUniform1uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform2i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform2iv' => {
    'aliases' => {
      'glProgramUniform2ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform2ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform2ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform2ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform2uiv' => {
    'aliases' => {
      'glProgramUniform2uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform3i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform3iv' => {
    'aliases' => {
      'glProgramUniform3ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform3ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform3ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform3ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform3uiv' => {
    'aliases' => {
      'glProgramUniform3uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform4i64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform4iv' => {
    'aliases' => {
      'glProgramUniform4ivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewProgramUniform4ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform4ui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewProgramUniform4ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniform4uiv' => {
    'aliases' => {
      'glProgramUniform4uivEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniform4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformHandleui64ARB' => {
    'aliases' => {
      'glProgramUniformHandleui64IMG' => undef
    },
    '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' => undef
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint64* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformHandleui64vNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'values',
        'const GLuint64* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewProgramUniformHandleui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2fv' => {
    'aliases' => {
      'glProgramUniformMatrix2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x3fv' => {
    'aliases' => {
      'glProgramUniformMatrix2x3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix2x4fv' => {
    'aliases' => {
      'glProgramUniformMatrix2x4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix2x4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*9'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3fv' => {
    'aliases' => {
      'glProgramUniformMatrix3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*9'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x2fv' => {
    'aliases' => {
      'glProgramUniformMatrix3x2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix3x4fv' => {
    'aliases' => {
      'glProgramUniformMatrix3x4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix3x4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*16'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4fv' => {
    'aliases' => {
      'glProgramUniformMatrix4fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*16'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x2dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x2fv' => {
    'aliases' => {
      'glProgramUniformMatrix4x2fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x3dv' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramUniformMatrix4x3fv' => {
    'aliases' => {
      'glProgramUniformMatrix4x3fvEXT' => 'GL_EXT_direct_state_access'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_separate_shader_objects',
    'glewImpl' => '__glewProgramUniformMatrix4x3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewProgramUniformui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glProgramVertexLimitNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'limit',
        'GLint '
      ]
    ],
    'feature' => 'GL_NV_geometry_program4',
    'glewImpl' => '__glewProgramVertexLimitNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glProvokingVertex' => {
    'aliases' => {
      'glProvokingVertexEXT' => 'GL_EXT_provoking_vertex'
    },
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_provoking_vertex',
    'glewImpl' => '__glewProvokingVertex',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushAttrib' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushClientAttrib' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushClientAttribDefaultEXT' => {
    'argdata' => [
      [
        'mask',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewPushClientAttribDefaultEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glPushDebugGroup' => {
    'aliases' => {
      'glPushDebugGroupKHR' => undef
    },
    'argdata' => [
      [
        'source',
        'GLenum '
      ],
      [
        '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' => undef
    },
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        'id',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLuint '
      ]
    ],
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glRasterSamplesEXT' => {
    'argdata' => [
      [
        'samples',
        'GLuint '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_EXT_raster_multisample',
    'glewImpl' => '__glewRasterSamplesEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBuffer' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReadBufferIndexedEXT' => {
    'argdata' => [
      [
        'src',
        'GLenum '
      ],
      [
        'index',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_multiview_draw_buffers',
    'glewImpl' => '__glewReadBufferIndexedEXT',
    '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 '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glReadnPixels' => {
    'aliases' => {
      'glReadnPixelsARB' => 'GL_ARB_robustness',
      'glReadnPixelsEXT' => undef,
      'glReadnPixelsKHR' => undef
    },
    'argdata' => [
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'bufSize',
        'GLsizei '
      ],
      [
        'data',
        'void *',
        'bufSize'
      ]
    ],
    'feature' => 'GL_KHR_robustness',
    'glewImpl' => '__glewReadnPixels',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glReferencePlaneSGIX' => {
    'argdata' => [
      [
        'equation',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_SGIX_reference_plane',
    'glewImpl' => '__glewReferencePlaneSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'GLint'
  },
  'glRenderbufferStorage' => {
    'aliases' => {
      'glRenderbufferStorageEXT' => 'GL_EXT_framebuffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_framebuffer_object',
    'glewImpl' => '__glewRenderbufferStorageMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleANGLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ANGLE_framebuffer_multisample',
    'glewImpl' => '__glewRenderbufferStorageMultisampleANGLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_APPLE_framebuffer_multisample',
    'glewImpl' => '__glewRenderbufferStorageMultisampleAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glRenderbufferStorageMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_framebuffer_multisample_coverage',
    'glewImpl' => '__glewRenderbufferStorageMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodePointerSUN' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodePointerSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glReplacementCodeuiColor3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'c',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glReplacementCodeuiColor4ubVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'c',
        'const GLubyte *',
        '4'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glReplacementCodeuiNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glReplacementCodeuiSUN' => {
    'argdata' => [
      [
        'code',
        'GLuint '
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeuiSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'c',
        'const GLfloat *',
        '4'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 5,
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'n',
        'const GLfloat *',
        '3'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    'restype' => 'void'
  },
  'glReplacementCodeuiTexCoord2fVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        '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'
      ],
      [
        'tc',
        'const GLfloat *',
        '2'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiTexCoord2fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glReplacementCodeuiVertex3fSUN' => {
    'argdata' => [
      [
        'rc',
        'GLuint '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiVertex3fSUN',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glReplacementCodeuiVertex3fvSUN' => {
    'argdata' => [
      [
        'rc',
        'const GLuint* ',
        '1'
      ],
      [
        'v',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewReplacementCodeuiVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glReplacementCodeuivSUN' => {
    'argdata' => [
      [
        'code',
        'const GLuint* ',
        'COMPSIZE()'
      ]
    ],
    'feature' => 'GL_SUN_triangle_list',
    'glewImpl' => '__glewReplacementCodeuivSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glRequestResidentProgramsNV' => {
    'argdata' => [
      [
        'n',
        'GLsizei '
      ],
      [
        'programs',
        'GLuint* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewRequestResidentProgramsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glResetHistogram' => {
    'aliases' => {
      'glResetHistogramEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewResetHistogram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResetMinmax' => {
    'aliases' => {
      'glResetMinmaxEXT' => 'GL_EXT_histogram'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewResetMinmax',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glResizeBuffersMESA' => {
    'feature' => 'GL_MESA_resize_buffers',
    'glewImpl' => '__glewResizeBuffersMESA',
    '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 '
      ],
      [
        'interp',
        'GLuint '
      ],
      [
        'swizzle',
        'GLenum '
      ]
    ],
    '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 '
      ]
    ],
    'feature' => 'GL_EXT_multisample',
    'glewImpl' => '__glewSamplePatternEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameterIiv' => {
    'aliases' => {
      'glSamplerParameterIivEXT' => undef
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSamplerParameterIuiv' => {
    'aliases' => {
      'glSamplerParameterIuivEXT' => undef
    },
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSamplerParameterf' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameterfv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSamplerParameteri' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSamplerParameteriv' => {
    'argdata' => [
      [
        'sampler',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_sampler_objects',
    'glewImpl' => '__glewSamplerParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 * ',
        'COMPSIZE(count)'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewScissorArrayv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewScissorIndexedv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3bv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewSecondaryColor3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3ubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColor3usv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSecondaryColorFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewSecondaryColorFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColorP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewSecondaryColorP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSecondaryColorP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'color',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewSecondaryColorP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSecondaryColorPointer' => {
    'aliases' => {
      'glSecondaryColorPointerEXT' => 'GL_EXT_secondary_color'
    },
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewSecondaryColorPointer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSecondaryColorPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewSecondaryColorPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSelectBuffer' => {
    'argdata' => [
      [
        'size',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint *',
        'size'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSelectPerfMonitorCountersAMD' => {
    'argdata' => [
      [
        'monitor',
        'GLuint '
      ],
      [
        'enable',
        'GLboolean '
      ],
      [
        'group',
        'GLuint '
      ],
      [
        'numCounters',
        'GLint '
      ],
      [
        'counterList',
        'GLuint* ',
        'numCounters'
      ]
    ],
    'feature' => 'GL_AMD_performance_monitor',
    'glewImpl' => '__glewSelectPerfMonitorCountersAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  'glSemaphoreParameterui64vEXT' => {
    'argdata' => [
      [
        'semaphore',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint64* '
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewSemaphoreParameterui64vEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSeparableFilter2D' => {
    'aliases' => {
      'glSeparableFilter2DEXT' => 'GL_EXT_convolution'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'row',
        'const void *',
        'COMPSIZE(target,format,type,width)'
      ],
      [
        'column',
        'const void *',
        'COMPSIZE(target,format,type,height)'
      ]
    ],
    'feature' => 'GL_ARB_imaging',
    'glewImpl' => '__glewSeparableFilter2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glSetFenceAPPLE' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewSetFenceAPPLE',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSetFenceNV' => {
    'argdata' => [
      [
        'fence',
        'GLuint '
      ],
      [
        'condition',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_fence',
    'glewImpl' => '__glewSetFenceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSetFragmentShaderConstantATI' => {
    'argdata' => [
      [
        'dst',
        'GLuint '
      ],
      [
        'value',
        'const GLfloat* ',
        '4'
      ]
    ],
    'feature' => 'GL_ATI_fragment_shader',
    'glewImpl' => '__glewSetFragmentShaderConstantATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSetInvariantEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewSetInvariantEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSetLocalConstantEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewSetLocalConstantEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSetMultisamplefvAMD' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'index',
        'GLuint '
      ],
      [
        'val',
        'const GLfloat* ',
        '2'
      ]
    ],
    'feature' => 'GL_AMD_sample_positions',
    'glewImpl' => '__glewSetMultisamplefvAMD',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glShadeModel' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderBinary' => {
    'argdata' => [
      [
        'count',
        'GLsizei '
      ],
      [
        'shaders',
        'const GLuint* ',
        'count'
      ],
      [
        'binaryFormat',
        'GLenum '
      ],
      [
        'binary',
        'const void*',
        'length'
      ],
      [
        'length',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_ES2_compatibility',
    'glewImpl' => '__glewShaderBinary',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glShaderOp1EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp1EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderOp2EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp2EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderOp3EXT' => {
    'argdata' => [
      [
        'op',
        'GLenum '
      ],
      [
        'res',
        'GLuint '
      ],
      [
        'arg1',
        'GLuint '
      ],
      [
        'arg2',
        'GLuint '
      ],
      [
        'arg3',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewShaderOp3EXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glShaderSource' => {
    'aliases' => {
      'glShaderSourceARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'shader',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'string',
        'const GLchar *const* ',
        'count'
      ],
      [
        'length',
        'const GLint* ',
        'count'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewShaderSource',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glShaderStorageBlockBinding' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'storageBlockIndex',
        'GLuint '
      ],
      [
        'storageBlockBinding',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_shader_storage_buffer_object',
    'glewImpl' => '__glewShaderStorageBlockBinding',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSharpenTexFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'points',
        'const GLfloat* ',
        'n*2'
      ]
    ],
    'feature' => 'GL_SGIS_sharpen_texture',
    'glewImpl' => '__glewSharpenTexFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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)'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewSignalSemaphoreEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_4_6',
    'glewImpl' => '__glewSpecializeShader',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glSpriteParameterfSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterfSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSpriteParameterfvSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterfvSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glSpriteParameteriSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameteriSGIX',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glSpriteParameterivSGIX' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_SGIX_sprite',
    'glewImpl' => '__glewSpriteParameterivSGIX',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glStartTilingQCOM' => {
    'argdata' => [
      [
        'x',
        'GLuint '
      ],
      [
        'y',
        'GLuint '
      ],
      [
        'width',
        'GLuint '
      ],
      [
        'height',
        'GLuint '
      ],
      [
        'preserveMask',
        'GLbitfield '
      ]
    ],
    '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 '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilFillPathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glStencilFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFunc' => {
    'argdata' => [
      [
        'func',
        'GLenum '
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFuncSeparate' => {
    'argdata' => [
      [
        'frontfunc',
        'GLenum '
      ],
      [
        'backfunc',
        'GLenum '
      ],
      [
        'ref',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilFuncSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilFuncSeparateATI' => {
    'argdata' => [
      [
        'frontfunc',
        'GLenum '
      ],
      [
        'backfunc',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'mask',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilMaskSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOp' => {
    'argdata' => [
      [
        'fail',
        'GLenum '
      ],
      [
        'zfail',
        'GLenum '
      ],
      [
        'zpass',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOpSeparate' => {
    'aliases' => {
      'glStencilOpSeparateATI' => 'GL_ATI_separate_stencil'
    },
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'sfail',
        'GLenum '
      ],
      [
        'dpfail',
        'GLenum '
      ],
      [
        'dppass',
        'GLenum '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewStencilOpSeparate',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilOpValueAMD' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_AMD_stencil_operation_extended',
    'glewImpl' => '__glewStencilOpValueAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilStrokePathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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 '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverFillPathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glStencilThenCoverFillPathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'fillMode',
        'GLenum '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverFillPathNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glStencilThenCoverStrokePathInstancedNV' => {
    'argdata' => [
      [
        'numPaths',
        'GLsizei '
      ],
      [
        'pathNameType',
        'GLenum '
      ],
      [
        'paths',
        'const void *',
        'COMPSIZE(numPaths,pathNameType,paths)'
      ],
      [
        'pathBase',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat *',
        'COMPSIZE(numPaths,transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewStencilThenCoverStrokePathInstancedNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glStencilThenCoverStrokePathNV' => {
    'argdata' => [
      [
        'path',
        'GLuint '
      ],
      [
        'reference',
        'GLint '
      ],
      [
        'mask',
        'GLuint '
      ],
      [
        'coverMode',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 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 '
      ],
      [
        'outY',
        'GLenum '
      ],
      [
        'outZ',
        'GLenum '
      ],
      [
        'outW',
        'GLenum '
      ]
    ],
    '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_coordinate_frame',
    'glewImpl' => '__glewTangentPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'name',
        'GLuint '
      ]
    ],
    'feature' => 'GL_APPLE_fence',
    'glewImpl' => '__glewTestObjectAPPLE',
    'glewtype' => 'fun',
    'restype' => 'GLboolean'
  },
  'glTexBuffer' => {
    'aliases' => {
      'glTexBufferARB' => 'GL_ARB_texture_buffer_object',
      'glTexBufferEXT' => 'GL_EXT_texture_buffer_object'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_3_1',
    'glewImpl' => '__glewTexBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBufferRange' => {
    'aliases' => {
      'glTexBufferRangeEXT' => undef
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_texture_buffer_range',
    'glewImpl' => '__glewTexBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexBumpParameterfvATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewTexBumpParameterfvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexBumpParameterivATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ATI_envmap_bumpmap',
    'glewImpl' => '__glewTexBumpParameterivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoord1hNV' => {
    'argdata' => [
      [
        's',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord1hNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoord1hvNV' => {
    'argdata' => [
      [
        'v',
        'const GLhalf* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord1hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fColor4ubVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fNormal3fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord2fVertex3fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glTexCoord2fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '2'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord2hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fColor4fNormal3fVertex4fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 4,
    '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'
      ]
    ],
    'feature' => 'GL_SUN_vertex',
    'glewImpl' => '__glewTexCoord4fVertex4fvSUN',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glTexCoord4fv' => {
    'argdata' => [
      [
        'v',
        'const GLfloat *',
        '4'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewTexCoord4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP1ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP1uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordP2ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP2uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexCoordP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'coords',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewTexCoordP4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewTexCoordPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewTexCoordPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexCoordPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewTexCoordPointervINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexEnvf' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnvfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexEnvi' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnviv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexEnvx' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexEnvx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexEnvxv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexEnvxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexFilterFuncSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'filter',
        'GLenum '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'weights',
        'const GLfloat* ',
        'n'
      ]
    ],
    'feature' => 'GL_SGIS_texture_filter4',
    'glewImpl' => '__glewTexFilterFuncSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexGend' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLdouble '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGendv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLdouble *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexGenf' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGenfv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexGeni' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexGeniv' => {
    'argdata' => [
      [
        'coord',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexImage1D' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexImage2D' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexImage2DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewTexImage2DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage2DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        '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 '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewTexImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexImage3DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_multisample',
    'glewImpl' => '__glewTexImage3DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexImage3DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexImage4DSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'size4d',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth,size4d)'
      ]
    ],
    'feature' => 'GL_SGIS_texture4D',
    'glewImpl' => '__glewTexImage4DSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
  },
  'glTexParameterIiv' => {
    'aliases' => {
      'glTexParameterIivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTexParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexParameterIuiv' => {
    'aliases' => {
      'glTexParameterIuivEXT' => 'GL_EXT_texture_integer'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTexParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexParameterf' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameterfv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexParameteri' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameteriv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint *',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexParameterx' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfixed '
      ]
    ],
    'feature' => 'GL_REGAL_ES1_0_compatibility',
    'glewImpl' => '__glewTexParameterx',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexParameterxv' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfixed* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_REGAL_ES1_1_compatibility',
    'glewImpl' => '__glewTexParameterxv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexRenderbufferNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage2D' => {
    'aliases' => {
      'glTexStorage2DEXT' => 'GL_EXT_texture_storage'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage2D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage2DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage',
    'glewImpl' => '__glewTexStorage3D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorage3DMultisample' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_texture_storage_multisample',
    'glewImpl' => '__glewTexStorage3DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem1DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem2DEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'memory',
        'GLuint '
      ],
      [
        'offset',
        'GLuint64 '
      ]
    ],
    'feature' => 'GL_EXT_memory_object',
    'glewImpl' => '__glewTexStorageMem2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexStorageMem2DMultisampleEXT' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'internalFormat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'layers',
        'GLsizei '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_AMD_sparse_texture',
    'glewImpl' => '__glewTexStorageSparseAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTexSubImage1D' => {
    'aliases' => {
      'glTexSubImage1DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexSubImage2D' => {
    'aliases' => {
      'glTexSubImage2DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexSubImage3D' => {
    'aliases' => {
      'glTexSubImage3DEXT' => 'GL_EXT_subtexture'
    },
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_VERSION_1_2',
    'glewImpl' => '__glewTexSubImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTexSubImage4DSGIS' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'woffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'size4d',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth,size4d)'
      ]
    ],
    'feature' => 'GL_SGIS_texture4D',
    'glewImpl' => '__glewTexSubImage4DSGIS',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureBuffer',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureBufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferRange' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLintptr '
      ],
      [
        'size',
        'GLsizeiptr '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureBufferRange',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureBufferRangeEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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'
  },
  'glTextureImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureImage2DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage2DMultisampleCoverageNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage2DMultisampleNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage2DMultisampleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'internalformat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'border',
        'GLint '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureImage3DMultisampleCoverageNV' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'coverageSamples',
        'GLsizei '
      ],
      [
        'colorSamples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        '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 '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalFormat',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'fixedSampleLocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_NV_texture_multisample',
    'glewImpl' => '__glewTextureImage3DMultisampleNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureLightEXT' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewTextureLightEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureMaterialEXT' => {
    'argdata' => [
      [
        'face',
        'GLenum '
      ],
      [
        'mode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_EXT_light_texture',
    'glewImpl' => '__glewTextureMaterialEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureNormalEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ]
    ],
    '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_sparse_texture',
    'glewImpl' => '__glewTexturePageCommitmentEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterIiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterIiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterIivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterIivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterIuiv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterIuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterIuivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLuint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterIuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterf' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterf',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterfEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameterfv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameterfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterfvEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLfloat* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameteri' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameteri',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameteriEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameteriEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureParameteriv' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureParameteriv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureParameterivEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'pname',
        'GLenum '
      ],
      [
        'params',
        'const GLint* ',
        'COMPSIZE(pname)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureParameterivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureRangeAPPLE' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'length'
      ]
    ],
    'feature' => 'GL_APPLE_texture_range',
    'glewImpl' => '__glewTextureRangeAPPLE',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureRenderbufferEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'renderbuffer',
        'GLuint '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureRenderbufferEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage1D',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_texture_storage',
    'glewImpl' => '__glewTextureStorage1DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'levels',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_EXT_texture_storage',
    'glewImpl' => '__glewTextureStorage2DEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2DMultisample' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'fixedsamplelocations',
        'GLboolean '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureStorage2DMultisample',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureStorage2DMultisampleEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'samples',
        'GLsizei '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'layers',
        'GLsizei '
      ],
      [
        'flags',
        'GLbitfield '
      ]
    ],
    'feature' => 'GL_AMD_sparse_texture',
    'glewImpl' => '__glewTextureStorageSparseAMD',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTextureSubImage1D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage1D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureSubImage1DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage1DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureSubImage2D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage2D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureSubImage2DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage2DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureSubImage3D' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *'
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewTextureSubImage3D',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureSubImage3DEXT' => {
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'level',
        'GLint '
      ],
      [
        'xoffset',
        'GLint '
      ],
      [
        'yoffset',
        'GLint '
      ],
      [
        'zoffset',
        'GLint '
      ],
      [
        'width',
        'GLsizei '
      ],
      [
        'height',
        'GLsizei '
      ],
      [
        'depth',
        'GLsizei '
      ],
      [
        'format',
        'GLenum '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pixels',
        'const void *',
        'COMPSIZE(format,type,width,height,depth)'
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewTextureSubImage3DEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTextureView' => {
    'aliases' => {
      'glTextureViewEXT' => 'GL_EXT_texture_view'
    },
    'argdata' => [
      [
        'texture',
        'GLuint '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'origtexture',
        'GLuint '
      ],
      [
        'internalformat',
        'GLenum '
      ],
      [
        'minlevel',
        'GLuint '
      ],
      [
        'numlevels',
        'GLuint '
      ],
      [
        'minlayer',
        'GLuint '
      ],
      [
        'numlayers',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_texture_view',
    'glewImpl' => '__glewTextureView',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glTrackMatrixNV' => {
    'argdata' => [
      [
        'target',
        'GLenum '
      ],
      [
        'address',
        'GLuint '
      ],
      [
        'matrix',
        'GLenum '
      ],
      [
        'transform',
        'GLenum '
      ]
    ],
    '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',
    'has_ptr_arg' => 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 '
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewTransformFeedbackVaryings',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTransformFeedbackVaryingsNV' => {
    'argdata' => [
      [
        'program',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'locations',
        'const GLint *',
        'count'
      ],
      [
        'bufferMode',
        'GLenum '
      ]
    ],
    'feature' => 'GL_NV_transform_feedback',
    'glewImpl' => '__glewTransformFeedbackVaryingsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glTransformPathNV' => {
    'argdata' => [
      [
        'resultPath',
        'GLuint '
      ],
      [
        'srcPath',
        'GLuint '
      ],
      [
        'transformType',
        'GLenum '
      ],
      [
        'transformValues',
        'const GLfloat* ',
        'COMPSIZE(transformType)'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewTransformPathNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform1dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform1i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*1'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform1iv' => {
    'aliases' => {
      'glUniform1ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*1'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform1iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform1ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform1ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*1'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform1ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform1uiv' => {
    'aliases' => {
      'glUniform1uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*1'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform2i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform2iv' => {
    'aliases' => {
      'glUniform2ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform2iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform2ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform2ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform2ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform2uiv' => {
    'aliases' => {
      'glUniform2uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform3i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform3iv' => {
    'aliases' => {
      'glUniform3ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform3ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform3ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform3ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform3uiv' => {
    'aliases' => {
      'glUniform3uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniform4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4i64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform4i64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint64EXT* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform4iv' => {
    'aliases' => {
      'glUniform4ivARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniform4iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_int64',
    'glewImpl' => '__glewUniform4ui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform4ui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64EXT* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_gpu_shader5',
    'glewImpl' => '__glewUniform4ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniform4uiv' => {
    'aliases' => {
      'glUniform4uivEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewUniform4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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' => undef
    },
    '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' => undef
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64vARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformHandleui64vNV' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'value',
        'const GLuint64* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_bindless_texture',
    'glewImpl' => '__glewUniformHandleui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2fv' => {
    'aliases' => {
      'glUniformMatrix2fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2x3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2x3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2x3fv' => {
    'aliases' => {
      'glUniformMatrix2x3fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*6'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix2x3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2x4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix2x4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix2x4fv' => {
    'aliases' => {
      'glUniformMatrix2x4fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*8'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix2x4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*9'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3fv' => {
    'aliases' => {
      'glUniformMatrix3fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*9'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3x2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*6'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3x2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3x2fv' => {
    'aliases' => {
      'glUniformMatrix3x2fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*6'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix3x2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3x4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix3x4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix3x4fv' => {
    'aliases' => {
      'glUniformMatrix3x4fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*12'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix3x4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*16'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4fv' => {
    'aliases' => {
      'glUniformMatrix4fvARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat* ',
        'count*16'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUniformMatrix4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4x2dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*8'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4x2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4x2fv' => {
    'aliases' => {
      'glUniformMatrix4x2fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*8'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix4x2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4x3dv' => {
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLdouble* ',
        'count*12'
      ]
    ],
    'feature' => 'GL_ARB_gpu_shader_fp64',
    'glewImpl' => '__glewUniformMatrix4x3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformMatrix4x3fv' => {
    'aliases' => {
      'glUniformMatrix4x3fvNV' => 'GL_NV_non_square_matrices'
    },
    'argdata' => [
      [
        'location',
        'GLint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'transpose',
        'GLboolean '
      ],
      [
        'value',
        'const GLfloat *',
        'count*12'
      ]
    ],
    'feature' => 'GL_VERSION_2_1',
    'glewImpl' => '__glewUniformMatrix4x3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUniformSubroutinesuiv' => {
    'argdata' => [
      [
        'shadertype',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'indices',
        'const GLuint* ',
        'count'
      ]
    ],
    'feature' => 'GL_ARB_shader_subroutine',
    'glewImpl' => '__glewUniformSubroutinesuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_shader_buffer_load',
    'glewImpl' => '__glewUniformui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ]
    ],
    'feature' => 'GL_VERSION_1_5',
    'glewImpl' => '__glewUnmapBuffer',
    '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 '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewUpdateObjectBufferATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glUseProgram' => {
    'aliases' => {
      'glUseProgramObjectARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewUseProgram',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glUseProgramStages' => {
    'argdata' => [
      [
        'pipeline',
        'GLuint '
      ],
      [
        'stages',
        'GLbitfield '
      ],
      [
        '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',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glVDPAUInitNV' => {
    'argdata' => [
      [
        'vdpDevice',
        'const void* '
      ],
      [
        'getProcAddress',
        'const void*'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUInitNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 2,
    'restype' => 'GLvdpauSurfaceNV'
  },
  'glVDPAURegisterVideoSurfaceNV' => {
    'argdata' => [
      [
        'vdpSurface',
        'const void* '
      ],
      [
        'target',
        'GLenum '
      ],
      [
        'numTextureNames',
        'GLsizei '
      ],
      [
        'textureNames',
        'const GLuint *',
        'numTextureNames'
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAURegisterVideoSurfaceNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVDPAUUnregisterSurfaceNV' => {
    'argdata' => [
      [
        'surface',
        'GLvdpauSurfaceNV '
      ]
    ],
    'feature' => 'GL_NV_vdpau_interop',
    'glewImpl' => '__glewVDPAUUnregisterSurfaceNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glValidateProgram' => {
    'aliases' => {
      'glValidateProgramARB' => 'GL_ARB_shader_objects'
    },
    'argdata' => [
      [
        'program',
        'GLuint '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewValidateProgram',
    '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'offset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_array_object',
    'glewImpl' => '__glewVariantArrayObjectATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVariantPointerEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLuint '
      ],
      [
        'addr',
        'void *',
        'COMPSIZE(id,type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantbvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLbyte *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantbvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantdvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLdouble *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantdvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantfvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLfloat *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantivEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantsvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLshort *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantsvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantubvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLubyte *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantubvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantuivEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLuint *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantuivEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVariantusvEXT' => {
    'argdata' => [
      [
        'id',
        'GLuint '
      ],
      [
        'addr',
        'GLushort *',
        'COMPSIZE(id)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_shader',
    'glewImpl' => '__glewVariantusvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex2hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertex4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        '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 '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_direct_state_access',
    'glewImpl' => '__glewVertexArrayAttribIFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayAttribLFormat' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayFogCoordOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayIndexOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayMultiTexCoordOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayNormalOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'offset',
        'GLintptr '
      ]
    ],
    'feature' => 'GL_EXT_direct_state_access',
    'glewImpl' => '__glewVertexArrayNormalOffsetEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexArrayParameteriAPPLE' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        '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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexArrayRangeNV' => {
    'argdata' => [
      [
        'length',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(length)'
      ]
    ],
    'feature' => 'GL_NV_vertex_array_range',
    'glewImpl' => '__glewVertexArrayRangeNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexArraySecondaryColorOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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 '
      ],
      [
        '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',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glVertexArrayVertexOffsetEXT' => {
    'argdata' => [
      [
        'vaobj',
        'GLuint '
      ],
      [
        'buffer',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib1hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib1sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib2hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib2sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib3sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4Nbv' => {
    'aliases' => {
      'glVertexAttrib4NbvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nbv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4Niv' => {
    'aliases' => {
      'glVertexAttrib4NivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Niv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4Nsv' => {
    'aliases' => {
      'glVertexAttrib4NsvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nsv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4Nuiv' => {
    'aliases' => {
      'glVertexAttrib4NuivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nuiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4Nusv' => {
    'aliases' => {
      'glVertexAttrib4NusvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4Nusv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4bv' => {
    'aliases' => {
      'glVertexAttrib4bvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4bv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttrib4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4iv' => {
    'aliases' => {
      'glVertexAttrib4ivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLint* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4ubv' => {
    'aliases' => {
      'glVertexAttrib4ubvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLubyte* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4ubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4uiv' => {
    'aliases' => {
      'glVertexAttrib4uivARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttrib4usv' => {
    'aliases' => {
      'glVertexAttrib4usvARB' => 'GL_ARB_vertex_program'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttrib4usv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribArrayObjectATI' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribI4bv' => {
    'aliases' => {
      'glVertexAttribI4bvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLbyte* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4bv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribI4sv' => {
    'aliases' => {
      'glVertexAttribI4svEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLshort* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribI4ubv' => {
    'aliases' => {
      'glVertexAttribI4ubvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLubyte* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4ubv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribI4usv' => {
    'aliases' => {
      'glVertexAttribI4usvEXT' => 'GL_EXT_gpu_shader4'
    },
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLushort* ',
        '4'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribI4usv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribIFormat' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribIFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribIFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void*'
      ]
    ],
    'feature' => 'GL_VERSION_3_0',
    'glewImpl' => '__glewVertexAttribIPointer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL1dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribL1ui64vNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'v',
        'const GLuint64EXT* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL1ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL2ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL3ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribL4dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4i64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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'
      ]
    ],
    'feature' => 'GL_NV_vertex_attrib_integer_64bit',
    'glewImpl' => '__glewVertexAttribL4ui64vNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribLFormat' => {
    'argdata' => [
      [
        'attribindex',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'relativeoffset',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_binding',
    'glewImpl' => '__glewVertexAttribLFormat',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexAttribLFormatNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void* '
      ]
    ],
    'feature' => 'GL_ARB_vertex_attrib_64bit',
    'glewImpl' => '__glewVertexAttribLPointer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribP1ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP1uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribP2ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribP3ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribP4ui' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexAttribP4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'normalized',
        'GLboolean '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void* '
      ]
    ],
    'feature' => 'GL_VERSION_2_0',
    'glewImpl' => '__glewVertexAttribPointer',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribPointerNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'fsize',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(fsize,type,stride)'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribPointerNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs1dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs1fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs1hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs1hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs1svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs1svNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs2dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs2fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs2hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs2hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs2svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*2'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs2svNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs3dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs3fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs3hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs3hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs3svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*3'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs3svNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs4dvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLdouble* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4dvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs4fvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLfloat* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4fvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs4hvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'n',
        'GLsizei '
      ],
      [
        'v',
        'const GLhalf* ',
        'n'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexAttribs4hvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs4svNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLshort* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4svNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexAttribs4ubvNV' => {
    'argdata' => [
      [
        'index',
        'GLuint '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'v',
        'const GLubyte* ',
        'count*4'
      ]
    ],
    'feature' => 'GL_NV_vertex_program',
    'glewImpl' => '__glewVertexAttribs4ubvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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 '
      ],
      [
        'param',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexBlendEnvfATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexBlendEnviATI' => {
    'argdata' => [
      [
        'pname',
        'GLenum '
      ],
      [
        'param',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexBlendEnviATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexFormatNV' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ]
    ],
    'feature' => 'GL_NV_vertex_buffer_unified_memory',
    'glewImpl' => '__glewVertexFormatNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP2ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP2ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP2uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP2uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexP3ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP3ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP3uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP3uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexP4ui' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'GLuint '
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP4ui',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexP4uiv' => {
    'argdata' => [
      [
        'type',
        'GLenum '
      ],
      [
        'value',
        'const GLuint* ',
        '1'
      ]
    ],
    'feature' => 'GL_ARB_vertex_type_2_10_10_10_rev',
    'glewImpl' => '__glewVertexP4uiv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexPointer' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride)'
      ]
    ],
    'core_removed' => 1,
    'feature' => 'GL_VERSION_1_1',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'pointer',
        'const void *',
        'COMPSIZE(size,type,stride,count)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_array',
    'glewImpl' => '__glewVertexPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexPointerListIBM' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLint '
      ],
      [
        'pointer',
        'const void** ',
        'COMPSIZE(size,type,stride)'
      ],
      [
        'ptrstride',
        'GLint '
      ]
    ],
    'feature' => 'GL_IBM_vertex_array_lists',
    'glewImpl' => '__glewVertexPointerListIBM',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexPointervINTEL' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'pointer',
        'const void** ',
        '4'
      ]
    ],
    'feature' => 'GL_INTEL_parallel_arrays',
    'glewImpl' => '__glewVertexPointervINTEL',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream1dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLdouble *',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1dvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream1fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLfloat *',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1fvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream1iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLint *',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1ivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream1sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream1svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLshort *',
        '1'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream1svATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream2dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLdouble *',
        '2'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2dvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream2fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLfloat *',
        '2'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2fvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream2iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLint *',
        '2'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2ivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream2sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream2svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLshort *',
        '2'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream2svATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream3dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLdouble *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3dvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream3fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLfloat *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3fvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream3iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLint *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3ivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream3sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream3svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLshort *',
        '3'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream3svATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream4dATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4dATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4dvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLdouble *',
        '4'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4dvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream4fATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLfloat '
      ],
      [
        'y',
        'GLfloat '
      ],
      [
        'z',
        'GLfloat '
      ],
      [
        'w',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4fATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4fvATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLfloat *',
        '4'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4fvATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream4iATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLint '
      ],
      [
        'y',
        'GLint '
      ],
      [
        'z',
        'GLint '
      ],
      [
        'w',
        'GLint '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4iATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4ivATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLint *',
        '4'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4ivATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexStream4sATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'x',
        'GLshort '
      ],
      [
        'y',
        'GLshort '
      ],
      [
        'z',
        'GLshort '
      ],
      [
        'w',
        'GLshort '
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4sATI',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexStream4svATI' => {
    'argdata' => [
      [
        'stream',
        'GLenum '
      ],
      [
        'coords',
        'const GLshort *',
        '4'
      ]
    ],
    'feature' => 'GL_ATI_vertex_streams',
    'glewImpl' => '__glewVertexStream4svATI',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexWeightPointerEXT' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightPointerEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexWeightfEXT' => {
    'argdata' => [
      [
        'weight',
        'GLfloat '
      ]
    ],
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightfEXT',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexWeightfvEXT' => {
    'argdata' => [
      [
        'weight',
        'GLfloat* ',
        '1'
      ]
    ],
    'feature' => 'GL_EXT_vertex_weighting',
    'glewImpl' => '__glewVertexWeightfvEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVertexWeighthNV' => {
    'argdata' => [
      [
        'weight',
        'GLhalf '
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexWeighthNV',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glVertexWeighthvNV' => {
    'argdata' => [
      [
        'weight',
        'const GLhalf* ',
        '1'
      ]
    ],
    'feature' => 'GL_NV_half_float',
    'glewImpl' => '__glewVertexWeighthvNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glVideoCaptureNV' => {
    'argdata' => [
      [
        'video_capture_slot',
        'GLuint '
      ],
      [
        'sequence_num',
        'GLuint* '
      ],
      [
        'capture_time',
        'GLuint64EXT *'
      ]
    ],
    'feature' => 'GL_NV_video_capture',
    'glewImpl' => '__glewVideoCaptureNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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',
    'has_ptr_arg' => 1,
    '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 * ',
        'COMPSIZE(count)'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewViewportArrayv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_ARB_viewport_array',
    'glewImpl' => '__glewViewportIndexedfv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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)'
      ]
    ],
    'feature' => 'GL_EXT_semaphore',
    'glewImpl' => '__glewWaitSemaphoreEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 3,
    'restype' => 'void'
  },
  'glWaitSync' => {
    'aliases' => {
      'glWaitSyncAPPLE' => 'GL_APPLE_sync'
    },
    'argdata' => [
      [
        'myGLsync',
        'GLsync '
      ],
      [
        'flags',
        'GLbitfield '
      ],
      [
        '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'
      ]
    ],
    'feature' => 'GL_NV_path_rendering',
    'glewImpl' => '__glewWeightPathsNV',
    'glewtype' => 'fun',
    'has_ptr_arg' => 2,
    'restype' => 'void'
  },
  'glWeightPointerARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'type',
        'GLenum '
      ],
      [
        'stride',
        'GLsizei '
      ],
      [
        'pointer',
        'void *',
        'COMPSIZE(type,stride)'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightPointerARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightbvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLbyte *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightbvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightdvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLdouble *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightdvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightfvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLfloat *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightfvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLint *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightsvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLshort *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightsvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightubvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLubyte *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightubvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightuivARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLuint *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightuivARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWeightusvARB' => {
    'argdata' => [
      [
        'size',
        'GLint '
      ],
      [
        'weights',
        'GLushort *',
        'size'
      ]
    ],
    'feature' => 'GL_ARB_vertex_blend',
    'glewImpl' => '__glewWeightusvARB',
    'glewtype' => 'fun',
    'has_ptr_arg' => 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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos2sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3dv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3fv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3iv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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,
    'feature' => 'GL_VERSION_1_4',
    'glewImpl' => '__glewWindowPos3sv',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWindowPos4dMESA' => {
    'argdata' => [
      [
        'x',
        'GLdouble '
      ],
      [
        'y',
        'GLdouble '
      ],
      [
        'z',
        'GLdouble '
      ],
      [
        'w',
        'GLdouble '
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4dMESA',
    'glewtype' => 'fun',
    'restype' => 'void'
  },
  'glWindowPos4dvMESA' => {
    'argdata' => [
      [
        'v',
        'const GLdouble* ',
        '4'
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4dvMESA',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4fvMESA',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4ivMESA',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    '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'
      ]
    ],
    'feature' => 'GL_MESA_window_pos',
    'glewImpl' => '__glewWindowPos4svMESA',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWindowRectanglesEXT' => {
    'argdata' => [
      [
        'mode',
        'GLenum '
      ],
      [
        'count',
        'GLsizei '
      ],
      [
        'box',
        'const GLint * ',
        'COMPSIZE(count)'
      ]
    ],
    'feature' => 'GL_EXT_window_rectangles',
    'glewImpl' => '__glewWindowRectanglesEXT',
    'glewtype' => 'fun',
    'has_ptr_arg' => 1,
    'restype' => 'void'
  },
  'glWriteMaskEXT' => {
    'argdata' => [
      [
        'res',
        'GLuint '
      ],
      [
        'in',
        'GLuint '
      ],
      [
        'outX',
        'GLenum '
      ],
      [
        'outY',
        'GLenum '
      ],
      [
        'outZ',
        'GLenum '
      ],
      [
        'outW',
        'GLenum '
      ]
    ],
    '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_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_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_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_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_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_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_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_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_RGB
  GL_BLEND_DST_RGB_EXT
  GL_BLEND_EQUATION
  GL_BLEND_EQUATION_ALPHA
  GL_BLEND_EQUATION_ALPHA_EXT
  GL_BLEND_EQUATION_EXT
  GL_BLEND_EQUATION_RGB
  GL_BLEND_EQUATION_RGB_EXT
  GL_BLEND_OVERLAP_NV
  GL_BLEND_PREMULTIPLIED_SRC_NV
  GL_BLEND_SRC
  GL_BLEND_SRC_ALPHA
  GL_BLEND_SRC_ALPHA_EXT
  GL_BLEND_SRC_RGB
  GL_BLEND_SRC_RGB_EXT
  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_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_MAP_LENGTH
  GL_BUFFER_MAP_OFFSET
  GL_BUFFER_MAP_POINTER
  GL_BUFFER_MAP_POINTER_ARB
  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_NV
  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_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_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_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_4x4_KHR
  GL_COMPRESSED_RGBA_ASTC_5x4_KHR
  GL_COMPRESSED_RGBA_ASTC_5x5_KHR
  GL_COMPRESSED_RGBA_ASTC_6x5_KHR
  GL_COMPRESSED_RGBA_ASTC_6x6_KHR
  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_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_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_4x4_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
  GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
  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_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_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_ROBUST_ACCESS_BIT
  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
  GL_CONTEXT_LOST
  GL_CONTEXT_PROFILE_MASK
  GL_CONTEXT_ROBUST_ACCESS
  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_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_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_PROGRAM
  GL_CURRENT_QUERY
  GL_CURRENT_QUERY_ANGLE
  GL_CURRENT_QUERY_ARB
  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_DEPTH32F_STENCIL8
  GL_DEPTH32F_STENCIL8_NV
  GL_DEPTH_ATTACHMENT
  GL_DEPTH_ATTACHMENT_EXT
  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_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_SGIX
  GL_DEPTH_COMPONENT24
  GL_DEPTH_COMPONENT24_ARB
  GL_DEPTH_COMPONENT24_SGIX
  GL_DEPTH_COMPONENT32
  GL_DEPTH_COMPONENT32F
  GL_DEPTH_COMPONENT32F_NV
  GL_DEPTH_COMPONENT32_ARB
  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_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_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_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_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_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_EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV
  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_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_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_FIXED
  GL_FIXED_ONLY
  GL_FIXED_ONLY_ARB
  GL_FLAT
  GL_FLOAT
  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_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_FRACTIONAL_EVEN
  GL_FRACTIONAL_ODD
  GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX
  GL_FRAGMENTS_INSTRUMENT_MAX_SGIX
  GL_FRAGMENTS_INSTRUMENT_SGIX
  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_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_DISCARDS_SAMPLES_EXT
  GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
  GL_FRAGMENT_SHADER_INVOCATIONS
  GL_FRAGMENT_SHADER_INVOCATIONS_ARB
  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_OBJECT_NAME
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
  GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
  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_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_NUM_VIEWS_OVR
  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT
  GL_FRAMEBUFFER_BARRIER_BIT
  GL_FRAMEBUFFER_BARRIER_BIT_EXT
  GL_FRAMEBUFFER_BINDING
  GL_FRAMEBUFFER_BINDING_EXT
  GL_FRAMEBUFFER_BLEND
  GL_FRAMEBUFFER_COMPLETE
  GL_FRAMEBUFFER_COMPLETE_EXT
  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_SAMPLES
  GL_FRAMEBUFFER_DEFAULT_WIDTH
  GL_FRAMEBUFFER_EXT
  GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
  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_MISSING_ATTACHMENT
  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
  GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR
  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_UNDEFINED
  GL_FRAMEBUFFER_UNSUPPORTED
  GL_FRAMEBUFFER_UNSUPPORTED_EXT
  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_COMPLEX_ADD_EXT
  GL_FUNC_COMPLEX_MULTIPLY_EXT
  GL_FUNC_REVERSE_SUBTRACT
  GL_FUNC_REVERSE_SUBTRACT_EXT
  GL_FUNC_SUBTRACT
  GL_FUNC_SUBTRACT_EXT
  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_OUTPUT_TYPE_EXT
  GL_GEOMETRY_LINKED_VERTICES_OUT_EXT
  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_EXT
  GL_GEOMETRY_SHADER_INVOCATIONS
  GL_GEOMETRY_SHADER_INVOCATIONS_EXT
  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_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_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_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_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_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_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_TYPE
  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_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_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_CUBE
  GL_INT_IMAGE_CUBE_EXT
  GL_INT_IMAGE_CUBE_MAP_ARRAY
  GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
  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_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_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_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_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_IS_PER_PATCH
  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_VIDEO_CAPTURE_STATUS_NV
  GL_LAYERED_SGIX
  GL_LAYER_PROVOKING_VERTEX
  GL_LAYER_PROVOKING_VERTEX_EXT
  GL_LAYOUT_COLOR_ATTACHMENT_EXT
  GL_LAYOUT_DEFAULT_INTEL
  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_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_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_LOWER_LEFT
  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_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_SNORM
  GL_LUMINANCE8_EXT
  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_POINTER_ARB
  GL_MATRIX_INDEX_ARRAY_SIZE_ARB
  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
  GL_MATRIX_INDEX_ARRAY_TYPE_ARB
  GL_MATRIX_MODE
  GL_MATRIX_PALETTE_ARB
  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_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_COLOR_ATTACHMENTS
  GL_MAX_COLOR_ATTACHMENTS_EXT
  GL_MAX_COLOR_ATTACHMENTS_NV
  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_IMAGE_UNIFORMS
  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
  GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
  GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
  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_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_TEXTURE_SAMPLES
  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_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_LIGHTS_EXT
  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
  GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
  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_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_COUNTER_BUFFERS
  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT
  GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
  GL_MAX_GEOMETRY_IMAGE_UNIFORMS
  GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT
  GL_MAX_GEOMETRY_INPUT_COMPONENTS
  GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_OUTPUT_VERTICES
  GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
  GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
  GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
  GL_MAX_GEOMETRY_SHADER_INVOCATIONS
  GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT
  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
  GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
  GL_MAX_GEOMETRY_UNIFORM_BLOCKS
  GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
  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_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_PATCH_VERTICES
  GL_MAX_PIXEL_MAP_TABLE
  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
  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_SAMPLES
  GL_MAX_SAMPLES_ANGLE
  GL_MAX_SAMPLES_APPLE
  GL_MAX_SAMPLES_EXT
  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_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_TESS_CONTROL_ATOMIC_COUNTERS
  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
  GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
  GL_MAX_TESS_GEN_LEVEL
  GL_MAX_TESS_PATCH_COMPONENTS
  GL_MAX_TEXTURES_SGIS
  GL_MAX_TEXTURE_BUFFER_SIZE
  GL_MAX_TEXTURE_BUFFER_SIZE_ARB
  GL_MAX_TEXTURE_BUFFER_SIZE_EXT
  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_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_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_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_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_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_PROJECTION_NV
  GL_MODELVIEW_STACK_DEPTH
  GL_MODULATE
  GL_MODULATE_ADD_ATI
  GL_MODULATE_ADD_ATIX
  GL_MODULATE_SIGNED_ADD_ATI
  GL_MODULATE_SIGNED_ADD_ATIX
  GL_MODULATE_SUBTRACT_ATI
  GL_MODULATE_SUBTRACT_ATIX
  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_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_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_NOTEQUAL
  GL_NO_ERROR
  GL_NO_RESET_NOTIFICATION
  GL_NO_RESET_NOTIFICATION_ARB
  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_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_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_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_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_PATCH_DEFAULT_INNER_LEVEL
  GL_PATCH_DEFAULT_OUTER_LEVEL
  GL_PATCH_VERTICES
  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_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_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_SUBMITTED
  GL_PRIMITIVES_SUBMITTED_ARB
  GL_PRIMITIVE_BOUNDING_BOX_ARB
  GL_PRIMITIVE_ID_NV
  GL_PRIMITIVE_RESTART
  GL_PRIMITIVE_RESTART_FIXED_INDEX
  GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
  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_LENGTH
  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_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_Q
  GL_QUADRATIC_ATTENUATION
  GL_QUADRATIC_CURVE_TO_NV
  GL_QUADS
  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT
  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_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_NV
  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_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_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_TESS_CONTROL_SHADER
  GL_REFERENCED_BY_TESS_EVALUATION_SHADER
  GL_REFERENCED_BY_VERTEX_SHADER
  GL_REFLECTION_MAP
  GL_REFLECTION_MAP_ARB
  GL_REFLECTION_MAP_EXT
  GL_REFLECTION_MAP_NV
  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_BINDING
  GL_RENDERBUFFER_BINDING_EXT
  GL_RENDERBUFFER_BLUE_SIZE
  GL_RENDERBUFFER_BLUE_SIZE_EXT
  GL_RENDERBUFFER_COLOR_SAMPLES_NV
  GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
  GL_RENDERBUFFER_DEPTH_SIZE
  GL_RENDERBUFFER_DEPTH_SIZE_EXT
  GL_RENDERBUFFER_EXT
  GL_RENDERBUFFER_FREE_MEMORY_ATI
  GL_RENDERBUFFER_GREEN_SIZE
  GL_RENDERBUFFER_GREEN_SIZE_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_SAMPLES
  GL_RENDERBUFFER_SAMPLES_ANGLE
  GL_RENDERBUFFER_SAMPLES_APPLE
  GL_RENDERBUFFER_SAMPLES_EXT
  GL_RENDERBUFFER_SAMPLES_NV
  GL_RENDERBUFFER_STENCIL_SIZE
  GL_RENDERBUFFER_STENCIL_SIZE_EXT
  GL_RENDERBUFFER_WIDTH
  GL_RENDERBUFFER_WIDTH_EXT
  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_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_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_RGB5_A1
  GL_RGB5_A1_EXT
  GL_RGB5_EXT
  GL_RGB8
  GL_RGB8I
  GL_RGB8I_EXT
  GL_RGB8UI
  GL_RGB8UI_EXT
  GL_RGB8_EXT
  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_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_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_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_SHADOW
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT
  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_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_COMMAND_NV
  GL_SCISSOR_TEST
  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_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_SHADER
  GL_SHADER_BINARY_FORMATS
  GL_SHADER_BINARY_FORMAT_SPIR_V
  GL_SHADER_BINARY_FORMAT_SPIR_V_ARB
  GL_SHADER_COMPILER
  GL_SHADER_CONSISTENT_NV
  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_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_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_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_INDEX4
  GL_STENCIL_INDEX4_EXT
  GL_STENCIL_INDEX8
  GL_STENCIL_INDEX8_EXT
  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_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_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_TERMINATE_SEQUENCE_COMMAND_NV
  GL_TESSELLATION_FACTOR_AMD
  GL_TESSELLATION_MODE_AMD
  GL_TESS_CONTROL_OUTPUT_VERTICES
  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_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_INVOCATIONS
  GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
  GL_TESS_EVALUATION_SUBROUTINE
  GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
  GL_TESS_EVALUATION_TEXTURE
  GL_TESS_GEN_MODE
  GL_TESS_GEN_POINT_MODE
  GL_TESS_GEN_SPACING
  GL_TESS_GEN_VERTEX_ORDER
  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_STACK_BINDING_MESAX
  GL_TEXTURE_2D_STACK_MESAX
  GL_TEXTURE_3D
  GL_TEXTURE_3D_BINDING_EXT
  GL_TEXTURE_3D_EXT
  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_3D
  GL_TEXTURE_BINDING_BUFFER
  GL_TEXTURE_BINDING_BUFFER_ARB
  GL_TEXTURE_BINDING_BUFFER_EXT
  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_EXT
  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_NV
  GL_TEXTURE_BORDER_VALUES_NV
  GL_TEXTURE_BUFFER
  GL_TEXTURE_BUFFER_ARB
  GL_TEXTURE_BUFFER_BINDING
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
  GL_TEXTURE_BUFFER_EXT
  GL_TEXTURE_BUFFER_FORMAT
  GL_TEXTURE_BUFFER_FORMAT_ARB
  GL_TEXTURE_BUFFER_FORMAT_EXT
  GL_TEXTURE_BUFFER_OFFSET
  GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
  GL_TEXTURE_BUFFER_SIZE
  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_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_Y
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_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_POSITIVE_Y
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
  GL_TEXTURE_CUBE_MAP_POSITIVE_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_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_FREE_MEMORY_ATI
  GL_TEXTURE_GATHER
  GL_TEXTURE_GATHER_SHADOW
  GL_TEXTURE_GEN_MODE
  GL_TEXTURE_GEN_Q
  GL_TEXTURE_GEN_R
  GL_TEXTURE_GEN_S
  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_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_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_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_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_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_LEVEL
  GL_TEXTURE_VIEW_MIN_LEVEL_EXT
  GL_TEXTURE_VIEW_NUM_LAYERS
  GL_TEXTURE_VIEW_NUM_LAYERS_EXT
  GL_TEXTURE_VIEW_NUM_LEVELS
  GL_TEXTURE_VIEW_NUM_LEVELS_EXT
  GL_TEXTURE_WIDTH
  GL_TEXTURE_WIDTH_QCOM
  GL_TEXTURE_WRAP_R
  GL_TEXTURE_WRAP_R_EXT
  GL_TEXTURE_WRAP_S
  GL_TEXTURE_WRAP_T
  GL_TEXT_FRAGMENT_SHADER_ATI
  GL_TILING_TYPES_EXT
  GL_TIMEOUT_EXPIRED
  GL_TIMEOUT_EXPIRED_APPLE
  GL_TIMEOUT_IGNORED
  GL_TIMEOUT_IGNORED_APPLE
  GL_TIMESTAMP
  GL_TIMESTAMP_ANGLE
  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_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_TRIANGULAR_NV
  GL_TRUE
  GL_TYPE
  GL_UNCORRELATED_NV
  GL_UNDEFINED_APPLE
  GL_UNDEFINED_VERTEX
  GL_UNDEFINED_VERTEX_EXT
  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_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_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_24_8
  GL_UNSIGNED_INT_24_8_EXT
  GL_UNSIGNED_INT_24_8_NV
  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_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_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_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_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_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_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_UPPER_LEFT
  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_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_POINTER_ARB
  GL_WEIGHT_ARRAY_SIZE_ARB
  GL_WEIGHT_ARRAY_STRIDE_ARB
  GL_WEIGHT_ARRAY_TYPE_ARB
  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_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_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_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' => [
    '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_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_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',
    'glNamedBufferStorageEXT'
  ],
  'GL_EXT_clear_texture' => [
    'glClearTexImageEXT',
    'glClearTexSubImageEXT'
  ],
  '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',
    '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',
    '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_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_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_framebuffer_blit' => [
    'glBlitFramebufferEXT'
  ],
  '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_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_provoking_vertex' => [
    'glProvokingVertexEXT'
  ],
  'GL_EXT_raster_multisample' => [
    'glCoverageModulationNV',
    'glCoverageModulationTableNV',
    'glGetCoverageModulationTableNV',
    'glRasterSamplesEXT'
  ],
  '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_image_load_store' => [
    'glBindImageTextureEXT',
    'glMemoryBarrierEXT'
  ],
  'GL_EXT_shader_pixel_local_storage2' => [
    'glClearPixelLocalStorageuiEXT',
    'glFramebufferPixelLocalStorageSizeEXT',
    'glGetFramebufferPixelLocalStorageSizeEXT'
  ],
  'GL_EXT_sparse_texture' => [
    'glTexPageCommitmentEXT',
    'glTexturePageCommitmentEXT'
  ],
  'GL_EXT_stencil_two_side' => [
    'glActiveStencilFaceEXT'
  ],
  'GL_EXT_subtexture' => [
    'glTexSubImage1DEXT',
    'glTexSubImage2DEXT',
    'glTexSubImage3DEXT'
  ],
  'GL_EXT_texture3D' => [
    'glTexImage3DEXT'
  ],
  'GL_EXT_texture_array' => [
    'glFramebufferTextureLayerEXT'
  ],
  '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_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_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_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_linked_gpu_multicast' => [
    'glLGPUCopyImageSubDataNVX',
    'glLGPUInterlockNVX',
    'glLGPUNamedBufferSubDataNVX'
  ],
  'GL_NV_3dvision_settings' => [
    'glStereoParameterfNV',
    'glStereoParameteriNV'
  ],
  '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_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_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'
  ],
  'GL_NV_shader_buffer_load' => [
    'glGetBufferParameterui64vNV',
    'glGetIntegerui64vNV',
    'glGetNamedBufferParameterui64vNV',
    'glIsBufferResidentNV',
    'glIsNamedBufferResidentNV',
    'glMakeBufferNonResidentNV',
    'glMakeBufferResidentNV',
    'glMakeNamedBufferNonResidentNV',
    'glMakeNamedBufferResidentNV',
    'glProgramUniformui64NV',
    'glProgramUniformui64vNV',
    'glUniformui64NV',
    'glUniformui64vNV'
  ],
  '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_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_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_OVR_multiview' => [
    'glFramebufferTextureMultiviewOVR'
  ],
  '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_framebuffer_foveated' => [
    'glFramebufferFoveationConfigQCOM',
    'glFramebufferFoveationParametersQCOM'
  ],
  'GL_QCOM_shader_framebuffer_fetch_noncoherent' => [
    'glFramebufferFetchBarrierQCOM'
  ],
  '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'
  ]
);

1;
