Browse Source

Delete zgl_pasopengl.pas

Seenkao 2 years ago
parent
commit
bd6c68e030
1 changed files with 0 additions and 10239 deletions
  1. 0 10239
      Zengl_SRC/srcGL/zgl_pasopengl.pas

+ 0 - 10239
Zengl_SRC/srcGL/zgl_pasopengl.pas

@@ -1,10239 +0,0 @@
-(*
- *  Copyright (c) 2022 Serge - SSW
- *
- *  This software is provided 'as-is', without any express or
- *  implied warranty. In no event will the authors be held
- *  liable for any damages arising from the use of this software.
- *
- *  Permission is granted to anyone to use this software for any purpose,
- *  including commercial applications, and to alter it and redistribute
- *  it freely, subject to the following restrictions:
- *
- *  1. The origin of this software must not be misrepresented;
- *     you must not claim that you wrote the original software.
- *     If you use this software in a product, an acknowledgment
- *     in the product documentation would be appreciated but
- *     is not required.
- *
- *  2. Altered source versions must be plainly marked as such,
- *     and must not be misrepresented as being the original software.
- *
- *  3. This notice may not be removed or altered from any
- *     source distribution.
- *)
-
-unit zgl_pasOpenGL;
-{$I zgl_config.cfg}
-{$I GLdefine.cfg}
-
-{$IfDef UNIX}
-  {$DEFINE stdcall := cdecl}
-{$EndIf}
-
-interface
-
-uses
-  {$IFDEF LINUX}
-  zgl_glx_wgl,
-  {$ENDIF}
-  {$IFDEF WINDOWS}
-  Windows,
-  {$ENDIF}
-  {$IfDef FPC}
-  Math,
-  {$EndIf}
-  zgl_gltypeconst;
-
-  {$IFDEF LINUX}
-const
-  libGL  = 'libGL.so.1';
-  {$ENDIF}
-  {$IFDEF WINDOWS}
-const
-  libGL  = 'opengl32.dll';
-  {$ENDIF}
-
-type
-  GLDEBUGPROC = procedure(source: GLenum; _type: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const _message: PGLchar; userParam: PGLvoid); stdcall;
-  GLDEBUGPROCARB = procedure(source: GLenum; _type: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const _message: PGLchar; userParam: PGLvoid); stdcall;
-  GLVULKANPROCNV = procedure; stdcall;
-
-  // glext
-  GLDEBUGPROCAMD = procedure (id: GLuint; category: GLenum; severity: GLenum; length: GLsizei; message: PGLchar; userParam: pointer); stdcall;
-
-var
-  GLVersion: array[0..1] of Integer;
-  GLUVersion: Integer;
-  // версия выбираемая пользователем.
-  use_glMinorVer, use_glMajorVer: Integer;
-  GL_VERSION_1_0: Boolean;
-  GL_VERSION_1_1: Boolean;
-  GL_VERSION_1_2: Boolean;
-  GL_VERSION_1_3: Boolean;
-  GL_VERSION_1_4: Boolean;
-  GL_VERSION_1_5: Boolean;
-  GL_VERSION_2_0: Boolean;
-  GL_VERSION_2_1: Boolean;
-  GL_VERSION_3_0: Boolean;
-  GL_VERSION_3_1: Boolean;
-  GL_VERSION_3_2: Boolean;
-  GL_VERSION_3_3: Boolean;
-  GL_VERSION_4_0: Boolean;
-  GL_VERSION_4_1: Boolean;
-  GL_VERSION_4_2: Boolean;
-  GL_VERSION_4_3: Boolean;
-  GL_VERSION_4_4: Boolean;
-  GL_VERSION_4_5: Boolean;
-  GL_VERSION_4_6: Boolean;
-
-  // ZenGL ++
-  GL_SGIS_generate_mipmap: Boolean;
-  GL_EXT_texture_compression_s3tc: Boolean;
-  GL_EXT_texture_filter_anisotropic: Boolean;
-  GL_EXT_blend_func_separate: Boolean;
-
-  // перечисление всех дефайнов. Большая часть не используется по умолчанию, даже в Кроносе.
-  {$If defined(USE_GLCORE) or defined(USE_GLEXT)}
-  GL_ARB_ES2_compatibility: Boolean;
-  GL_ARB_ES3_1_compatibility: Boolean;
-  GL_ARB_ES3_2_compatibility: Boolean;
-  GL_ARB_ES3_compatibility: Boolean;
-  GL_ARB_arrays_of_arrays: Boolean;
-  GL_ARB_base_instance: Boolean;
-  GL_ARB_bindless_texture: Boolean;
-  GL_ARB_blend_func_extended: Boolean;
-  GL_ARB_buffer_storage: Boolean;
-  GL_ARB_cl_event: Boolean;
-  GL_ARB_clear_buffer_object: Boolean;
-  GL_ARB_clear_texture: Boolean;
-  GL_ARB_clip_control: Boolean;
-  {$IFDEF GL_VERSION_3_0}
-  GL_ARB_compatibility: Boolean;
-  {$ENDIF}
-  {$IFDEF USE_GLEXT}
-  GL_ARB_color_buffer_float: Boolean;
-  {$EndIf}
-  GL_ARB_compressed_texture_pixel_storage: Boolean;
-  GL_ARB_compute_shader: Boolean;
-  GL_ARB_compute_variable_group_size: Boolean;
-  GL_ARB_conditional_render_inverted: Boolean;
-  GL_ARB_conservative_depth: Boolean;
-  GL_ARB_copy_buffer: Boolean;
-  GL_ARB_copy_image: Boolean;
-  GL_ARB_cull_distance: Boolean;
-  GL_ARB_debug_output: Boolean;
-  GL_ARB_depth_buffer_float: Boolean;
-  GL_ARB_depth_clamp: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_depth_texture: Boolean;
-  {$EndIf}
-  GL_ARB_derivative_control: Boolean;
-  GL_ARB_direct_state_access: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_draw_buffers: Boolean;
-  {$EndIf}
-  GL_ARB_draw_buffers_blend: Boolean;
-  GL_ARB_draw_elements_base_vertex: Boolean;
-  GL_ARB_draw_indirect: Boolean;
-  GL_ARB_draw_instanced: Boolean;
-  GL_ARB_enhanced_layouts: Boolean;
-  GL_ARB_explicit_attrib_location: Boolean;
-  GL_ARB_explicit_uniform_location: Boolean;
-  GL_ARB_fragment_coord_conventions: Boolean;
-  GL_ARB_fragment_layer_viewport: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_fragment_program: Boolean;
-  GL_ARB_fragment_program_shadow: Boolean;
-  GL_ARB_fragment_shader: Boolean;
-  {$EndIf}
-  GL_ARB_fragment_shader_interlock: Boolean;
-  GL_ARB_framebuffer_no_attachments: Boolean;
-  GL_ARB_framebuffer_object: Boolean;
-  GL_ARB_framebuffer_sRGB: Boolean;
-  GL_ARB_geometry_shader4: Boolean;
-  GL_ARB_get_program_binary: Boolean;
-  GL_ARB_get_texture_sub_image: Boolean;
-  GL_ARB_gl_spirv: Boolean;
-  GL_ARB_gpu_shader5: Boolean;
-  GL_ARB_gpu_shader_fp64: Boolean;
-  GL_ARB_gpu_shader_int64: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_half_float_pixel: Boolean;
-  GL_ARB_imaging: Boolean;
-  {$EndIf}
-  GL_ARB_half_float_vertex: Boolean;
-  GL_ARB_indirect_parameters: Boolean;
-  GL_ARB_instanced_arrays: Boolean;
-  GL_ARB_internalformat_query: Boolean;
-  GL_ARB_internalformat_query2: Boolean;
-  GL_ARB_invalidate_subdata: Boolean;
-  GL_ARB_map_buffer_alignment: Boolean;
-  GL_ARB_map_buffer_range: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_matrix_palette: Boolean;
-  {$EndIf}
-  GL_ARB_multi_bind: Boolean;
-  GL_ARB_multi_draw_indirect: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_multisample: Boolean;
-  GL_ARB_multitexture: Boolean;
-  GL_ARB_occlusion_query: Boolean;
-  {$EndIf}
-  GL_ARB_occlusion_query2: Boolean;
-  GL_ARB_parallel_shader_compile: Boolean;
-  GL_ARB_pipeline_statistics_query: Boolean;
-  GL_ARB_pixel_buffer_object: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_point_parameters: Boolean;
-  GL_ARB_point_sprite: Boolean;
-  {$EndIf}
-  GL_ARB_polygon_offset_clamp: Boolean;
-  GL_ARB_post_depth_coverage: Boolean;
-  GL_ARB_program_interface_query: Boolean;
-  GL_ARB_provoking_vertex: Boolean;
-  GL_ARB_query_buffer_object: Boolean;
-  GL_ARB_robust_buffer_access_behavior: Boolean;
-  GL_ARB_robustness: Boolean;
-  GL_ARB_robustness_isolation: Boolean;
-  GL_ARB_sample_locations: Boolean;
-  GL_ARB_sample_shading: Boolean;
-  GL_ARB_sampler_objects: Boolean;
-  GL_ARB_seamless_cube_map: Boolean;
-  GL_ARB_seamless_cubemap_per_texture: Boolean;
-  GL_ARB_separate_shader_objects: Boolean;
-  GL_ARB_shader_atomic_counter_ops: Boolean;
-  GL_ARB_shader_atomic_counters: Boolean;
-  GL_ARB_shader_ballot: Boolean;
-  GL_ARB_shader_bit_encoding: Boolean;
-  GL_ARB_shader_clock: Boolean;
-  GL_ARB_shader_draw_parameters: Boolean;
-  GL_ARB_shader_group_vote: Boolean;
-  GL_ARB_shader_image_load_store: Boolean;
-  GL_ARB_shader_image_size: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shader_objects: Boolean;
-  {$EndIf}
-  GL_ARB_shader_precision: Boolean;
-  GL_ARB_shader_stencil_export: Boolean;
-  GL_ARB_shader_storage_buffer_object: Boolean;
-  GL_ARB_shader_subroutine: Boolean;
-  GL_ARB_shader_texture_image_samples: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shader_texture_lod: Boolean;
-  GL_ARB_shading_language_100: Boolean;
-  {$EndIf}
-  GL_ARB_shader_viewport_layer_array: Boolean;
-  GL_ARB_shading_language_420pack: Boolean;
-  GL_ARB_shading_language_include: Boolean;
-  GL_ARB_shading_language_packing: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shadow: Boolean;
-  GL_ARB_shadow_ambient: Boolean;
-  {$EndIf}
-  GL_ARB_sparse_buffer: Boolean;
-  GL_ARB_sparse_texture: Boolean;
-  GL_ARB_sparse_texture2: Boolean;
-  GL_ARB_sparse_texture_clamp: Boolean;
-  GL_ARB_spirv_extensions: Boolean;
-  GL_ARB_stencil_texturing: Boolean;
-  GL_ARB_sync: Boolean;
-  GL_ARB_tessellation_shader: Boolean;
-  GL_ARB_texture_barrier: Boolean;
-  GL_ARB_texture_border_clamp: Boolean;
-  GL_ARB_texture_buffer_object: Boolean;
-  GL_ARB_texture_buffer_object_rgb32: Boolean;
-  GL_ARB_texture_buffer_range: Boolean;
-  GL_ARB_texture_compression_bptc: Boolean;
-  GL_ARB_texture_compression_rgtc: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_compression: Boolean;
-  GL_ARB_texture_cube_map: Boolean;
-  {$EndIf}
-  GL_ARB_texture_cube_map_array: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_env_add: Boolean;
-  GL_ARB_texture_env_combine: Boolean;
-  GL_ARB_texture_env_crossbar: Boolean;
-  GL_ARB_texture_env_dot3: Boolean;
-  GL_ARB_texture_float: Boolean;
-  {$EndIf}
-  GL_ARB_texture_filter_anisotropic: Boolean;
-  GL_ARB_texture_filter_minmax: Boolean;
-  GL_ARB_texture_gather: Boolean;
-  GL_ARB_texture_mirror_clamp_to_edge: Boolean;
-  GL_ARB_texture_mirrored_repeat: Boolean;
-  GL_ARB_texture_multisample: Boolean;
-  GL_ARB_texture_non_power_of_two: Boolean;
-  GL_ARB_texture_query_levels: Boolean;
-  GL_ARB_texture_query_lod: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_rectangle: Boolean;
-  {$EndIf}
-  GL_ARB_texture_rg: Boolean;
-  GL_ARB_texture_rgb10_a2ui: Boolean;
-  GL_ARB_texture_stencil8: Boolean;
-  GL_ARB_texture_storage: Boolean;
-  GL_ARB_texture_storage_multisample: Boolean;
-  GL_ARB_texture_swizzle: Boolean;
-  GL_ARB_texture_view: Boolean;
-  GL_ARB_timer_query: Boolean;
-  GL_ARB_transform_feedback2: Boolean;
-  GL_ARB_transform_feedback3: Boolean;
-  GL_ARB_transform_feedback_instanced: Boolean;
-  GL_ARB_transform_feedback_overflow_query: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_transpose_matrix: Boolean;
-  {$EndIf}
-  GL_ARB_uniform_buffer_object: Boolean;
-  GL_ARB_vertex_array_bgra: Boolean;
-  GL_ARB_vertex_array_object: Boolean;
-  GL_ARB_vertex_attrib_64bit: Boolean;
-  GL_ARB_vertex_attrib_binding: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_ARB_vertex_blend: Boolean;
-  GL_ARB_vertex_buffer_object: Boolean;
-  GL_ARB_vertex_program: Boolean;
-  GL_ARB_vertex_shader: Boolean;
-  GL_ARB_window_pos: Boolean;
-  {$EndIf}
-  GL_ARB_vertex_type_10f_11f_11f_rev: Boolean;
-  GL_ARB_vertex_type_2_10_10_10_rev: Boolean;
-  GL_ARB_viewport_array: Boolean;
-  GL_KHR_blend_equation_advanced: Boolean;
-  GL_KHR_blend_equation_advanced_coherent: Boolean;
-  GL_KHR_context_flush_control: Boolean;
-  GL_KHR_debug: Boolean;
-  GL_KHR_no_error: Boolean;
-  GL_KHR_parallel_shader_compile: Boolean;
-  GL_KHR_robust_buffer_access_behavior: Boolean;
-  GL_KHR_robustness: Boolean;
-  GL_KHR_shader_subgroup: Boolean;
-  GL_KHR_texture_compression_astc_hdr: Boolean;
-  GL_KHR_texture_compression_astc_ldr: Boolean;
-  GL_KHR_texture_compression_astc_sliced_3d: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_OES_byte_coordinates: Boolean;
-  GL_OES_compressed_paletted_texture: Boolean;
-  GL_OES_fixed_point: Boolean;
-  GL_OES_query_matrix: Boolean;
-  GL_OES_read_format: Boolean;
-  GL_OES_single_precision: Boolean;
-  GL_3DFX_multisample: Boolean;
-  GL_3DFX_tbuffer: Boolean;
-  GL_3DFX_texture_compression_FXT1: Boolean;
-  GL_AMD_blend_minmax_factor: Boolean;
-  GL_AMD_conservative_depth: Boolean;
-  GL_AMD_debug_output: Boolean;
-  GL_AMD_depth_clamp_separate: Boolean;
-  GL_AMD_draw_buffers_blend: Boolean;
-  {$EndIf}
-  GL_AMD_framebuffer_multisample_advanced: Boolean;
-  GL_AMD_gpu_shader_int64: Boolean;                    // хотя это GL_EXT
-  {$IFDEF USE_GLEXT}
-  GL_AMD_framebuffer_sample_positions: Boolean;
-  GL_AMD_gcn_shader: Boolean;
-  GL_AMD_gpu_shader_half_float: Boolean;
-  GL_AMD_gpu_shader_int16: Boolean;
-
-  GL_AMD_interleaved_elements: Boolean;
-  GL_AMD_multi_draw_indirect: Boolean;
-  GL_AMD_name_gen_delete: Boolean;
-  GL_AMD_occlusion_query_event: Boolean;
-  {$EndIf}
-  GL_AMD_performance_monitor: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_AMD_pinned_memory: Boolean;
-  GL_AMD_query_buffer_object: Boolean;
-  GL_AMD_sample_positions: Boolean;
-  GL_AMD_seamless_cubemap_per_texture: Boolean;
-  GL_AMD_shader_atomic_counter_ops: Boolean;
-  GL_AMD_shader_ballot: Boolean;
-  GL_AMD_shader_explicit_vertex_parameter: Boolean;
-  GL_AMD_shader_gpu_shader_half_float_fetch: Boolean;
-  GL_AMD_shader_image_load_store_lod: Boolean;
-  GL_AMD_shader_stencil_export: Boolean;
-  GL_AMD_shader_trinary_minmax: Boolean;
-  GL_AMD_sparse_texture: Boolean;
-  GL_AMD_stencil_operation_extended: Boolean;
-  GL_AMD_texture_gather_bias_lod: Boolean;
-  GL_AMD_texture_texture4: Boolean;
-  GL_AMD_transform_feedback3_lines_triangles: Boolean;
-  GL_AMD_transform_feedback4: Boolean;
-  GL_AMD_vertex_shader_layer: Boolean;
-  GL_AMD_vertex_shader_tessellator: Boolean;
-  GL_AMD_vertex_shader_viewport_index: Boolean;
-  GL_APPLE_aux_depth_stencil: Boolean;
-  GL_APPLE_client_storage: Boolean;
-  GL_APPLE_element_array: Boolean;
-  GL_APPLE_fence: Boolean;
-  GL_APPLE_float_pixels: Boolean;
-  GL_APPLE_flush_buffer_range: Boolean;
-  GL_APPLE_object_purgeable: Boolean;
-  {$EndIf}
-  GL_APPLE_rgb_422: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_APPLE_row_bytes: Boolean;
-  GL_APPLE_specular_vector: Boolean;
-  GL_APPLE_texture_range: Boolean;
-  GL_APPLE_transform_hint: Boolean;
-  GL_APPLE_vertex_array_object: Boolean;
-  GL_APPLE_vertex_array_range: Boolean;
-  GL_APPLE_vertex_program_evaluators: Boolean;
-  GL_APPLE_ycbcr_422: Boolean;
-  GL_ATI_draw_buffers: Boolean;
-  GL_ATI_element_array: Boolean;
-  GL_ATI_envmap_bumpmap: Boolean;
-  GL_ATI_fragment_shader: Boolean;
-  GL_ATI_map_object_buffer: Boolean;
-  GL_ATI_meminfo: Boolean;
-  GL_ATI_pixel_format_float: Boolean;
-  GL_ATI_pn_triangles: Boolean;
-  GL_ATI_separate_stencil: Boolean;
-  GL_ATI_text_fragment_shader: Boolean;
-  GL_ATI_texture_env_combine3: Boolean;
-  GL_ATI_texture_float: Boolean;
-  GL_ATI_texture_mirror_once: Boolean;
-  GL_ATI_vertex_array_object: Boolean;
-  GL_ATI_vertex_attrib_array_object: Boolean;
-  GL_ATI_vertex_streams: Boolean;
-  GL_EXT_422_pixels: Boolean;
-  {$EndIf}
-  GL_EXT_EGL_image_storage: Boolean;
-  GL_EXT_EGL_sync: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_abgr: Boolean;
-  GL_EXT_bgra: Boolean;
-  GL_EXT_bindable_uniform: Boolean;
-  GL_EXT_blend_color: Boolean;
-  GL_EXT_blend_equation_separate: Boolean;
-//  GL_EXT_blend_func_separate: Boolean;
-  GL_EXT_blend_logic_op: Boolean;
-  GL_EXT_blend_minmax: Boolean;
-  GL_EXT_blend_subtract: Boolean;
-  GL_EXT_clip_volume_hint: Boolean;
-  GL_EXT_cmyka: Boolean;
-  GL_EXT_color_subtable: Boolean;
-  GL_EXT_compiled_vertex_array: Boolean;
-  GL_EXT_convolution: Boolean;
-  GL_EXT_coordinate_frame: Boolean;
-  GL_EXT_copy_texture: Boolean;
-  GL_EXT_cull_vertex: Boolean;
-  GL_EXT_depth_bounds_test: Boolean;
-  GL_EXT_draw_buffers2: Boolean;
-  {$EndIf}
-  GL_EXT_debug_label: Boolean;
-  GL_EXT_debug_marker: Boolean;
-  GL_EXT_direct_state_access: Boolean;
-  GL_EXT_draw_instanced: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_draw_range_elements: Boolean;
-  GL_EXT_external_buffer: Boolean;
-  GL_EXT_fog_coord: Boolean;
-  GL_EXT_framebuffer_blit: Boolean;
-  GL_EXT_framebuffer_multisample: Boolean;
-  GL_EXT_framebuffer_multisample_blit_scaled: Boolean;
-  GL_EXT_framebuffer_object: Boolean;
-  GL_EXT_framebuffer_sRGB: Boolean;
-  GL_EXT_geometry_shader4: Boolean;
-  GL_EXT_gpu_program_parameters: Boolean;
-  GL_EXT_gpu_shader4: Boolean;
-  GL_EXT_histogram: Boolean;
-  GL_EXT_index_array_formats: Boolean;
-  GL_EXT_index_func: Boolean;
-  GL_EXT_index_material: Boolean;
-  GL_EXT_index_texture: Boolean;
-  GL_EXT_light_texture: Boolean;
-  GL_EXT_memory_object: Boolean;
-  GL_EXT_memory_object_fd: Boolean;
-  GL_EXT_memory_object_win32: Boolean;
-  GL_EXT_misc_attribute: Boolean;
-  GL_EXT_multi_draw_arrays: Boolean;
-  GL_EXT_multisample: Boolean;
-  {$EndIf}
-  GL_EXT_multiview_tessellation_geometry_shader: Boolean;
-  GL_EXT_multiview_texture_multisample: Boolean;
-  GL_EXT_multiview_timer_query: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_packed_depth_stencil: Boolean;
-  GL_EXT_packed_float: Boolean;
-  GL_EXT_packed_pixels: Boolean;
-  GL_EXT_paletted_texture: Boolean;
-  GL_EXT_pixel_buffer_object: Boolean;
-  GL_EXT_pixel_transform: Boolean;
-  GL_EXT_pixel_transform_color_table: Boolean;
-  GL_EXT_point_parameters: Boolean;
-  GL_EXT_polygon_offset: Boolean;
-  {$EndIf}
-  GL_EXT_polygon_offset_clamp: Boolean;
-  GL_EXT_post_depth_coverage: Boolean;
-  GL_EXT_raster_multisample: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_provoking_vertex: Boolean;
-  GL_EXT_rescale_normal: Boolean;
-  GL_EXT_secondary_color: Boolean;
-  GL_EXT_semaphore: Boolean;
-  GL_EXT_semaphore_fd: Boolean;
-  GL_EXT_semaphore_win32: Boolean;
-  GL_EXT_separate_specular_color: Boolean;
-  {$EndIf}
-  GL_EXT_separate_shader_objects: Boolean;
-  GL_EXT_shader_framebuffer_fetch: Boolean;
-  GL_EXT_shader_framebuffer_fetch_non_coherent: Boolean;
-  GL_EXT_shader_integer_mix: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_shader_image_load_formatted: Boolean;
-  GL_EXT_shader_image_load_store: Boolean;
-
-  GL_EXT_shadow_funcs: Boolean;
-  GL_EXT_shared_texture_palette: Boolean;
-  GL_EXT_sparse_texture2: Boolean;
-  GL_EXT_stencil_clear_tag: Boolean;
-  GL_EXT_stencil_two_side: Boolean;
-  GL_EXT_stencil_wrap: Boolean;
-  GL_EXT_subtexture: Boolean;
-  GL_EXT_texture: Boolean;
-  GL_EXT_texture3D: Boolean;
-  GL_EXT_texture_array: Boolean;
-  GL_EXT_texture_buffer_object: Boolean;
-  GL_EXT_texture_compression_latc: Boolean;
-  GL_EXT_texture_compression_rgtc: Boolean;
-//  GL_EXT_texture_compression_s3tc: Boolean;
-  GL_EXT_texture_cube_map: Boolean;
-  GL_EXT_texture_env_add: Boolean;
-  GL_EXT_texture_env_combine: Boolean;
-  GL_EXT_texture_env_dot3: Boolean;
-//  GL_EXT_texture_filter_anisotropic: Boolean;
-  {$EndIf}
-  GL_EXT_texture_filter_minmax: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_texture_integer: Boolean;
-  GL_EXT_texture_lod_bias: Boolean;
-  GL_EXT_texture_mirror_clamp: Boolean;
-  GL_EXT_texture_object: Boolean;
-  GL_EXT_texture_perturb_normal: Boolean;
-  GL_EXT_texture_sRGB: Boolean;
-  {$EndIf}
-  GL_EXT_texture_sRGB_R8: Boolean;
-  GL_EXT_texture_sRGB_RG8: Boolean;
-  GL_EXT_texture_sRGB_decode: Boolean;
-  GL_EXT_texture_shadow_lod: Boolean;
-  GL_EXT_texture_storage: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_texture_shared_exponent: Boolean;
-  GL_EXT_texture_snorm: Boolean;
-  GL_EXT_texture_swizzle: Boolean;
-  GL_EXT_timer_query: Boolean;
-  GL_EXT_transform_feedback: Boolean;
-  GL_EXT_vertex_array: Boolean;
-  GL_EXT_vertex_array_bgra: Boolean;
-  GL_EXT_vertex_attrib_64bit: Boolean;
-  GL_EXT_vertex_shader: Boolean;
-  GL_EXT_vertex_weighting: Boolean;
-  GL_EXT_win32_keyed_mutex: Boolean;
-  {$EndIf}
-  GL_EXT_window_rectangles: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_EXT_x11_sync_object: Boolean;
-  GL_GREMEDY_frame_terminator: Boolean;
-  GL_GREMEDY_string_marker: Boolean;
-  GL_HP_convolution_border_modes: Boolean;
-  GL_HP_image_transform: Boolean;
-  GL_HP_occlusion_test: Boolean;
-  GL_HP_texture_lighting: Boolean;
-  GL_IBM_cull_vertex: Boolean;
-  GL_IBM_multimode_draw_arrays: Boolean;
-  GL_IBM_rasterpos_clip: Boolean;
-  GL_IBM_static_data: Boolean;
-  GL_IBM_texture_mirrored_repeat: Boolean;
-  GL_IBM_vertex_array_lists: Boolean;
-  GL_INGR_blend_func_separate: Boolean;
-  GL_INGR_color_clamp: Boolean;
-  GL_INGR_interlace_read: Boolean;
-  {$EndIf}
-  GL_INTEL_blackhole_render: Boolean;
-  GL_INTEL_conservative_rasterization: Boolean;
-  GL_INTEL_framebuffer_CMAA: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_INTEL_fragment_shader_ordering: Boolean;
-  GL_INTEL_map_texture: Boolean;
-  GL_INTEL_parallel_arrays: Boolean;
-  GL_MESAX_texture_stack: Boolean;
-  {$EndIf}
-  GL_INTEL_performance_query: Boolean;
-  GL_MESA_framebuffer_flip_x: Boolean;
-  GL_MESA_framebuffer_flip_y: Boolean;  
-  GL_MESA_framebuffer_swap_xy: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_MESA_pack_invert: Boolean;
-  GL_MESA_program_binary_formats: Boolean;
-  GL_MESA_resize_buffers: Boolean;
-  GL_MESA_shader_integer_functions: Boolean;
-  GL_MESA_tile_raster_order: Boolean;
-  GL_MESA_window_pos: Boolean;
-  GL_MESA_ycbcr_texture: Boolean;
-  GL_NVX_blend_equation_advanced_multi_draw_buffers: Boolean;
-  GL_NVX_conditional_render: Boolean;
-  GL_NVX_gpu_memory_info: Boolean;
-  GL_NVX_gpu_multicast2: Boolean;
-  GL_NVX_linked_gpu_multicast: Boolean;
-  GL_NVX_progress_fence: Boolean;
-  GL_NV_alpha_to_coverage_dither_control: Boolean;
-  {$EndIf}
-  GL_NV_bindless_multi_draw_indirect: Boolean;
-  GL_NV_bindless_multi_draw_indirect_count: Boolean;
-  GL_NV_bindless_texture: Boolean;
-  GL_NV_blend_equation_advanced: Boolean;
-  GL_NV_blend_equation_advanced_coherent: Boolean;
-  GL_NV_blend_minmax_factor: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_blend_square: Boolean;
-  GL_NV_compute_program5: Boolean;
-  {$EndIf}
-  GL_NV_clip_space_w_scaling: Boolean;
-  GL_NV_command_list: Boolean;
-  GL_NV_compute_shader_derivatives: Boolean;
-  GL_NV_conditional_render: Boolean;
-  GL_NV_conservative_raster: Boolean;
-  GL_NV_conservative_raster_dilate: Boolean;
-  GL_NV_conservative_raster_pre_snap: Boolean;
-  GL_NV_conservative_raster_pre_snap_triangles: Boolean;
-  GL_NV_conservative_raster_underestimation: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_copy_depth_to_color: Boolean;
-  GL_NV_copy_image: Boolean;
-  GL_NV_deep_texture3D: Boolean;
-  GL_NV_depth_clamp: Boolean;
-  GL_NV_draw_texture: Boolean;
-  {$EndIf}
-  GL_NV_depth_buffer_float: Boolean;
-  GL_NV_draw_vulkan_image: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_evaluators: Boolean;
-  GL_NV_explicit_multisample: Boolean;
-  GL_NV_fence: Boolean;
-  GL_NV_float_buffer: Boolean;
-  GL_NV_fog_distance: Boolean;
-  {$EndIf}
-  GL_NV_fill_rectangle: Boolean;
-  GL_NV_fragment_coverage_to_color: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_fragment_program: Boolean;
-  GL_NV_fragment_program2: Boolean;
-  GL_NV_fragment_program4: Boolean;
-  GL_NV_fragment_program_option: Boolean;
-  {$EndIf}
-  GL_NV_fragment_shader_barycentric: Boolean;
-  GL_NV_fragment_shader_interlock: Boolean;
-  GL_NV_framebuffer_mixed_samples: Boolean;
-  GL_NV_framebuffer_multisample_coverage: Boolean;
-  GL_NV_geometry_shader_passthrough: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_geometry_program4: Boolean;
-  GL_NV_geometry_shader4: Boolean;
-  GL_NV_gpu_multicast: Boolean;
-  GL_NV_gpu_program4: Boolean;
-  GL_NV_gpu_program5: Boolean;
-  GL_NV_gpu_program5_mem_extended: Boolean;
-  {$EndIf}
-  // узнать, работает ли эта часть при GLext!!!!
-  // хотя функции подменены в другом разделе.
-  GL_NV_gpu_shader5: Boolean;
-  GL_NV_internalformat_sample_query: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_half_float: Boolean;
-  GL_NV_light_max_exponent: Boolean;
-  {$EndIf}
-  GL_NV_memory_attachment: Boolean;
-  GL_NV_memory_object_sparse: Boolean;
-  GL_NV_mesh_shader: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_multisample_coverage: Boolean;
-  GL_NV_multisample_filter_hint: Boolean;
-  GL_NV_occlusion_query: Boolean;
-  GL_NV_packed_depth_stencil: Boolean;
-  GL_NV_parameter_buffer_object: Boolean;
-  GL_NV_parameter_buffer_object2: Boolean;
-  {$EndIf}
-  GL_NV_path_rendering: Boolean;
-  GL_NV_path_rendering_shared_edge: Boolean;
-  GL_NV_primitive_shading_rate: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_pixel_data_range: Boolean;
-  GL_NV_point_sprite: Boolean;
-  GL_NV_present_video: Boolean;
-  GL_NV_primitive_restart: Boolean;
-  GL_NV_query_resource: Boolean;
-  GL_NV_query_resource_tag: Boolean;
-  GL_NV_register_combiners: Boolean;
-  GL_NV_register_combiners2: Boolean;
-  GL_NV_robustness_video_memory_purge: Boolean;
-  {$EndIf}
-  GL_NV_representative_fragment_test: Boolean;
-  GL_NV_sample_locations: Boolean;
-  GL_NV_sample_mask_override_coverage: Boolean;
-  GL_NV_scissor_exclusive: Boolean;
-  GL_NV_shader_atomic_counters: Boolean;
-  GL_NV_shader_atomic_float: Boolean;
-  GL_NV_shader_atomic_float64: Boolean;
-  GL_NV_shader_atomic_fp16_vector: Boolean;
-  GL_NV_shader_atomic_int64: Boolean;
-  GL_NV_shader_buffer_load: Boolean;
-  GL_NV_shader_buffer_store: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_shader_storage_buffer_object: Boolean;
-  {$EndIf}
-  GL_NV_shader_subgroup_partitioned: Boolean;
-  GL_NV_shader_texture_footprint: Boolean;
-  GL_NV_shader_thread_group: Boolean;
-  GL_NV_shader_thread_shuffle: Boolean;
-  GL_NV_shading_rate_image: Boolean;
-  GL_NV_texture_barrier: Boolean;     
-  GL_NV_texture_rectangle_compressed: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_stereo_view_rendering: Boolean;
-  GL_NV_tessellation_program5: Boolean;
-  GL_NV_texgen_emboss: Boolean;
-  GL_NV_texgen_reflection: Boolean;
-  GL_NV_texture_compression_vtc: Boolean;
-  GL_NV_texture_env_combine4: Boolean;
-  GL_NV_texture_expand_normal: Boolean;
-  GL_NV_texture_multisample: Boolean;
-  GL_NV_texture_rectangle: Boolean;
-  GL_NV_texture_shader: Boolean;
-  GL_NV_texture_shader2: Boolean;
-  GL_NV_texture_shader3: Boolean;
-  GL_NV_timeline_semaphore: Boolean;
-  GL_NV_transform_feedback: Boolean;
-  GL_NV_transform_feedback2: Boolean;
-  GL_NV_vdpau_interop: Boolean;
-  GL_NV_vdpau_interop2: Boolean;
-  GL_NV_vertex_array_range: Boolean;
-  GL_NV_vertex_array_range2: Boolean;
-  {$EndIf}
-  GL_NV_uniform_buffer_unified_memory: Boolean;
-  GL_NV_vertex_attrib_integer_64bit: Boolean;
-  GL_NV_vertex_buffer_unified_memory: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_NV_vertex_program: Boolean;
-  GL_NV_vertex_program1_1: Boolean;
-  GL_NV_vertex_program2: Boolean;
-  GL_NV_vertex_program2_option: Boolean;
-  GL_NV_vertex_program3: Boolean;
-  GL_NV_vertex_program4: Boolean;
-  GL_NV_video_capture: Boolean;
-  GL_OML_interlace: Boolean;
-  GL_OML_resample: Boolean;
-  GL_OML_subsample: Boolean;
-  {$EndIf}
-  GL_NV_viewport_array2: Boolean;
-  GL_NV_viewport_swizzle: Boolean;
-  GL_OVR_multiview: Boolean;
-  GL_OVR_multiview2: Boolean;
-  {$IFDEF USE_GLEXT}
-  GL_PGI_misc_hints: Boolean;
-  GL_PGI_vertex_hints: Boolean;
-  GL_REND_screen_coordinates: Boolean;
-  GL_S3_s3tc: Boolean;
-  GL_SGIS_detail_texture: Boolean;
-  GL_SGIS_fog_function: Boolean;
-//  GL_SGIS_generate_mipmap: Boolean;
-  GL_SGIS_multisample: Boolean;
-  GL_SGIS_pixel_texture: Boolean;
-  GL_SGIS_point_line_texgen: Boolean;
-  GL_SGIS_point_parameters: Boolean;
-  GL_SGIS_sharpen_texture: Boolean;
-  GL_SGIS_texture4D: Boolean;
-  GL_SGIS_texture_border_clamp: Boolean;
-  GL_SGIS_texture_color_mask: Boolean;
-  GL_SGIS_texture_edge_clamp: Boolean;
-  GL_SGIS_texture_filter4: Boolean;
-  GL_SGIS_texture_lod: Boolean;
-  GL_SGIS_texture_select: Boolean;
-  GL_SGIX_async: Boolean;
-  GL_SGIX_async_histogram: Boolean;
-  GL_SGIX_async_pixel: Boolean;
-  GL_SGIX_blend_alpha_minmax: Boolean;
-  GL_SGIX_calligraphic_fragment: Boolean;
-  GL_SGIX_clipmap: Boolean;
-  GL_SGIX_convolution_accuracy: Boolean;
-  GL_SGIX_depth_pass_instrument: Boolean;
-  GL_SGIX_depth_texture: Boolean;
-  GL_SGIX_flush_raster: Boolean;
-  GL_SGIX_fog_offset: Boolean;
-  GL_SGIX_fragment_lighting: Boolean;
-  GL_SGIX_framezoom: Boolean;
-  GL_SGIX_igloo_interface: Boolean;
-  GL_SGIX_instruments: Boolean;
-  GL_SGIX_interlace: Boolean;
-  GL_SGIX_ir_instrument1: Boolean;
-  GL_SGIX_list_priority: Boolean;
-  GL_SGIX_pixel_texture: Boolean;
-  GL_SGIX_pixel_tiles: Boolean;
-  GL_SGIX_polynomial_ffd: Boolean;
-  GL_SGIX_reference_plane: Boolean;
-  GL_SGIX_resample: Boolean;
-  GL_SGIX_scalebias_hint: Boolean;
-  GL_SGIX_shadow: Boolean;
-  GL_SGIX_shadow_ambient: Boolean;
-  GL_SGIX_sprite: Boolean;
-  GL_SGIX_subsample: Boolean;
-  GL_SGIX_tag_sample_buffer: Boolean;
-  GL_SGIX_texture_add_env: Boolean;
-  GL_SGIX_texture_coordinate_clamp: Boolean;
-  GL_SGIX_texture_lod_bias: Boolean;
-  GL_SGIX_texture_multi_buffer: Boolean;
-  GL_SGIX_texture_scale_bias: Boolean;
-  GL_SGIX_vertex_preclip: Boolean;
-  GL_SGIX_ycrcb: Boolean;
-  GL_SGIX_ycrcb_subsample: Boolean;
-  GL_SGIX_ycrcba: Boolean;
-  GL_SGI_color_matrix: Boolean;
-  GL_SGI_color_table: Boolean;
-  GL_SGI_texture_color_table: Boolean;
-  GL_SUNX_constant_data: Boolean;
-  GL_SUN_convolution_border_modes: Boolean;
-  GL_SUN_global_alpha: Boolean;
-  GL_SUN_mesh_array: Boolean;
-  GL_SUN_slice_accum: Boolean;
-  GL_SUN_triangle_list: Boolean;
-  GL_SUN_vertex: Boolean;
-  GL_WIN_phong_shading: Boolean;
-  GL_WIN_specular_fog: Boolean;
-  {$EndIf}
-  {$IfEnd}
-
-(*******************************************************************************
-*                             deprecated                                       *
-*******************************************************************************)
-{$IF not defined(USE_GLCORE) or defined(USE_DEPRECATED)}
-  procedure glAccum(op: GLenum; value: GLfloat); stdcall; external libGL;
-//  glAlphaFunc: procedure(func: GLenum; ref: GLclampf); stdcall; external libGL;
-  function glAreTexturesResident(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; stdcall; external libGL;
-//  glArrayElement: procedure(i: GLint); stdcall; external libGL; // + EXT
-//  glBegin: procedure(mode: GLenum); stdcall; external libGL;
-  procedure glBitmap (width, height: GLsizei; xorig, yorig: GLfloat; xmove, ymove: GLfloat; const bitmap: PGLubyte); stdcall; external libGL;
-//  glCallList: procedure(list: GLuint); stdcall; external libGL;
-//  glCallLists: procedure(n: GLsizei; atype: GLenum; const lists: Pointer); stdcall; external libGL;
-  procedure glClearAccum(red, green, blue, alpha: GLfloat); stdcall; external libGL;
-  procedure glClearIndex(c: GLfloat); stdcall; external libGL;
-  procedure glClipPlane(plane: GLenum; const equation: PGLdouble); stdcall; external libGL;
-  procedure glColor3b(red, green, blue: GLbyte); stdcall; external libGL;
-  procedure glColor3bv(const v: PGLbyte); stdcall; external libGL;
-  procedure glColor3d(red, green, blue: GLdouble); stdcall; external libGL;
-  procedure glColor3dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glColor3f(red, green, blue: GLfloat); stdcall; external libGL;
-  procedure glColor3fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glColor3i(red, green, blue: GLint); stdcall; external libGL;
-  procedure glColor3iv(const v: PGLint); stdcall; external libGL;
-  procedure glColor3s(red, green, blue: GLshort); stdcall; external libGL;
-  procedure glColor3sv(const v: PGLshort); stdcall; external libGL;
-//  glColor3ub: procedure(red, green, blue: GLubyte); stdcall; external libGL;
-//  glColor3ubv: procedure(const v: PGLubyte); stdcall; external libGL;
-  procedure glColor3ui(red, green, blue: GLuint); stdcall; external libGL;
-  procedure glColor3uiv(const v: PGLuint); stdcall; external libGL;
-  procedure glColor3us(red, green, blue: GLushort); stdcall; external libGL;
-  procedure glColor3usv(const v: PGLushort); stdcall; external libGL;
-  procedure glColor4b(red, green, blue, alpha: GLbyte); stdcall; external libGL;
-  procedure glColor4bv(const v: PGLbyte); stdcall; external libGL;
-  procedure glColor4d(red, green, blue, alpha: GLdouble); stdcall; external libGL;
-  procedure glColor4dv(const v: PGLdouble); stdcall; external libGL;
-//  glColor4f: procedure(red, green, blue, alpha: GLfloat); stdcall; external libGL;
-//  glColor4fv: procedure(const v: PGLfloat); stdcall; external libGL;
-  procedure glColor4i(red, green, blue, alpha: GLint); stdcall; external libGL;
-  procedure glColor4iv(const v: PGLint); stdcall; external libGL;
-  procedure glColor4s(red, green, blue, alpha: GLshort); stdcall; external libGL;
-  procedure glColor4sv(const v: PGLshort); stdcall; external libGL;
-//  glColor4ub: procedure(red, green, blue, alpha: GLubyte); stdcall; external libGL;
-//  glColor4ubv: procedure(const v: PGLubyte); stdcall; external libGL;
-  procedure glColor4ui(red, green, blue, alpha: GLuint); stdcall; external libGL;
-  procedure glColor4uiv(const v: PGLuint); stdcall; external libGL;
-  procedure glColor4us(red, green, blue, alpha: GLushort); stdcall; external libGL;
-  procedure glColor4usv(const v: PGLushort); stdcall; external libGL;
-//  glColorMaterial: procedure(face, mode: GLenum); stdcall; external libGL;
-//  glColorPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-  procedure glCopyPixels(x, y: GLint; width, height: GLsizei; atype: GLenum); stdcall; external libGL;
-//  glDeleteLists: procedure(list: GLuint; range: GLsizei); stdcall; external libGL;
-//  glDisableClientState: procedure(aarray: GLenum); stdcall; external libGL;
-  procedure glDrawPixels(width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); stdcall; external libGL;
-  procedure glEdgeFlag(flag: GLboolean); stdcall; external libGL;
-//  glEdgeFlagPointer: procedure(stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-  procedure glEdgeFlagv(const flag: PGLboolean); stdcall; external libGL;
-//  glEnableClientState: procedure(aarray: GLenum); stdcall; external libGL;
-//  glEnd: procedure; stdcall; external libGL;
-//  glEndList: procedure; stdcall; external libGL;
-  procedure glEvalCoord1d(u: GLdouble); stdcall; external libGL;
-  procedure glEvalCoord1dv(const u: PGLdouble); stdcall; external libGL;
-  procedure glEvalCoord1f(u: GLfloat); stdcall; external libGL;
-  procedure glEvalCoord1fv(const u: PGLfloat); stdcall; external libGL;
-  procedure glEvalCoord2d(u, v: GLdouble); stdcall; external libGL;
-  procedure glEvalCoord2dv(const u: PGLdouble); stdcall; external libGL;
-  procedure glEvalCoord2f(u, v: GLfloat); stdcall; external libGL;
-  procedure glEvalCoord2fv(const u: PGLfloat); stdcall; external libGL;
-  procedure glEvalMesh1(mode: GLenum; i1, i2: GLint); stdcall; external libGL;
-  procedure glEvalMesh2(mode: GLenum; i1, i2, j1, j2: GLint); stdcall; external libGL;
-  procedure glEvalPoint1(i: GLint); stdcall; external libGL;
-  procedure glEvalPoint2(i, j: GLint); stdcall; external libGL;
-  procedure glFeedbackBuffer(size: GLsizei; atype: GLenum; buffer: PGLfloat); stdcall; external libGL;
-  procedure glFogf(pname: GLenum; param: GLfloat); stdcall; external libGL;
-  procedure glFogfv(pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-  procedure glFogi(pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glFogiv(pname: GLenum; const params: PGLint); stdcall; external libGL;
-//  glFrustum: procedure(left, right, bottom, top, zNear, zFar: GLdouble); stdcall; external libGL;
-//  glGenLists: function(range: GLsizei): GLuint; stdcall; external libGL;
-  procedure glGetClipPlane(plane: GLenum; equation: PGLdouble); stdcall; external libGL;
-//  glGetLightfv: procedure(light, pname: GLenum; params: PGLfloat); stdcall; external libGL;
-//  glGetLightiv: procedure(light, pname: GLenum; params: PGLint); stdcall; external libGL;
-  procedure glGetMapdv(target, query: GLenum; v: PGLdouble); stdcall; external libGL;
-  procedure glGetMapfv(target, query: GLenum; v: PGLfloat); stdcall; external libGL;
-  procedure glGetMapiv(target, query: GLenum; v: PGLint); stdcall; external libGL;
-//  glGetMaterialfv: procedure(face, pname: GLenum; params: PGLfloat); stdcall; external libGL;
-//  glGetMaterialiv: procedure(face, pname: GLenum; params: PGLint); stdcall; external libGL;
-  procedure glGetPixelMapfv(map: GLenum; values: PGLfloat); stdcall; external libGL;
-  procedure glGetPixelMapuiv(map: GLenum; values: PGLuint); stdcall; external libGL;
-  procedure glGetPixelMapusv(map: GLenum; values: PGLushort); stdcall; external libGL;
-  procedure glGetPolygonStipple(mask: PGLubyte); stdcall; external libGL;
-  procedure glGetTexEnvfv(target, pname: GLenum; params: PGLfloat); stdcall; external libGL;
-  procedure glGetTexEnviv(target, pname: GLenum; params: PGLint); stdcall; external libGL;
-  procedure glGetTexGendv(coord, pname: GLenum; params: PGLdouble); stdcall; external libGL;
-  procedure glGetTexGenfv(coord, pname: GLenum; params: PGLfloat); stdcall; external libGL;
-  procedure glGetTexGeniv(coord, pname: GLenum; params: PGLint); stdcall; external libGL;
-  procedure glIndexMask(mask: GLuint); stdcall; external libGL;
-  procedure glIndexPointer(atype: GLenum; stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-  procedure glIndexd(c: GLdouble); stdcall; external libGL;
-  procedure glIndexdv(const c: PGLdouble); stdcall; external libGL;
-  procedure glIndexf(c: GLfloat); stdcall; external libGL;
-  procedure glIndexfv(const c: PGLfloat); stdcall; external libGL;
-  procedure glIndexi(c: GLint); stdcall; external libGL;
-  procedure glIndexiv(const c: PGLint); stdcall; external libGL;
-  procedure glIndexs(c: GLshort); stdcall; external libGL;
-  procedure glIndexsv(const c: PGLshort); stdcall; external libGL;
-  procedure glIndexub(c: GLubyte); stdcall; external libGL;
-  procedure glIndexubv(const c: PGLubyte); stdcall; external libGL;
-  procedure glInitNames; stdcall; external libGL;
-//  glInterleavedArrays: procedure(format: GLenum; stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-//  glIsList: function(list: GLuint): GLboolean; stdcall; external libGL;
-//  glLightModelf: procedure(pname: GLenum; param: GLfloat); stdcall; external libGL;
-//  glLightModelfv: procedure(pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-  procedure glLightModeli(pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glLightModeliv(pname: GLenum; const params: PGLint); stdcall; external libGL;
-//  glLightf: procedure(light, pname: GLenum; param: GLfloat); stdcall; external libGL;
-//  glLightfv: procedure(light, pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-  procedure glLighti(light, pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glLightiv(light, pname: GLenum; const params: PGLint); stdcall; external libGL;
-  procedure glLineStipple(factor: GLint; pattern: GLushort); stdcall; external libGL;
-//  glListBase: procedure(base: GLuint); stdcall; external libGL;
-//  glLoadIdentity: procedure; stdcall; external libGL;
-  procedure glLoadMatrixd(const m: PGLdouble); stdcall; external libGL;
-//  glLoadMatrixf: procedure(const m: PGLfloat); stdcall; external libGL;
-  procedure glLoadName(name: GLuint); stdcall; external libGL;
-  procedure glMap1d(target: GLenum; u1, u2: GLdouble; stride, order: GLint; const points: PGLdouble); stdcall; external libGL;
-  procedure glMap1f(target: GLenum; u1, u2: GLfloat; stride, order: GLint; const points: PGLfloat); stdcall; external libGL;
-  procedure glMap2d(target: GLenum; u1, u2: GLdouble; ustride, uorder: GLint; v1, v2: GLdouble; vstride, vorder: GLint; const points: PGLdouble); stdcall; external libGL;
-  procedure glMap2f(target: GLenum; u1, u2: GLfloat; ustride, uorder: GLint; v1, v2: GLfloat; vstride, vorder: GLint; const points: PGLfloat); stdcall; external libGL;
-  procedure glMapGrid1d(un: GLint; u1, u2: GLdouble); stdcall; external libGL;
-  procedure glMapGrid1f(un: GLint; u1, u2: GLfloat); stdcall; external libGL;
-  procedure glMapGrid2d(un: GLint; u1, u2: GLdouble; vn: GLint; v1, v2: GLdouble); stdcall; external libGL;
-  procedure glMapGrid2f(un: GLint; u1, u2: GLfloat; vn: GLint; v1, v2: GLfloat); stdcall; external libGL;
-//  glMaterialf: procedure(face, pname: GLenum; param: GLfloat); stdcall; external libGL;
-//  glMaterialfv: procedure(face, pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-  procedure glMateriali(face, pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glMaterialiv(face, pname: GLenum; const params: PGLint); stdcall; external libGL;
-//  glMatrixMode: procedure(mode: GLenum); stdcall; external libGL;
-  procedure glMultMatrixd(const m: PGLdouble); stdcall; external libGL;
-  procedure glMultMatrixf(const m: PGLfloat); stdcall; external libGL;
-//  glNewList: procedure(list: GLuint; mode: GLenum); stdcall; external libGL;
-  procedure glNormal3b(nx, ny, nz: GLbyte); stdcall; external libGL;
-  procedure glNormal3bv(const v: PGLbyte); stdcall; external libGL;
-  procedure glNormal3d(nx, ny, nz: GLdouble); stdcall; external libGL;
-  procedure glNormal3dv(const v: PGLdouble); stdcall; external libGL;
-//  glNormal3f: procedure(nx, ny, nz: GLfloat); stdcall; external libGL;
-//  glNormal3fv: procedure(const v: PGLfloat); stdcall; external libGL;
-  procedure glNormal3i(nx, ny, nz: GLint); stdcall; external libGL;
-  procedure glNormal3iv(const v: PGLint); stdcall; external libGL;
-  procedure glNormal3s(nx, ny, nz: GLshort); stdcall; external libGL;
-  procedure glNormal3sv(const v: PGLshort); stdcall; external libGL;
-//  glNormalPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-//  glOrtho: procedure(left, right, bottom, top, zNear, zFar: GLdouble); stdcall; external libGL;
-  procedure glPassThrough(token: GLfloat); stdcall; external libGL;
-  procedure glPixelMapfv(map: GLenum; mapsize: GLint; const values: PGLfloat); stdcall; external libGL;
-  procedure glPixelMapuiv(map: GLenum; mapsize: GLint; const values: PGLuint); stdcall; external libGL;
-  procedure glPixelMapusv(map: GLenum; mapsize: GLint; const values: PGLushort); stdcall; external libGL;
-  procedure glPixelTransferf(pname: GLenum; param: GLfloat); stdcall; external libGL;
-  procedure glPixelTransferi(pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glPixelZoom(xfactor, yfactor: GLfloat); stdcall; external libGL;
-  procedure glPolygonStipple(const mask: PGLubyte); stdcall; external libGL;
-  procedure glPopAttrib; stdcall; external libGL;
-  procedure glPopClientAttrib; stdcall; external libGL;
-//  glPopMatrix: procedure; stdcall; external libGL;
-  procedure glPopName; stdcall; external libGL;
-  procedure glPrioritizeTextures(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); stdcall; external libGL;
-  procedure glPushAttrib(mask: GLbitfield); stdcall; external libGL;
-  procedure glPushClientAttrib(mask: GLbitfield); stdcall; external libGL;
-//  glPushMatrix: procedure; stdcall; external libGL;
-  procedure glPushName(name: GLuint); stdcall; external libGL;
-  procedure glRasterPos2d(x, y: GLdouble); stdcall; external libGL;
-  procedure glRasterPos2dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glRasterPos2f(x, y: GLfloat); stdcall; external libGL;
-  procedure glRasterPos2fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glRasterPos2i(x, y: GLint); stdcall; external libGL;
-  procedure glRasterPos2iv(const v: PGLint); stdcall; external libGL;
-  procedure glRasterPos2s(x, y: GLshort); stdcall; external libGL;
-  procedure glRasterPos2sv(const v: PGLshort); stdcall; external libGL;
-  procedure glRasterPos3d(x, y, z: GLdouble); stdcall; external libGL;
-  procedure glRasterPos3dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glRasterPos3f(x, y, z: GLfloat); stdcall; external libGL;
-  procedure glRasterPos3fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glRasterPos3i(x, y, z: GLint); stdcall; external libGL;
-  procedure glRasterPos3iv(const v: PGLint); stdcall; external libGL;
-  procedure glRasterPos3s(x, y, z: GLshort); stdcall; external libGL;
-  procedure glRasterPos3sv(const v: PGLshort); stdcall; external libGL;
-  procedure glRasterPos4d(x, y, z, w: GLdouble); stdcall; external libGL;
-  procedure glRasterPos4dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glRasterPos4f(x, y, z, w: GLfloat); stdcall; external libGL;
-  procedure glRasterPos4fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glRasterPos4i(x, y, z, w: GLint); stdcall; external libGL;
-  procedure glRasterPos4iv(const v: PGLint); stdcall; external libGL;
-  procedure glRasterPos4s(x, y, z, w: GLshort); stdcall; external libGL;
-  procedure glRasterPos4sv(const v: PGLshort); stdcall; external libGL;
-  procedure glRectd(x1, y1, x2, y2: GLdouble); stdcall; external libGL;
-  procedure glRectdv(const v1: PGLdouble; const v2: PGLdouble); stdcall; external libGL;
-  procedure glRectf(x1, y1, x2, y2: GLfloat); stdcall; external libGL;
-  procedure glRectfv(const v1: PGLfloat; const v2: PGLfloat); stdcall; external libGL;
-  procedure glRecti(x1, y1, x2, y2: GLint); stdcall; external libGL;
-  procedure glRectiv(const v1: PGLint; const v2: PGLint); stdcall; external libGL;
-  procedure glRects(x1, y1, x2, y2: GLshort); stdcall; external libGL;
-  procedure glRectsv(const v1: PGLshort; const v2: PGLshort); stdcall; external libGL;
-  function glRenderMode(mode: GLint): GLint; stdcall; external libGL;
-  procedure glRotated(angle, x, y, z: GLdouble); stdcall; external libGL;
-//  glRotatef: procedure(angle, x, y, z: GLfloat); stdcall; external libGL;
-  procedure glScaled(x, y, z: GLdouble); stdcall; external libGL;
-//  glScalef: procedure(x, y, z: GLfloat); stdcall; external libGL;
-  procedure glSelectBuffer(size: GLsizei; buffer: PGLuint); stdcall; external libGL;
-//  glShadeModel: procedure(mode: GLenum); stdcall; external libGL;
-  procedure glTexCoord1d(s: GLdouble); stdcall; external libGL;
-  procedure glTexCoord1dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glTexCoord1f(s: GLfloat); stdcall; external libGL;
-  procedure glTexCoord1fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glTexCoord1i(s: GLint); stdcall; external libGL;
-  procedure glTexCoord1iv(const v: PGLint); stdcall; external libGL;
-  procedure glTexCoord1s(s: GLshort); stdcall; external libGL;
-  procedure glTexCoord1sv(const v: PGLshort); stdcall; external libGL;
-  procedure glTexCoord2d(s, t: GLdouble); stdcall; external libGL;
-  procedure glTexCoord2dv(const v: PGLdouble); stdcall; external libGL;
-//  glTexCoord2f: procedure(s, t: GLfloat); stdcall; external libGL;
-//  glTexCoord2fv: procedure(const v: PGLfloat); stdcall; external libGL;
-  procedure glTexCoord2i(s, t: GLint); stdcall; external libGL;
-  procedure glTexCoord2iv(const v: PGLint); stdcall; external libGL;
-  procedure glTexCoord2s(s, t: GLshort); stdcall; external libGL;
-  procedure glTexCoord2sv(const v: PGLshort); stdcall; external libGL;
-  procedure glTexCoord3d(s, t, r: GLdouble); stdcall; external libGL;
-  procedure glTexCoord3dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glTexCoord3f(s, t, r: GLfloat); stdcall; external libGL;
-  procedure glTexCoord3fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glTexCoord3i(s, t, r: GLint); stdcall; external libGL;
-  procedure glTexCoord3iv(const v: PGLint); stdcall; external libGL;
-  procedure glTexCoord3s(s, t, r: GLshort); stdcall; external libGL;
-  procedure glTexCoord3sv(const v: PGLshort); stdcall; external libGL;
-  procedure glTexCoord4d(s, t, r, q: GLdouble); stdcall; external libGL;
-  procedure glTexCoord4dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glTexCoord4f(s, t, r, q: GLfloat); stdcall; external libGL;
-  procedure glTexCoord4fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glTexCoord4i(s, t, r, q: GLint); stdcall; external libGL;
-  procedure glTexCoord4iv(const v: PGLint); stdcall; external libGL;
-  procedure glTexCoord4s(s, t, r, q: GLshort); stdcall; external libGL;
-  procedure glTexCoord4sv(const v: PGLshort); stdcall; external libGL;
-//  glTexCoordPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); stdcall; external libGL;
-  procedure glTexEnvf(target: GLenum; pname: GLenum; param: GLfloat); stdcall; external libGL;
-  procedure glTexEnvfv(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-//  glTexEnvi: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall; external libGL;
-//  glTexEnviv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall; external libGL;
-  procedure glTexGend(coord: GLenum; pname: GLenum; param: GLdouble); stdcall; external libGL;
-  procedure glTexGendv(coord: GLenum; pname: GLenum; const params: PGLdouble); stdcall; external libGL;
-  procedure glTexGenf(coord: GLenum; pname: GLenum; param: GLfloat); stdcall; external libGL;
-  procedure glTexGenfv(coord: GLenum; pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-  procedure glTexGeni(coord: GLenum; pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glTexGeniv(coord: GLenum; pname: GLenum; const params: PGLint); stdcall; external libGL;
-  procedure glTranslated(x, y, z: GLdouble); stdcall; external libGL;
-//  glTranslatef: procedure(x, y, z: GLfloat); stdcall;
-  procedure glVertex2d(x, y: GLdouble); stdcall; external libGL;
-  procedure glVertex2dv(const v: PGLdouble); stdcall; external libGL;
-//  glVertex2f: procedure(x, y: GLfloat); stdcall;
-//  glVertex2fv: procedure(const v: PGLfloat); stdcall;
-  procedure glVertex2i(x, y: GLint); stdcall; external libGL;
-  procedure glVertex2iv(const v: PGLint); stdcall; external libGL;
-  procedure glVertex2s(x, y: GLshort); stdcall; external libGL;
-  procedure glVertex2sv(const v: PGLshort); stdcall; external libGL;
-  procedure glVertex3d(x, y, z: GLdouble); stdcall; external libGL;
-  procedure glVertex3dv(const v: PGLdouble); stdcall; external libGL;
-//  glVertex3f: procedure(x, y, z: GLfloat); stdcall;
-//  glVertex3fv: procedure(const v: PGLfloat); stdcall;
-  procedure glVertex3i(x, y, z: GLint); stdcall; external libGL;
-  procedure glVertex3iv(const v: PGLint); stdcall; external libGL;
-  procedure glVertex3s(x, y, z: GLshort); stdcall; external libGL;
-  procedure glVertex3sv(const v: PGLshort); stdcall; external libGL;
-  procedure glVertex4d(x, y, z, w: GLdouble); stdcall; external libGL;
-  procedure glVertex4dv(const v: PGLdouble); stdcall; external libGL;
-  procedure glVertex4f(x, y, z, w: GLfloat); stdcall; external libGL;
-  procedure glVertex4fv(const v: PGLfloat); stdcall; external libGL;
-  procedure glVertex4i(x, y, z, w: GLint); stdcall; external libGL;
-  procedure glVertex4iv(const v: PGLint); stdcall; external libGL;
-  procedure glVertex4s(x, y, z, w: GLshort); stdcall; external libGL;
-  procedure glVertex4sv(const v: PGLshort); stdcall; external libGL;
-//  glVertexPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); stdcall;
-{$IfEnd}
-(*******************************************************************************
-*                            end deprecated                                    *
-*******************************************************************************)
-
-  {$IfDef GL_VERSION_1_0}
-  procedure glCullFace(mode: GLenum); stdcall; external libGL;
-  procedure glFrontFace(mode: GLenum); stdcall; external libGL;
-//  procedure glHint(target: GLenum; mode: GLenum); stdcall; external libGL;
-  procedure glLineWidth(width: GLfloat); stdcall; external libGL;
-//  procedure glPointSize(size: GLfloat); stdcall; external libGL;
-  procedure glPolygonMode(face: GLenum; mode: GLenum); stdcall; external libGL;
-//  procedure glScissor(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall; external libGL;
-//  procedure glTexParameterf(target: GLenum; pname: GLenum; param: GLfloat); stdcall; external libGL;
-//  procedure glTexParameterfv(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall; external libGL;
-//  procedure glTexParameteri(target: GLenum; pname: GLenum; param: GLint); stdcall; external libGL;
-//  procedure glTexParameteriv(target: GLenum; pname: GLenum; const params: PGLint); stdcall; external libGL;
-  procedure glTexImage1D(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall; external libGL;
-//  procedure glTexImage2D(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall; external libGL;
-  procedure glDrawBuffer(buf: GLenum); stdcall; external libGL;
-//  procedure glClear(mask: GLbitfield); stdcall; external libGL;
-//  procedure glClearColor(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); stdcall; external libGL;
-  procedure glClearStencil(s: GLint); stdcall; external libGL;
-//  procedure glClearDepth(depth: GLdouble); stdcall; external libGL;
-  procedure glStencilMask(mask: GLuint); stdcall; external libGL;
-//  procedure glColorMask(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); stdcall; external libGL;
-//  procedure glDepthMask(flag: GLboolean); stdcall; external libGL;
-//  procedure glDisable(cap: GLenum); stdcall; external libGL;
-//  procedure glEnable(cap: GLenum); stdcall; external libGL;
-  procedure glFinish; stdcall; external libGL;
-  procedure glFlush; stdcall; external libGL;
-//  procedure glBlendFunc(sfactor: GLenum; dfactor: GLenum); stdcall; external libGL;
-  procedure glLogicOp(opcode: GLenum); stdcall; external libGL;
-  procedure glStencilFunc(func: GLenum; ref: GLint; mask: GLuint); stdcall; external libGL;
-  procedure glStencilOp(fail: GLenum; zfail: GLenum; zpass: GLenum); stdcall; external libGL;
-//  procedure glDepthFunc(func: GLenum); stdcall; external libGL;
-//  procedure glPixelStoref(pname: GLenum; param: GLfloat); stdcall; external libGL;
-//  procedure glPixelStorei(pname: GLenum; param: GLint); stdcall; external libGL;
-  procedure glReadBuffer(src: GLenum); stdcall; external libGL;
-//  procedure glReadPixels(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; pixels: pointer); stdcall; external libGL;
-  procedure glGetBooleanv(pname: GLenum; data: PGLboolean); stdcall; external libGL;
-  procedure glGetDoublev(pname: GLenum; data: PGLdouble); stdcall; external libGL;
-  function glGetError: GLenum; stdcall; external libGL;
-//  procedure glGetFloatv(pname: GLenum; data: PGLfloat); stdcall; external libGL;
-//  procedure glGetIntegerv(pname: GLenum; data: PGLint); stdcall; external libGL;
-//  function glGetString(name: GLenum): PAnsiChar; stdcall; external libGL;
-//  procedure glGetTexImage(target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); stdcall; external libGL;
-  procedure glGetTexParameterfv(target: GLenum; pname: GLenum; params: PGLfloat); stdcall; external libGL;
-  procedure glGetTexParameteriv(target: GLenum; pname: GLenum; params: PGLint); stdcall; external libGL;
-  procedure glGetTexLevelParameterfv(target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); stdcall; external libGL;
-  procedure glGetTexLevelParameteriv(target: GLenum; level: GLint; pname: GLenum; params: PGLint); stdcall; external libGL;
-  function glIsEnabled(cap: GLenum): GLboolean; stdcall; external libGL;
-//  procedure glDepthRange(n: GLdouble; f: GLdouble); stdcall; external libGL;
-//  procedure glViewport(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall; external libGL;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_1}
-//  glDrawArrays: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall;  external libGL;  // + EXT
-//  glDrawElements: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer); stdcall; external libGL;
-  procedure glGetPointerv(pname: GLenum; params:Ppointer); stdcall; external libGL;
-  procedure glPolygonOffset(factor: GLfloat; units: GLfloat); stdcall; external libGL;
-  procedure glCopyTexImage1D(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); stdcall; external libGL;
-  procedure glCopyTexImage2D(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); stdcall; external libGL;
-  procedure glCopyTexSubImage1D(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;  external libGL; // +EXT
-//  procedure glCopyTexSubImage2D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;  external libGL; // + EXT
-  procedure glTexSubImage1D(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;  external libGL;     // + EXT
-//  procedure glTexSubImage2D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;  external libGL; // +EXT
-//  procedure glBindTexture(target: GLenum; texture: GLuint); stdcall;  external libGL;        // + EXT
-//  procedure glDeleteTextures(n: GLsizei; const textures: PGLuint); stdcall;  external libGL; // + EXT
-//  procedure glGenTextures(n: GLsizei; textures: PGLuint); stdcall;  external libGL;          // + EXT
-  function glIsTexture(texture: GLuint): GLboolean; stdcall; external libGL;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_2}
-//  procedure glDrawRangeElements(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: pointer); stdcall;  external libGL;// + EXT
-  procedure glTexImage3D(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall; external libGL;
-  procedure glTexSubImage3D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall; external libGL;
-  procedure glCopyTexSubImage3D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall; external libGL;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_3}
-  procedure glActiveTexture(texture: GLenum); stdcall;        external libGL;
-  procedure glSampleCoverage(value: GLfloat; invert: GLboolean); stdcall; external libGL;
-  procedure glCompressedTexImage3D(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall; external libGL;
-//  procedure glCompressedTexImage2D(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall;  external libGL; // + ARB
-  procedure glCompressedTexImage1D(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall; external libGL;
-  procedure glCompressedTexSubImage3D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall; external libGL;
-  procedure glCompressedTexSubImage2D(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall; external libGL;
-  procedure glCompressedTexSubImage1D(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall; external libGL;
-  procedure glGetCompressedTexImage(target: GLenum; level: GLint; img: pointer); stdcall; external libGL;
-  {$IfNDef USE_GLCORE}
-  procedure glClientActiveTexture(texture: GLenum); stdcall; external libGL;
-  procedure glMultiTexCoord1d(target: GLenum; s: GLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord1dv(target: GLenum; const v: PGLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord1f(target: GLenum; s: GLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord1fv(target: GLenum; const v: PGLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord1i(target: GLenum; s: GLint); stdcall; external libGL;
-  procedure glMultiTexCoord1iv(target: GLenum; const v: PGLint); stdcall; external libGL;
-  procedure glMultiTexCoord1s(target: GLenum; s: GLshort); stdcall; external libGL;
-  procedure glMultiTexCoord1sv(target: GLenum; const v: PGLshort); stdcall; external libGL;
-  procedure glMultiTexCoord2d(target: GLenum; s: GLdouble; t: GLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord2dv(target: GLenum; const v: PGLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord2f(target: GLenum; s: GLfloat; t: GLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord2fv(target: GLenum; const v: PGLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord2i(target: GLenum; s: GLint; t: GLint); stdcall; external libGL;
-  procedure glMultiTexCoord2iv(target: GLenum; const v: PGLint); stdcall; external libGL;
-  procedure glMultiTexCoord2s(target: GLenum; s: GLshort; t: GLshort); stdcall; external libGL;
-  procedure glMultiTexCoord2sv(target: GLenum; const v: PGLshort); stdcall; external libGL;
-  procedure glMultiTexCoord3d(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord3dv(target: GLenum; const v: PGLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord3f(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord3fv(target: GLenum; const v: PGLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord3i(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall; external libGL;
-  procedure glMultiTexCoord3iv(target: GLenum; const v: PGLint); stdcall; external libGL;
-  procedure glMultiTexCoord3s(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall; external libGL;
-  procedure glMultiTexCoord3sv(target: GLenum; const v: PGLshort); stdcall; external libGL;
-  procedure glMultiTexCoord4d(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord4dv(target: GLenum; const v: PGLdouble); stdcall; external libGL;
-  procedure glMultiTexCoord4f(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord4fv(target: GLenum; const v: PGLfloat); stdcall; external libGL;
-  procedure glMultiTexCoord4i(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall; external libGL;
-  procedure glMultiTexCoord4iv(target: GLenum; const v: PGLint); stdcall; external libGL;
-  procedure glMultiTexCoord4s(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall; external libGL;
-  procedure glMultiTexCoord4sv(target: GLenum; const v: PGLshort); stdcall; external libGL;
-  procedure glLoadTransposeMatrixf(const m: PGLfloat); stdcall; external libGL;
-  procedure glLoadTransposeMatrixd(const m: PGLdouble); stdcall; external libGL;
-  procedure glMultTransposeMatrixf(const m: PGLfloat); stdcall; external libGL;
-  procedure glMultTransposeMatrixd(const m: PGLdouble); stdcall; external libGL;
-  {$EndIf}
-  {$EndIf}
-
-  {$If defined(GL_VERSION_1_4) or defined(GL_EXT_blend_func_separate)}
-//  glBlendFuncSeparate: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;
-  {$IfEnd}
-  {$If defined(GL_VERSION_1_4) or defined(GL_EXT_blend_minmax)}
-//  glBlendEquation: procedure(mode: GLenum); stdcall;  // + EXT
-  {$IfEnd}
-  {$IfDef GL_VERSION_1_4}
-var
-  glMultiDrawArrays: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; drawcount: GLsizei); stdcall;
-//  glMultiDrawElements: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: {P}Ppointer; drawcount: GLsizei); stdcall; // + EXT
-  glPointParameterf: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glPointParameterfv: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  glPointParameteri: procedure(pname: GLenum; param: GLint); stdcall;
-  glPointParameteriv: procedure(pname: GLenum; const params: PGLint); stdcall;
-  glBlendColor: procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); stdcall;      // + GL_EXT_blend_color  + GL_OES_fixed_point
-  {$IfNDef USE_GLCORE}
-  glFogCoordf: procedure(coord: GLfloat); stdcall;
-  glFogCoordfv: procedure(const coord: PGLfloat); stdcall;
-  glFogCoordd: procedure(coord: GLdouble); stdcall;
-  glFogCoorddv: procedure(const coord: PGLdouble); stdcall;
-//  glFogCoordPointer: procedure(_type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall; // + EXT
-  glSecondaryColor3b: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall;
-  glSecondaryColor3bv: procedure(const v: PGLbyte); stdcall;
-  glSecondaryColor3d: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall;
-  glSecondaryColor3dv: procedure(const v: PGLdouble); stdcall;
-  glSecondaryColor3f: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall;
-  glSecondaryColor3fv: procedure(const v: PGLfloat); stdcall;
-  glSecondaryColor3i: procedure(red: GLint; green: GLint; blue: GLint); stdcall;
-  glSecondaryColor3iv: procedure(const v: PGLint); stdcall;
-  glSecondaryColor3s: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall;
-  glSecondaryColor3sv: procedure(const v: PGLshort); stdcall;
-  glSecondaryColor3ub: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall;
-  glSecondaryColor3ubv: procedure(const v: PGLubyte); stdcall;
-  glSecondaryColor3ui: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall;
-  glSecondaryColor3uiv: procedure(const v: PGLuint); stdcall;
-  glSecondaryColor3us: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall;
-  glSecondaryColor3usv: procedure(const v: PGLushort); stdcall;
-//  glSecondaryColorPointer: procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall; // + EXT
-  glWindowPos2d: procedure(x: GLdouble; y: GLdouble); stdcall;
-  glWindowPos2dv: procedure(const v: PGLdouble); stdcall;
-  glWindowPos2f: procedure(x: GLfloat; y: GLfloat); stdcall;
-  glWindowPos2fv: procedure(const v: PGLfloat); stdcall;
-  glWindowPos2i: procedure(x: GLint; y: GLint); stdcall;
-  glWindowPos2iv: procedure(const v: PGLint); stdcall;
-  glWindowPos2s: procedure(x: GLshort; y: GLshort); stdcall;
-  glWindowPos2sv: procedure(const v: PGLshort); stdcall;
-  glWindowPos3d: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glWindowPos3dv: procedure(const v: PGLdouble); stdcall;
-  glWindowPos3f: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glWindowPos3fv: procedure(const v: PGLfloat); stdcall;
-  glWindowPos3i: procedure(x: GLint; y: GLint; z: GLint); stdcall;
-  glWindowPos3iv: procedure(const v: PGLint); stdcall;
-  glWindowPos3s: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glWindowPos3sv: procedure(const v: PGLshort); stdcall;
-  {$EndIf}
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_5}
-var
-  glGenQueries: procedure(n: GLsizei; const ids: PGLuint); stdcall;
-  glDeleteQueries: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glIsQuery: function(id: GLuint): GLboolean; stdcall;
-  glBeginQuery: procedure(target: GLenum; id: GLuint); stdcall;
-  glEndQuery: procedure(target: GLenum); stdcall;
-  glGetQueryiv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetQueryObjectiv: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetQueryObjectuiv: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glBindBuffer: procedure(target: GLenum; buffer: GLuint); stdcall;
-  glDeleteBuffers: procedure(n: GLsizei; const buffers: PGLuint); stdcall;
-  glGenBuffers: procedure(n: GLsizei; buffers: PGLuint); stdcall;
-  glIsBuffer: function(buffer: GLuint): GLboolean; stdcall;
-  glBufferData: procedure(target: GLenum; size: GLsizeiptr; const data: pointer; usage: GLenum); stdcall;
-  glBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: pointer); stdcall;
-  glGetBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: pointer); stdcall;
-  glMapBuffer: function(target: GLenum; access: GLenum): pointer; stdcall;
-  glUnmapBuffer: function(target: GLenum): GLboolean; stdcall;
-  glGetBufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetBufferPointerv: procedure(target: GLenum; pname: GLenum; params:Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_2_0}
-var
-  glBlendEquationSeparate: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall; // + GL_EXT_blend_equation_separate
-  glDrawBuffers: procedure(n: GLsizei; const bufs: PGLenum); stdcall;
-  glStencilOpSeparate: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall;
-  glStencilFuncSeparate: procedure(face: GLenum; func: GLenum; ref: GLint; mask: GLuint); stdcall;
-  glStencilMaskSeparate: procedure(face: GLenum; mask: GLuint); stdcall;
-  glAttachShader: procedure(_program: GLuint; shader: GLuint); stdcall;
-  glBindAttribLocation: procedure(_program: GLuint; index: GLuint; const name: PGLchar); stdcall;
-  glCompileShader: procedure(shader: GLuint); stdcall;
-  glCreateProgram: function : GLuint; stdcall;
-  glCreateShader: function(_type: GLenum): GLuint; stdcall;
-  glDeleteProgram: procedure(_program: GLuint); stdcall;
-  glDeleteShader: procedure(shader: GLuint); stdcall;
-  glDetachShader: procedure(_program: GLuint; shader: GLuint); stdcall;
-  glDisableVertexAttribArray: procedure(index: GLuint); stdcall;
-  glEnableVertexAttribArray: procedure(index: GLuint); stdcall;
-  glGetActiveAttrib: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall;
-  glGetActiveUniform: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall;
-  glGetAttachedShaders: procedure(_program: GLuint; maxCount: GLsizei; count: PGLsizei; shaders: PGLuint); stdcall;
-  glGetAttribLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glGetProgramiv: procedure(_program: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetProgramInfoLog: procedure(_program: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall;
-  glGetShaderiv: procedure(shader: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetShaderInfoLog: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall;
-  glGetShaderSource: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; source: PGLchar); stdcall;
-  glGetUniformLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glGetUniformfv: procedure(_program: GLuint; location: GLint; params: PGLfloat); stdcall;
-  glGetUniformiv: procedure(_program: GLuint; location: GLint; params: PGLint); stdcall;
-  glGetVertexAttribdv: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glGetVertexAttribfv: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVertexAttribiv: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribPointerv: procedure(index: GLuint; pname: GLenum; pointer:Ppointer); stdcall;
-  glIsProgram: function(_program: GLuint): GLboolean; stdcall;
-  glIsShader: function(shader: GLuint): GLboolean; stdcall;
-  glLinkProgram: procedure(_program: GLuint); stdcall;
-  glShaderSource: procedure(shader: GLuint; count: GLsizei; const _string: PPGLchar; const length: PGLint); stdcall;
-  glUseProgram: procedure(_program: GLuint); stdcall;
-  glUniform1f: procedure(location: GLint; v0: GLfloat); stdcall;
-  glUniform2f: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
-  glUniform3f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
-  glUniform4f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
-  glUniform1i: procedure(location: GLint; v0: GLint); stdcall;
-  glUniform2i: procedure(location: GLint; v0: GLint; v1: GLint); stdcall;
-  glUniform3i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
-  glUniform4i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
-  glUniform1fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform2fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform3fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform4fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform1iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform2iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform3iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform4iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniformMatrix2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glValidateProgram: procedure(_program: GLuint); stdcall;
-  glVertexAttrib1d: procedure(index: GLuint; x: GLdouble); stdcall;
-  glVertexAttrib1dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib1f: procedure(index: GLuint; x: GLfloat); stdcall;
-  glVertexAttrib1fv: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib1s: procedure(index: GLuint; x: GLshort); stdcall;
-  glVertexAttrib1sv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib2d: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
-  glVertexAttrib2dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib2f: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
-  glVertexAttrib2fv: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib2s: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
-  glVertexAttrib2sv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib3d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexAttrib3dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib3f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glVertexAttrib3fv: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib3s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glVertexAttrib3sv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4Nbv: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttrib4Niv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttrib4Nsv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4Nub: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
-  glVertexAttrib4Nubv: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttrib4Nuiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttrib4Nusv: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glVertexAttrib4bv: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttrib4d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexAttrib4dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib4f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glVertexAttrib4fv: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib4iv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttrib4s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
-  glVertexAttrib4sv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4ubv: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttrib4uiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttrib4usv: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glVertexAttribPointer: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_2_1}
-var
-  glUniformMatrix2x3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix3x2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix2x4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix4x2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix3x4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix4x3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$If defined(GL_VERSION_3_0) or defined(GL_EXT_framebuffer_object)}
-//var
-//  glIsRenderbuffer: function(renderbuffer: GLuint): GLboolean; stdcall;
-//  glBindRenderbuffer: procedure(target: GLenum; renderbuffer: GLuint); stdcall;
-//  glDeleteRenderbuffers: procedure(n: GLsizei; const renderbuffers: PGLuint); stdcall;
-//  glGenRenderbuffers: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
-//  glRenderbufferStorage: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-//  glIsFramebuffer: function(framebuffer: GLuint): GLboolean; stdcall;
-//  glBindFramebuffer: procedure(target: GLenum; framebuffer: GLuint); stdcall;
-//  glDeleteFramebuffers: procedure(n: GLsizei; const framebuffers: PGLuint); stdcall;
-//  glGenFramebuffers: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
-//  glCheckFramebufferStatus: function(target: GLenum): GLenum; stdcall;
-//  glFramebufferTexture2D: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-//  glFramebufferRenderbuffer: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
-  {$IfEnd}
-
-  {$IfDef GL_VERSION_3_0}
-var
-  glColorMaski: procedure(index: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); stdcall;
-  glGetBooleani_v: procedure(target: GLenum; index: GLuint; data: PGLboolean); stdcall;
-  glGetIntegeri_v: procedure(target: GLenum; index: GLuint; data: PGLint); stdcall;
-  glEnablei: procedure(target: GLenum; index: GLuint); stdcall;
-  glDisablei: procedure(target: GLenum; index: GLuint); stdcall;
-  glIsEnabledi: function(target: GLenum; index: GLuint): GLboolean; stdcall;
-  glBeginTransformFeedback: procedure(primitiveMode: GLenum); stdcall;
-  glEndTransformFeedback: procedure;
-  glBindBufferRange: procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glBindBufferBase: procedure(target: GLenum; index: GLuint; buffer: GLuint); stdcall;
-  glTransformFeedbackVaryings: procedure(_program: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); stdcall;
-  glGetTransformFeedbackVarying: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); stdcall;
-  glClampColor: procedure(target: GLenum; clamp: GLenum); stdcall;
-  glBeginConditionalRender: procedure(id: GLuint; mode: GLenum); stdcall;
-  glEndConditionalRender: procedure;
-  glVertexAttribIPointer: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glGetVertexAttribIiv: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribIuiv: procedure(index: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glVertexAttribI1i: procedure(index: GLuint; x: GLint); stdcall;
-  glVertexAttribI2i: procedure(index: GLuint; x: GLint; y: GLint); stdcall;
-  glVertexAttribI3i: procedure(index: GLuint; x: GLint; y: GLint; z: GLint); stdcall;
-  glVertexAttribI4i: procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glVertexAttribI1ui: procedure(index: GLuint; x: GLuint); stdcall;
-  glVertexAttribI2ui: procedure(index: GLuint; x: GLuint; y: GLuint); stdcall;
-  glVertexAttribI3ui: procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); stdcall;
-  glVertexAttribI4ui: procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); stdcall;
-  glVertexAttribI1iv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI2iv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI3iv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI4iv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI1uiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI2uiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI3uiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI4uiv: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI4bv: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttribI4sv: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttribI4ubv: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttribI4usv: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glGetUniformuiv: procedure(_program: GLuint; location: GLint; params: PGLuint); stdcall;
-  glBindFragDataLocation: procedure(_program: GLuint; color: GLuint; const name: PGLchar); stdcall;
-  glGetFragDataLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glUniform1ui: procedure(location: GLint; v0: GLuint); stdcall;
-  glUniform2ui: procedure(location: GLint; v0: GLuint; v1: GLuint); stdcall;
-  glUniform3ui: procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); stdcall;
-  glUniform4ui: procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); stdcall;
-  glUniform1uiv: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform2uiv: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform3uiv: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform4uiv: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glTexParameterIiv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glTexParameterIuiv: procedure(target: GLenum; pname: GLenum; const params: PGLuint); stdcall;
-  glGetTexParameterIiv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetTexParameterIuiv: procedure(target: GLenum; pname: GLenum; params: PGLuint); stdcall;
-  glClearBufferiv: procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLint); stdcall;
-  glClearBufferuiv: procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLuint); stdcall;
-  glClearBufferfv: procedure(buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); stdcall;
-  glClearBufferfi: procedure(buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); stdcall;
-  glGetStringi: function(name: GLenum; index: GLuint): PGLubyte; stdcall;
-//  glIsRenderbuffer: function(renderbuffer: GLuint): GLboolean; stdcall;
-//  glBindRenderbuffer: procedure(target: GLenum; renderbuffer: GLuint); stdcall;
-//  glDeleteRenderbuffers: procedure(n: GLsizei; const renderbuffers: PGLuint); stdcall;
-//  glGenRenderbuffers: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
-//  glRenderbufferStorage: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glGetRenderbufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-//  glIsFramebuffer: function(framebuffer: GLuint): GLboolean; stdcall;
-//  glBindFramebuffer: procedure(target: GLenum; framebuffer: GLuint); stdcall;
-//  glDeleteFramebuffers: procedure(n: GLsizei; const framebuffers: PGLuint); stdcall;
-//  glGenFramebuffers: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
-//  glCheckFramebufferStatus: function(target: GLenum): GLenum; stdcall;
-  glFramebufferTexture1D: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-//  glFramebufferTexture2D: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-  glFramebufferTexture3D: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall;
-//  glFramebufferRenderbuffer: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
-  glGetFramebufferAttachmentParameteriv: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGenerateMipmap: procedure(target: GLenum); stdcall;
-  glBlitFramebuffer: procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
-  glRenderbufferStorageMultisample: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glFramebufferTextureLayer: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall;
-  glMapBufferRange: function(target: GLenum; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): pointer; stdcall;
-  glFlushMappedBufferRange: procedure(target: GLenum; offset: GLintptr; length: GLsizeiptr); stdcall;
-  glBindVertexArray: procedure(_array: GLuint); stdcall;
-  glDeleteVertexArrays: procedure(n: GLsizei; const arrays: PGLuint); stdcall;
-  glGenVertexArrays: procedure(n: GLsizei; arrays: PGLuint); stdcall;
-  glIsVertexArray: function(_array: GLuint): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_1}
-var
-  glDrawArraysInstanced: procedure(mode: GLenum; first: GLint; count: GLsizei; instancecount: GLsizei); stdcall;
-  glDrawElementsInstanced: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; instancecount: GLsizei); stdcall;
-  glTexBuffer: procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); stdcall;
-  glPrimitiveRestartIndex: procedure(index: GLuint); stdcall;
-  glCopyBufferSubData: procedure(readTarget: GLenum; writeTarget: GLenum; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); stdcall;
-  glGetUniformIndices: procedure(_program: GLuint; uniformCount: GLsizei; const uniformNames: PPGLchar; uniformIndices: PGLuint); stdcall;
-  glGetActiveUniformsiv: procedure(_program: GLuint; uniformCount: GLsizei; const uniformIndices: PGLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetActiveUniformName: procedure(_program: GLuint; uniformIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformName: PGLchar); stdcall;
-  glGetUniformBlockIndex: function(_program: GLuint; const uniformBlockName: PGLchar): GLuint; stdcall;
-  glGetActiveUniformBlockiv: procedure(_program: GLuint; uniformBlockIndex: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetActiveUniformBlockName: procedure(_program: GLuint; uniformBlockIndex: GLuint; bufSize: GLsizei; length: PGLsizei; uniformBlockName: PGLchar); stdcall;
-  glUniformBlockBinding: procedure(_program: GLuint; uniformBlockIndex: GLuint; uniformBlockBinding: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_2}
-var
-  glDrawElementsBaseVertex: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; basevertex: GLint); stdcall;
-  glDrawRangeElementsBaseVertex: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: pointer; basevertex: GLint); stdcall;
-  glDrawElementsInstancedBaseVertex: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; instancecount: GLsizei; basevertex: GLint); stdcall;
-  glMultiDrawElementsBaseVertex: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: {P}Ppointer; drawcount: GLsizei; const basevertex: PGLint); stdcall;
-  glProvokingVertex: procedure(mode: GLenum); stdcall;
-  glFenceSync: function(condition: GLenum; flags: GLbitfield): GLsync; stdcall;
-  glIsSync: function(sync: GLsync): GLboolean; stdcall;
-  glDeleteSync: procedure(sync: GLsync); stdcall;
-  glClientWaitSync: function(sync: GLsync; flags: GLbitfield; timeout: GLuint64): GLenum; stdcall;
-  glWaitSync: procedure(sync: GLsync; flags: GLbitfield; timeout: GLuint64); stdcall;
-  glGetInteger64v: procedure(pname: GLenum; data: PGLint64); stdcall;
-  glGetSynciv: procedure(sync: GLsync; pname: GLenum; count: GLsizei; length: PGLsizei; values: PGLint); stdcall;
-  glGetInteger64i_v: procedure(target: GLenum; index: GLuint; data: PGLint64); stdcall;
-  glGetBufferParameteri64v: procedure(target: GLenum; pname: GLenum; params: PGLint64); stdcall;
-  glFramebufferTexture: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); stdcall;
-  glTexImage2DMultisample: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTexImage3DMultisample: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glGetMultisamplefv: procedure(pname: GLenum; index: GLuint; val: PGLfloat); stdcall;
-  glSampleMaski: procedure(maskNumber: GLuint; mask: GLbitfield); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_3}
-var
-  glBindFragDataLocationIndexed: procedure(_program: GLuint; colorNumber: GLuint; index: GLuint; const name: PGLchar); stdcall;
-  glGetFragDataIndex: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glGenSamplers: procedure(count: GLsizei; samplers: PGLuint); stdcall;
-  glDeleteSamplers: procedure(count: GLsizei; const samplers: PGLuint); stdcall;
-  glIsSampler: function(sampler: GLuint): GLboolean; stdcall;
-  glBindSampler: procedure(_unit: GLuint; sampler: GLuint); stdcall;
-  glSamplerParameteri: procedure(sampler: GLuint; pname: GLenum; param: GLint); stdcall;
-  glSamplerParameteriv: procedure(sampler: GLuint; pname: GLenum; const param: PGLint); stdcall;
-  glSamplerParameterf: procedure(sampler: GLuint; pname: GLenum; param: GLfloat); stdcall;
-  glSamplerParameterfv: procedure(sampler: GLuint; pname: GLenum; const param: PGLfloat); stdcall;
-  glSamplerParameterIiv: procedure(sampler: GLuint; pname: GLenum; const param: PGLint); stdcall;
-  glSamplerParameterIuiv: procedure(sampler: GLuint; pname: GLenum; const param: PGLuint); stdcall;
-  glGetSamplerParameteriv: procedure(sampler: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetSamplerParameterIiv: procedure(sampler: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetSamplerParameterfv: procedure(sampler: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetSamplerParameterIuiv: procedure(sampler: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glQueryCounter: procedure(id: GLuint; target: GLenum); stdcall;
-  glGetQueryObjecti64v: procedure(id: GLuint; pname: GLenum; params: PGLint64); stdcall;
-  glGetQueryObjectui64v: procedure(id: GLuint; pname: GLenum; params: PGLuint64); stdcall;
-  glVertexAttribDivisor: procedure(index: GLuint; divisor: GLuint); stdcall;
-  glVertexAttribP1ui: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; value: GLuint); stdcall;
-  glVertexAttribP1uiv: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; const value: PGLuint); stdcall;
-  glVertexAttribP2ui: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; value: GLuint); stdcall;
-  glVertexAttribP2uiv: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; const value: PGLuint); stdcall;
-  glVertexAttribP3ui: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; value: GLuint); stdcall;
-  glVertexAttribP3uiv: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; const value: PGLuint); stdcall;
-  glVertexAttribP4ui: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; value: GLuint); stdcall;
-  glVertexAttribP4uiv: procedure(index: GLuint; _type: GLenum; normalized: GLboolean; const value: PGLuint); stdcall;
-  {$IfNDef USE_GLCORE}
-  glVertexP2ui: procedure(_type: GLenum; value: GLuint); stdcall;
-  glVertexP2uiv: procedure(_type: GLenum; const value: PGLuint); stdcall;
-  glVertexP3ui: procedure(_type: GLenum; value: GLuint); stdcall;
-  glVertexP3uiv: procedure(_type: GLenum; const value: PGLuint); stdcall;
-  glVertexP4ui: procedure(_type: GLenum; value: GLuint); stdcall;
-  glVertexP4uiv: procedure(_type: GLenum; const value: PGLuint); stdcall;
-  glTexCoordP1ui: procedure(_type: GLenum; coords: GLuint); stdcall;
-  glTexCoordP1uiv: procedure(_type: GLenum; const coords: PGLuint); stdcall;
-  glTexCoordP2ui: procedure(_type: GLenum; coords: GLuint); stdcall;
-  glTexCoordP2uiv: procedure(_type: GLenum; const coords: PGLuint); stdcall;
-  glTexCoordP3ui: procedure(_type: GLenum; coords: GLuint); stdcall;
-  glTexCoordP3uiv: procedure(_type: GLenum; const coords: PGLuint); stdcall;
-  glTexCoordP4ui: procedure(_type: GLenum; coords: GLuint); stdcall;
-  glTexCoordP4uiv: procedure(_type: GLenum; const coords: PGLuint); stdcall;
-  glMultiTexCoordP1ui: procedure(texture: GLenum; _type: GLenum; coords: GLuint); stdcall;
-  glMultiTexCoordP1uiv: procedure(texture: GLenum; _type: GLenum; const coords: PGLuint); stdcall;
-  glMultiTexCoordP2ui: procedure(texture: GLenum; _type: GLenum; coords: GLuint); stdcall;
-  glMultiTexCoordP2uiv: procedure(texture: GLenum; _type: GLenum; const coords: PGLuint); stdcall;
-  glMultiTexCoordP3ui: procedure(texture: GLenum; _type: GLenum; coords: GLuint); stdcall;
-  glMultiTexCoordP3uiv: procedure(texture: GLenum; _type: GLenum; const coords: PGLuint); stdcall;
-  glMultiTexCoordP4ui: procedure(texture: GLenum; _type: GLenum; coords: GLuint); stdcall;
-  glMultiTexCoordP4uiv: procedure(texture: GLenum; _type: GLenum; const coords: PGLuint); stdcall;
-  glNormalP3ui: procedure(_type: GLenum; coords: GLuint); stdcall;
-  glNormalP3uiv: procedure(_type: GLenum; const coords: PGLuint); stdcall;
-  glColorP3ui: procedure(_type: GLenum; color: GLuint); stdcall;
-  glColorP3uiv: procedure(_type: GLenum; const color: PGLuint); stdcall;
-  glColorP4ui: procedure(_type: GLenum; color: GLuint); stdcall;
-  glColorP4uiv: procedure(_type: GLenum; const color: PGLuint); stdcall;
-  glSecondaryColorP3ui: procedure(_type: GLenum; color: GLuint); stdcall;
-  glSecondaryColorP3uiv: procedure(_type: GLenum; const color: PGLuint); stdcall;
-  {$EndIf}
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_0}
-var
-  glMinSampleShading: procedure(value: GLfloat); stdcall;
-  glBlendEquationi: procedure(buf: GLuint; mode: GLenum); stdcall;
-  glBlendEquationSeparatei: procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); stdcall;
-  glBlendFunci: procedure(buf: GLuint; src: GLenum; dst: GLenum); stdcall;
-  glBlendFuncSeparatei: procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); stdcall;
-  glDrawArraysIndirect: procedure(mode: GLenum; const indirect: pointer); stdcall;
-  glDrawElementsIndirect: procedure(mode: GLenum; _type: GLenum; const indirect: pointer); stdcall;
-  glUniform1d: procedure(location: GLint; x: GLdouble); stdcall;
-  glUniform2d: procedure(location: GLint; x: GLdouble; y: GLdouble); stdcall;
-  glUniform3d: procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glUniform4d: procedure(location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glUniform1dv: procedure(location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glUniform2dv: procedure(location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glUniform3dv: procedure(location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glUniform4dv: procedure(location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glUniformMatrix2dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix3dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix4dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix2x3dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix2x4dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix3x2dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix3x4dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix4x2dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glUniformMatrix4x3dv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glGetUniformdv: procedure(_program: GLuint; location: GLint; params: PGLdouble); stdcall;
-  glGetSubroutineUniformLocation: function(_program: GLuint; shadertype: GLenum; const name: PGLchar): GLint; stdcall;
-  glGetSubroutineIndex: function(_program: GLuint; shadertype: GLenum; const name: PGLchar): GLuint; stdcall;
-  glGetActiveSubroutineUniformiv: procedure(_program: GLuint; shadertype: GLenum; index: GLuint; pname: GLenum; values: PGLint); stdcall;
-  glGetActiveSubroutineUniformName: procedure(_program: GLuint; shadertype: GLenum; index: GLuint; bufSize: GLsizei; length: PGLsizei; name: PGLchar); stdcall;
-  glGetActiveSubroutineName: procedure(_program: GLuint; shadertype: GLenum; index: GLuint; bufSize: GLsizei; length: PGLsizei; name: PGLchar); stdcall;
-  glUniformSubroutinesuiv: procedure(shadertype: GLenum; count: GLsizei; const indices: PGLuint); stdcall;
-  glGetUniformSubroutineuiv: procedure(shadertype: GLenum; location: GLint; params: PGLuint); stdcall;
-  glGetProgramStageiv: procedure(_program: GLuint; shadertype: GLenum; pname: GLenum; values: PGLint); stdcall;
-  glPatchParameteri: procedure(pname: GLenum; value: GLint); stdcall;
-  glPatchParameterfv: procedure(pname: GLenum; const values: PGLfloat); stdcall;
-  glBindTransformFeedback: procedure(target: GLenum; id: GLuint); stdcall;
-  glDeleteTransformFeedbacks: procedure(n: GLsizei; const ids: PGLuint); stdcall;
-  glGenTransformFeedbacks: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glIsTransformFeedback: function(id: GLuint): GLboolean; stdcall;
-  glPauseTransformFeedback: procedure; stdcall;
-  glResumeTransformFeedback: procedure; stdcall;
-  glDrawTransformFeedback: procedure(mode: GLenum; id: GLuint); stdcall;
-  glDrawTransformFeedbackStream: procedure(mode: GLenum; id: GLuint; stream: GLuint); stdcall;
-  glBeginQueryIndexed: procedure(target: GLenum; index: GLuint; id: GLuint); stdcall;
-  glEndQueryIndexed: procedure(target: GLenum; index: GLuint); stdcall;
-  glGetQueryIndexediv: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_1}
-var
-  glReleaseShaderCompiler: procedure; stdcall;
-  glShaderBinary: procedure(count: GLsizei; const shaders: PGLuint; binaryFormat: GLenum; const binary: pointer; length: GLsizei); stdcall;
-  glGetShaderPrecisionFormat: procedure(shadertype: GLenum; precisiontype: GLenum; range: PGLint; precision: PGLint); stdcall;
-  glDepthRangef: procedure(n: GLfloat; f: GLfloat); stdcall;
-  glClearDepthf: procedure(d: GLfloat); stdcall;
-  glGetProgramBinary: procedure(_program: GLuint; bufSize: GLsizei; length: PGLsizei; binaryFormat: PGLenum; binary: pointer); stdcall;
-  glProgramBinary: procedure(_program: GLuint; binaryFormat: GLenum; const binary: pointer; length: GLsizei); stdcall;
-  glProgramParameteri: procedure(_program: GLuint; pname: GLenum; value: GLint); stdcall;
-  glUseProgramStages: procedure(pipeline: GLuint; stages: GLbitfield; _program: GLuint); stdcall;
-  glActiveShaderProgram: procedure(pipeline: GLuint; _program: GLuint); stdcall;
-  glCreateShaderProgramv: function(_type: GLenum; count: GLsizei; const strings: PPGLchar): GLuint; stdcall;
-  glBindProgramPipeline: procedure(pipeline: GLuint); stdcall;
-  glDeleteProgramPipelines: procedure(n: GLsizei; const pipelines: PGLuint); stdcall;
-  glGenProgramPipelines: procedure(n: GLsizei; pipelines: PGLuint); stdcall;
-  glIsProgramPipeline: function(pipeline: GLuint): GLboolean; stdcall;
-  glGetProgramPipelineiv: procedure(pipeline: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glProgramUniform1i: procedure(_program: GLuint; location: GLint; v0: GLint); stdcall;
-  glProgramUniform1iv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform1f: procedure(_program: GLuint; location: GLint; v0: GLfloat); stdcall;
-  glProgramUniform1fv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform1d: procedure(_program: GLuint; location: GLint; v0: GLdouble); stdcall;
-  glProgramUniform1dv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform1ui: procedure(_program: GLuint; location: GLint; v0: GLuint); stdcall;
-  glProgramUniform1uiv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform2i: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint); stdcall;
-  glProgramUniform2iv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform2f: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
-  glProgramUniform2fv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform2d: procedure(_program: GLuint; location: GLint; v0: GLdouble; v1: GLdouble); stdcall;
-  glProgramUniform2dv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform2ui: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint); stdcall;
-  glProgramUniform2uiv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform3i: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
-  glProgramUniform3iv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform3f: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
-  glProgramUniform3fv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform3d: procedure(_program: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble); stdcall;
-  glProgramUniform3dv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform3ui: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); stdcall;
-  glProgramUniform3uiv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform4i: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
-  glProgramUniform4iv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform4f: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
-  glProgramUniform4fv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform4d: procedure(_program: GLuint; location: GLint; v0: GLdouble; v1: GLdouble; v2: GLdouble; v3: GLdouble); stdcall;
-  glProgramUniform4dv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform4ui: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); stdcall;
-  glProgramUniform4uiv: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniformMatrix2fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix2dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix2x3fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3x2fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix2x4fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4x2fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3x4fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4x3fv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix2x3dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3x2dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix2x4dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4x2dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3x4dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4x3dv: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glValidateProgramPipeline: procedure(pipeline: GLuint); stdcall;
-  glGetProgramPipelineInfoLog: procedure(pipeline: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall;
-  glVertexAttribL1d: procedure(index: GLuint; x: GLdouble); stdcall;
-  glVertexAttribL2d: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
-  glVertexAttribL3d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexAttribL4d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexAttribL1dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL2dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL3dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL4dv: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribLPointer: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glGetVertexAttribLdv: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glViewportArrayv: procedure(first: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glViewportIndexedf: procedure(index: GLuint; x: GLfloat; y: GLfloat; w: GLfloat; h: GLfloat); stdcall;
-  glViewportIndexedfv: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glScissorArrayv: procedure(first: GLuint; count: GLsizei; const v: PGLint); stdcall;
-  glScissorIndexed: procedure(index: GLuint; left: GLint; bottom: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glScissorIndexedv: procedure(index: GLuint; const v: PGLint); stdcall;
-  glDepthRangeArrayv: procedure(first: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glDepthRangeIndexed: procedure(index: GLuint; n: GLdouble; f: GLdouble); stdcall;
-  glGetFloati_v: procedure(target: GLenum; index: GLuint; data: PGLfloat); stdcall;
-  glGetDoublei_v: procedure(target: GLenum; index: GLuint; data: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_2}
-var
-  glDrawArraysInstancedBaseInstance: procedure(mode: GLenum; first: GLint; count: GLsizei; instancecount: GLsizei; baseinstance: GLuint);
-  glDrawElementsInstancedBaseInstance: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; instancecount: GLsizei; baseinstance: GLuint); stdcall;
-  glDrawElementsInstancedBaseVertexBaseInstance: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; instancecount: GLsizei; basevertex: GLint; baseinstance: GLuint); stdcall;
-  glGetInternalformativ: procedure(target: GLenum; internalformat: GLenum; pname: GLenum; count: GLsizei; params: PGLint); stdcall;
-  glGetActiveAtomicCounterBufferiv: procedure(_program: GLuint; bufferIndex: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glBindImageTexture: procedure(_unit: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLenum); stdcall;
-  glMemoryBarrier: procedure(barriers: GLbitfield); stdcall;
-  glTexStorage1D: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei); stdcall;
-  glTexStorage2D: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glTexStorage3D: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei); stdcall;
-  glDrawTransformFeedbackInstanced: procedure(mode: GLenum; id: GLuint; instancecount: GLsizei); stdcall;
-  glDrawTransformFeedbackStreamInstanced: procedure(mode: GLenum; id: GLuint; stream: GLuint; instancecount: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_3}
-var
-  glClearBufferData: procedure(target: GLenum; internalformat: GLenum; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glClearBufferSubData: procedure(target: GLenum; internalformat: GLenum; offset: GLintptr; size: GLsizeiptr; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glDispatchCompute: procedure(num_groups_x: GLuint; num_groups_y: GLuint; num_groups_z: GLuint); stdcall;
-  glDispatchComputeIndirect: procedure(indirect: GLintptr); stdcall;
-  glCopyImageSubData: procedure(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); stdcall;
-  glFramebufferParameteri: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glGetFramebufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetInternalformati64v: procedure(target: GLenum; internalformat: GLenum; pname: GLenum; count: GLsizei; params: PGLint64); stdcall;
-  glInvalidateTexSubImage: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei); stdcall;
-  glInvalidateTexImage: procedure(texture: GLuint; level: GLint); stdcall;
-  glInvalidateBufferSubData: procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); stdcall;
-  glInvalidateBufferData: procedure(buffer: GLuint); stdcall;
-  glInvalidateFramebuffer: procedure(target: GLenum; numAttachments: GLsizei; const attachments: PGLenum); stdcall;
-  glInvalidateSubFramebuffer: procedure(target: GLenum; numAttachments: GLsizei; const attachments: PGLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glMultiDrawArraysIndirect: procedure(mode: GLenum; const indirect: pointer; drawcount: GLsizei; stride: GLsizei); stdcall;
-  glMultiDrawElementsIndirect: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; drawcount: GLsizei; stride: GLsizei); stdcall;
-  glGetProgramInterfaceiv: procedure(_program: GLuint; programInterface: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetProgramResourceIndex: function(_program: GLuint; programInterface: GLenum; const name: PGLchar): GLuint; stdcall;
-  glGetProgramResourceName: procedure(_program: GLuint; programInterface: GLenum; index: GLuint; bufSize: GLsizei; length: PGLsizei; name: PGLchar); stdcall;
-  glGetProgramResourceiv: procedure(_program: GLuint; programInterface: GLenum; index: GLuint; propCount: GLsizei; const props: PGLenum; count: GLsizei; length: PGLsizei; params: PGLint); stdcall;
-  glGetProgramResourceLocation: function(_program: GLuint; programInterface: GLenum; const name: PGLchar): GLint; stdcall;
-  glGetProgramResourceLocationIndex: function(_program: GLuint; programInterface: GLenum; const name: PGLchar): GLint; stdcall;
-  glShaderStorageBlockBinding: procedure(_program: GLuint; storageBlockIndex: GLuint; storageBlockBinding: GLuint); stdcall;
-  glTexBufferRange: procedure(target: GLenum; internalformat: GLenum; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glTexStorage2DMultisample: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTexStorage3DMultisample: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTextureView: procedure(texture: GLuint; target: GLenum; origtexture: GLuint; internalformat: GLenum; minlevel: GLuint; numlevels: GLuint; minlayer: GLuint; numlayers: GLuint); stdcall;
-  glBindVertexBuffer: procedure(bindingindex: GLuint; buffer: GLuint; offset: GLintptr; stride: GLsizei); stdcall;
-  glVertexAttribFormat: procedure(attribindex: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; relativeoffset: GLuint); stdcall;
-  glVertexAttribIFormat: procedure(attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexAttribLFormat: procedure(attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexAttribBinding: procedure(attribindex: GLuint; bindingindex: GLuint); stdcall;
-  glVertexBindingDivisor: procedure(bindingindex: GLuint; divisor: GLuint); stdcall;
-  glDebugMessageControl: procedure(source: GLenum; _type: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); stdcall;
-  glDebugMessageInsert: procedure(source: GLenum; _type: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); stdcall;
-  glDebugMessageCallback: procedure(callback: GLDEBUGPROC; const userParam: pointer); stdcall;
-  glGetDebugMessageLog: function(count: GLuint; bufSize: GLsizei; sources: PGLenum; types: PGLenum; ids: PGLuint; severities: PGLenum; lengths: PGLsizei; messageLog: PGLchar): GLuint; stdcall;
-  glPushDebugGroup: procedure(source: GLenum; id: GLuint; length: GLsizei; const message: PGLchar); stdcall;
-  glPopDebugGroup: procedure; stdcall;
-  glObjectLabel: procedure(identifier: GLenum; name: GLuint; length: GLsizei; const _label: PGLchar); stdcall;
-  glGetObjectLabel: procedure(identifier: GLenum; name: GLuint; bufSize: GLsizei; length: PGLsizei; _label: PGLchar); stdcall;
-  glObjectPtrLabel: procedure(const ptr: pointer; length: GLsizei; const _label: PGLchar); stdcall;
-  glGetObjectPtrLabel: procedure(const ptr: pointer; bufSize: GLsizei; length: PGLsizei; _label: PGLchar); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_4}
-var
-  glBufferStorage: procedure(target: GLenum; size: GLsizeiptr; const data: pointer; flags: GLbitfield); stdcall;
-  glClearTexImage: procedure(texture: GLuint; level: GLint; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glClearTexSubImage: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glBindBuffersBase: procedure(target: GLenum; first: GLuint; count: GLsizei; const buffers: PGLuint); stdcall;
-  glBindBuffersRange: procedure(target: GLenum; first: GLuint; count: GLsizei; const buffers: PGLuint; const offsets: PGLintptr; const sizes: PGLsizeiptr); stdcall;
-  glBindTextures: procedure(first: GLuint; count: GLsizei; const textures: PGLuint); stdcall;
-  glBindSamplers: procedure(first: GLuint; count: GLsizei; const samplers: PGLuint); stdcall;
-  glBindImageTextures: procedure(first: GLuint; count: GLsizei; const textures: PGLuint); stdcall;
-  glBindVertexBuffers: procedure(first: GLuint; count: GLsizei; const buffers: PGLuint; const offsets: PGLintptr; const strides: PGLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_5}
-var
-  glClipControl: procedure(origin: GLenum; depth: GLenum); stdcall;
-  glCreateTransformFeedbacks: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glTransformFeedbackBufferBase: procedure(xfb: GLuint; index: GLuint; buffer: GLuint); stdcall;
-  glTransformFeedbackBufferRange: procedure(xfb: GLuint; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glGetTransformFeedbackiv: procedure(xfb: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetTransformFeedbacki_v: procedure(xfb: GLuint; pname: GLenum; index: GLuint; param: PGLint); stdcall;
-  glGetTransformFeedbacki64_v: procedure(xfb: GLuint; pname: GLenum; index: GLuint; param: PGLint64); stdcall;
-  glCreateBuffers: procedure(n: GLsizei; buffers: PGLuint); stdcall;
-  glNamedBufferStorage: procedure(buffer: GLuint; size: GLsizeiptr; const data: pointer; flags: GLbitfield); stdcall;
-  glNamedBufferData: procedure(buffer: GLuint; size: GLsizeiptr; const data: pointer; usage: GLenum); stdcall;
-  glNamedBufferSubData: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: pointer); stdcall;
-  glCopyNamedBufferSubData: procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); stdcall;
-  glClearNamedBufferData: procedure(buffer: GLuint; internalformat: GLenum; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glClearNamedBufferSubData: procedure(buffer: GLuint; internalformat: GLenum; offset: GLintptr; size: GLsizeiptr; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glMapNamedBuffer: function(buffer: GLuint; access: GLenum): pointer; stdcall;
-  glMapNamedBufferRange: function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): pointer; stdcall;
-  glUnmapNamedBuffer: function(buffer: GLuint): GLboolean; stdcall;
-  glFlushMappedNamedBufferRange: procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); stdcall;
-  glGetNamedBufferParameteriv: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetNamedBufferParameteri64v: procedure(buffer: GLuint; pname: GLenum; params: PGLint64); stdcall;
-  glGetNamedBufferPointerv: procedure(buffer: GLuint; pname: GLenum; params:Ppointer); stdcall;
-  glGetNamedBufferSubData: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: pointer); stdcall;
-  glCreateFramebuffers: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
-  glNamedFramebufferRenderbuffer: procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
-  glNamedFramebufferParameteri: procedure(framebuffer: GLuint; pname: GLenum; param: GLint); stdcall;
-  glNamedFramebufferTexture: procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); stdcall;
-  glNamedFramebufferTextureLayer: procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall;
-  glNamedFramebufferDrawBuffer: procedure(framebuffer: GLuint; buf: GLenum); stdcall;
-  glNamedFramebufferDrawBuffers: procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); stdcall;
-  glNamedFramebufferReadBuffer: procedure(framebuffer: GLuint; src: GLenum); stdcall;
-  glInvalidateNamedFramebufferData: procedure(framebuffer: GLuint; numAttachments: GLsizei; const attachments: PGLenum); stdcall;
-  glInvalidateNamedFramebufferSubData: procedure(framebuffer: GLuint; numAttachments: GLsizei; const attachments: PGLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glClearNamedFramebufferiv: procedure(framebuffer: GLuint; buffer: GLenum; drawbuffer: GLint; const value: PGLint); stdcall;
-  glClearNamedFramebufferuiv: procedure(framebuffer: GLuint; buffer: GLenum; drawbuffer: GLint; const value: PGLuint); stdcall;
-  glClearNamedFramebufferfv: procedure(framebuffer: GLuint; buffer: GLenum; drawbuffer: GLint; const value: PGLfloat); stdcall;
-  glClearNamedFramebufferfi: procedure(framebuffer: GLuint; buffer: GLenum; drawbuffer: GLint; depth: GLfloat; stencil: GLint); stdcall;
-  glBlitNamedFramebuffer: procedure(readFramebuffer: GLuint; drawFramebuffer: GLuint; srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
-  glCheckNamedFramebufferStatus: function(framebuffer: GLuint; target: GLenum): GLenum; stdcall;
-  glGetNamedFramebufferParameteriv: procedure(framebuffer: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetNamedFramebufferAttachmentParameteriv: procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glCreateRenderbuffers: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
-  glNamedRenderbufferStorage: procedure(renderbuffer: GLuint; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glNamedRenderbufferStorageMultisample: procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glGetNamedRenderbufferParameteriv: procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glCreateTextures: procedure(target: GLenum; n: GLsizei; textures: PGLuint); stdcall;
-  glTextureBuffer: procedure(texture: GLuint; internalformat: GLenum; buffer: GLuint); stdcall;
-  glTextureBufferRange: procedure(texture: GLuint; internalformat: GLenum; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glTextureStorage1D: procedure(texture: GLuint; levels: GLsizei; internalformat: GLenum; width: GLsizei); stdcall;
-  glTextureStorage2D: procedure(texture: GLuint; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glTextureStorage3D: procedure(texture: GLuint; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei); stdcall;
-  glTextureStorage2DMultisample: procedure(texture: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTextureStorage3DMultisample: procedure(texture: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTextureSubImage1D: procedure(texture: GLuint; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureSubImage2D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureSubImage3D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glCompressedTextureSubImage1D: procedure(texture: GLuint; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTextureSubImage2D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTextureSubImage3D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glCopyTextureSubImage1D: procedure(texture: GLuint; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyTextureSubImage2D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glCopyTextureSubImage3D: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glTextureParameterf: procedure(texture: GLuint; pname: GLenum; param: GLfloat); stdcall;
-  glTextureParameterfv: procedure(texture: GLuint; pname: GLenum; const param: PGLfloat); stdcall;
-  glTextureParameteri: procedure(texture: GLuint; pname: GLenum; param: GLint); stdcall;
-  glTextureParameterIiv: procedure(texture: GLuint; pname: GLenum; const params: PGLint); stdcall;
-  glTextureParameterIuiv: procedure(texture: GLuint; pname: GLenum; const params: PGLuint); stdcall;
-  glTextureParameteriv: procedure(texture: GLuint; pname: GLenum; const param: PGLint); stdcall;
-  glGenerateTextureMipmap: procedure(texture: GLuint); stdcall;
-  glBindTextureUnit: procedure(_unit: GLuint; texture: GLuint); stdcall;
-  glGetTextureImage: procedure(texture: GLuint; level: GLint; format: GLenum; _type: GLenum; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetCompressedTextureImage: procedure(texture: GLuint; level: GLint; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetTextureLevelParameterfv: procedure(texture: GLuint; level: GLint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetTextureLevelParameteriv: procedure(texture: GLuint; level: GLint; pname: GLenum; params: PGLint); stdcall;
-  glGetTextureParameterfv: procedure(texture: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetTextureParameterIiv: procedure(texture: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetTextureParameterIuiv: procedure(texture: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glGetTextureParameteriv: procedure(texture: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glCreateVertexArrays: procedure(n: GLsizei; arrays: PGLuint); stdcall;
-  glDisableVertexArrayAttrib: procedure(vaobj: GLuint; index: GLuint); stdcall;
-  glEnableVertexArrayAttrib: procedure(vaobj: GLuint; index: GLuint); stdcall;
-  glVertexArrayElementBuffer: procedure(vaobj: GLuint; buffer: GLuint); stdcall;
-  glVertexArrayVertexBuffer: procedure(vaobj: GLuint; bindingindex: GLuint; buffer: GLuint; offset: GLintptr; stride: GLsizei); stdcall;
-  glVertexArrayVertexBuffers: procedure(vaobj: GLuint; first: GLuint; count: GLsizei; const buffers: PGLuint; const offsets: PGLintptr; const strides: PGLsizei); stdcall;
-  glVertexArrayAttribBinding: procedure(vaobj: GLuint; attribindex: GLuint; bindingindex: GLuint); stdcall;
-  glVertexArrayAttribFormat: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; relativeoffset: GLuint); stdcall;
-  glVertexArrayAttribIFormat: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexArrayAttribLFormat: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexArrayBindingDivisor: procedure(vaobj: GLuint; bindingindex: GLuint; divisor: GLuint); stdcall;
-  glGetVertexArrayiv: procedure(vaobj: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetVertexArrayIndexediv: procedure(vaobj: GLuint; index: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetVertexArrayIndexed64iv: procedure(vaobj: GLuint; index: GLuint; pname: GLenum; param: PGLint64); stdcall;
-  glCreateSamplers: procedure(n: GLsizei; samplers: PGLuint); stdcall;
-  glCreateProgramPipelines: procedure(n: GLsizei; pipelines: PGLuint); stdcall;
-  glCreateQueries: procedure(target: GLenum; n: GLsizei; ids: PGLuint); stdcall;
-  glGetQueryBufferObjecti64v: procedure(id: GLuint; buffer: GLuint; pname: GLenum; offset: GLintptr); stdcall;
-  glGetQueryBufferObjectiv: procedure(id: GLuint; buffer: GLuint; pname: GLenum; offset: GLintptr); stdcall;
-  glGetQueryBufferObjectui64v: procedure(id: GLuint; buffer: GLuint; pname: GLenum; offset: GLintptr); stdcall;
-  glGetQueryBufferObjectuiv: procedure(id: GLuint; buffer: GLuint; pname: GLenum; offset: GLintptr); stdcall;
-  glMemoryBarrierByRegion: procedure(barriers: GLbitfield); stdcall;
-  glGetTextureSubImage: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetCompressedTextureSubImage: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetGraphicsResetStatus: function: GLenum; stdcall;
-  glGetnCompressedTexImage: procedure(target: GLenum; lod: GLint; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetnTexImage: procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; bufSize: GLsizei; pixels: pointer); stdcall;
-  glGetnUniformdv: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); stdcall;
-  glGetnUniformfv: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); stdcall;
-  glGetnUniformiv: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); stdcall;
-  glGetnUniformuiv: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); stdcall;
-  glReadnPixels: procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; bufSize: GLsizei; data: pointer); stdcall;
-  glTextureBarrier: procedure; stdcall;
-  {$IfNDef USE_GLCORE}
-  glGetnMapdv: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); stdcall;
-  glGetnMapfv: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); stdcall;
-  glGetnMapiv: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); stdcall;
-  glGetnPixelMapfv: procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); stdcall;
-  glGetnPixelMapuiv: procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); stdcall;
-  glGetnPixelMapusv: procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); stdcall;
-  glGetnPolygonStipple: procedure(bufSize: GLsizei; pattern: PGLubyte); stdcall;
-  glGetnColorTable: procedure(target: GLenum; format: GLenum; _type: GLenum; bufSize: GLsizei; table: pointer); stdcall;
-  glGetnConvolutionFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; bufSize: GLsizei; image: pointer); stdcall;
-  glGetnSeparableFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; rowBufSize: GLsizei; row: pointer; columnBufSize: GLsizei; column: pointer; span: pointer); stdcall;
-  glGetnHistogram: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; bufSize: GLsizei; values: pointer); stdcall;
-  glGetnMinmax: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; bufSize: GLsizei; values: pointer); stdcall;
-  {$EndIf}
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_6}
-var
-  glSpecializeShader: procedure(shader: GLuint; const pEntryPoint: PGLchar; numSpecializationConstants: GLuint; const pConstantIndex: PGLuint; const pConstantValue: PGLuint); stdcall;
-  glMultiDrawArraysIndirectCount: procedure(mode: GLenum; const indirect: pointer; drawcount: GLintptr; maxdrawcount: GLsizei; stride: GLsizei); stdcall;
-  glMultiDrawElementsIndirectCount: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; drawcount: GLintptr; maxdrawcount: GLsizei; stride: GLsizei); stdcall;
-  glPolygonOffsetClamp: procedure(factor: GLfloat; units: GLfloat; clamp: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_ES3_2_compatibility}
-  glPrimitiveBoundingBoxARB: procedure(minX: GLfloat; minY: GLfloat; minZ: GLfloat; minW: GLfloat; maxX: GLfloat; maxY: GLfloat; maxZ: GLfloat; maxW: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_bindless_texture}
-  glGetTextureHandleARB: function(texture: GLuint): GLuint64; stdcall;
-  glGetTextureSamplerHandleARB: function(texture: GLuint; sampler: GLuint): GLuint64; stdcall;
-  glMakeTextureHandleResidentARB: procedure(handle: GLuint64); stdcall;
-  glMakeTextureHandleNonResidentARB: procedure(handle: GLuint64); stdcall;
-  glGetImageHandleARB: function(texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; format: GLenum): GLuint64; stdcall;
-  glMakeImageHandleResidentARB: procedure(handle: GLuint64; access: GLenum); stdcall;
-  glMakeImageHandleNonResidentARB: procedure(handle: GLuint64); stdcall;
-  glUniformHandleui64ARB: procedure(location: GLint; value: GLuint64); stdcall;
-  glUniformHandleui64vARB: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glProgramUniformHandleui64ARB: procedure(_program: GLuint; location: GLint; value: GLuint64); stdcall;
-  glProgramUniformHandleui64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const values: PGLuint64); stdcall;
-  glIsTextureHandleResidentARB: function(handle: GLuint64): GLboolean; stdcall;
-  glIsImageHandleResidentARB: function(handle: GLuint64): GLboolean; stdcall;
-  glVertexAttribL1ui64ARB: procedure(index: GLuint; x: GLuint64EXT); stdcall;
-  glVertexAttribL1ui64vARB: procedure(index: GLuint; const v: PGLuint64EXT); stdcall;
-  glGetVertexAttribLui64vARB: procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_cl_event}
-  glCreateSyncFromCLeventARB: function(context:P_cl_context; event:P_cl_event; flags: GLbitfield): GLsync; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_color_buffer_float}
-  glClampColorARB: procedure(target: GLenum; clamp: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_compute_variable_group_size}
-  glDispatchComputeGroupSizeARB: procedure(num_groups_x: GLuint; num_groups_y: GLuint; num_groups_z: GLuint; group_size_x: GLuint; group_size_y: GLuint; group_size_z: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_debug_output}
-  glDebugMessageControlARB: procedure(source: GLenum; _type: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); stdcall;
-  glDebugMessageInsertARB: procedure(source: GLenum; _type: GLenum; id: GLuint; severity: GLenum; length: GLsizei; const buf: PGLchar); stdcall;
-  glDebugMessageCallbackARB: procedure(callback: GLDEBUGPROCARB; const userParam: pointer); stdcall;
-  glGetDebugMessageLogARB: function(count: GLuint; bufSize: GLsizei; sources: PGLenum; types: PGLenum; ids: PGLuint; severities: PGLenum; lengths: PGLsizei; messageLog: PGLchar): GLuint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_buffers}
-  glDrawBuffersARB: procedure(n: GLsizei; const bufs: PGLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_buffers_blend}
-  glBlendEquationiARB: procedure(buf: GLuint; mode: GLenum); stdcall;
-  glBlendEquationSeparateiARB: procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); stdcall;
-  glBlendFunciARB: procedure(buf: GLuint; src: GLenum; dst: GLenum); stdcall;
-  glBlendFuncSeparateiARB: procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_instanced}
-  glDrawArraysInstancedARB: procedure(mode: GLenum; first: GLint; count: GLsizei; primcount: GLsizei); stdcall;
-  glDrawElementsInstancedARB: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; primcount: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_fragment_program}
-  glProgramStringARB: procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: pointer); stdcall;
-  glBindProgramARB: procedure(target: GLenum; _program: GLuint); stdcall;
-  glDeleteProgramsARB: procedure(n: GLsizei; const programs: PGLuint); stdcall;
-  glGenProgramsARB: procedure(n: GLsizei; programs: PGLuint); stdcall;
-  glProgramEnvParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glProgramEnvParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall;
-  glProgramEnvParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glProgramEnvParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall;
-  glProgramLocalParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glProgramLocalParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall;
-  glProgramLocalParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glProgramLocalParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall;
-  glGetProgramEnvParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
-  glGetProgramEnvParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
-  glGetProgramLocalParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall;
-  glGetProgramLocalParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall;
-  glGetProgramivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetProgramStringARB: procedure(target: GLenum; pname: GLenum; _string: pointer); stdcall;
-  glIsProgramARB: function(_program: GLuint): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_geometry_shader4}
-  glProgramParameteriARB: procedure(_program: GLuint; pname: GLenum; value: GLint); stdcall;
-  glFramebufferTextureARB: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); stdcall;
-  glFramebufferTextureLayerARB: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall;
-  glFramebufferTextureFaceARB: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_gl_spirv}
-  glSpecializeShaderARB: procedure(shader: GLuint; const pEntryPoint: PGLchar; numSpecializationConstants: GLuint; const pConstantIndex: PGLuint; const pConstantValue: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_gpu_shader_int64}
-  glUniform1i64ARB: procedure(location: GLint; x: GLint64); stdcall;
-  glUniform2i64ARB: procedure(location: GLint; x: GLint64; y: GLint64); stdcall;
-  glUniform3i64ARB: procedure(location: GLint; x: GLint64; y: GLint64; z: GLint64); stdcall;
-  glUniform4i64ARB: procedure(location: GLint; x: GLint64; y: GLint64; z: GLint64; w: GLint64); stdcall;
-  glUniform1i64vARB: procedure(location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glUniform2i64vARB: procedure(location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glUniform3i64vARB: procedure(location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glUniform4i64vARB: procedure(location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glUniform1ui64ARB: procedure(location: GLint; x: GLuint64); stdcall;
-  glUniform2ui64ARB: procedure(location: GLint; x: GLuint64; y: GLuint64); stdcall;
-  glUniform3ui64ARB: procedure(location: GLint; x: GLuint64; y: GLuint64; z: GLuint64); stdcall;
-  glUniform4ui64ARB: procedure(location: GLint; x: GLuint64; y: GLuint64; z: GLuint64; w: GLuint64); stdcall;
-  glUniform1ui64vARB: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glUniform2ui64vARB: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glUniform3ui64vARB: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glUniform4ui64vARB: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glGetUniformi64vARB: procedure(_program: GLuint; location: GLint; params: PGLint64); stdcall;
-  glGetUniformui64vARB: procedure(_program: GLuint; location: GLint; params: PGLuint64); stdcall;
-  glGetnUniformi64vARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLint64); stdcall;
-  glGetnUniformui64vARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint64); stdcall;
-  glProgramUniform1i64ARB: procedure(_program: GLuint; location: GLint; x: GLint64); stdcall;
-  glProgramUniform2i64ARB: procedure(_program: GLuint; location: GLint; x: GLint64; y: GLint64); stdcall;
-  glProgramUniform3i64ARB: procedure(_program: GLuint; location: GLint; x: GLint64; y: GLint64; z: GLint64); stdcall;
-  glProgramUniform4i64ARB: procedure(_program: GLuint; location: GLint; x: GLint64; y: GLint64; z: GLint64; w: GLint64); stdcall;
-  glProgramUniform1i64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glProgramUniform2i64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glProgramUniform3i64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glProgramUniform4i64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64); stdcall;
-  glProgramUniform1ui64ARB: procedure(_program: GLuint; location: GLint; x: GLuint64); stdcall;
-  glProgramUniform2ui64ARB: procedure(_program: GLuint; location: GLint; x: GLuint64; y: GLuint64); stdcall;
-  glProgramUniform3ui64ARB: procedure(_program: GLuint; location: GLint; x: GLuint64; y: GLuint64; z: GLuint64); stdcall;
-  glProgramUniform4ui64ARB: procedure(_program: GLuint; location: GLint; x: GLuint64; y: GLuint64; z: GLuint64; w: GLuint64); stdcall;
-  glProgramUniform1ui64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glProgramUniform2ui64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glProgramUniform3ui64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glProgramUniform4ui64vARB: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_imaging}
-  glColorTable: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: pointer); stdcall;
-  glColorTableParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glColorTableParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glCopyColorTable: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glGetColorTable: procedure(target: GLenum; format: GLenum; _type: GLenum; table: pointer); stdcall;
-  glGetColorTableParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetColorTableParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glColorSubTable: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glCopyColorSubTable: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: pointer); stdcall;
-  glConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: pointer); stdcall;
-  glConvolutionParameterf: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall;
-  glConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glConvolutionParameteri: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall;
-  glConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glCopyConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glGetConvolutionFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; image: pointer); stdcall;
-  glGetConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetSeparableFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; row: pointer; column: pointer; span: pointer); stdcall;
-  glSeparableFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: pointer; const column: pointer); stdcall;
-  glGetHistogram: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: pointer); stdcall;
-  glGetHistogramParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetHistogramParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMinmax: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: pointer); stdcall;
-  glGetMinmaxParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMinmaxParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glHistogram: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall;
-  glMinmax: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall;
-  glResetHistogram: procedure(target: GLenum); stdcall;
-  glResetMinmax: procedure(target: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_indirect_parameters}
-  glMultiDrawArraysIndirectCountARB: procedure(mode: GLenum; const indirect: pointer; drawcount: GLintptr; maxdrawcount: GLsizei; stride: GLsizei); stdcall;
-  glMultiDrawElementsIndirectCountARB: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; drawcount: GLintptr; maxdrawcount: GLsizei; stride: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_instanced_arrays}
-  glVertexAttribDivisorARB: procedure(index: GLuint; divisor: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_matrix_palette}
-  glCurrentPaletteMatrixARB: procedure(index: GLint); stdcall;
-  glMatrixIndexubvARB: procedure(size: GLint; const indices: PGLubyte); stdcall;
-  glMatrixIndexusvARB: procedure(size: GLint; const indices: PGLushort); stdcall;
-  glMatrixIndexuivARB: procedure(size: GLint; const indices: PGLuint); stdcall;
-  glMatrixIndexPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; const pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_multisample}
-  glSampleCoverageARB: procedure(value: GLfloat; invert: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_multitexture}
-  glActiveTextureARB: procedure(texture: GLenum); stdcall;
-  glClientActiveTextureARB: procedure(texture: GLenum); stdcall;
-  glMultiTexCoord1dARB: procedure(target: GLenum; s: GLdouble); stdcall;
-  glMultiTexCoord1dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall;
-  glMultiTexCoord1fARB: procedure(target: GLenum; s: GLfloat); stdcall;
-  glMultiTexCoord1fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall;
-  glMultiTexCoord1iARB: procedure(target: GLenum; s: GLint); stdcall;
-  glMultiTexCoord1ivARB: procedure(target: GLenum; const v: PGLint); stdcall;
-  glMultiTexCoord1sARB: procedure(target: GLenum; s: GLshort); stdcall;
-  glMultiTexCoord1svARB: procedure(target: GLenum; const v: PGLshort); stdcall;
-  glMultiTexCoord2dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall;
-  glMultiTexCoord2dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall;
-  glMultiTexCoord2fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall;
-  glMultiTexCoord2fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall;
-  glMultiTexCoord2iARB: procedure(target: GLenum; s: GLint; t: GLint); stdcall;
-  glMultiTexCoord2ivARB: procedure(target: GLenum; const v: PGLint); stdcall;
-  glMultiTexCoord2sARB: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall;
-  glMultiTexCoord2svARB: procedure(target: GLenum; const v: PGLshort); stdcall;
-  glMultiTexCoord3dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall;
-  glMultiTexCoord3dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall;
-  glMultiTexCoord3fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall;
-  glMultiTexCoord3fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall;
-  glMultiTexCoord3iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall;
-  glMultiTexCoord3ivARB: procedure(target: GLenum; const v: PGLint); stdcall;
-  glMultiTexCoord3sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall;
-  glMultiTexCoord3svARB: procedure(target: GLenum; const v: PGLshort); stdcall;
-  glMultiTexCoord4dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall;
-  glMultiTexCoord4dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall;
-  glMultiTexCoord4fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall;
-  glMultiTexCoord4fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall;
-  glMultiTexCoord4iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall;
-  glMultiTexCoord4ivARB: procedure(target: GLenum; const v: PGLint); stdcall;
-  glMultiTexCoord4sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall;
-  glMultiTexCoord4svARB: procedure(target: GLenum; const v: PGLshort); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_occlusion_query}
-  glGenQueriesARB: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glDeleteQueriesARB: procedure(n: GLsizei; const ids: PGLuint); stdcall;
-  glIsQueryARB: function(id: GLuint): GLboolean; stdcall;
-  glBeginQueryARB: procedure(target: GLenum; id: GLuint); stdcall;
-  glEndQueryARB: procedure(target: GLenum); stdcall;
-  glGetQueryivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetQueryObjectivARB: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetQueryObjectuivARB: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_parallel_shader_compile}
-  glMaxShaderCompilerThreadsARB: procedure(count: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_point_parameters}
-  glPointParameterfARB: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glPointParameterfvARB: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_robustness}
-  glGetGraphicsResetStatusARB: function: GLenum; stdcall;
-  glGetnTexImageARB: procedure(target: GLenum; level: GLint; format: GLenum; _type: GLenum; bufSize: GLsizei; img: pointer); stdcall;
-  glReadnPixelsARB: procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; bufSize: GLsizei; data: pointer); stdcall;
-  glGetnCompressedTexImageARB: procedure(target: GLenum; lod: GLint; bufSize: GLsizei; img: pointer); stdcall;
-  glGetnUniformfvARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLfloat); stdcall;
-  glGetnUniformivARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLint); stdcall;
-  glGetnUniformuivARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLuint); stdcall;
-  glGetnUniformdvARB: procedure(_program: GLuint; location: GLint; bufSize: GLsizei; params: PGLdouble); stdcall;
-  {$IfNDef USE_GLCORE}
-  glGetnMapdvARB: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLdouble); stdcall;
-  glGetnMapfvARB: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLfloat); stdcall;
-  glGetnMapivARB: procedure(target: GLenum; query: GLenum; bufSize: GLsizei; v: PGLint); stdcall;
-  glGetnPixelMapfvARB: procedure(map: GLenum; bufSize: GLsizei; values: PGLfloat); stdcall;
-  glGetnPixelMapuivARB: procedure(map: GLenum; bufSize: GLsizei; values: PGLuint); stdcall;
-  glGetnPixelMapusvARB: procedure(map: GLenum; bufSize: GLsizei; values: PGLushort); stdcall;
-  glGetnPolygonStippleARB: procedure(bufSize: GLsizei; pattern: PGLubyte); stdcall;
-  glGetnColorTableARB: procedure(target: GLenum; format: GLenum; _type: GLenum; bufSize: GLsizei; table: pointer); stdcall;
-  glGetnConvolutionFilterARB: procedure(target: GLenum; format: GLenum; _type: GLenum; bufSize: GLsizei; image: pointer); stdcall;
-  glGetnSeparableFilterARB: procedure(target: GLenum; format: GLenum; _type: GLenum; rowBufSize: GLsizei; row: pointer; columnBufSize: GLsizei; column: pointer; span: pointer); stdcall;
-  glGetnHistogramARB: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; bufSize: GLsizei; values: pointer); stdcall;
-  glGetnMinmaxARB: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; bufSize: GLsizei; values: pointer); stdcall;
-  {$EndIf}
-  {$EndIf}
-
-  {$IfDef GL_ARB_sample_locations}
-  glFramebufferSampleLocationsfvARB: procedure(target: GLenum; start: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glNamedFramebufferSampleLocationsfvARB: procedure(framebuffer: GLuint; start: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glEvaluateDepthValuesARB: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sample_shading}
-  glMinSampleShadingARB: procedure(value: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_shader_objects}
-  glDeleteObjectARB: procedure(obj: GLhandleARB); stdcall;
-  glGetHandleARB: function(pname: GLenum): GLhandleARB; stdcall;
-  glDetachObjectARB: procedure(containerObj: GLhandleARB; attachedObj: GLhandleARB); stdcall;
-  glCreateShaderObjectARB: function(shaderType: GLenum): GLhandleARB; stdcall;
-  glShaderSourceARB: procedure(shaderObj: GLhandleARB; count: GLsizei; const _string: PPGLcharARB; const length: PGLint); stdcall;
-  glCompileShaderARB: procedure(shaderObj: GLhandleARB); stdcall;
-  glCreateProgramObjectARB: function: GLhandleARB; stdcall;
-  glAttachObjectARB: procedure(containerObj: GLhandleARB; obj: GLhandleARB); stdcall;
-  glLinkProgramARB: procedure(programObj: GLhandleARB); stdcall;
-  glUseProgramObjectARB: procedure(programObj: GLhandleARB); stdcall;
-  glValidateProgramARB: procedure(programObj: GLhandleARB); stdcall;
-  glUniform1fARB: procedure(location: GLint; v0: GLfloat); stdcall;
-  glUniform2fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
-  glUniform3fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
-  glUniform4fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
-  glUniform1iARB: procedure(location: GLint; v0: GLint); stdcall;
-  glUniform2iARB: procedure(location: GLint; v0: GLint; v1: GLint); stdcall;
-  glUniform3iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
-  glUniform4iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
-  glUniform1fvARB: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform2fvARB: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform3fvARB: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform4fvARB: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glUniform1ivARB: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform2ivARB: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform3ivARB: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniform4ivARB: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glUniformMatrix2fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix3fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glUniformMatrix4fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glGetObjectParameterfvARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLfloat); stdcall;
-  glGetObjectParameterivARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLint); stdcall;
-  glGetInfoLogARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; infoLog: PGLcharARB); stdcall;
-  glGetAttachedObjectsARB: procedure(containerObj: GLhandleARB; maxCount: GLsizei; count: PGLsizei; obj: PGLhandleARB); stdcall;
-  glGetUniformLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall;
-  glGetActiveUniformARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall;
-  glGetUniformfvARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); stdcall;
-  glGetUniformivARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLint); stdcall;
-  glGetShaderSourceARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; source: PGLcharARB); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_shading_language_include}
-  glNamedStringARB: procedure(_type: GLenum; namelen: GLint; const name: PGLchar; stringlen: GLint; const _string: PGLchar); stdcall;
-  glDeleteNamedStringARB: procedure(namelen: GLint; const name: PGLchar); stdcall;
-  glCompileShaderIncludeARB: procedure(shader: GLuint; count: GLsizei; const path: PPGLchar; const length: PGLint); stdcall;
-  glIsNamedStringARB: function(namelen: GLint; const name: PGLchar): GLboolean; stdcall;
-  glGetNamedStringARB: procedure(namelen: GLint; const name: PGLchar; bufSize: GLsizei; stringlen: PGLint; _string: PGLchar); stdcall;
-  glGetNamedStringivARB: procedure(namelen: GLint; const name: PGLchar; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sparse_buffer}
-  glBufferPageCommitmentARB: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; commit: GLboolean); stdcall;
-  glNamedBufferPageCommitmentEXT: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; commit: GLboolean); stdcall;
-  glNamedBufferPageCommitmentARB: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; commit: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sparse_texture}
-  glTexPageCommitmentARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; commit: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_texture_buffer_object}
-  glTexBufferARB: procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_texture_compression}
-  glCompressedTexImage3DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTexImage2DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTexImage1DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTexSubImage3DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTexSubImage2DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glCompressedTexSubImage1DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: pointer); stdcall;
-  glGetCompressedTexImageARB: procedure(target: GLenum; level: GLint; img: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_transpose_matrix}
-  glLoadTransposeMatrixfARB: procedure(const m: PGLfloat); stdcall;
-  glLoadTransposeMatrixdARB: procedure(const m: PGLdouble); stdcall;
-  glMultTransposeMatrixfARB: procedure(const m: PGLfloat); stdcall;
-  glMultTransposeMatrixdARB: procedure(const m: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_blend}
-  glWeightbvARB: procedure(size: GLint; const weights: PGLbyte); stdcall;
-  glWeightsvARB: procedure(size: GLint; const weights: PGLshort); stdcall;
-  glWeightivARB: procedure(size: GLint; const weights: PGLint); stdcall;
-  glWeightfvARB: procedure(size: GLint; const weights: PGLfloat); stdcall;
-  glWeightdvARB: procedure(size: GLint; const weights: PGLdouble); stdcall;
-  glWeightubvARB: procedure(size: GLint; const weights: PGLubyte); stdcall;
-  glWeightusvARB: procedure(size: GLint; const weights: PGLushort); stdcall;
-  glWeightuivARB: procedure(size: GLint; const weights: PGLuint); stdcall;
-  glWeightPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glVertexBlendARB: procedure(count: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_buffer_object}
-  glBindBufferARB: procedure(target: GLenum; buffer: GLuint); stdcall;
-  glDeleteBuffersARB: procedure(n: GLsizei; const buffers: PGLuint); stdcall;
-  glGenBuffersARB: procedure(n: GLsizei; buffers: PGLuint); stdcall;
-  glIsBufferARB: function(buffer: GLuint): GLboolean; stdcall;
-  glBufferDataARB: procedure(target: GLenum; size: GLsizeiptrARB; const data: pointer; usage: GLenum); stdcall;
-  glBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: pointer); stdcall;
-  glGetBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: pointer); stdcall;
-  glMapBufferARB: function(target: GLenum; access: GLenum): pointer; stdcall;
-  glUnmapBufferARB: function(target: GLenum): GLboolean; stdcall;
-  glGetBufferParameterivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetBufferPointervARB: procedure(target: GLenum; pname: GLenum; params:Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_program}
-  glVertexAttrib1dARB: procedure(index: GLuint; x: GLdouble); stdcall;
-  glVertexAttrib1dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib1fARB: procedure(index: GLuint; x: GLfloat); stdcall;
-  glVertexAttrib1fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib1sARB: procedure(index: GLuint; x: GLshort); stdcall;
-  glVertexAttrib1svARB: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib2dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
-  glVertexAttrib2dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib2fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
-  glVertexAttrib2fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib2sARB: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
-  glVertexAttrib2svARB: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib3dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexAttrib3dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib3fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glVertexAttrib3fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib3sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glVertexAttrib3svARB: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4NbvARB: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttrib4NivARB: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttrib4NsvARB: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4NubARB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
-  glVertexAttrib4NubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttrib4NuivARB: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttrib4NusvARB: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glVertexAttrib4bvARB: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttrib4dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexAttrib4dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib4fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glVertexAttrib4fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib4ivARB: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttrib4sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
-  glVertexAttrib4svARB: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4ubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttrib4uivARB: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttrib4usvARB: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glVertexAttribPointerARB: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const _pointer: pointer); stdcall;
-  glEnableVertexAttribArrayARB: procedure(index: GLuint); stdcall;
-  glDisableVertexAttribArrayARB: procedure(index: GLuint); stdcall;
-  glGetVertexAttribdvARB: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glGetVertexAttribfvARB: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVertexAttribivARB: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribPointervARB: procedure(index: GLuint; pname: GLenum; pointer:Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_shader}
-  glBindAttribLocationARB: procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); stdcall;
-  glGetActiveAttribARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall;
-  glGetAttribLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_viewport_array}
-  glDepthRangeArraydvNV: procedure(first: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glDepthRangeIndexeddNV: procedure(index: GLuint; n: GLdouble; f: GLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ARB_window_pos}
-  glWindowPos2dARB: procedure(x: GLdouble; y: GLdouble); stdcall;
-  glWindowPos2dvARB: procedure(const v: PGLdouble); stdcall;
-  glWindowPos2fARB: procedure(x: GLfloat; y: GLfloat); stdcall;
-  glWindowPos2fvARB: procedure(const v: PGLfloat); stdcall;
-  glWindowPos2iARB: procedure(x: GLint; y: GLint); stdcall;
-  glWindowPos2ivARB: procedure(const v: PGLint); stdcall;
-  glWindowPos2sARB: procedure(x: GLshort; y: GLshort); stdcall;
-  glWindowPos2svARB: procedure(const v: PGLshort); stdcall;
-  glWindowPos3dARB: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glWindowPos3dvARB: procedure(const v: PGLdouble); stdcall;
-  glWindowPos3fARB: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glWindowPos3fvARB: procedure(const v: PGLfloat); stdcall;
-  glWindowPos3iARB: procedure(x: GLint; y: GLint; z: GLint); stdcall;
-  glWindowPos3ivARB: procedure(const v: PGLint); stdcall;
-  glWindowPos3sARB: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glWindowPos3svARB: procedure(const v: PGLshort); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_KHR_blend_equation_advanced}
-  glBlendBarrierKHR: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_KHR_parallel_shader_compile}
-  glMaxShaderCompilerThreadsKHR: procedure(count: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_OES_byte_coordinates}
-  glMultiTexCoord1bOES: procedure(texture: GLenum; s: GLbyte); stdcall;
-  glMultiTexCoord1bvOES: procedure(texture: GLenum; const coords: PGLbyte); stdcall;
-  glMultiTexCoord2bOES: procedure(texture: GLenum; s: GLbyte; t: GLbyte); stdcall;
-  glMultiTexCoord2bvOES: procedure(texture: GLenum; const coords: PGLbyte); stdcall;
-  glMultiTexCoord3bOES: procedure(texture: GLenum; s: GLbyte; t: GLbyte; r: GLbyte); stdcall;
-  glMultiTexCoord3bvOES: procedure(texture: GLenum; const coords: PGLbyte); stdcall;
-  glMultiTexCoord4bOES: procedure(texture: GLenum; s: GLbyte; t: GLbyte; r: GLbyte; q: GLbyte); stdcall;
-  glMultiTexCoord4bvOES: procedure(texture: GLenum; const coords: PGLbyte); stdcall;
-  glTexCoord1bOES: procedure(s: GLbyte); stdcall;
-  glTexCoord1bvOES: procedure(const coords: PGLbyte); stdcall;
-  glTexCoord2bOES: procedure(s: GLbyte; t: GLbyte); stdcall;
-  glTexCoord2bvOES: procedure(const coords: PGLbyte); stdcall;
-  glTexCoord3bOES: procedure(s: GLbyte; t: GLbyte; r: GLbyte); stdcall;
-  glTexCoord3bvOES: procedure(const coords: PGLbyte); stdcall;
-  glTexCoord4bOES: procedure(s: GLbyte; t: GLbyte; r: GLbyte; q: GLbyte); stdcall;
-  glTexCoord4bvOES: procedure(const coords: PGLbyte); stdcall;
-  glVertex2bOES: procedure(x: GLbyte; y: GLbyte); stdcall;
-  glVertex2bvOES: procedure(const coords: PGLbyte); stdcall;
-  glVertex3bOES: procedure(x: GLbyte; y: GLbyte; z: GLbyte); stdcall;
-  glVertex3bvOES: procedure(const coords: PGLbyte); stdcall;
-  glVertex4bOES: procedure(x: GLbyte; y: GLbyte; z: GLbyte; w: GLbyte); stdcall;
-  glVertex4bvOES: procedure(const coords: PGLbyte); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_OES_fixed_point}
-  glAlphaFuncxOES: procedure(func: GLenum; ref: GLfixed); stdcall;
-  glClearColorxOES: procedure(red: GLfixed; green: GLfixed; blue: GLfixed; alpha: GLfixed); stdcall;
-  glClearDepthxOES: procedure(depth: GLfixed); stdcall;
-  glClipPlanexOES: procedure(plane: GLenum; const equation: PGLfixed); stdcall;
-  glColor4xOES: procedure(red: GLfixed; green: GLfixed; blue: GLfixed; alpha: GLfixed); stdcall;
-  glDepthRangexOES: procedure(n: GLfixed; f: GLfixed); stdcall;
-  glFogxOES: procedure(pname: GLenum; param: GLfixed); stdcall;
-  glFogxvOES: procedure(pname: GLenum; const param: PGLfixed); stdcall;
-  glFrustumxOES: procedure(l: GLfixed; r: GLfixed; b: GLfixed; t: GLfixed; n: GLfixed; f: GLfixed); stdcall;
-  glGetClipPlanexOES: procedure(plane: GLenum; equation: PGLfixed); stdcall;
-  glGetFixedvOES: procedure(pname: GLenum; params: PGLfixed); stdcall;
-  glGetTexEnvxvOES: procedure(target: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glGetTexParameterxvOES: procedure(target: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glLightModelxOES: procedure(pname: GLenum; param: GLfixed); stdcall;
-  glLightModelxvOES: procedure(pname: GLenum; const param: PGLfixed); stdcall;
-  glLightxOES: procedure(light: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glLightxvOES: procedure(light: GLenum; pname: GLenum; const params: PGLfixed); stdcall;
-  glLineWidthxOES: procedure(width: GLfixed); stdcall;
-  glLoadMatrixxOES: procedure(const m: PGLfixed); stdcall;
-  glMaterialxOES: procedure(face: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glMaterialxvOES: procedure(face: GLenum; pname: GLenum; const param: PGLfixed); stdcall;
-  glMultMatrixxOES: procedure(const m: PGLfixed); stdcall;
-  glMultiTexCoord4xOES: procedure(texture: GLenum; s: GLfixed; t: GLfixed; r: GLfixed; q: GLfixed); stdcall;
-  glNormal3xOES: procedure(nx: GLfixed; ny: GLfixed; nz: GLfixed); stdcall;
-  glOrthoxOES: procedure(l: GLfixed; r: GLfixed; b: GLfixed; t: GLfixed; n: GLfixed; f: GLfixed); stdcall;
-  glPointParameterxvOES: procedure(pname: GLenum; const params: PGLfixed); stdcall;
-  glPointSizexOES: procedure(size: GLfixed); stdcall;
-  glPolygonOffsetxOES: procedure(factor: GLfixed; units: GLfixed); stdcall;
-  glRotatexOES: procedure(angle: GLfixed; x: GLfixed; y: GLfixed; z: GLfixed); stdcall;
-  glScalexOES: procedure(x: GLfixed; y: GLfixed; z: GLfixed); stdcall;
-  glTexEnvxOES: procedure(target: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glTexEnvxvOES: procedure(target: GLenum; pname: GLenum; const params: PGLfixed); stdcall;
-  glTexParameterxOES: procedure(target: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glTexParameterxvOES: procedure(target: GLenum; pname: GLenum; const params: PGLfixed); stdcall;
-  glTranslatexOES: procedure(x: GLfixed; y: GLfixed; z: GLfixed); stdcall;
-  glAccumxOES: procedure(op: GLenum; value: GLfixed); stdcall;
-  glBitmapxOES: procedure(width: GLsizei; height: GLsizei; xorig: GLfixed; yorig: GLfixed; xmove: GLfixed; ymove: GLfixed; const bitmap: PGLubyte); stdcall;
-  glBlendColorxOES: procedure(red: GLfixed; green: GLfixed; blue: GLfixed; alpha: GLfixed); stdcall;
-  glClearAccumxOES: procedure(red: GLfixed; green: GLfixed; blue: GLfixed; alpha: GLfixed); stdcall;
-  glColor3xOES: procedure(red: GLfixed; green: GLfixed; blue: GLfixed); stdcall;
-  glColor3xvOES: procedure(const components: PGLfixed); stdcall;
-  glColor4xvOES: procedure(const components: PGLfixed); stdcall;
-  glConvolutionParameterxOES: procedure(target: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glConvolutionParameterxvOES: procedure(target: GLenum; pname: GLenum; const params: PGLfixed); stdcall;
-  glEvalCoord1xOES: procedure(u: GLfixed); stdcall;
-  glEvalCoord1xvOES: procedure(const coords: PGLfixed); stdcall;
-  glEvalCoord2xOES: procedure(u: GLfixed; v: GLfixed); stdcall;
-  glEvalCoord2xvOES: procedure(const coords: PGLfixed); stdcall;
-  glFeedbackBufferxOES: procedure(n: GLsizei; _type: GLenum; const buffer: PGLfixed); stdcall;
-  glGetConvolutionParameterxvOES: procedure(target: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glGetHistogramParameterxvOES: procedure(target: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glGetLightxOES: procedure(light: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glGetMapxvOES: procedure(target: GLenum; query: GLenum; v: PGLfixed); stdcall;
-  glGetMaterialxOES: procedure(face: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glGetPixelMapxv: procedure(map: GLenum; size: GLint; values: PGLfixed); stdcall;
-  glGetTexGenxvOES: procedure(coord: GLenum; pname: GLenum; params: PGLfixed); stdcall;
-  glGetTexLevelParameterxvOES: procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLfixed); stdcall;
-  glIndexxOES: procedure(component: GLfixed); stdcall;
-  glIndexxvOES: procedure(const component: PGLfixed); stdcall;
-  glLoadTransposeMatrixxOES: procedure(const m: PGLfixed); stdcall;
-  glMap1xOES: procedure(target: GLenum; u1: GLfixed; u2: GLfixed; stride: GLint; order: GLint; points: GLfixed); stdcall;
-  glMap2xOES: procedure(target: GLenum; u1: GLfixed; u2: GLfixed; ustride: GLint; uorder: GLint; v1: GLfixed; v2: GLfixed; vstride: GLint; vorder: GLint; points: GLfixed); stdcall;
-  glMapGrid1xOES: procedure(n: GLint; u1: GLfixed; u2: GLfixed); stdcall;
-  glMapGrid2xOES: procedure(n: GLint; u1: GLfixed; u2: GLfixed; v1: GLfixed; v2: GLfixed); stdcall;
-  glMultTransposeMatrixxOES: procedure(const m: PGLfixed); stdcall;
-  glMultiTexCoord1xOES: procedure(texture: GLenum; s: GLfixed); stdcall;
-  glMultiTexCoord1xvOES: procedure(texture: GLenum; const coords: PGLfixed); stdcall;
-  glMultiTexCoord2xOES: procedure(texture: GLenum; s: GLfixed; t: GLfixed); stdcall;
-  glMultiTexCoord2xvOES: procedure(texture: GLenum; const coords: PGLfixed); stdcall;
-  glMultiTexCoord3xOES: procedure(texture: GLenum; s: GLfixed; t: GLfixed; r: GLfixed); stdcall;
-  glMultiTexCoord3xvOES: procedure(texture: GLenum; const coords: PGLfixed); stdcall;
-  glMultiTexCoord4xvOES: procedure(texture: GLenum; const coords: PGLfixed); stdcall;
-  glNormal3xvOES: procedure(const coords: PGLfixed); stdcall;
-  glPassThroughxOES: procedure(token: GLfixed); stdcall;
-  glPixelMapx: procedure(map: GLenum; size: GLint; const values: PGLfixed); stdcall;
-  glPixelStorex: procedure(pname: GLenum; param: GLfixed); stdcall;
-  glPixelTransferxOES: procedure(pname: GLenum; param: GLfixed); stdcall;
-  glPixelZoomxOES: procedure(xfactor: GLfixed; yfactor: GLfixed); stdcall;
-  glPrioritizeTexturesxOES: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLfixed); stdcall;
-  glRasterPos2xOES: procedure(x: GLfixed; y: GLfixed); stdcall;
-  glRasterPos2xvOES: procedure(const coords: PGLfixed); stdcall;
-  glRasterPos3xOES: procedure(x: GLfixed; y: GLfixed; z: GLfixed); stdcall;
-  glRasterPos3xvOES: procedure(const coords: PGLfixed); stdcall;
-  glRasterPos4xOES: procedure(x: GLfixed; y: GLfixed; z: GLfixed; w: GLfixed); stdcall;
-  glRasterPos4xvOES: procedure(const coords: PGLfixed); stdcall;
-  glRectxOES: procedure(x1: GLfixed; y1: GLfixed; x2: GLfixed; y2: GLfixed); stdcall;
-  glRectxvOES: procedure(const v1: PGLfixed; const v2: PGLfixed); stdcall;
-  glTexCoord1xOES: procedure(s: GLfixed); stdcall;
-  glTexCoord1xvOES: procedure(const coords: PGLfixed); stdcall;
-  glTexCoord2xOES: procedure(s: GLfixed; t: GLfixed); stdcall;
-  glTexCoord2xvOES: procedure(const coords: PGLfixed); stdcall;
-  glTexCoord3xOES: procedure(s: GLfixed; t: GLfixed; r: GLfixed); stdcall;
-  glTexCoord3xvOES: procedure(const coords: PGLfixed); stdcall;
-  glTexCoord4xOES: procedure(s: GLfixed; t: GLfixed; r: GLfixed; q: GLfixed); stdcall;
-  glTexCoord4xvOES: procedure(const coords: PGLfixed); stdcall;
-  glTexGenxOES: procedure(coord: GLenum; pname: GLenum; param: GLfixed); stdcall;
-  glTexGenxvOES: procedure(coord: GLenum; pname: GLenum; const params: PGLfixed); stdcall;
-  glVertex2xOES: procedure(x: GLfixed); stdcall;
-  glVertex2xvOES: procedure(const coords: PGLfixed); stdcall;
-  glVertex3xOES: procedure(x: GLfixed; y: GLfixed); stdcall;
-  glVertex3xvOES: procedure(const coords: PGLfixed); stdcall;
-  glVertex4xOES: procedure(x: GLfixed; y: GLfixed; z: GLfixed); stdcall;
-  glVertex4xvOES: procedure(const coords: PGLfixed); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_OES_query_matrix}
-  glQueryMatrixxOES: function(mantissa: PGLfixed; exponent: PGLint): GLbitfield; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_OES_single_precision}
-  glClearDepthfOES: procedure(depth: GLclampf); stdcall;
-  glClipPlanefOES: procedure(plane: GLenum; const equation: PGLfloat); stdcall;
-  glDepthRangefOES: procedure(n: GLclampf; f: GLclampf); stdcall;
-  glFrustumfOES: procedure(l: GLfloat; r: GLfloat; b: GLfloat; t: GLfloat; n: GLfloat; f: GLfloat); stdcall;
-  glGetClipPlanefOES: procedure(plane: GLenum; equation: PGLfloat); stdcall;
-  glOrthofOES: procedure(l: GLfloat; r: GLfloat; b: GLfloat; t: GLfloat; n: GLfloat; f: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_3DFX_tbuffer}
-  glTbufferMask3DFX: procedure(mask: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_debug_output}
-  glDebugMessageEnableAMD: procedure(category: GLenum; severity: GLenum; count: GLsizei; const ids: PGLuint; enabled: GLboolean); stdcall;
-  glDebugMessageInsertAMD: procedure(category: GLenum; severity: GLenum; id: GLuint; length: GLsizei; const buf: PGLchar); stdcall;
-  glDebugMessageCallbackAMD: procedure(callback: GLDEBUGPROCAMD; userParam: pointer); stdcall;
-  glGetDebugMessageLogAMD: function(count: GLuint; bufSize: GLsizei; categories: PGLenum; severities: PGLuint; ids: PGLuint; lengths: PGLsizei; _message: PGLchar): GLuint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_draw_buffers_blend}
-  glBlendFuncIndexedAMD: procedure(buf: GLuint; src: GLenum; dst: GLenum); stdcall;
-  glBlendFuncSeparateIndexedAMD: procedure(buf: GLuint; srcRGB: GLenum; dstRGB: GLenum; srcAlpha: GLenum; dstAlpha: GLenum); stdcall;
-  glBlendEquationIndexedAMD: procedure(buf: GLuint; mode: GLenum); stdcall;
-  glBlendEquationSeparateIndexedAMD: procedure(buf: GLuint; modeRGB: GLenum; modeAlpha: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_framebuffer_multisample_advanced}
-  glRenderbufferStorageMultisampleAdvancedAMD: procedure(target: GLenum; samples: GLsizei; storageSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glNamedRenderbufferStorageMultisampleAdvancedAMD: procedure(renderbuffer: GLuint; samples: GLsizei; storageSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_framebuffer_sample_positions}
-  glFramebufferSamplePositionsfvAMD: procedure(target: GLenum; numsamples: GLuint; pixelindex: GLuint; const values: PGLfloat); stdcall;
-  glNamedFramebufferSamplePositionsfvAMD: procedure(framebuffer: GLuint; numsamples: GLuint; pixelindex: GLuint; const values: PGLfloat); stdcall;
-  glGetFramebufferParameterfvAMD: procedure(target: GLenum; pname: GLenum; numsamples: GLuint; pixelindex: GLuint; size: GLsizei; values: PGLfloat); stdcall;
-  glGetNamedFramebufferParameterfvAMD: procedure(framebuffer: GLuint; pname: GLenum; numsamples: GLuint; pixelindex: GLuint; size: GLsizei; values: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$If defined(GL_AMD_gpu_shader_int64) or defined(GL_NV_gpu_shader5)}
-  glUniform1i64NV: procedure(location: GLint; x: GLint64EXT); stdcall;
-  glUniform2i64NV: procedure(location: GLint; x: GLint64EXT; y: GLint64EXT); stdcall;
-  glUniform3i64NV: procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); stdcall;
-  glUniform4i64NV: procedure(location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); stdcall;
-  glUniform1i64vNV: procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glUniform2i64vNV: procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glUniform3i64vNV: procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glUniform4i64vNV: procedure(location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glUniform1ui64NV: procedure(location: GLint; x: GLuint64EXT); stdcall;
-  glUniform2ui64NV: procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT); stdcall;
-  glUniform3ui64NV: procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); stdcall;
-  glUniform4ui64NV: procedure(location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); stdcall;
-  glUniform1ui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glUniform2ui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glUniform3ui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glUniform4ui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glGetUniformi64vNV: procedure(_program: GLuint; location: GLint; params: PGLint64EXT); stdcall;
-  glProgramUniform1i64NV: procedure(_program: GLuint; location: GLint; x: GLint64EXT); stdcall;
-  glProgramUniform2i64NV: procedure(_program: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT); stdcall;
-  glProgramUniform3i64NV: procedure(_program: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); stdcall;
-  glProgramUniform4i64NV: procedure(_program: GLuint; location: GLint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); stdcall;
-  glProgramUniform1i64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glProgramUniform2i64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glProgramUniform3i64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glProgramUniform4i64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint64EXT); stdcall;
-  glProgramUniform1ui64NV: procedure(_program: GLuint; location: GLint; x: GLuint64EXT); stdcall;
-  glProgramUniform2ui64NV: procedure(_program: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT); stdcall;
-  glProgramUniform3ui64NV: procedure(_program: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); stdcall;
-  glProgramUniform4ui64NV: procedure(_program: GLuint; location: GLint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); stdcall;
-  glProgramUniform1ui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glProgramUniform2ui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glProgramUniform3ui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glProgramUniform4ui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  {$IfEnd}
-  {$If defined(GL_AMD_gpu_shader_int64) or defined(GL_NV_shader_buffer_load)}
-  glGetUniformui64vNV: procedure(_program: GLuint; location: GLint; params: PGLuint64EXT); stdcall;
-  {$IfEnd}
-
-  {$IfDef GL_AMD_interleaved_elements}
-  glVertexAttribParameteriAMD: procedure(index: GLuint; pname: GLenum; param: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_multi_draw_indirect}
-  glMultiDrawArraysIndirectAMD: procedure(mode: GLenum; const indirect: pointer; primcount: GLsizei; stride: GLsizei); stdcall;
-  glMultiDrawElementsIndirectAMD: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; primcount: GLsizei; stride: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_name_gen_delete}
-  glGenNamesAMD: procedure(identifier: GLenum; num: GLuint; names: PGLuint); stdcall;
-  glDeleteNamesAMD: procedure(identifier: GLenum; num: GLuint; const names: PGLuint); stdcall;
-  glIsNameAMD: function(identifier: GLenum; name: GLuint): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_occlusion_query_event}
-  glQueryObjectParameteruiAMD: procedure(target: GLenum; id: GLuint; pname: GLenum; param: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_performance_monitor}
-  glGetPerfMonitorGroupsAMD: procedure(numGroups: PGLint; groupsSize: GLsizei; groups: PGLuint); stdcall;
-  glGetPerfMonitorCountersAMD: procedure(group: GLuint; numCounters: PGLint; maxActiveCounters: PGLint; counterSize: GLsizei; counters: PGLuint); stdcall;
-  glGetPerfMonitorGroupStringAMD: procedure(group: GLuint; bufSize: GLsizei; length: PGLsizei; groupString: PGLchar); stdcall;
-  glGetPerfMonitorCounterStringAMD: procedure(group: GLuint; counter: GLuint; bufSize: GLsizei; length: PGLsizei; counterString: PGLchar); stdcall;
-  glGetPerfMonitorCounterInfoAMD: procedure(group: GLuint; counter: GLuint; pname: GLenum; data: pointer); stdcall;
-  glGenPerfMonitorsAMD: procedure(n: GLsizei; monitors: PGLuint); stdcall;
-  glDeletePerfMonitorsAMD: procedure(n: GLsizei; monitors: PGLuint); stdcall;
-  glSelectPerfMonitorCountersAMD: procedure(monitor: GLuint; enable: GLboolean; group: GLuint; numCounters: GLint; counterList: PGLuint); stdcall;
-  glBeginPerfMonitorAMD: procedure(monitor: GLuint); stdcall;
-  glEndPerfMonitorAMD: procedure(monitor: GLuint); stdcall;
-  glGetPerfMonitorCounterDataAMD: procedure(monitor: GLuint; pname: GLenum; dataSize: GLsizei; data: PGLuint; bytesWritten: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_sample_positions}
-  glSetMultisamplefvAMD: procedure(pname: GLenum; index: GLuint; const val: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_sparse_texture}
-  glTexStorageSparseAMD: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; layers: GLsizei; flags: GLbitfield); stdcall;
-  glTextureStorageSparseAMD: procedure(texture: GLuint; target: GLenum; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; layers: GLsizei; flags: GLbitfield); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_stencil_operation_extended}
-  glStencilOpValueAMD: procedure(face: GLenum; value: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_AMD_vertex_shader_tessellator}
-  glTessellationFactorAMD: procedure(factor: GLfloat); stdcall;
-  glTessellationModeAMD: procedure(mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_element_array}
-  glElementPointerAPPLE: procedure(_type: GLenum; const _pointer: pointer); stdcall;
-  glDrawElementArrayAPPLE: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall;
-  glDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); stdcall;
-  glMultiDrawElementArrayAPPLE: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall;
-  glMultiDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_fence}
-  glGenFencesAPPLE: procedure(n: GLsizei; fences: PGLuint); stdcall;
-  glDeleteFencesAPPLE: procedure(n: GLsizei; const fences: PGLuint); stdcall;
-  glSetFenceAPPLE: procedure(fence: GLuint); stdcall;
-  glIsFenceAPPLE: function(fence: GLuint): GLboolean; stdcall;
-  glTestFenceAPPLE: function(fence: GLuint): GLboolean; stdcall;
-  glFinishFenceAPPLE: procedure(fence: GLuint); stdcall;
-  glTestObjectAPPLE: function(_object: GLenum; name: GLuint): GLboolean; stdcall;
-  glFinishObjectAPPLE: procedure(_object: GLenum; name: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_flush_buffer_range}
-  glBufferParameteriAPPLE: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glFlushMappedBufferRangeAPPLE: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_object_purgeable}
-  glObjectPurgeableAPPLE: function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; stdcall;
-  glObjectUnpurgeableAPPLE: function(objectType: GLenum; name: GLuint; option: GLenum): GLenum; stdcall;
-  glGetObjectParameterivAPPLE: procedure(objectType: GLenum; name: GLuint; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_texture_range}
-  glTextureRangeAPPLE: procedure(target: GLenum; length: GLsizei; const _pointer: pointer); stdcall;
-  glGetTexParameterPointervAPPLE: procedure(target: GLenum; pname: GLenum; params:Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_array_object}
-  glBindVertexArrayAPPLE: procedure(_array: GLuint); stdcall;
-  glDeleteVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); stdcall;
-  glGenVertexArraysAPPLE: procedure(n: GLsizei; arrays: PGLuint); stdcall;
-  functionglIsVertexArrayAPPLE: function(_array: GLuint): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_array_range}
-  glVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: pointer); stdcall;
-  glFlushVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: pointer); stdcall;
-  glVertexArrayParameteriAPPLE: procedure(pname: GLenum; param: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_program_evaluators}
-  glEnableVertexAttribAPPLE: procedure(index: GLuint; pname: GLenum); stdcall;
-  glDisableVertexAttribAPPLE: procedure(index: GLuint; pname: GLenum); stdcall;
-  glIsVertexAttribEnabledAPPLE: function(index: GLuint; pname: GLenum): GLboolean; stdcall;
-  glMapVertexAttrib1dAPPLE: procedure(index: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; stride: GLint; order: GLint; const points: PGLdouble); stdcall;
-  glMapVertexAttrib1fAPPLE: procedure(index: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; stride: GLint; order: GLint; const points: PGLfloat); stdcall;
-  glMapVertexAttrib2dAPPLE: procedure(index: GLuint; size: GLuint; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; const points: PGLdouble); stdcall;
-  glMapVertexAttrib2fAPPLE: procedure(index: GLuint; size: GLuint; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; const points: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_draw_buffers}
-  glDrawBuffersATI: procedure(n: GLsizei; const bufs: PGLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_element_array}
-  glElementPointerATI: procedure(_type: GLenum; const _pointer: pointer); stdcall;
-  glDrawElementArrayATI: procedure(mode: GLenum; count: GLsizei); stdcall;
-  glDrawRangeElementArrayATI: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_envmap_bumpmap}
-  glTexBumpParameterivATI: procedure(pname: GLenum; const param: PGLint); stdcall;
-  glTexBumpParameterfvATI: procedure(pname: GLenum; const param: PGLfloat); stdcall;
-  glGetTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); stdcall;
-  glGetTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_fragment_shader}
-  glGenFragmentShadersATI: function(range: GLuint): GLuint; stdcall;
-  glBindFragmentShaderATI: procedure(id: GLuint); stdcall;
-  glDeleteFragmentShaderATI: procedure(id: GLuint); stdcall;
-  glBeginFragmentShaderATI: procedure;  stdcall;
-  glEndFragmentShaderATI: procedure; stdcall;
-  glPassTexCoordATI: procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); stdcall;
-  glSampleMapATI: procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); stdcall;
-  glColorFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall;
-  glColorFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall;
-  glColorFragmentOp3ATI: procedure(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); stdcall;
-  glAlphaFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall;
-  glAlphaFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall;
-  glAlphaFragmentOp3ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); stdcall;
-  glSetFragmentShaderConstantATI: procedure(dst: GLuint; const value: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_map_object_buffer}
-  glMapObjectBufferATI: function(buffer: GLuint): pointer;
-  glUnmapObjectBufferATI: procedure(buffer: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_pn_triangles}
-  glPNTrianglesiATI: procedure(pname: GLenum; param: GLint); stdcall;
-  glPNTrianglesfATI: procedure(pname: GLenum; param: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_separate_stencil}
-  glStencilOpSeparateATI: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall;
-  glStencilFuncSeparateATI: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_array_object}
-  glNewObjectBufferATI: function(size: GLsizei; const _pointer: pointer; usage: GLenum): GLuint; stdcall;
-  glIsObjectBufferATI: function(buffer: GLuint): GLboolean; stdcall;
-  glUpdateObjectBufferATI: procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const _pointer: pointer; preserve: GLenum); stdcall;
-  glGetObjectBufferfvATI: procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetObjectBufferivATI: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glFreeObjectBufferATI: procedure(buffer: GLuint); stdcall;
-  glArrayObjectATI: procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
-  glGetArrayObjectfvATI: procedure(_array: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetArrayObjectivATI: procedure(_array: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glVariantArrayObjectATI: procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
-  glGetVariantArrayObjectfvATI: procedure(id: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVariantArrayObjectivATI: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_attrib_array_object}
-  glVertexAttribArrayObjectATI: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall;
-  glGetVertexAttribArrayObjectfvATI: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVertexAttribArrayObjectivATI: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_streams}
-  glVertexStream1sATI: procedure(stream: GLenum; x: GLshort); stdcall;
-  glVertexStream1svATI: procedure(stream: GLenum; const coords: PGLshort); stdcall;
-  glVertexStream1iATI: procedure(stream: GLenum; x: GLint); stdcall;
-  glVertexStream1ivATI: procedure(stream: GLenum; const coords: PGLint); stdcall;
-  glVertexStream1fATI: procedure(stream: GLenum; x: GLfloat); stdcall;
-  glVertexStream1fvATI: procedure(stream: GLenum; const coords: PGLfloat); stdcall;
-  glVertexStream1dATI: procedure(stream: GLenum; x: GLdouble); stdcall;
-  glVertexStream1dvATI: procedure(stream: GLenum; const coords: PGLdouble); stdcall;
-  glVertexStream2sATI: procedure(stream: GLenum; x: GLshort; y: GLshort); stdcall;
-  glVertexStream2svATI: procedure(stream: GLenum; const coords: PGLshort); stdcall;
-  glVertexStream2iATI: procedure(stream: GLenum; x: GLint; y: GLint); stdcall;
-  glVertexStream2ivATI: procedure(stream: GLenum; const coords: PGLint); stdcall;
-  glVertexStream2fATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat); stdcall;
-  glVertexStream2fvATI: procedure(stream: GLenum; const coords: PGLfloat); stdcall;
-  glVertexStream2dATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble); stdcall;
-  glVertexStream2dvATI: procedure(stream: GLenum; const coords: PGLdouble); stdcall;
-  glVertexStream3sATI: procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glVertexStream3svATI: procedure(stream: GLenum; const coords: PGLshort); stdcall;
-  glVertexStream3iATI: procedure(stream: GLenum; x: GLint; y: GLint; z: GLint); stdcall;
-  glVertexStream3ivATI: procedure(stream: GLenum; const coords: PGLint); stdcall;
-  glVertexStream3fATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glVertexStream3fvATI: procedure(stream: GLenum; const coords: PGLfloat); stdcall;
-  glVertexStream3dATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexStream3dvATI: procedure(stream: GLenum; const coords: PGLdouble); stdcall;
-  glVertexStream4sATI: procedure(stream: GLenum; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
-  glVertexStream4svATI: procedure(stream: GLenum; const coords: PGLshort); stdcall;
-  glVertexStream4iATI: procedure(stream: GLenum; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glVertexStream4ivATI: procedure(stream: GLenum; const coords: PGLint); stdcall;
-  glVertexStream4fATI: procedure(stream: GLenum; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glVertexStream4fvATI: procedure(stream: GLenum; const coords: PGLfloat); stdcall;
-  glVertexStream4dATI: procedure(stream: GLenum; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexStream4dvATI: procedure(stream: GLenum; const coords: PGLdouble); stdcall;
-  glNormalStream3bATI: procedure(stream: GLenum; nx: GLbyte; ny: GLbyte; nz: GLbyte); stdcall;
-  glNormalStream3bvATI: procedure(stream: GLenum; const coords: PGLbyte); stdcall;
-  glNormalStream3sATI: procedure(stream: GLenum; nx: GLshort; ny: GLshort; nz: GLshort); stdcall;
-  glNormalStream3svATI: procedure(stream: GLenum; const coords: PGLshort); stdcall;
-  glNormalStream3iATI: procedure(stream: GLenum; nx: GLint; ny: GLint; nz: GLint); stdcall;
-  glNormalStream3ivATI: procedure(stream: GLenum; const coords: PGLint); stdcall;
-  glNormalStream3fATI: procedure(stream: GLenum; nx: GLfloat; ny: GLfloat; nz: GLfloat); stdcall;
-  glNormalStream3fvATI: procedure(stream: GLenum; const coords: PGLfloat); stdcall;
-  glNormalStream3dATI: procedure(stream: GLenum; nx: GLdouble; ny: GLdouble; nz: GLdouble); stdcall;
-  glNormalStream3dvATI: procedure(stream: GLenum; const coords: PGLdouble); stdcall;
-  glClientActiveVertexStreamATI: procedure(stream: GLenum); stdcall;
-  glVertexBlendEnviATI: procedure(pname: GLenum; param: GLint); stdcall;
-  glVertexBlendEnvfATI: procedure(pname: GLenum; param: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_EGL_image_storage}
-  glEGLImageTargetTexStorageEXT: procedure(target: GLenum; image: GLeglImageOES; const attrib_list: PGLint); stdcall;
-  glEGLImageTargetTextureStorageEXT: procedure(texture: GLuint; image: GLeglImageOES; const attrib_list: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_bindable_uniform}
-  glUniformBufferEXT: procedure(_program: GLuint; location: GLint; buffer: GLuint); stdcall;
-  glGetUniformBufferSizeEXT: function(_program: GLuint; location: GLint): GLint; stdcall;
-  glGetUniformOffsetEXT: function(_program: GLuint; location: GLint): GLintptr; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_color}
-  glBlendColorEXT: procedure(red: GLfloat; green: GLfloat; blue: GLfloat; alpha: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_equation_separate}
-  glBlendEquationSeparateEXT: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall;
-  {$EndIf}
-
-(*  {$IfDef GL_EXT_blend_func_separate}
-  glBlendFuncSeparateEXT: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_minmax}
-  glBlendEquationEXT: procedure(mode: GLenum); stdcall;
-  {$EndIf}   *)
-
-  {$IfDef GL_EXT_color_subtable}
-  glColorSubTableEXT: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glCopyColorSubTableEXT: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_compiled_vertex_array}
-  glLockArraysEXT: procedure(first: GLint; count: GLsizei); stdcall;
-  glUnlockArraysEXT: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_convolution}
-  glConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: pointer); stdcall;
-  glConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: pointer); stdcall;
-  glConvolutionParameterfEXT: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall;
-  glConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glConvolutionParameteriEXT: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall;
-  glConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glCopyConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glGetConvolutionFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; image: pointer); stdcall;
-  glGetConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetSeparableFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; row: pointer; column: pointer; span: pointer); stdcall;
-  glSeparableFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: pointer; const column: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_coordinate_frame}
-  glTangent3bEXT: procedure(tx: GLbyte; ty: GLbyte; tz: GLbyte); stdcall;
-  glTangent3bvEXT: procedure(const v: PGLbyte); stdcall;
-  glTangent3dEXT: procedure(tx: GLdouble; ty: GLdouble; tz: GLdouble); stdcall;
-  glTangent3dvEXT: procedure(const v: PGLdouble); stdcall;
-  glTangent3fEXT: procedure(tx: GLfloat; ty: GLfloat; tz: GLfloat); stdcall;
-  glTangent3fvEXT: procedure(const v: PGLfloat); stdcall;
-  glTangent3iEXT: procedure(tx: GLint; ty: GLint; tz: GLint); stdcall;
-  glTangent3ivEXT: procedure(const v: PGLint); stdcall;
-  glTangent3sEXT: procedure(tx: GLshort; ty: GLshort; tz: GLshort); stdcall;
-  glTangent3svEXT: procedure(const v: PGLshort); stdcall;
-  glBinormal3bEXT: procedure(bx: GLbyte; by: GLbyte; bz: GLbyte); stdcall;
-  glBinormal3bvEXT: procedure(const v: PGLbyte); stdcall;
-  glBinormal3dEXT: procedure(bx: GLdouble; by: GLdouble; bz: GLdouble); stdcall;
-  glBinormal3dvEXT: procedure(const v: PGLdouble); stdcall;
-  glBinormal3fEXT: procedure(bx: GLfloat; by: GLfloat; bz: GLfloat); stdcall;
-  glBinormal3fvEXT: procedure(const v: PGLfloat); stdcall;
-  glBinormal3iEXT: procedure(bx: GLint; by: GLint; bz: GLint); stdcall;
-  glBinormal3ivEXT: procedure(const v: PGLint); stdcall;
-  glBinormal3sEXT: procedure(bx: GLshort; by: GLshort; bz: GLshort); stdcall;
-  glBinormal3svEXT: procedure(const v: PGLshort); stdcall;
-  glTangentPointerEXT: procedure(_type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glBinormalPointerEXT: procedure(_type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_copy_texture}
-  glCopyTexImage1DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); stdcall;
-  glCopyTexImage2DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); stdcall;
-  glCopyTexSubImage1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyTexSubImage2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glCopyTexSubImage3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_cull_vertex}
-  glCullParameterdvEXT: procedure(pname: GLenum; params: PGLdouble); stdcall;
-  glCullParameterfvEXT: procedure(pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_debug_label}
-  glLabelObjectEXT: procedure(_type: GLenum; _object: GLuint; length: GLsizei; const _label: PGLchar); stdcall;
-  glGetObjectLabelEXT: procedure(_type: GLenum; _object: GLuint; bufSize: GLsizei; length: PGLsizei; _label: PGLchar); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_debug_marker}
-  glInsertEventMarkerEXT: procedure(length: GLsizei; const marker: PGLchar); stdcall;
-  glPushGroupMarkerEXT: procedure(length: GLsizei; const marker: PGLchar); stdcall;
-  glPopGroupMarkerEXT: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_depth_bounds_test}
-  glDepthBoundsEXT: procedure(zmin: GLclampd; zmax: GLclampd); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_direct_state_access}
-  glMatrixLoadfEXT: procedure(mode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixLoaddEXT: procedure(mode: GLenum; const m: PGLdouble); stdcall;
-  glMatrixMultfEXT: procedure(mode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixMultdEXT: procedure(mode: GLenum; const m: PGLdouble); stdcall;
-  glMatrixLoadIdentityEXT: procedure(mode: GLenum); stdcall;
-  glMatrixRotatefEXT: procedure(mode: GLenum; angle: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glMatrixRotatedEXT: procedure(mode: GLenum; angle: GLdouble; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glMatrixScalefEXT: procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glMatrixScaledEXT: procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glMatrixTranslatefEXT: procedure(mode: GLenum; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glMatrixTranslatedEXT: procedure(mode: GLenum; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glMatrixFrustumEXT: procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); stdcall;
-  glMatrixOrthoEXT: procedure(mode: GLenum; left: GLdouble; right: GLdouble; bottom: GLdouble; top: GLdouble; zNear: GLdouble; zFar: GLdouble); stdcall;
-  glMatrixPopEXT: procedure(mode: GLenum); stdcall;
-  glMatrixPushEXT: procedure(mode: GLenum); stdcall;
-  glClientAttribDefaultEXT: procedure(mask: GLbitfield); stdcall;
-  glPushClientAttribDefaultEXT: procedure(mask: GLbitfield); stdcall;
-  glTextureParameterfEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glTextureParameterfvEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glTextureParameteriEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glTextureParameterivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glTextureImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureSubImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureSubImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glCopyTextureImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); stdcall;
-  glCopyTextureImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); stdcall;
-  glCopyTextureSubImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyTextureSubImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glGetTextureImageEXT: procedure(texture: GLuint; target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); stdcall;
-  glGetTextureParameterfvEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetTextureParameterivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetTextureLevelParameterfvEXT: procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetTextureLevelParameterivEXT: procedure(texture: GLuint; target: GLenum; level: GLint; pname: GLenum; params: PGLint); stdcall;
-  glTextureImage3DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTextureSubImage3DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glCopyTextureSubImage3DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glBindMultiTextureEXT: procedure(texunit: GLenum; target: GLenum; texture: GLuint); stdcall;
-  glMultiTexCoordPointerEXT: procedure(texunit: GLenum; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glMultiTexEnvfEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glMultiTexEnvfvEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glMultiTexEnviEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glMultiTexEnvivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glMultiTexGendEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; param: GLdouble); stdcall;
-  glMultiTexGendvEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; const params: PGLdouble); stdcall;
-  glMultiTexGenfEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glMultiTexGenfvEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glMultiTexGeniEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; param: GLint); stdcall;
-  glMultiTexGenivEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glGetMultiTexEnvfvEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMultiTexEnvivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMultiTexGendvEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLdouble); stdcall;
-  glGetMultiTexGenfvEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMultiTexGenivEXT: procedure(texunit: GLenum; coord: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glMultiTexParameteriEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glMultiTexParameterivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glMultiTexParameterfEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glMultiTexParameterfvEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glMultiTexImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glMultiTexImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glMultiTexSubImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glMultiTexSubImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glCopyMultiTexImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; border: GLint); stdcall;
-  glCopyMultiTexImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei; border: GLint); stdcall;
-  glCopyMultiTexSubImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glCopyMultiTexSubImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glGetMultiTexImageEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; format: GLenum; _type: GLenum; pixels: pointer); stdcall;
-  glGetMultiTexParameterfvEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMultiTexParameterivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMultiTexLevelParameterfvEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMultiTexLevelParameterivEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; pname: GLenum; params: PGLint); stdcall;
-  glMultiTexImage3DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glMultiTexSubImage3DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glCopyMultiTexSubImage3DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glEnableClientStateIndexedEXT: procedure(_array: GLenum; index: GLuint); stdcall;
-  glDisableClientStateIndexedEXT: procedure(_array: GLenum; index: GLuint); stdcall;
-  glGetFloatIndexedvEXT: procedure(target: GLenum; index: GLuint; data: PGLfloat); stdcall;
-  glGetDoubleIndexedvEXT: procedure(target: GLenum; index: GLuint; data: PGLdouble); stdcall;
-  glGetPointerIndexedvEXT: procedure(target: GLenum; index: GLuint; data:Ppointer); stdcall;
-  glEnableIndexedEXT: procedure(target: GLenum; index: GLuint); stdcall;
-  glDisableIndexedEXT: procedure(target: GLenum; index: GLuint); stdcall;
-  glIsEnabledIndexedEXT: function(target: GLenum; index: GLuint): GLboolean; stdcall;
-  glGetIntegerIndexedvEXT: procedure(target: GLenum; index: GLuint; data: PGLint); stdcall;
-  glGetBooleanIndexedvEXT: procedure(target: GLenum; index: GLuint; data: PGLboolean); stdcall;
-  glCompressedTextureImage3DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedTextureImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedTextureImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedTextureSubImage3DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedTextureSubImage2DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedTextureSubImage1DEXT: procedure(texture: GLuint; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glGetCompressedTextureImageEXT: procedure(texture: GLuint; target: GLenum; lod: GLint; img: pointer); stdcall;
-  glCompressedMultiTexImage3DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedMultiTexImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedMultiTexImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedMultiTexSubImage3DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedMultiTexSubImage2DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glCompressedMultiTexSubImage1DEXT: procedure(texunit: GLenum; target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const bits: pointer); stdcall;
-  glGetCompressedMultiTexImageEXT: procedure(texunit: GLenum; target: GLenum; lod: GLint; img: pointer); stdcall;
-  glMatrixLoadTransposefEXT: procedure(mode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixLoadTransposedEXT: procedure(mode: GLenum; const m: PGLdouble); stdcall;
-  glMatrixMultTransposefEXT: procedure(mode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixMultTransposedEXT: procedure(mode: GLenum; const m: PGLdouble); stdcall;
-  glNamedBufferDataEXT: procedure(buffer: GLuint; size: GLsizeiptr; const data: pointer; usage: GLenum); stdcall;
-  glNamedBufferSubDataEXT: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: pointer); stdcall;
-  glMapNamedBufferEXT: function(buffer: GLuint; access: GLenum): pointer; stdcall;
-  glUnmapNamedBufferEXT: function(buffer: GLuint): GLboolean; stdcall;
-  glGetNamedBufferParameterivEXT: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetNamedBufferPointervEXT: procedure(buffer: GLuint; pname: GLenum; params:Ppointer); stdcall;
-  glGetNamedBufferSubDataEXT: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: pointer); stdcall;
-  glProgramUniform1fEXT: procedure(_program: GLuint; location: GLint; v0: GLfloat); stdcall;
-  glProgramUniform2fEXT: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat); stdcall;
-  glProgramUniform3fEXT: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall;
-  glProgramUniform4fEXT: procedure(_program: GLuint; location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall;
-  glProgramUniform1iEXT: procedure(_program: GLuint; location: GLint; v0: GLint); stdcall;
-  glProgramUniform2iEXT: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint); stdcall;
-  glProgramUniform3iEXT: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall;
-  glProgramUniform4iEXT: procedure(_program: GLuint; location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall;
-  glProgramUniform1fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform2fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform3fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform4fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLfloat); stdcall;
-  glProgramUniform1ivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform2ivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform3ivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniform4ivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLint); stdcall;
-  glProgramUniformMatrix2fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix2x3fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3x2fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix2x4fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4x2fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix3x4fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glProgramUniformMatrix4x3fvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall;
-  glTextureBufferEXT: procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint); stdcall;
-  glMultiTexBufferEXT: procedure(texunit: GLenum; target: GLenum; internalformat: GLenum; buffer: GLuint); stdcall;
-  glTextureParameterIivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glTextureParameterIuivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; const params: PGLuint); stdcall;
-  glGetTextureParameterIivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetTextureParameterIuivEXT: procedure(texture: GLuint; target: GLenum; pname: GLenum; params: PGLuint); stdcall;
-  glMultiTexParameterIivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glMultiTexParameterIuivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; const params: PGLuint); stdcall;
-  glGetMultiTexParameterIivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMultiTexParameterIuivEXT: procedure(texunit: GLenum; target: GLenum; pname: GLenum; params: PGLuint); stdcall;
-  glProgramUniform1uiEXT: procedure(_program: GLuint; location: GLint; v0: GLuint); stdcall;
-  glProgramUniform2uiEXT: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint); stdcall;
-  glProgramUniform3uiEXT: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); stdcall;
-  glProgramUniform4uiEXT: procedure(_program: GLuint; location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); stdcall;
-  glProgramUniform1uivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform2uivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform3uivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glProgramUniform4uivEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glNamedProgramLocalParameters4fvEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); stdcall;
-  glNamedProgramLocalParameterI4iEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glNamedProgramLocalParameterI4ivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; const params: PGLint); stdcall;
-  glNamedProgramLocalParametersI4ivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); stdcall;
-  glNamedProgramLocalParameterI4uiEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); stdcall;
-  glNamedProgramLocalParameterI4uivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; const params: PGLuint); stdcall;
-  glNamedProgramLocalParametersI4uivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); stdcall;
-  glGetNamedProgramLocalParameterIivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; params: PGLint); stdcall;
-  glGetNamedProgramLocalParameterIuivEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; params: PGLuint); stdcall;
-  glEnableClientStateiEXT: procedure(_array: GLenum; index: GLuint); stdcall;
-  glDisableClientStateiEXT: procedure(_array: GLenum; index: GLuint); stdcall;
-  glGetFloati_vEXT: procedure(pname: GLenum; index: GLuint; params: PGLfloat); stdcall;
-  glGetDoublei_vEXT: procedure(pname: GLenum; index: GLuint; params: PGLdouble); stdcall;
-  glGetPointeri_vEXT: procedure(pname: GLenum; index: GLuint; params:Ppointer); stdcall;
-  glNamedProgramStringEXT: procedure(_program: GLuint; target: GLenum; format: GLenum; len: GLsizei; const _string: pointer); stdcall;
-  glNamedProgramLocalParameter4dEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glNamedProgramLocalParameter4dvEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; const params: PGLdouble); stdcall;
-  glNamedProgramLocalParameter4fEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glNamedProgramLocalParameter4fvEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; const params: PGLfloat); stdcall;
-  glGetNamedProgramLocalParameterdvEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; params: PGLdouble); stdcall;
-  glGetNamedProgramLocalParameterfvEXT: procedure(_program: GLuint; target: GLenum; index: GLuint; params: PGLfloat); stdcall;
-  glGetNamedProgramivEXT: procedure(_program: GLuint; target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetNamedProgramStringEXT: procedure(_program: GLuint; target: GLenum; pname: GLenum; _string: pointer); stdcall;
-  glNamedRenderbufferStorageEXT: procedure(renderbuffer: GLuint; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glGetNamedRenderbufferParameterivEXT: procedure(renderbuffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glNamedRenderbufferStorageMultisampleEXT: procedure(renderbuffer: GLuint; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glNamedRenderbufferStorageMultisampleCoverageEXT: procedure(renderbuffer: GLuint; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glCheckNamedFramebufferStatusEXT: function(framebuffer: GLuint; target: GLenum): GLenum; stdcall;
-  glNamedFramebufferTexture1DEXT: procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-  glNamedFramebufferTexture2DEXT: procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-  glNamedFramebufferTexture3DEXT: procedure(framebuffer: GLuint; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall;
-  glNamedFramebufferRenderbufferEXT: procedure(framebuffer: GLuint; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
-  glGetNamedFramebufferAttachmentParameterivEXT: procedure(framebuffer: GLuint; attachment: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGenerateTextureMipmapEXT: procedure(texture: GLuint; target: GLenum); stdcall;
-  glGenerateMultiTexMipmapEXT: procedure(texunit: GLenum; target: GLenum); stdcall;
-  glFramebufferDrawBufferEXT: procedure(framebuffer: GLuint; mode: GLenum); stdcall;
-  glFramebufferDrawBuffersEXT: procedure(framebuffer: GLuint; n: GLsizei; const bufs: PGLenum); stdcall;
-  glFramebufferReadBufferEXT: procedure(framebuffer: GLuint; mode: GLenum); stdcall;
-  glGetFramebufferParameterivEXT: procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glNamedCopyBufferSubDataEXT: procedure(readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); stdcall;
-  glNamedFramebufferTextureEXT: procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint); stdcall;
-  glNamedFramebufferTextureLayerEXT: procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall;
-  glNamedFramebufferTextureFaceEXT: procedure(framebuffer: GLuint; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); stdcall;
-  glTextureRenderbufferEXT: procedure(texture: GLuint; target: GLenum; renderbuffer: GLuint); stdcall;
-  glMultiTexRenderbufferEXT: procedure(texunit: GLenum; target: GLenum; renderbuffer: GLuint); stdcall;
-  glVertexArrayVertexOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayColorOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayEdgeFlagOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayIndexOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayNormalOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayTexCoordOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayMultiTexCoordOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; texunit: GLenum; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayFogCoordOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArraySecondaryColorOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayVertexAttribOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; offset: GLintptr); stdcall;
-  glVertexArrayVertexAttribIOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glEnableVertexArrayEXT: procedure(vaobj: GLuint; _array: GLenum); stdcall;
-  glDisableVertexArrayEXT: procedure(vaobj: GLuint; _array: GLenum); stdcall;
-  glEnableVertexArrayAttribEXT: procedure(vaobj: GLuint; index: GLuint); stdcall;
-  glDisableVertexArrayAttribEXT: procedure(vaobj: GLuint; index: GLuint); stdcall;
-  glGetVertexArrayIntegervEXT: procedure(vaobj: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetVertexArrayPointervEXT: procedure(vaobj: GLuint; pname: GLenum; param:Ppointer); stdcall;
-  glGetVertexArrayIntegeri_vEXT: procedure(vaobj: GLuint; index: GLuint; pname: GLenum; param: PGLint); stdcall;
-  glGetVertexArrayPointeri_vEXT: procedure(vaobj: GLuint; index: GLuint; pname: GLenum; param:Ppointer); stdcall;
-  glMapNamedBufferRangeEXT: function(buffer: GLuint; offset: GLintptr; length: GLsizeiptr; access: GLbitfield): pointer; stdcall;
-  glFlushMappedNamedBufferRangeEXT: procedure(buffer: GLuint; offset: GLintptr; length: GLsizeiptr); stdcall;
-  glNamedBufferStorageEXT: procedure(buffer: GLuint; size: GLsizeiptr; const data: pointer; flags: GLbitfield); stdcall;
-  glClearNamedBufferDataEXT: procedure(buffer: GLuint; internalformat: GLenum; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glClearNamedBufferSubDataEXT: procedure(buffer: GLuint; internalformat: GLenum; offset: GLsizeiptr; size: GLsizeiptr; format: GLenum; _type: GLenum; const data: pointer); stdcall;
-  glNamedFramebufferParameteriEXT: procedure(framebuffer: GLuint; pname: GLenum; param: GLint); stdcall;
-  glGetNamedFramebufferParameterivEXT: procedure(framebuffer: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glProgramUniform1dEXT: procedure(_program: GLuint; location: GLint; x: GLdouble); stdcall;
-  glProgramUniform2dEXT: procedure(_program: GLuint; location: GLint; x: GLdouble; y: GLdouble); stdcall;
-  glProgramUniform3dEXT: procedure(_program: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glProgramUniform4dEXT: procedure(_program: GLuint; location: GLint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glProgramUniform1dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform2dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform3dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniform4dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix2dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix2x3dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix2x4dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3x2dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix3x4dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4x2dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glProgramUniformMatrix4x3dvEXT: procedure(_program: GLuint; location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLdouble); stdcall;
-  glTextureBufferRangeEXT: procedure(texture: GLuint; target: GLenum; internalformat: GLenum; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glTextureStorage1DEXT: procedure(texture: GLuint; target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei); stdcall;
-  glTextureStorage2DEXT: procedure(texture: GLuint; target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glTextureStorage3DEXT: procedure(texture: GLuint; target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei); stdcall;
-  glTextureStorage2DMultisampleEXT: procedure(texture: GLuint; target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glTextureStorage3DMultisampleEXT: procedure(texture: GLuint; target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedsamplelocations: GLboolean); stdcall;
-  glVertexArrayBindVertexBufferEXT: procedure(vaobj: GLuint; bindingindex: GLuint; buffer: GLuint; offset: GLintptr; stride: GLsizei); stdcall;
-  glVertexArrayVertexAttribFormatEXT: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; relativeoffset: GLuint); stdcall;
-  glVertexArrayVertexAttribIFormatEXT: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexArrayVertexAttribLFormatEXT: procedure(vaobj: GLuint; attribindex: GLuint; size: GLint; _type: GLenum; relativeoffset: GLuint); stdcall;
-  glVertexArrayVertexAttribBindingEXT: procedure(vaobj: GLuint; attribindex: GLuint; bindingindex: GLuint); stdcall;
-  glVertexArrayVertexBindingDivisorEXT: procedure(vaobj: GLuint; bindingindex: GLuint; divisor: GLuint); stdcall;
-  glVertexArrayVertexAttribLOffsetEXT: procedure(vaobj: GLuint; buffer: GLuint; index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; offset: GLintptr); stdcall;
-  glTexturePageCommitmentEXT: procedure(texture: GLuint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; commit: GLboolean); stdcall;
-  glVertexArrayVertexAttribDivisorEXT: procedure(vaobj: GLuint; index: GLuint; divisor: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_buffers2}
-  glColorMaskIndexedEXT: procedure(index: GLuint; r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_instanced}
-  glDrawArraysInstancedEXT: procedure(mode: GLenum; start: GLint; count: GLsizei; primcount: GLsizei); stdcall;
-  glDrawElementsInstancedEXT: procedure(mode: GLenum; count: GLsizei; _type: GLenum; const indices: pointer; primcount: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_range_elements}
-  glDrawRangeElementsEXT: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_external_buffer}
-  glBufferStorageExternalEXT: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; clientBuffer: GLeglClientBufferEXT; flags: GLbitfield); stdcall;
-  glNamedBufferStorageExternalEXT: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; clientBuffer: GLeglClientBufferEXT; flags: GLbitfield); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_fog_coord}
-  glFogCoordfEXT: procedure(coord: GLfloat); stdcall;
-  glFogCoordfvEXT: procedure(const coord: PGLfloat); stdcall;
-  glFogCoorddEXT: procedure(coord: GLdouble); stdcall;
-  glFogCoorddvEXT: procedure(const coord: PGLdouble); stdcall;
-  glFogCoordPointerEXT: procedure(_type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_blit}
-  glBlitFramebufferEXT: procedure(srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_multisample}
-  glRenderbufferStorageMultisampleEXT: procedure(target: GLenum; samples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_object}
-//  glIsRenderbufferEXT: function(renderbuffer: GLuint): GLboolean; stdcall;
-//  glBindRenderbufferEXT: procedure(target: GLenum; renderbuffer: GLuint); stdcall;
-//  glDeleteRenderbuffersEXT: procedure(n: GLsizei; const renderbuffers: PGLuint); stdcall;
-//  glGenRenderbuffersEXT: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall;
-//  glRenderbufferStorageEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glGetRenderbufferParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-//  glIsFramebufferEXT: function(framebuffer: GLuint): GLboolean; stdcall;
-//  glBindFramebufferEXT: procedure(target: GLenum; framebuffer: GLuint); stdcall;
-//  glDeleteFramebuffersEXT: procedure(n: GLsizei; const framebuffers: PGLuint); stdcall;
-//  glGenFramebuffersEXT: procedure(n: GLsizei; framebuffers: PGLuint); stdcall;
-//  glCheckFramebufferStatusEXT: function(target: GLenum): GLenum; stdcall;
-  glFramebufferTexture1DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-//  glFramebufferTexture2DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall;
-  glFramebufferTexture3DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall;
-//  glFramebufferRenderbufferEXT: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall;
-  glGetFramebufferAttachmentParameterivEXT: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGenerateMipmapEXT: procedure(target: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_geometry_shader4}
-  glProgramParameteriEXT: procedure(_program: GLuint; pname: GLenum; value: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_gpu_program_parameters}
-  glProgramEnvParameters4fvEXT: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); stdcall;
-  glProgramLocalParameters4fvEXT: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_gpu_shader4}
-  glGetUniformuivEXT: procedure(_program: GLuint; location: GLint; params: PGLuint); stdcall;
-  glBindFragDataLocationEXT: procedure(_program: GLuint; color: GLuint; const name: PGLchar); stdcall;
-  glGetFragDataLocationEXT: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glUniform1uiEXT: procedure(location: GLint; v0: GLuint); stdcall;
-  glUniform2uiEXT: procedure(location: GLint; v0: GLuint; v1: GLuint); stdcall;
-  glUniform3uiEXT: procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint); stdcall;
-  glUniform4uiEXT: procedure(location: GLint; v0: GLuint; v1: GLuint; v2: GLuint; v3: GLuint); stdcall;
-  glUniform1uivEXT: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform2uivEXT: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform3uivEXT: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glUniform4uivEXT: procedure(location: GLint; count: GLsizei; const value: PGLuint); stdcall;
-  glVertexAttribI1iEXT: procedure(index: GLuint; x: GLint); stdcall;
-  glVertexAttribI2iEXT: procedure(index: GLuint; x: GLint; y: GLint); stdcall;
-  glVertexAttribI3iEXT: procedure(index: GLuint; x: GLint; y: GLint; z: GLint); stdcall;
-  glVertexAttribI4iEXT: procedure(index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glVertexAttribI1uiEXT: procedure(index: GLuint; x: GLuint); stdcall;
-  glVertexAttribI2uiEXT: procedure(index: GLuint; x: GLuint; y: GLuint); stdcall;
-  glVertexAttribI3uiEXT: procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint); stdcall;
-  glVertexAttribI4uiEXT: procedure(index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); stdcall;
-  glVertexAttribI1ivEXT: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI2ivEXT: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI3ivEXT: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI4ivEXT: procedure(index: GLuint; const v: PGLint); stdcall;
-  glVertexAttribI1uivEXT: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI2uivEXT: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI3uivEXT: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI4uivEXT: procedure(index: GLuint; const v: PGLuint); stdcall;
-  glVertexAttribI4bvEXT: procedure(index: GLuint; const v: PGLbyte); stdcall;
-  glVertexAttribI4svEXT: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttribI4ubvEXT: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttribI4usvEXT: procedure(index: GLuint; const v: PGLushort); stdcall;
-  glVertexAttribIPointerEXT: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glGetVertexAttribIivEXT: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribIuivEXT: procedure(index: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_histogram}
-  glGetHistogramEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: pointer); stdcall;
-  glGetHistogramParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetHistogramParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMinmaxEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: pointer); stdcall;
-  glGetMinmaxParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMinmaxParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glHistogramEXT: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall;
-  glMinmaxEXT: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall;
-  glResetHistogramEXT: procedure(target: GLenum); stdcall;
-  glResetMinmaxEXT: procedure(target: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_index_func}
-  glIndexFuncEXT: procedure(func: GLenum; ref: GLclampf); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_index_material}
-  glIndexMaterialEXT: procedure(face: GLenum; mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_light_texture}
-  glApplyTextureEXT: procedure(mode: GLenum); stdcall;
-  glTextureLightEXT: procedure(pname: GLenum); stdcall;
-  glTextureMaterialEXT: procedure(face: GLenum; mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object}
-  glGetUnsignedBytevEXT: procedure(pname: GLenum; data: PGLubyte); stdcall;
-  glGetUnsignedBytei_vEXT: procedure(target: GLenum; index: GLuint; data: PGLubyte); stdcall;
-  glDeleteMemoryObjectsEXT: procedure(n: GLsizei; const memoryObjects: PGLuint); stdcall;
-  glIsMemoryObjectEXT: function(memoryObject: GLuint): GLboolean; stdcall;
-  glCreateMemoryObjectsEXT: procedure(n: GLsizei; memoryObjects: PGLuint); stdcall;
-  glMemoryObjectParameterivEXT: procedure(memoryObject: GLuint; pname: GLenum; const params: PGLint); stdcall;
-  glGetMemoryObjectParameterivEXT: procedure(memoryObject: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glTexStorageMem2DEXT: procedure(target: GLenum; levels: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  glTexStorageMem2DMultisampleEXT: procedure(target: GLenum; samples: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; fixedSampleLocations: GLboolean; memory: GLuint; offset: GLuint64); stdcall;
-  glTexStorageMem3DEXT: procedure(target: GLenum; levels: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  glTexStorageMem3DMultisampleEXT: procedure(target: GLenum; samples: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedSampleLocations: GLboolean; memory: GLuint; offset: GLuint64); stdcall;
-  glBufferStorageMemEXT: procedure(target: GLenum; size: GLsizeiptr; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureStorageMem2DEXT: procedure(texture: GLuint; levels: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureStorageMem2DMultisampleEXT: procedure(texture: GLuint; samples: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; fixedSampleLocations: GLboolean; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureStorageMem3DEXT: procedure(texture: GLuint; levels: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureStorageMem3DMultisampleEXT: procedure(texture: GLuint; samples: GLsizei; internalFormat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; fixedSampleLocations: GLboolean; memory: GLuint; offset: GLuint64); stdcall;
-  glNamedBufferStorageMemEXT: procedure(buffer: GLuint; size: GLsizeiptr; memory: GLuint; offset: GLuint64); stdcall;
-  glTexStorageMem1DEXT: procedure(target: GLenum; levels: GLsizei; internalFormat: GLenum; width: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureStorageMem1DEXT: procedure(texture: GLuint; levels: GLsizei; internalFormat: GLenum; width: GLsizei; memory: GLuint; offset: GLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object_fd}
-  glImportMemoryFdEXT: procedure(memory: GLuint; size: GLuint64; handleType: GLenum; fd: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object_win32}
-  glImportMemoryWin32HandleEXT: procedure(memory: GLuint; size: GLuint64; handleType: GLenum; handle: pointer); stdcall;
-  glImportMemoryWin32NameEXT: procedure(memory: GLuint; size: GLuint64; handleType: GLenum; const name: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_multi_draw_arrays}
-  glMultiDrawArraysEXT: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall;
-  glMultiDrawElementsEXT: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices:Ppointer; primcount: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_multisample}
-  glSampleMaskEXT: procedure(value: GLclampf; invert: GLboolean); stdcall;
-  glSamplePatternEXT: procedure(pattern: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_paletted_texture}
-  glColorTableEXT: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: pointer); stdcall;
-  glGetColorTableEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; data: pointer); stdcall;
-  glGetColorTableParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetColorTableParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_pixel_transform}
-  glPixelTransformParameteriEXT: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glPixelTransformParameterfEXT: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glPixelTransformParameterivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glPixelTransformParameterfvEXT: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glGetPixelTransformParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetPixelTransformParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_point_parameters}
-  glPointParameterfEXT: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glPointParameterfvEXT: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_polygon_offset}
-  glPolygonOffsetEXT: procedure(factor: GLfloat; bias: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_polygon_offset_clamp}
-  glPolygonOffsetClampEXT: procedure(factor: GLfloat; units: GLfloat; clamp: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_provoking_vertex}
-  glProvokingVertexEXT: procedure(mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_raster_multisample}
-  glRasterSamplesEXT: procedure(samples: GLuint; fixedsamplelocations: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_secondary_color}
-  glSecondaryColor3bEXT: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall;
-  glSecondaryColor3bvEXT: procedure(const v: PGLbyte); stdcall;
-  glSecondaryColor3dEXT: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall;
-  glSecondaryColor3dvEXT: procedure(const v: PGLdouble); stdcall;
-  glSecondaryColor3fEXT: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall;
-  glSecondaryColor3fvEXT: procedure(const v: PGLfloat); stdcall;
-  glSecondaryColor3iEXT: procedure(red: GLint; green: GLint; blue: GLint); stdcall;
-  glSecondaryColor3ivEXT: procedure(const v: PGLint); stdcall;
-  glSecondaryColor3sEXT: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall;
-  glSecondaryColor3svEXT: procedure(const v: PGLshort); stdcall;
-  glSecondaryColor3ubEXT: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall;
-  glSecondaryColor3ubvEXT: procedure(const v: PGLubyte); stdcall;
-  glSecondaryColor3uiEXT: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall;
-  glSecondaryColor3uivEXT: procedure(const v: PGLuint); stdcall;
-  glSecondaryColor3usEXT: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall;
-  glSecondaryColor3usvEXT: procedure(const v: PGLushort); stdcall;
-  glSecondaryColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore}
-  glGenSemaphoresEXT: procedure(n: GLsizei; semaphores: PGLuint); stdcall;
-  glDeleteSemaphoresEXT: procedure(n: GLsizei; const semaphores: PGLuint); stdcall;
-  glIsSemaphoreEXT: function(semaphore: GLuint): GLboolean; stdcall;
-  glSemaphoreParameterui64vEXT: procedure(semaphore: GLuint; pname: GLenum; const params: PGLuint64); stdcall;
-  glGetSemaphoreParameterui64vEXT: procedure(semaphore: GLuint; pname: GLenum; params: PGLuint64); stdcall;
-  glWaitSemaphoreEXT: procedure(semaphore: GLuint; numBufferBarriers: GLuint; const buffers: PGLuint; numTextureBarriers: GLuint; const textures: PGLuint; const srcLayouts: PGLenum); stdcall;
-  glSignalSemaphoreEXT: procedure(semaphore: GLuint; numBufferBarriers: GLuint; const buffers: PGLuint; numTextureBarriers: GLuint; const textures: PGLuint; const dstLayouts: PGLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore_fd}
-  glImportSemaphoreFdEXT: procedure(semaphore: GLuint; handleType: GLenum; fd: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore_win32}
-  glImportSemaphoreWin32HandleEXT: procedure(semaphore: GLuint; handleType: GLenum; handle: pointer); stdcall;
-  glImportSemaphoreWin32NameEXT: procedure(semaphore: GLuint; handleType: GLenum; const name: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_separate_shader_objects}
-  glUseShaderProgramEXT: procedure(_type: GLenum; _program: GLuint); stdcall;
-  glActiveProgramEXT: procedure(_program: GLuint); stdcall;
-  glCreateShaderProgramEXT: function(_type: GLenum; const _string: PGLchar): GLuint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_shader_framebuffer_fetch_non_coherent}
-  glFramebufferFetchBarrierEXT: procedure;  stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_shader_image_load_store}
-  glBindImageTextureEXT: procedure(index: GLuint; texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; access: GLenum; format: GLint); stdcall;
-  glMemoryBarrierEXT: procedure(barriers: GLbitfield); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_stencil_clear_tag}
-  glStencilClearTagEXT: procedure(stencilTagBits: GLsizei; stencilClearTag: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_stencil_two_side}
-  glActiveStencilFaceEXT: procedure(face: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_subtexture}
-  glTexSubImage1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTexSubImage2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture3D}
-  glTexImage3DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTexSubImage3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_array}
-  glFramebufferTextureLayerEXT: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_buffer_object}
-  glTexBufferEXT: procedure(target: GLenum; internalformat: GLenum; buffer: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_integer}
-  glTexParameterIivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glTexParameterIuivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLuint); stdcall;
-  glGetTexParameterIivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetTexParameterIuivEXT: procedure(target: GLenum; pname: GLenum; params: PGLuint); stdcall;
-  glClearColorIiEXT: procedure(red: GLint; green: GLint; blue: GLint; alpha: GLint); stdcall;
-  glClearColorIuiEXT: procedure(red: GLuint; green: GLuint; blue: GLuint; alpha: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_object}
-  glAreTexturesResidentEXT: function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; stdcall;
-  glBindTextureEXT: procedure(target: GLenum; texture: GLuint); stdcall;
-  glDeleteTexturesEXT: procedure(n: GLsizei; const textures: PGLuint); stdcall;
-  glGenTexturesEXT: procedure(n: GLsizei; textures: PGLuint); stdcall;
-  glIsTextureEXT: function(texture: GLuint): GLboolean; stdcall;
-  glPrioritizeTexturesEXT: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_perturb_normal}
-  glTextureNormalEXT: procedure(mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_storage}
-  glTexStorage1DEXT: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei); stdcall;
-  glTexStorage2DEXT: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  glTexStorage3DEXT: procedure(target: GLenum; levels: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_timer_query}
-  glGetQueryObjecti64vEXT: procedure(id: GLuint; pname: GLenum; params: PGLint64); stdcall;
-  glGetQueryObjectui64vEXT: procedure(id: GLuint; pname: GLenum; params: PGLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_transform_feedback}
-  glBeginTransformFeedbackEXT: procedure(primitiveMode: GLenum); stdcall;
-  glEndTransformFeedbackEXT: procedure; stdcall;
-  glBindBufferRangeEXT: procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glBindBufferOffsetEXT: procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); stdcall;
-  glBindBufferBaseEXT: procedure(target: GLenum; index: GLuint; buffer: GLuint); stdcall;
-  glTransformFeedbackVaryingsEXT: procedure(_program: GLuint; count: GLsizei; const varyings: PPGLchar; bufferMode: GLenum); stdcall;
-  glGetTransformFeedbackVaryingEXT: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_array}
-  glArrayElementEXT: procedure(i: GLint); stdcall;
-  glColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: pointer); stdcall;
-  glDrawArraysEXT: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall;
-  glEdgeFlagPointerEXT: procedure(stride: GLsizei; count: GLsizei; const pointer: PGLboolean); stdcall;
-  glGetPointervEXT: procedure(pname: GLenum; params:Ppointer); stdcall;
-  glIndexPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: pointer); stdcall;
-  glNormalPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: pointer); stdcall;
-  glTexCoordPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: pointer); stdcall;
-  glVertexPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_attrib_64bit}
-  glVertexAttribL1dEXT: procedure(index: GLuint; x: GLdouble); stdcall;
-  glVertexAttribL2dEXT: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
-  glVertexAttribL3dEXT: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexAttribL4dEXT: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexAttribL1dvEXT: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL2dvEXT: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL3dvEXT: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribL4dvEXT: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttribLPointerEXT: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glGetVertexAttribLdvEXT: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_shader}
-  glBeginVertexShaderEXT: procedure; stdcall;
-  glEndVertexShaderEXT: procedure; stdcall;
-  glBindVertexShaderEXT: procedure(id: GLuint); stdcall;
-  glGenVertexShadersEXT: function(range: GLuint): GLuint; stdcall;
-  glDeleteVertexShaderEXT: procedure(id: GLuint); stdcall;
-  glShaderOp1EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint); stdcall;
-  glShaderOp2EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); stdcall;
-  glShaderOp3EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); stdcall;
-  glSwizzleEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall;
-  glWriteMaskEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall;
-  glInsertComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall;
-  glExtractComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall;
-  glGenSymbolsEXT: function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; stdcall;
-  glSetInvariantEXT: procedure(id: GLuint; _type: GLenum; const addr: pointer); stdcall;
-  glSetLocalConstantEXT: procedure(id: GLuint; _type: GLenum; const addr: pointer); stdcall;
-  glVariantbvEXT: procedure(id: GLuint; const addr: PGLbyte); stdcall;
-  glVariantsvEXT: procedure(id: GLuint; const addr: PGLshort); stdcall;
-  glVariantivEXT: procedure(id: GLuint; const addr: PGLint); stdcall;
-  glVariantfvEXT: procedure(id: GLuint; const addr: PGLfloat); stdcall;
-  glVariantdvEXT: procedure(id: GLuint; const addr: PGLdouble); stdcall;
-  glVariantubvEXT: procedure(id: GLuint; const addr: PGLubyte); stdcall;
-  glVariantusvEXT: procedure(id: GLuint; const addr: PGLushort); stdcall;
-  glVariantuivEXT: procedure(id: GLuint; const addr: PGLuint); stdcall;
-  glVariantPointerEXT: procedure(id: GLuint; _type: GLenum; stride: GLuint; const addr: pointer); stdcall;
-  glEnableVariantClientStateEXT: procedure(id: GLuint); stdcall;
-  glDisableVariantClientStateEXT: procedure(id: GLuint); stdcall;
-  glBindLightParameterEXT: function(light: GLenum; value: GLenum): GLuint; stdcall;
-  glBindMaterialParameterEXT: function(face: GLenum; value: GLenum): GLuint; stdcall;
-  glBindTexGenParameterEXT: function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; stdcall;
-  glBindTextureUnitParameterEXT: function(_unit: GLenum; value: GLenum): GLuint; stdcall;
-  glBindParameterEXT: function(value: GLenum): GLuint; stdcall;
-  glIsVariantEnabledEXT: function(id: GLuint; cap: GLenum): GLboolean; stdcall;
-  glGetVariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
-  glGetVariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
-  glGetVariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;
-  glGetVariantPointervEXT: procedure(id: GLuint; value: GLenum; data:Ppointer); stdcall;
-  glGetInvariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
-  glGetInvariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
-  glGetInvariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;
-  glGetLocalConstantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall;
-  glGetLocalConstantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall;
-  glGetLocalConstantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_weighting}
-  glVertexWeightfEXT: procedure(weight: GLfloat); stdcall;
-  glVertexWeightfvEXT: procedure(const weight: PGLfloat); stdcall;
-  glVertexWeightPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_win32_keyed_mutex}
-  glAcquireKeyedMutexWin32EXT: function(memory: GLuint; key: GLuint64; timeout: GLuint): GLboolean; stdcall;
-  glReleaseKeyedMutexWin32EXT: function(memory: GLuint; key: GLuint64): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_window_rectangles}
-  glWindowRectanglesEXT: procedure(mode: GLenum; count: GLsizei; const box: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_EXT_x11_sync_object}
-  glImportSyncEXT: function(external_sync_type: GLenum; external_sync: GLintptr; flags: GLbitfield): GLsync; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_GREMEDY_frame_terminator}
-  glFrameTerminatorGREMEDY: procedure;  stdcall;
-  {$EndIf}
-
-  {$IfDef GL_GREMEDY_string_marker}
-  glStringMarkerGREMEDY: procedure(len: GLsizei; const _string: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_HP_image_transform}
-  glImageTransformParameteriHP: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glImageTransformParameterfHP: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glImageTransformParameterivHP: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glImageTransformParameterfvHP: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glGetImageTransformParameterivHP: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetImageTransformParameterfvHP: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_IBM_multimode_draw_arrays}
-  glMultiModeDrawArraysIBM: procedure(const mode: PGLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei; modestride: GLint); stdcall;
-  glMultiModeDrawElementsIBM: procedure(const mode: PGLenum; const count: PGLsizei; _type: GLenum; const indices: {P}Ppointer; primcount: GLsizei; modestride: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_IBM_static_data}
-  glFlushStaticDataIBM: procedure(target: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_IBM_vertex_array_lists}
-  glColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glSecondaryColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glEdgeFlagPointerListIBM: procedure(stride: GLint; const _pointer: {P}PGLboolean; ptrstride: GLint); stdcall;
-  glFogCoordPointerListIBM: procedure(_type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glIndexPointerListIBM: procedure(_type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glNormalPointerListIBM: procedure(_type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glTexCoordPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  glVertexPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const _pointer: {P}Ppointer; ptrstride: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_INGR_blend_func_separate}
-  glBlendFuncSeparateINGR: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_framebuffer_CMAA}
-  glApplyFramebufferAttachmentCMAAINTEL: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_map_texture}
-  glSyncTextureINTEL: procedure(texture: GLuint); stdcall;
-  glUnmapTexture2DINTEL: procedure(texture: GLuint; level: GLint); stdcall;
-  glMapTexture2DINTEL: function(texture: GLuint; level: GLint; access: GLbitfield; stride: PGLint; layout: PGLenum): pointer;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_parallel_arrays}
-  glVertexPointervINTEL: procedure(size: GLint; _type: GLenum; const _pointer: {P}Ppointer); stdcall;
-  glNormalPointervINTEL: procedure(_type: GLenum; const _pointer: {P}Ppointer); stdcall;
-  glColorPointervINTEL: procedure(size: GLint; _type: GLenum; const _pointer: {P}Ppointer); stdcall;
-  glTexCoordPointervINTEL: procedure(size: GLint; _type: GLenum; const _pointer: {P}Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_performance_query}
-  glBeginPerfQueryINTEL: procedure(queryHandle: GLuint); stdcall;
-  glCreatePerfQueryINTEL: procedure(queryId: GLuint; queryHandle: PGLuint); stdcall;
-  glDeletePerfQueryINTEL: procedure(queryHandle: GLuint); stdcall;
-  glEndPerfQueryINTEL: procedure(queryHandle: GLuint); stdcall;
-  glGetFirstPerfQueryIdINTEL: procedure(queryId: PGLuint); stdcall;
-  glGetNextPerfQueryIdINTEL: procedure(queryId: GLuint; nextQueryId: PGLuint); stdcall;
-  glGetPerfCounterInfoINTEL: procedure(queryId: GLuint; counterId: GLuint; counterNameLength: GLuint; counterName: PGLchar; counterDescLength: GLuint; counterDesc: PGLchar; counterOffset: PGLuint; counterDataSize: PGLuint; counterTypeEnum: PGLuint; counterDataTypeEnum: PGLuint; rawCounterMaxValue: PGLuint64); stdcall;
-  glGetPerfQueryDataINTEL: procedure(queryHandle: GLuint; flags: GLuint; dataSize: GLsizei; data: pointer; bytesWritten: PGLuint); stdcall;
-  glGetPerfQueryIdByNameINTEL: procedure(queryName: PGLchar; queryId: PGLuint); stdcall;
-  glGetPerfQueryInfoINTEL: procedure(queryId: GLuint; queryNameLength: GLuint; queryName: PGLchar; dataSize: PGLuint; noCounters: PGLuint; noInstances: PGLuint; capsMask: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_MESA_framebuffer_flip_y}
-  glFramebufferParameteriMESA: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall;
-  glGetFramebufferParameterivMESA: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_MESA_resize_buffers}
-  glResizeBuffersMESA: procedure;  stdcall;
-  {$EndIf}
-
-  {$IfDef GL_MESA_window_pos}
-  glWindowPos2dMESA: procedure(x: GLdouble; y: GLdouble); stdcall;
-  glWindowPos2dvMESA: procedure(const v: PGLdouble); stdcall;
-  glWindowPos2fMESA: procedure(x: GLfloat; y: GLfloat); stdcall;
-  glWindowPos2fvMESA: procedure(const v: PGLfloat); stdcall;
-  glWindowPos2iMESA: procedure(x: GLint; y: GLint); stdcall;
-  glWindowPos2ivMESA: procedure(const v: PGLint); stdcall;
-  glWindowPos2sMESA: procedure(x: GLshort; y: GLshort); stdcall;
-  glWindowPos2svMESA: procedure(const v: PGLshort); stdcall;
-  glWindowPos3dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glWindowPos3dvMESA: procedure(const v: PGLdouble); stdcall;
-  glWindowPos3fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glWindowPos3fvMESA: procedure(const v: PGLfloat); stdcall;
-  glWindowPos3iMESA: procedure(x: GLint; y: GLint; z: GLint); stdcall;
-  glWindowPos3ivMESA: procedure(const v: PGLint); stdcall;
-  glWindowPos3sMESA: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glWindowPos3svMESA: procedure(const v: PGLshort); stdcall;
-  glWindowPos4dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glWindowPos4dvMESA: procedure(const v: PGLdouble); stdcall;
-  glWindowPos4fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glWindowPos4fvMESA: procedure(const v: PGLfloat); stdcall;
-  glWindowPos4iMESA: procedure(x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glWindowPos4ivMESA: procedure(const v: PGLint); stdcall;
-  glWindowPos4sMESA: procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
-  glWindowPos4svMESA: procedure(const v: PGLshort); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NVX_conditional_render}
-  glBeginConditionalRenderNVX: procedure(id: GLuint); stdcall;
-  glEndConditionalRenderNVX: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NVX_gpu_multicast2}
-  glUploadGpuMaskNVX: procedure(mask: GLbitfield); stdcall;
-  glMulticastViewportArrayvNVX: procedure(gpu: GLuint; first: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glMulticastViewportPositionWScaleNVX: procedure(gpu: GLuint; index: GLuint; xcoeff: GLfloat; ycoeff: GLfloat); stdcall;
-  glMulticastScissorArrayvNVX: procedure(gpu: GLuint; first: GLuint; count: GLsizei; const v: PGLint); stdcall;
-  glAsyncCopyBufferSubDataNVX: function(waitSemaphoreCount: GLsizei; const waitSemaphoreArray: PGLuint; const fenceValueArray: PGLuint64; readGpu: GLuint; writeGpuMask: GLbitfield; readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr; signalSemaphoreCount: GLsizei; const signalSemaphoreArray: PGLuint; const signalValueArray: PGLuint64): GLuint; stdcall;
-  glAsyncCopyImageSubDataNVX: function(waitSemaphoreCount: GLsizei; const waitSemaphoreArray: PGLuint; const waitValueArray: PGLuint64; srcGpu: GLuint; dstGpuMask: GLbitfield; srcName: GLuint; srcTarget: GLenum; srcLevel: GLint; srcX: GLint; srcY: GLint; srcZ: GLint; dstName: GLuint; dstTarget: GLenum; dstLevel: GLint; dstX: GLint; dstY: GLint; dstZ: GLint; srcWidth: GLsizei; srcHeight: GLsizei; srcDepth: GLsizei; signalSemaphoreCount: GLsizei; const signalSemaphoreArray: PGLuint; const signalValueArray: PGLuint64): GLuint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NVX_linked_gpu_multicast}
-  glLGPUNamedBufferSubDataNVX: procedure(gpuMask: GLbitfield; buffer: GLuint; offset: GLintptr; size: GLsizeiptr; const data: pointer); stdcall;
-  glLGPUCopyImageSubDataNVX: procedure(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); stdcall;
-  glLGPUInterlockNVX: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NVX_progress_fence}
-  glCreateProgressFenceNVX: function: GLuint; stdcall;
-  glSignalSemaphoreui64NVX: procedure(signalGpu: GLuint; fenceObjectCount: GLsizei; const semaphoreArray: PGLuint; const fenceValueArray: PGLuint64); stdcall;
-  glWaitSemaphoreui64NVX: procedure(waitGpu: GLuint; fenceObjectCount: GLsizei; const semaphoreArray: PGLuint; const fenceValueArray: PGLuint64); stdcall;
-  glClientWaitSemaphoreui64NVX: procedure(fenceObjectCount: GLsizei; const semaphoreArray: PGLuint; const fenceValueArray: PGLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_alpha_to_coverage_dither_control}
-  glAlphaToCoverageDitherControlNV: procedure(mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_multi_draw_indirect}
-  glMultiDrawArraysIndirectBindlessNV: procedure(mode: GLenum; const indirect: pointer; drawCount: GLsizei; stride: GLsizei; vertexBufferCount: GLint); stdcall;
-  glMultiDrawElementsIndirectBindlessNV: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; drawCount: GLsizei; stride: GLsizei; vertexBufferCount: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_multi_draw_indirect_count}
-  glMultiDrawArraysIndirectBindlessCountNV: procedure(mode: GLenum; const indirect: pointer; drawCount: GLsizei; maxDrawCount: GLsizei; stride: GLsizei; vertexBufferCount: GLint); stdcall;
-  glMultiDrawElementsIndirectBindlessCountNV: procedure(mode: GLenum; _type: GLenum; const indirect: pointer; drawCount: GLsizei; maxDrawCount: GLsizei; stride: GLsizei; vertexBufferCount: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_texture}
-  glGetTextureHandleNV: function(texture: GLuint): GLuint64; stdcall;
-  glGetTextureSamplerHandleNV: function(texture: GLuint; sampler: GLuint): GLuint64; stdcall;
-  glMakeTextureHandleResidentNV: procedure(handle: GLuint64); stdcall;
-  glMakeTextureHandleNonResidentNV: procedure(handle: GLuint64); stdcall;
-  glGetImageHandleNV: function(texture: GLuint; level: GLint; layered: GLboolean; layer: GLint; format: GLenum): GLuint64; stdcall;
-  glMakeImageHandleResidentNV: procedure(handle: GLuint64; access: GLenum); stdcall;
-  glMakeImageHandleNonResidentNV: procedure(handle: GLuint64); stdcall;
-  glUniformHandleui64NV: procedure(location: GLint; value: GLuint64); stdcall;
-  glUniformHandleui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64); stdcall;
-  glProgramUniformHandleui64NV: procedure(_program: GLuint; location: GLint; value: GLuint64); stdcall;
-  glProgramUniformHandleui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const values: PGLuint64); stdcall;
-  glIsTextureHandleResidentNV: function(handle: GLuint64): GLboolean; stdcall;
-  glIsImageHandleResidentNV: function(handle: GLuint64): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_blend_equation_advanced}
-  glBlendParameteriNV: procedure(pname: GLenum; value: GLint); stdcall;
-  glBlendBarrierNV: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_clip_space_w_scaling}
-  glViewportPositionWScaleNV: procedure(index: GLuint; xcoeff: GLfloat; ycoeff: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_command_list}
-  glCreateStatesNV: procedure(n: GLsizei; states: PGLuint); stdcall;
-  glDeleteStatesNV: procedure(n: GLsizei; states: PGLuint); stdcall;
-  glIsStateNV: function(state: GLuint): GLboolean; stdcall;
-  glStateCaptureNV: procedure(state: GLuint; mode: GLenum); stdcall;
-  glGetCommandHeaderNV: function(tokenID: GLenum; size: GLuint): GLuint;
-  glGetStageIndexNV: function(shadertype: GLenum): GLushort; stdcall;
-  glDrawCommandsNV: procedure(primitiveMode: GLenum; buffer: GLuint; const indirects: PGLintptr; const sizes: PGLsizei; count: GLuint); stdcall;
-  glDrawCommandsAddressNV: procedure(primitiveMode: GLenum; const indirects: PGLuint64; const sizes: PGLsizei; count: GLuint); stdcall;
-  glDrawCommandsStatesNV: procedure(buffer: GLuint; const indirects: PGLintptr; const sizes: PGLsizei; const states: PGLuint; const fbos: PGLuint; count: GLuint); stdcall;
-  glDrawCommandsStatesAddressNV: procedure(const indirects: PGLuint64; const sizes: PGLsizei; const states: PGLuint; const fbos: PGLuint; count: GLuint); stdcall;
-  glCreateCommandListsNV: procedure(n: GLsizei; lists: PGLuint); stdcall;
-  glDeleteCommandListsNV: procedure(n: GLsizei; const lists: PGLuint); stdcall;
-  glIsCommandListNV: function(list: GLuint): GLboolean; stdcall;
-  glListDrawCommandsStatesClientNV: procedure(list: GLuint; segment: GLuint; const indirects: {P}Ppointer; const sizes: PGLsizei; const states: PGLuint; const fbos: PGLuint; count: GLuint); stdcall;
-  glCommandListSegmentsNV: procedure(list: GLuint; segments: GLuint); stdcall;
-  glCompileCommandListNV: procedure(list: GLuint); stdcall;
-  glCallCommandListNV: procedure(list: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_conditional_render}
-  glBeginConditionalRenderNV: procedure(id: GLuint; mode: GLenum); stdcall;
-  glEndConditionalRenderNV: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster}
-  glSubpixelPrecisionBiasNV: procedure(xbits: GLuint; ybits: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster_dilate}
-  glConservativeRasterParameterfNV: procedure(pname: GLenum; value: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster_pre_snap_triangles}
-  glConservativeRasterParameteriNV: procedure(pname: GLenum; param: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_copy_image}
-  glCopyImageSubDataNV: procedure(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); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_depth_buffer_float}
-  glDepthRangedNV: procedure(zNear: GLdouble; zFar: GLdouble); stdcall;
-  glClearDepthdNV: procedure(depth: GLdouble); stdcall;
-  glDepthBoundsdNV: procedure(zmin: GLdouble; zmax: GLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_draw_texture}
-  glDrawTextureNV: procedure(texture: GLuint; sampler: GLuint; x0: GLfloat; y0: GLfloat; x1: GLfloat; y1: GLfloat; z: GLfloat; s0: GLfloat; t0: GLfloat; s1: GLfloat; t1: GLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_draw_vulkan_image}
-  glDrawVkImageNV: procedure(vkImage: GLuint64; sampler: GLuint; x0: GLfloat; y0: GLfloat; x1: GLfloat; y1: GLfloat; z: GLfloat; s0: GLfloat; t0: GLfloat; s1: GLfloat; t1: GLfloat); stdcall;
-  glGetVkProcAddrNV: function(const name: PGLchar): GLVULKANPROCNV;
-  glWaitVkSemaphoreNV: procedure(vkSemaphore: GLuint64); stdcall;
-  glSignalVkSemaphoreNV: procedure(vkSemaphore: GLuint64); stdcall;
-  glSignalVkFenceNV: procedure(vkFence: GLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_evaluators}
-  glMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: pointer); stdcall;
-  glMapParameterivNV: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glMapParameterfvNV: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glGetMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: pointer); stdcall;
-  glGetMapParameterivNV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetMapParameterfvNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetMapAttribParameterivNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetMapAttribParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glEvalMapsNV: procedure(target: GLenum; mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_explicit_multisample}
-  glGetMultisamplefvNV: procedure(pname: GLenum; index: GLuint; val: PGLfloat); stdcall;
-  glSampleMaskIndexedNV: procedure(index: GLuint; mask: GLbitfield); stdcall;
-  glTexRenderbufferNV: procedure(target: GLenum; renderbuffer: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_fence}
-  glDeleteFencesNV: procedure(n: GLsizei; const fences: PGLuint); stdcall;
-  glGenFencesNV: procedure(n: GLsizei; fences: PGLuint); stdcall;
-  glIsFenceNV: function(fence: GLuint): GLboolean;
-  glTestFenceNV: function(fence: GLuint): GLboolean;
-  glGetFenceivNV: procedure(fence: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glFinishFenceNV: procedure(fence: GLuint); stdcall;
-  glSetFenceNV: procedure(fence: GLuint; condition: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_fragment_coverage_to_color}
-  glFragmentCoverageColorNV: procedure(color: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_fragment_program}
-  glProgramNamedParameter4fNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glProgramNamedParameter4fvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLfloat); stdcall;
-  glProgramNamedParameter4dNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glProgramNamedParameter4dvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; const v: PGLdouble); stdcall;
-  glGetProgramNamedParameterfvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); stdcall;
-  glGetProgramNamedParameterdvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_framebuffer_mixed_samples}
-  glCoverageModulationTableNV: procedure(n: GLsizei; const v: PGLfloat); stdcall;
-  glGetCoverageModulationTableNV: procedure(bufSize: GLsizei; v: PGLfloat); stdcall;
-  glCoverageModulationNV: procedure(components: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_framebuffer_multisample_coverage}
-  glRenderbufferStorageMultisampleCoverageNV: procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_geometry_program4}
-  glProgramVertexLimitNV: procedure(target: GLenum; limit: GLint); stdcall;
-  glFramebufferTextureEXT: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint); stdcall;
-  glFramebufferTextureFaceEXT: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_multicast}
-  glRenderGpuMaskNV: procedure(mask: GLbitfield); stdcall;
-  glMulticastBufferSubDataNV: procedure(gpuMask: GLbitfield; buffer: GLuint; offset: GLintptr; size: GLsizeiptr; data: pointer); stdcall;
-  glMulticastCopyBufferSubDataNV: procedure(readGpu: GLuint; writeGpuMask: GLbitfield; readBuffer: GLuint; writeBuffer: GLuint; readOffset: GLintptr; writeOffset: GLintptr; size: GLsizeiptr); stdcall;
-  glMulticastCopyImageSubDataNV: procedure(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); stdcall;
-  glMulticastBlitFramebufferNV: procedure(srcGpu: GLuint; dstGpu: GLuint; srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: GLint; dstX0: GLint; dstY0: GLint; dstX1: GLint; dstY1: GLint; mask: GLbitfield; filter: GLenum); stdcall;
-  glMulticastFramebufferSampleLocationsfvNV: procedure(gpu: GLuint; framebuffer: GLuint; start: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glMulticastBarrierNV: procedure; stdcall;
-  glMulticastWaitSyncNV: procedure(signalGpu: GLuint; waitGpuMask: GLbitfield); stdcall;
-  glMulticastGetQueryObjectivNV: procedure(gpu: GLuint; id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glMulticastGetQueryObjectuivNV: procedure(gpu: GLuint; id: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glMulticastGetQueryObjecti64vNV: procedure(gpu: GLuint; id: GLuint; pname: GLenum; params: PGLint64); stdcall;
-  glMulticastGetQueryObjectui64vNV: procedure(gpu: GLuint; id: GLuint; pname: GLenum; params: PGLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_program4}
-  glProgramLocalParameterI4iNV: procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glProgramLocalParameterI4ivNV: procedure(target: GLenum; index: GLuint; const params: PGLint); stdcall;
-  glProgramLocalParametersI4ivNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); stdcall;
-  glProgramLocalParameterI4uiNV: procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); stdcall;
-  glProgramLocalParameterI4uivNV: procedure(target: GLenum; index: GLuint; const params: PGLuint); stdcall;
-  glProgramLocalParametersI4uivNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); stdcall;
-  glProgramEnvParameterI4iNV: procedure(target: GLenum; index: GLuint; x: GLint; y: GLint; z: GLint; w: GLint); stdcall;
-  glProgramEnvParameterI4ivNV: procedure(target: GLenum; index: GLuint; const params: PGLint); stdcall;
-  glProgramEnvParametersI4ivNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLint); stdcall;
-  glProgramEnvParameterI4uiNV: procedure(target: GLenum; index: GLuint; x: GLuint; y: GLuint; z: GLuint; w: GLuint); stdcall;
-  glProgramEnvParameterI4uivNV: procedure(target: GLenum; index: GLuint; const params: PGLuint); stdcall;
-  glProgramEnvParametersI4uivNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const params: PGLuint); stdcall;
-  glGetProgramLocalParameterIivNV: procedure(target: GLenum; index: GLuint; params: PGLint); stdcall;
-  glGetProgramLocalParameterIuivNV: procedure(target: GLenum; index: GLuint; params: PGLuint); stdcall;
-  glGetProgramEnvParameterIivNV: procedure(target: GLenum; index: GLuint; params: PGLint); stdcall;
-  glGetProgramEnvParameterIuivNV: procedure(target: GLenum; index: GLuint; params: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_program5}
-  glProgramSubroutineParametersuivNV: procedure(target: GLenum; count: GLsizei; const params: PGLuint); stdcall;
-  glGetProgramSubroutineParameteruivNV: procedure(target: GLenum; index: GLuint; param: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_half_float}
-  glVertex2hNV: procedure(x: GLhalfNV; y: GLhalfNV); stdcall;
-  glVertex2hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glVertex3hNV: procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); stdcall;
-  glVertex3hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glVertex4hNV: procedure(x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); stdcall;
-  glVertex4hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glNormal3hNV: procedure(nx: GLhalfNV; ny: GLhalfNV; nz: GLhalfNV); stdcall;
-  glNormal3hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glColor3hNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); stdcall;
-  glColor3hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glColor4hNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV; alpha: GLhalfNV); stdcall;
-  glColor4hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glTexCoord1hNV: procedure(s: GLhalfNV); stdcall;
-  glTexCoord1hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glTexCoord2hNV: procedure(s: GLhalfNV; t: GLhalfNV); stdcall;
-  glTexCoord2hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glTexCoord3hNV: procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); stdcall;
-  glTexCoord3hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glTexCoord4hNV: procedure(s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); stdcall;
-  glTexCoord4hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glMultiTexCoord1hNV: procedure(target: GLenum; s: GLhalfNV); stdcall;
-  glMultiTexCoord1hvNV: procedure(target: GLenum; const v: PGLhalfNV); stdcall;
-  glMultiTexCoord2hNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV); stdcall;
-  glMultiTexCoord2hvNV: procedure(target: GLenum; const v: PGLhalfNV); stdcall;
-  glMultiTexCoord3hNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV); stdcall;
-  glMultiTexCoord3hvNV: procedure(target: GLenum; const v: PGLhalfNV); stdcall;
-  glMultiTexCoord4hNV: procedure(target: GLenum; s: GLhalfNV; t: GLhalfNV; r: GLhalfNV; q: GLhalfNV); stdcall;
-  glMultiTexCoord4hvNV: procedure(target: GLenum; const v: PGLhalfNV); stdcall;
-  glFogCoordhNV: procedure(fog: GLhalfNV); stdcall;
-  glFogCoordhvNV: procedure(const fog: PGLhalfNV); stdcall;
-  glSecondaryColor3hNV: procedure(red: GLhalfNV; green: GLhalfNV; blue: GLhalfNV); stdcall;
-  glSecondaryColor3hvNV: procedure(const v: PGLhalfNV); stdcall;
-  glVertexWeighthNV: procedure(weight: GLhalfNV); stdcall;
-  glVertexWeighthvNV: procedure(const weight: PGLhalfNV); stdcall;
-  glVertexAttrib1hNV: procedure(index: GLuint; x: GLhalfNV); stdcall;
-  glVertexAttrib1hvNV: procedure(index: GLuint; const v: PGLhalfNV); stdcall;
-  glVertexAttrib2hNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV); stdcall;
-  glVertexAttrib2hvNV: procedure(index: GLuint; const v: PGLhalfNV); stdcall;
-  glVertexAttrib3hNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV); stdcall;
-  glVertexAttrib3hvNV: procedure(index: GLuint; const v: PGLhalfNV); stdcall;
-  glVertexAttrib4hNV: procedure(index: GLuint; x: GLhalfNV; y: GLhalfNV; z: GLhalfNV; w: GLhalfNV); stdcall;
-  glVertexAttrib4hvNV: procedure(index: GLuint; const v: PGLhalfNV); stdcall;
-  glVertexAttribs1hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); stdcall;
-  glVertexAttribs2hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); stdcall;
-  glVertexAttribs3hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); stdcall;
-  glVertexAttribs4hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLhalfNV); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_internalformat_sample_query}
-  glGetInternalformatSampleivNV: procedure(target: GLenum; internalformat: GLenum; samples: GLsizei; pname: GLenum; count: GLsizei; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_memory_attachment}
-  glGetMemoryObjectDetachedResourcesuivNV: procedure(memory: GLuint; pname: GLenum; first: GLint; count: GLsizei; params: PGLuint); stdcall;
-  glResetMemoryObjectParameterNV: procedure(memory: GLuint; pname: GLenum); stdcall;
-  glTexAttachMemoryNV: procedure(target: GLenum; memory: GLuint; offset: GLuint64); stdcall;
-  glBufferAttachMemoryNV: procedure(target: GLenum; memory: GLuint; offset: GLuint64); stdcall;
-  glTextureAttachMemoryNV: procedure(texture: GLuint; memory: GLuint; offset: GLuint64); stdcall;
-  glNamedBufferAttachMemoryNV: procedure(buffer: GLuint; memory: GLuint; offset: GLuint64); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_memory_object_sparse}
-  glBufferPageCommitmentMemNV: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; memory: GLuint; memOffset: GLuint64; commit: GLboolean); stdcall;
-  glTexPageCommitmentMemNV: procedure(target: GLenum; layer: GLint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; memory: GLuint; offset: GLuint64; commit: GLboolean); stdcall;
-  glNamedBufferPageCommitmentMemNV: procedure(buffer: GLuint; offset: GLintptr; size: GLsizeiptr; memory: GLuint; memOffset: GLuint64; commit: GLboolean); stdcall;
-  glTexturePageCommitmentMemNV: procedure(texture: GLuint; layer: GLint; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; memory: GLuint; offset: GLuint64; commit: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_mesh_shader}
-  glDrawMeshTasksNV: procedure(first: GLuint; count: GLuint); stdcall;
-  glDrawMeshTasksIndirectNV: procedure(indirect: GLintptr); stdcall;
-  glMultiDrawMeshTasksIndirectNV: procedure(indirect: GLintptr; drawcount: GLsizei; stride: GLsizei); stdcall;
-  glMultiDrawMeshTasksIndirectCountNV: procedure(indirect: GLintptr; drawcount: GLintptr; maxdrawcount: GLsizei; stride: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_occlusion_query}
-  glGenOcclusionQueriesNV: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glDeleteOcclusionQueriesNV: procedure(n: GLsizei; const ids: PGLuint); stdcall;
-  glIsOcclusionQueryNV: function(id: GLuint): GLboolean; stdcall;
-  glBeginOcclusionQueryNV: procedure(id: GLuint); stdcall;
-  glEndOcclusionQueryNV: procedure; stdcall;
-  glGetOcclusionQueryivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetOcclusionQueryuivNV: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_parameter_buffer_object}
-  glProgramBufferParametersfvNV: procedure(target: GLenum; bindingIndex: GLuint; wordIndex: GLuint; count: GLsizei; const params: PGLfloat); stdcall;
-  glProgramBufferParametersIivNV: procedure(target: GLenum; bindingIndex: GLuint; wordIndex: GLuint; count: GLsizei; const params: PGLint); stdcall;
-  glProgramBufferParametersIuivNV: procedure(target: GLenum; bindingIndex: GLuint; wordIndex: GLuint; count: GLsizei; const params: PGLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_path_rendering}
-  glGenPathsNV: function(range: GLsizei): GLuint; stdcall;
-  glDeletePathsNV: procedure(path: GLuint; range: GLsizei); stdcall;
-  glIsPathNV: function(path: GLuint): GLboolean; stdcall;
-  glPathCommandsNV: procedure(path: GLuint; numCommands: GLsizei; const commands: PGLubyte; numCoords: GLsizei; coordType: GLenum; const coords: pointer); stdcall;
-  glPathCoordsNV: procedure(path: GLuint; numCoords: GLsizei; coordType: GLenum; const coords: pointer); stdcall;
-  glPathSubCommandsNV: procedure(path: GLuint; commandStart: GLsizei; commandsToDelete: GLsizei; numCommands: GLsizei; const commands: PGLubyte; numCoords: GLsizei; coordType: GLenum; const coords: pointer); stdcall;
-  glPathSubCoordsNV: procedure(path: GLuint; coordStart: GLsizei; numCoords: GLsizei; coordType: GLenum; const coords: pointer); stdcall;
-  glPathStringNV: procedure(path: GLuint; format: GLenum; length: GLsizei; const pathString: pointer); stdcall;
-  glPathGlyphsNV: procedure(firstPathName: GLuint; fontTarget: GLenum; const fontName: pointer; fontStyle: GLbitfield; numGlyphs: GLsizei; _type: GLenum; const charcodes: pointer; handleMissingGlyphs: GLenum; pathParameterTemplate: GLuint; emScale: GLfloat); stdcall;
-  glPathGlyphRangeNV: procedure(firstPathName: GLuint; fontTarget: GLenum; const fontName: pointer; fontStyle: GLbitfield; firstGlyph: GLuint; numGlyphs: GLsizei; handleMissingGlyphs: GLenum; pathParameterTemplate: GLuint; emScale: GLfloat); stdcall;
-  glWeightPathsNV: procedure(resultPath: GLuint; numPaths: GLsizei; const paths: PGLuint; const weights: PGLfloat); stdcall;
-  glCopyPathNV: procedure(resultPath: GLuint; srcPath: GLuint); stdcall;
-  glInterpolatePathsNV: procedure(resultPath: GLuint; pathA: GLuint; pathB: GLuint; weight: GLfloat); stdcall;
-  glTransformPathNV: procedure(resultPath: GLuint; srcPath: GLuint; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glPathParameterivNV: procedure(path: GLuint; pname: GLenum; const value: PGLint); stdcall;
-  glPathParameteriNV: procedure(path: GLuint; pname: GLenum; value: GLint); stdcall;
-  glPathParameterfvNV: procedure(path: GLuint; pname: GLenum; const value: PGLfloat); stdcall;
-  glPathParameterfNV: procedure(path: GLuint; pname: GLenum; value: GLfloat); stdcall;
-  glPathDashArrayNV: procedure(path: GLuint; dashCount: GLsizei; const dashArray: PGLfloat); stdcall;
-  glPathStencilFuncNV: procedure(func: GLenum; ref: GLint; mask: GLuint); stdcall;
-  glPathStencilDepthOffsetNV: procedure(factor: GLfloat; units: GLfloat); stdcall;
-  glStencilFillPathNV: procedure(path: GLuint; fillMode: GLenum; mask: GLuint); stdcall;
-  glStencilStrokePathNV: procedure(path: GLuint; reference: GLint; mask: GLuint); stdcall;
-  glStencilFillPathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; fillMode: GLenum; mask: GLuint; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glStencilStrokePathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; reference: GLint; mask: GLuint; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glPathCoverDepthFuncNV: procedure(func: GLenum); stdcall;
-  glCoverFillPathNV: procedure(path: GLuint; coverMode: GLenum); stdcall;
-  glCoverStrokePathNV: procedure(path: GLuint; coverMode: GLenum); stdcall;
-  glCoverFillPathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; coverMode: GLenum; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glCoverStrokePathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; coverMode: GLenum; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glGetPathParameterivNV: procedure(path: GLuint; pname: GLenum; value: PGLint); stdcall;
-  glGetPathParameterfvNV: procedure(path: GLuint; pname: GLenum; value: PGLfloat); stdcall;
-  glGetPathCommandsNV: procedure(path: GLuint; commands: PGLubyte); stdcall;
-  glGetPathCoordsNV: procedure(path: GLuint; coords: PGLfloat); stdcall;
-  glGetPathDashArrayNV: procedure(path: GLuint; dashArray: PGLfloat); stdcall;
-  glGetPathMetricsNV: procedure(metricQueryMask: GLbitfield; numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; stride: GLsizei; metrics: PGLfloat); stdcall;
-  glGetPathMetricRangeNV: procedure(metricQueryMask: GLbitfield; firstPathName: GLuint; numPaths: GLsizei; stride: GLsizei; metrics: PGLfloat); stdcall;
-  glGetPathSpacingNV: procedure(pathListMode: GLenum; numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; advanceScale: GLfloat; kerningScale: GLfloat; transformType: GLenum; returnedSpacing: PGLfloat); stdcall;
-  glIsPointInFillPathNV: function(path: GLuint; mask: GLuint; x: GLfloat; y: GLfloat): GLboolean; stdcall;
-  glIsPointInStrokePathNV: function(path: GLuint; x: GLfloat; y: GLfloat): GLboolean; stdcall;
-  glGetPathLengthNV: function(path: GLuint; startSegment: GLsizei; numSegments: GLsizei): GLfloat; stdcall;
-  glPointAlongPathNV: function(path: GLuint; startSegment: GLsizei; numSegments: GLsizei; distance: GLfloat; x: PGLfloat; y: PGLfloat; tangentX: PGLfloat; tangentY: PGLfloat): GLboolean; stdcall;
-  glMatrixLoad3x2fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixLoad3x3fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixLoadTranspose3x3fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixMult3x2fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixMult3x3fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glMatrixMultTranspose3x3fNV: procedure(matrixMode: GLenum; const m: PGLfloat); stdcall;
-  glStencilThenCoverFillPathNV: procedure(path: GLuint; fillMode: GLenum; mask: GLuint; coverMode: GLenum); stdcall;
-  glStencilThenCoverStrokePathNV: procedure(path: GLuint; reference: GLint; mask: GLuint; coverMode: GLenum); stdcall;
-  glStencilThenCoverFillPathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; fillMode: GLenum; mask: GLuint; coverMode: GLenum; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glStencilThenCoverStrokePathInstancedNV: procedure(numPaths: GLsizei; pathNameType: GLenum; const paths: pointer; pathBase: GLuint; reference: GLint; mask: GLuint; coverMode: GLenum; transformType: GLenum; const transformValues: PGLfloat); stdcall;
-  glPathGlyphIndexRangeNV: function(fontTarget: GLenum; const fontName: pointer; fontStyle: GLbitfield; pathParameterTemplate: GLuint; emScale: GLfloat; baseAndCount: PGLuint): GLenum; stdcall;
-  glPathGlyphIndexArrayNV: function(firstPathName: GLuint; fontTarget: GLenum; const fontName: pointer; fontStyle: GLbitfield; firstGlyphIndex: GLuint; numGlyphs: GLsizei; pathParameterTemplate: GLuint; emScale: GLfloat): GLenum; stdcall;
-  glPathMemoryGlyphIndexArrayNV: function(firstPathName: GLuint; fontTarget: GLenum; fontSize: GLsizeiptr; const fontData: pointer; faceIndex: GLsizei; firstGlyphIndex: GLuint; numGlyphs: GLsizei; pathParameterTemplate: GLuint; emScale: GLfloat): GLenum; stdcall;
-  glProgramPathFragmentInputGenNV: procedure(_program: GLuint; location: GLint; genMode: GLenum; components: GLint; const coeffs: PGLfloat); stdcall;
-  glGetProgramResourcefvNV: procedure(_program: GLuint; programInterface: GLenum; index: GLuint; propCount: GLsizei; const props: PGLenum; count: GLsizei; length: PGLsizei; params: PGLfloat); stdcall;
-  {$IfNDef USE_GLCORE}
-  glPathColorGenNV: procedure(color: GLenum; genMode: GLenum; colorFormat: GLenum; const coeffs: PGLfloat); stdcall;
-  glPathTexGenNV: procedure(texCoordSet: GLenum; genMode: GLenum; components: GLint; const coeffs: PGLfloat); stdcall;
-  glPathFogGenNV: procedure(genMode: GLenum); stdcall;
-  glGetPathColorGenivNV: procedure(color: GLenum; pname: GLenum; value: PGLint); stdcall;
-  glGetPathColorGenfvNV: procedure(color: GLenum; pname: GLenum; value: PGLfloat); stdcall;
-  glGetPathTexGenivNV: procedure(texCoordSet: GLenum; pname: GLenum; value: PGLint); stdcall;
-  glGetPathTexGenfvNV: procedure(texCoordSet: GLenum; pname: GLenum; value: PGLfloat); stdcall;
-  {$EndIf}
-  {$EndIf}
-
-  {$IfDef GL_NV_pixel_data_range}
-  glPixelDataRangeNV: procedure(target: GLenum; length: GLsizei; pointer: pointer); stdcall;
-  glFlushPixelDataRangeNV: procedure(target: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_point_sprite}
-  glPointParameteriNV: procedure(pname: GLenum; param: GLint); stdcall;
-  glPointParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_present_video}
-  glPresentFrameKeyedNV: procedure(video_slot: GLuint; minPresentTime: GLuint64EXT; beginPresentTimeId: GLuint; presentDurationId: GLuint; _type: GLenum; target0: GLenum; fill0: GLuint; key0: GLuint; target1: GLenum; fill1: GLuint; key1: GLuint); stdcall;
-  glPresentFrameDualFillNV: procedure(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); stdcall;
-  glGetVideoivNV: procedure(video_slot: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVideouivNV: procedure(video_slot: GLuint; pname: GLenum; params: PGLuint); stdcall;
-  glGetVideoi64vNV: procedure(video_slot: GLuint; pname: GLenum; params: PGLint64EXT); stdcall;
-  glGetVideoui64vNV: procedure(video_slot: GLuint; pname: GLenum; params: PGLuint64EXT); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_primitive_restart}
-  glPrimitiveRestartNV: procedure; stdcall;
-  glPrimitiveRestartIndexNV: procedure(index: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_query_resource}
-  glQueryResourceNV: function(queryType: GLenum; tagId: GLint; count: GLuint; buffer: PGLint): GLint; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_query_resource_tag}
-  glGenQueryResourceTagNV: procedure(n: GLsizei; tagIds: PGLint); stdcall;
-  glDeleteQueryResourceTagNV: procedure(n: GLsizei; const tagIds: PGLint); stdcall;
-  glQueryResourceTagNV: procedure(tagId: GLint; const tagString: PGLchar); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_register_combiners}
-  glCombinerParameterfvNV: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  glCombinerParameterfNV: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glCombinerParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall;
-  glCombinerParameteriNV: procedure(pname: GLenum; param: GLint); stdcall;
-  glCombinerInputNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall;
-  glCombinerOutputNV: procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); stdcall;
-  glFinalCombinerInputNV: procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall;
-  glGetCombinerInputParameterfvNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetCombinerInputParameterivNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetCombinerOutputParameterfvNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetCombinerOutputParameterivNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetFinalCombinerInputParameterfvNV: procedure(variable: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetFinalCombinerInputParameterivNV: procedure(variable: GLenum; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_register_combiners2}
-  glCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glGetCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_sample_locations}
-  glFramebufferSampleLocationsfvNV: procedure(target: GLenum; start: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glNamedFramebufferSampleLocationsfvNV: procedure(framebuffer: GLuint; start: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glResolveDepthValuesNV: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_scissor_exclusive}
-  glScissorExclusiveNV: procedure(x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall;
-  glScissorExclusiveArrayvNV: procedure(first: GLuint; count: GLsizei; const v: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_shader_buffer_load}
-  glMakeBufferResidentNV: procedure(target: GLenum; access: GLenum); stdcall;
-  glMakeBufferNonResidentNV: procedure(target: GLenum); stdcall;
-  glIsBufferResidentNV: function(target: GLenum): GLboolean; stdcall;
-  glMakeNamedBufferResidentNV: procedure(buffer: GLuint; access: GLenum); stdcall;
-  glMakeNamedBufferNonResidentNV: procedure(buffer: GLuint); stdcall;
-  glIsNamedBufferResidentNV: function(buffer: GLuint): GLboolean; stdcall;
-  glGetBufferParameterui64vNV: procedure(target: GLenum; pname: GLenum; params: PGLuint64EXT); stdcall;
-  glGetNamedBufferParameterui64vNV: procedure(buffer: GLuint; pname: GLenum; params: PGLuint64EXT); stdcall;
-  glGetIntegerui64vNV: procedure(value: GLenum; result: PGLuint64EXT); stdcall;
-  glUniformui64NV: procedure(location: GLint; value: GLuint64EXT); stdcall;
-  glUniformui64vNV: procedure(location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  glProgramUniformui64NV: procedure(_program: GLuint; location: GLint; value: GLuint64EXT); stdcall;
-  glProgramUniformui64vNV: procedure(_program: GLuint; location: GLint; count: GLsizei; const value: PGLuint64EXT); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_shading_rate_image}
-  glBindShadingRateImageNV: procedure(texture: GLuint); stdcall;
-  glGetShadingRateImagePaletteNV: procedure(viewport: GLuint; entry: GLuint; rate: PGLenum); stdcall;
-  glGetShadingRateSampleLocationivNV: procedure(rate: GLenum; samples: GLuint; index: GLuint; location: PGLint); stdcall;
-  glShadingRateImageBarrierNV: procedure(synchronize: GLboolean); stdcall;
-  glShadingRateImagePaletteNV: procedure(viewport: GLuint; first: GLuint; count: GLsizei; const rates: PGLenum); stdcall;
-  glShadingRateSampleOrderNV: procedure(order: GLenum); stdcall;
-  glShadingRateSampleOrderCustomNV: procedure(rate: GLenum; samples: GLuint; const locations: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_texture_barrier}
-  glTextureBarrierNV: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_texture_multisample}
-  glTexImage2DMultisampleCoverageNV: procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  glTexImage3DMultisampleCoverageNV: procedure(target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  glTextureImage2DMultisampleNV: procedure(texture: GLuint; target: GLenum; samples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  glTextureImage3DMultisampleNV: procedure(texture: GLuint; target: GLenum; samples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  glTextureImage2DMultisampleCoverageNV: procedure(texture: GLuint; target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  glTextureImage3DMultisampleCoverageNV: procedure(texture: GLuint; target: GLenum; coverageSamples: GLsizei; colorSamples: GLsizei; internalFormat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; fixedSampleLocations: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_timeline_semaphore}
-  glCreateSemaphoresNV: procedure(n: GLsizei; semaphores: PGLuint); stdcall;
-  glSemaphoreParameterivNV: procedure(semaphore: GLuint; pname: GLenum; const params: PGLint); stdcall;
-  glGetSemaphoreParameterivNV: procedure(semaphore: GLuint; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_transform_feedback}
-  glBeginTransformFeedbackNV: procedure(primitiveMode: GLenum); stdcall;
-  glEndTransformFeedbackNV: procedure; stdcall;
-  glTransformFeedbackAttribsNV: procedure(count: GLsizei; const attribs: PGLint; bufferMode: GLenum); stdcall;
-  glBindBufferRangeNV: procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr; size: GLsizeiptr); stdcall;
-  glBindBufferOffsetNV: procedure(target: GLenum; index: GLuint; buffer: GLuint; offset: GLintptr); stdcall;
-  glBindBufferBaseNV: procedure(target: GLenum; index: GLuint; buffer: GLuint); stdcall;
-  glTransformFeedbackVaryingsNV: procedure(_program: GLuint; count: GLsizei; const locations: PGLint; bufferMode: GLenum); stdcall;
-  glActiveVaryingNV: procedure(_program: GLuint; const name: PGLchar); stdcall;
-  glGetVaryingLocationNV: function(_program: GLuint; const name: PGLchar): GLint; stdcall;
-  glGetActiveVaryingNV: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLsizei; _type: PGLenum; name: PGLchar); stdcall;
-  glGetTransformFeedbackVaryingNV: procedure(_program: GLuint; index: GLuint; location: PGLint); stdcall;
-  glTransformFeedbackStreamAttribsNV: procedure(count: GLsizei; const attribs: PGLint; nbuffers: GLsizei; const bufstreams: PGLint; bufferMode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_transform_feedback2}
-  glBindTransformFeedbackNV: procedure(target: GLenum; id: GLuint); stdcall;
-  glDeleteTransformFeedbacksNV: procedure(n: GLsizei; const ids: PGLuint); stdcall;
-  glGenTransformFeedbacksNV: procedure(n: GLsizei; ids: PGLuint); stdcall;
-  glIsTransformFeedbackNV: function(id: GLuint): GLboolean; stdcall;
-  glPauseTransformFeedbackNV: procedure; stdcall;
-  glResumeTransformFeedbackNV: procedure; stdcall;
-  glDrawTransformFeedbackNV: procedure(mode: GLenum; id: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vdpau_interop}
-  glVDPAUInitNV: procedure(vdpDevice: pointer; const getProcAddress: pointer); stdcall;
-  glVDPAUFiniNV: procedure; stdcall;
-  glVDPAURegisterVideoSurfaceNV: function(const vdpSurface: pointer; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; stdcall;
-  glVDPAURegisterOutputSurfaceNV: function(const vdpSurface: pointer; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint): GLvdpauSurfaceNV; stdcall;
-  glVDPAUIsSurfaceNV: function(surface: GLvdpauSurfaceNV): GLboolean; stdcall;
-  glVDPAUUnregisterSurfaceNV: procedure(surface: GLvdpauSurfaceNV); stdcall;
-  glVDPAUGetSurfaceivNV: procedure(surface: GLvdpauSurfaceNV; pname: GLenum; count: GLsizei; length: PGLsizei; values: PGLint); stdcall;
-  glVDPAUSurfaceAccessNV: procedure(surface: GLvdpauSurfaceNV; access: GLenum); stdcall;
-  glVDPAUMapSurfacesNV: procedure(numSurfaces: GLsizei; const surfaces: PGLvdpauSurfaceNV); stdcall;
-  glVDPAUUnmapSurfacesNV: procedure(numSurface: GLsizei; const surfaces: PGLvdpauSurfaceNV); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vdpau_interop2}
-  glVDPAURegisterVideoSurfaceWithPictureStructureNV: function(const vdpSurface: pointer; target: GLenum; numTextureNames: GLsizei; const textureNames: PGLuint; isFrameStructure: GLboolean): GLvdpauSurfaceNV; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_array_range}
-  glFlushVertexArrayRangeNV: procedure; stdcall;
-  glVertexArrayRangeNV: procedure(length: GLsizei; const _pointer: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_attrib_integer_64bit}
-  glVertexAttribL1i64NV: procedure(index: GLuint; x: GLint64EXT); stdcall;
-  glVertexAttribL2i64NV: procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT); stdcall;
-  glVertexAttribL3i64NV: procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT); stdcall;
-  glVertexAttribL4i64NV: procedure(index: GLuint; x: GLint64EXT; y: GLint64EXT; z: GLint64EXT; w: GLint64EXT); stdcall;
-  glVertexAttribL1i64vNV: procedure(index: GLuint; const v: PGLint64EXT); stdcall;
-  glVertexAttribL2i64vNV: procedure(index: GLuint; const v: PGLint64EXT); stdcall;
-  glVertexAttribL3i64vNV: procedure(index: GLuint; const v: PGLint64EXT); stdcall;
-  glVertexAttribL4i64vNV: procedure(index: GLuint; const v: PGLint64EXT); stdcall;
-  glVertexAttribL1ui64NV: procedure(index: GLuint; x: GLuint64EXT); stdcall;
-  glVertexAttribL2ui64NV: procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT); stdcall;
-  glVertexAttribL3ui64NV: procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT); stdcall;
-  glVertexAttribL4ui64NV: procedure(index: GLuint; x: GLuint64EXT; y: GLuint64EXT; z: GLuint64EXT; w: GLuint64EXT); stdcall;
-  glVertexAttribL1ui64vNV: procedure(index: GLuint; const v: PGLuint64EXT); stdcall;
-  glVertexAttribL2ui64vNV: procedure(index: GLuint; const v: PGLuint64EXT); stdcall;
-  glVertexAttribL3ui64vNV: procedure(index: GLuint; const v: PGLuint64EXT); stdcall;
-  glVertexAttribL4ui64vNV: procedure(index: GLuint; const v: PGLuint64EXT); stdcall;
-  glGetVertexAttribLi64vNV: procedure(index: GLuint; pname: GLenum; params: PGLint64EXT); stdcall;
-  glGetVertexAttribLui64vNV: procedure(index: GLuint; pname: GLenum; params: PGLuint64EXT); stdcall;
-  glVertexAttribLFormatNV: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_buffer_unified_memory}
-  glBufferAddressRangeNV: procedure(pname: GLenum; index: GLuint; address: GLuint64EXT; length: GLsizeiptr); stdcall;
-  glVertexFormatNV: procedure(size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  glNormalFormatNV: procedure(_type: GLenum; stride: GLsizei); stdcall;
-  glColorFormatNV: procedure(size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  glIndexFormatNV: procedure(_type: GLenum; stride: GLsizei); stdcall;
-  glTexCoordFormatNV: procedure(size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  glEdgeFlagFormatNV: procedure(stride: GLsizei); stdcall;
-  glSecondaryColorFormatNV: procedure(size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  glFogCoordFormatNV: procedure(_type: GLenum; stride: GLsizei); stdcall;
-  glVertexAttribFormatNV: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei); stdcall;
-  glVertexAttribIFormatNV: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei); stdcall;
-  glGetIntegerui64i_vNV: procedure(value: GLenum; index: GLuint; result: PGLuint64EXT); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_program}
-  glAreProgramsResidentNV: function(n: GLsizei; const programs: PGLuint; residences: PGLboolean): GLboolean; stdcall;
-  glBindProgramNV: procedure(target: GLenum; id: GLuint); stdcall;
-  glDeleteProgramsNV: procedure(n: GLsizei; const programs: PGLuint); stdcall;
-  glExecuteProgramNV: procedure(target: GLenum; id: GLuint; const params: PGLfloat); stdcall;
-  glGenProgramsNV: procedure(n: GLsizei; programs: PGLuint); stdcall;
-  glGetProgramParameterdvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glGetProgramParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetProgramivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetProgramStringNV: procedure(id: GLuint; pname: GLenum; _program: PGLubyte); stdcall;
-  glGetTrackMatrixivNV: procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribdvNV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glGetVertexAttribfvNV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVertexAttribivNV: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVertexAttribPointervNV: procedure(index: GLuint; pname: GLenum; pointer:Ppointer); stdcall;
-  glIsProgramNV: function(id: GLuint): GLboolean; stdcall;
-  glLoadProgramNV: procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); stdcall;
-  glProgramParameter4dNV: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glProgramParameter4dvNV: procedure(target: GLenum; index: GLuint; const v: PGLdouble); stdcall;
-  glProgramParameter4fNV: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glProgramParameter4fvNV: procedure(target: GLenum; index: GLuint; const v: PGLfloat); stdcall;
-  glProgramParameters4dvNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glProgramParameters4fvNV: procedure(target: GLenum; index: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glRequestResidentProgramsNV: procedure(n: GLsizei; const programs: PGLuint); stdcall;
-  glTrackMatrixNV: procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); stdcall;
-  glVertexAttribPointerNV: procedure(index: GLuint; fsize: GLint; _type: GLenum; stride: GLsizei; const _pointer: pointer); stdcall;
-  glVertexAttrib1dNV: procedure(index: GLuint; x: GLdouble); stdcall;
-  glVertexAttrib1dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib1fNV: procedure(index: GLuint; x: GLfloat); stdcall;
-  glVertexAttrib1fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib1sNV: procedure(index: GLuint; x: GLshort); stdcall;
-  glVertexAttrib1svNV: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib2dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall;
-  glVertexAttrib2dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib2fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall;
-  glVertexAttrib2fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib2sNV: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall;
-  glVertexAttrib2svNV: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib3dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall;
-  glVertexAttrib3dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib3fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glVertexAttrib3fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib3sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall;
-  glVertexAttrib3svNV: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall;
-  glVertexAttrib4dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall;
-  glVertexAttrib4fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glVertexAttrib4fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall;
-  glVertexAttrib4sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall;
-  glVertexAttrib4svNV: procedure(index: GLuint; const v: PGLshort); stdcall;
-  glVertexAttrib4ubNV: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall;
-  glVertexAttrib4ubvNV: procedure(index: GLuint; const v: PGLubyte); stdcall;
-  glVertexAttribs1dvNV: procedure(index: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glVertexAttribs1fvNV: procedure(index: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glVertexAttribs1svNV: procedure(index: GLuint; count: GLsizei; const v: PGLshort); stdcall;
-  glVertexAttribs2dvNV: procedure(index: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glVertexAttribs2fvNV: procedure(index: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glVertexAttribs2svNV: procedure(index: GLuint; count: GLsizei; const v: PGLshort); stdcall;
-  glVertexAttribs3dvNV: procedure(index: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glVertexAttribs3fvNV: procedure(index: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glVertexAttribs3svNV: procedure(index: GLuint; count: GLsizei; const v: PGLshort); stdcall;
-  glVertexAttribs4dvNV: procedure(index: GLuint; count: GLsizei; const v: PGLdouble); stdcall;
-  glVertexAttribs4fvNV: procedure(index: GLuint; count: GLsizei; const v: PGLfloat); stdcall;
-  glVertexAttribs4svNV: procedure(index: GLuint; count: GLsizei; const v: PGLshort); stdcall;
-  glVertexAttribs4ubvNV: procedure(index: GLuint; count: GLsizei; const v: PGLubyte); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_video_capture}
-  glBeginVideoCaptureNV: procedure(video_capture_slot: GLuint); stdcall;
-  glBindVideoCaptureStreamBufferNV: procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; offset: GLintptrARB); stdcall;
-  glBindVideoCaptureStreamTextureNV: procedure(video_capture_slot: GLuint; stream: GLuint; frame_region: GLenum; target: GLenum; texture: GLuint); stdcall;
-  glEndVideoCaptureNV: procedure(video_capture_slot: GLuint); stdcall;
-  glGetVideoCaptureivNV: procedure(video_capture_slot: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVideoCaptureStreamivNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glGetVideoCaptureStreamfvNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetVideoCaptureStreamdvNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; params: PGLdouble); stdcall;
-  glVideoCaptureNV: function(video_capture_slot: GLuint; sequence_num: PGLuint; capture_time: PGLuint64EXT): GLenum; stdcall;
-  glVideoCaptureStreamParameterivNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLint); stdcall;
-  glVideoCaptureStreamParameterfvNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLfloat); stdcall;
-  glVideoCaptureStreamParameterdvNV: procedure(video_capture_slot: GLuint; stream: GLuint; pname: GLenum; const params: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_NV_viewport_swizzle}
-  glViewportSwizzleNV: procedure(index: GLuint; swizzlex: GLenum; swizzley: GLenum; swizzlez: GLenum; swizzlew: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_OVR_multiview}
-  glFramebufferTextureMultiviewOVR: procedure(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; baseViewIndex: GLint; numViews: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_PGI_misc_hints}
-  glHintPGI: procedure(target: GLenum; mode: GLint); stdcall;       // = glHint
-  {$EndIf}
-
-  {$IfDef GL_SGIS_detail_texture}
-  glDetailTexFuncSGIS: procedure(target: GLenum; n: GLsizei; const points: PGLfloat); stdcall;
-  glGetDetailTexFuncSGIS: procedure(target: GLenum; points: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_fog_function}
-  glFogFuncSGIS: procedure(n: GLsizei; const points: PGLfloat); stdcall;
-  glGetFogFuncSGIS: procedure(points: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_multisample}
-  glSampleMaskSGIS: procedure(value: GLclampf; invert: GLboolean); stdcall;
-  glSamplePatternSGIS: procedure(pattern: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_pixel_texture}
-  glPixelTexGenParameteriSGIS: procedure(pname: GLenum; param: GLint); stdcall;
-  glPixelTexGenParameterivSGIS: procedure(pname: GLenum; const params: PGLint); stdcall;
-  glPixelTexGenParameterfSGIS: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glPixelTexGenParameterfvSGIS: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  glGetPixelTexGenParameterivSGIS: procedure(pname: GLenum; params: PGLint); stdcall;
-  glGetPixelTexGenParameterfvSGIS: procedure(pname: GLenum; params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_point_parameters}
-  glPointParameterfSGIS: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glPointParameterfvSGIS: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_sharpen_texture}
-  glSharpenTexFuncSGIS: procedure(target: GLenum; n: GLsizei; const points: PGLfloat); stdcall;
-  glGetSharpenTexFuncSGIS: procedure(target: GLenum; points: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture4D}
-  glTexImage4DSGIS: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  glTexSubImage4DSGIS: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; woffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; size4d: GLsizei; format: GLenum; _type: GLenum; const pixels: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture_color_mask}
-  glTextureColorMaskSGIS: procedure(red: GLboolean; green: GLboolean; blue: GLboolean; alpha: GLboolean); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture_filter4}
-  glGetTexFilterFuncSGIS: procedure(target: GLenum; filter: GLenum; weights: PGLfloat); stdcall;
-  glTexFilterFuncSGIS: procedure(target: GLenum; filter: GLenum; n: GLsizei; const weights: PGLfloat); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_async}
-  glAsyncMarkerSGIX: procedure(marker: GLuint); stdcall;
-  glFinishAsyncSGIX: function(markerp: PGLuint): GLint; stdcall;
-  glPollAsyncSGIX: function(markerp: PGLuint): GLint; stdcall;
-  glGenAsyncMarkersSGIX: function(range: GLsizei): GLuint; stdcall;
-  glDeleteAsyncMarkersSGIX: procedure(marker: GLuint; range: GLsizei); stdcall;
-  glIsAsyncMarkerSGIX: function(marker: GLuint): GLboolean; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_flush_raster}
-  glFlushRasterSGIX: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_fragment_lighting}
-  glFragmentColorMaterialSGIX: procedure(face: GLenum; mode: GLenum); stdcall;
-  glFragmentLightfSGIX: procedure(light: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glFragmentLightfvSGIX: procedure(light: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glFragmentLightiSGIX: procedure(light: GLenum; pname: GLenum; param: GLint); stdcall;
-  glFragmentLightivSGIX: procedure(light: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glFragmentLightModelfSGIX: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glFragmentLightModelfvSGIX: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  glFragmentLightModeliSGIX: procedure(pname: GLenum; param: GLint); stdcall;
-  glFragmentLightModelivSGIX: procedure(pname: GLenum; const params: PGLint); stdcall;
-  glFragmentMaterialfSGIX: procedure(face: GLenum; pname: GLenum; param: GLfloat); stdcall;
-  glFragmentMaterialfvSGIX: procedure(face: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glFragmentMaterialiSGIX: procedure(face: GLenum; pname: GLenum; param: GLint); stdcall;
-  glFragmentMaterialivSGIX: procedure(face: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glGetFragmentLightfvSGIX: procedure(light: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetFragmentLightivSGIX: procedure(light: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glGetFragmentMaterialfvSGIX: procedure(face: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetFragmentMaterialivSGIX: procedure(face: GLenum; pname: GLenum; params: PGLint); stdcall;
-  glLightEnviSGIX: procedure(pname: GLenum; param: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_framezoom}
-  glFrameZoomSGIX: procedure(factor: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_igloo_interface}
-  glIglooInterfaceSGIX: procedure(pname: GLenum; const params: pointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_instruments}
-  glGetInstrumentsSGIX: function: GLint; stdcall;
-  glInstrumentsBufferSGIX: procedure(size: GLsizei; buffer: PGLint); stdcall;
-  glPollInstrumentsSGIX: function(marker_p: PGLint): GLint; stdcall;
-  glReadInstrumentsSGIX: procedure(marker: GLint); stdcall;
-  glStartInstrumentsSGIX: procedure; stdcall;
-  glStopInstrumentsSGIX: procedure(marker: GLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_list_priority}
-  glGetListParameterfvSGIX: procedure(list: GLuint; pname: GLenum; params: PGLfloat); stdcall;
-  glGetListParameterivSGIX: procedure(list: GLuint; pname: GLenum; params: PGLint); stdcall;
-  glListParameterfSGIX: procedure(list: GLuint; pname: GLenum; param: GLfloat); stdcall;
-  glListParameterfvSGIX: procedure(list: GLuint; pname: GLenum; const params: PGLfloat); stdcall;
-  glListParameteriSGIX: procedure(list: GLuint; pname: GLenum; param: GLint); stdcall;
-  glListParameterivSGIX: procedure(list: GLuint; pname: GLenum; const params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_pixel_texture}
-  glPixelTexGenSGIX: procedure(mode: GLenum); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_polynomial_ffd}
-  glDeformationMap3dSGIX: procedure(target: GLenum; u1: GLdouble; u2: GLdouble; ustride: GLint; uorder: GLint; v1: GLdouble; v2: GLdouble; vstride: GLint; vorder: GLint; w1: GLdouble; w2: GLdouble; wstride: GLint; worder: GLint; const points: PGLdouble); stdcall;
-  glDeformationMap3fSGIX: procedure(target: GLenum; u1: GLfloat; u2: GLfloat; ustride: GLint; uorder: GLint; v1: GLfloat; v2: GLfloat; vstride: GLint; vorder: GLint; w1: GLfloat; w2: GLfloat; wstride: GLint; worder: GLint; const points: PGLfloat); stdcall;
-  glDeformSGIX: procedure(mask: GLbitfield); stdcall;
-  glLoadIdentityDeformationMapSGIX: procedure(mask: GLbitfield); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_reference_plane}
-  glReferencePlaneSGIX: procedure(const equation: PGLdouble); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_sprite}
-  glSpriteParameterfSGIX: procedure(pname: GLenum; param: GLfloat); stdcall;
-  glSpriteParameterfvSGIX: procedure(pname: GLenum; const params: PGLfloat); stdcall;
-  glSpriteParameteriSGIX: procedure(pname: GLenum; param: GLint); stdcall;
-  glSpriteParameterivSGIX: procedure(pname: GLenum; const params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_tag_sample_buffer}
-  glTagSampleBufferSGIX: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SGI_color_table}
-  glColorTableSGI: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; table: pointer); stdcall;
-  glColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall;
-  glColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall;
-  glCopyColorTableSGI: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall;
-  glGetColorTableSGI: procedure(target: GLenum; format: GLenum; _type: GLenum; table: pointer); stdcall;
-  glGetColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall;
-  glGetColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SUNX_constant_data}
-  glFinishTextureSUNX: procedure; stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SUN_global_alpha}
-  glGlobalAlphaFactorbSUN: procedure(factor: GLbyte); stdcall;
-  glGlobalAlphaFactorsSUN: procedure(factor: GLshort); stdcall;
-  glGlobalAlphaFactoriSUN: procedure(factor: GLint); stdcall;
-  glGlobalAlphaFactorfSUN: procedure(factor: GLfloat); stdcall;
-  glGlobalAlphaFactordSUN: procedure(factor: GLdouble); stdcall;
-  glGlobalAlphaFactorubSUN: procedure(factor: GLubyte); stdcall;
-  glGlobalAlphaFactorusSUN: procedure(factor: GLushort); stdcall;
-  glGlobalAlphaFactoruiSUN: procedure(factor: GLuint); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SUN_mesh_array}
-  glDrawMeshArraysSUN: procedure(mode: GLenum; first: GLint; count: GLsizei; width: GLsizei); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SUN_triangle_list}
-  glReplacementCodeuiSUN: procedure(code: GLuint); stdcall;
-  glReplacementCodeusSUN: procedure(code: GLushort); stdcall;
-  glReplacementCodeubSUN: procedure(code: GLubyte); stdcall;
-  glReplacementCodeuivSUN: procedure(const code: PGLuint); stdcall;
-  glReplacementCodeusvSUN: procedure(const code: PGLushort); stdcall;
-  glReplacementCodeubvSUN: procedure(const code: PGLubyte); stdcall;
-  glReplacementCodePointerSUN: procedure(_type: GLenum; stride: GLsizei; const _pointer: {P}Ppointer); stdcall;
-  {$EndIf}
-
-  {$IfDef GL_SUN_vertex}
-  glColor4ubVertex2fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); stdcall;
-  glColor4ubVertex2fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall;
-  glColor4ubVertex3fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glColor4ubVertex3fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall;
-  glColor3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glColor3fVertex3fvSUN: procedure(const c: PGLfloat; const v: PGLfloat); stdcall;
-  glNormal3fVertex3fSUN: procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glNormal3fVertex3fvSUN: procedure(const n: PGLfloat; const v: PGLfloat); stdcall;
-  glColor4fNormal3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glColor4fNormal3fVertex3fvSUN: procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord2fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glTexCoord2fVertex3fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord4fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall;
-  glTexCoord4fVertex4fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord2fColor4ubVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glTexCoord2fColor4ubVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); stdcall;
-  glTexCoord2fColor3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glTexCoord2fColor3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord2fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glTexCoord2fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord2fColor4fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glTexCoord4fColor4fNormal3fVertex4fSUN: procedure(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); stdcall;
-  glTexCoord4fColor4fNormal3fVertex4fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiVertex3fSUN: procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiVertex3fvSUN: procedure(const rc: PGLuint; const v: PGLfloat); stdcall;
-  glReplacementCodeuiColor4ubVertex3fSUN: procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiColor4ubVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); stdcall;
-  glReplacementCodeuiColor3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiColor3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiNormal3fVertex3fSUN: procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiColor4fNormal3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiTexCoord2fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiTexCoord2fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall;
-  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: procedure(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); stdcall;
-  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall;
-  {$EndIf}
-
-var
-  gl_Library: Pointer;
-
-{$If defined(USE_GLEXT) or defined(USE_GLCORE)}
-// Rus: проверка всех расширений.
-// Eng:
-procedure AllCheckGLExtension;
-{$IfEnd}
-// Rus: проверка версии OpenGL. Вернёт действующее значение или значение,
-//      максимально возможное. Если в файле конфигурации (GLdefine.cfg) задано
-//      использовать версию OpenGL 2.1 (USE_GL_21), а ваша видеокарта может
-//      работать с OpenGL версии 4.4, то вы будете работать с версией OpengL не
-//      выше 2.1.    !!! Обратите на это нвимание!!!
-// Eng:
-procedure CheckGLVersion;
-// Rus: загрузка динамических функций.
-// Eng:
-function LoadOpenGL: Boolean;
-
-implementation
-
-uses
-  zgl_opengl,
-  zgl_opengl_all,
-  zgl_glu;
-
-(*{$IFDEF LINUX}
-
-function dlopen(Name: PAnsiChar; Flags: LongInt): Pointer; cdecl; external 'dl';
-function dlclose(Lib: Pointer): LongInt; cdecl; external 'dl';
-
-function dlsym(Lib: Pointer; Name: PAnsiChar): Pointer; cdecl; external 'dl';
-{$ENDIF}
-
-function glLoadLib(Name: PChar): Pointer;
-begin
-  {$IfDef WINDOWS}
-  Result := Pointer(LoadLibrary(Name));
-  {$EndIf}
-  {$IfDef LINUX}
-  Result := dlopen(Name, $001);
-  {$EndIf}
-end;
-
-function glFreeLib(Lib: Pointer): Boolean;
-begin
-  {$IfDef WINDOWS}
-  Result := FreeLibrary();
-  {$EndIf}
-  {$IfDef LINUX}
-  Result := dlclose(Lib) = 0;
-  {$EndIf}
-end; *)
-
-(* function gl_GetProcAddr(const procName: PAnsiChar): Pointer;  // в ZenGL это не нужно
-begin
-  {$IfDef WINDOWS}
-  if Assigned(wglGetProcAddress) then
-    Result := wglGetProcAddress(procName);
-  if Result = nil then
-    Result := GetProcAddress(HMODULE(gl_Library), procName);
-  {$EndIf}
-  {$IfDef LINUX}
-  if Assigned(glXGetProcAddress) then
-    Result := glXGetProcAddress(procName);
-  if Result = nil then
-    if Assigned(glXGetProcAddressARB) then
-      Result := glXGetProcAddressARB(procName);
-  if Result = nil then
-    Result := dlsym(gl_Library, procName);
-  {$EndIf}
-end; *)
-
-{$If defined(USE_GLCORE) or defined(USE_GLEXT)}
-procedure AllCheckGLExtension;
-begin
-  GL_ARB_ES2_compatibility := gl_IsSupported('GL_ARB_ES2_compatibility', oglExtensions);
-  GL_ARB_ES3_1_compatibility := gl_IsSupported('GL_ARB_ES3_1_compatibility', oglExtensions);
-  GL_ARB_ES3_2_compatibility := gl_IsSupported('GL_ARB_ES3_2_compatibility', oglExtensions);
-  GL_ARB_ES3_compatibility := gl_IsSupported('GL_ARB_ES3_compatibility', oglExtensions);
-  GL_ARB_arrays_of_arrays := gl_IsSupported('GL_ARB_arrays_of_arrays', oglExtensions);
-  GL_ARB_base_instance := gl_IsSupported('GL_ARB_base_instance', oglExtensions);
-  GL_ARB_bindless_texture := gl_IsSupported('GL_ARB_bindless_texture', oglExtensions);
-  GL_ARB_blend_func_extended := gl_IsSupported('GL_ARB_blend_func_extended', oglExtensions);
-  GL_ARB_buffer_storage := gl_IsSupported('GL_ARB_buffer_storage', oglExtensions);
-  GL_ARB_cl_event := gl_IsSupported('GL_ARB_cl_event', oglExtensions);
-  GL_ARB_clear_buffer_object := gl_IsSupported('GL_ARB_clear_buffer_object', oglExtensions);
-  GL_ARB_clear_texture := gl_IsSupported('GL_ARB_clear_texture', oglExtensions);
-  GL_ARB_clip_control := gl_IsSupported('GL_ARB_clip_control', oglExtensions);
-  {$IFDEF GL_VERSION_3_0}
-  GL_ARB_compatibility := gl_IsSupported('GL_ARB_compatibility', oglExtensions);
-  {$ENDIF}
-  {$IFDEF USE_GLEXT}
-  GL_ARB_color_buffer_float := gl_IsSupported('GL_ARB_color_buffer_float', oglExtensions);
-  {$EndIf}
-  GL_ARB_compressed_texture_pixel_storage := gl_IsSupported('GL_ARB_compressed_texture_pixel_storage', oglExtensions);
-  GL_ARB_compute_shader := gl_IsSupported('GL_ARB_compute_shader', oglExtensions);
-  GL_ARB_compute_variable_group_size := gl_IsSupported('GL_ARB_compute_variable_group_size', oglExtensions);
-  GL_ARB_conditional_render_inverted := gl_IsSupported('GL_ARB_conditional_render_inverted', oglExtensions);
-  GL_ARB_conservative_depth := gl_IsSupported('GL_ARB_conservative_depth', oglExtensions);
-  GL_ARB_copy_buffer := gl_IsSupported('GL_ARB_copy_buffer', oglExtensions);
-  GL_ARB_copy_image := gl_IsSupported('GL_ARB_copy_image', oglExtensions);
-  GL_ARB_cull_distance := gl_IsSupported('GL_ARB_cull_distance', oglExtensions);
-  GL_ARB_debug_output := gl_IsSupported('GL_ARB_debug_output', oglExtensions);
-  GL_ARB_depth_buffer_float := gl_IsSupported('GL_ARB_depth_buffer_float', oglExtensions);
-  GL_ARB_depth_clamp := gl_IsSupported('GL_ARB_depth_clamp', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_depth_texture := gl_IsSupported('GL_ARB_depth_texture', oglExtensions);
-  {$EndIf}
-  GL_ARB_derivative_control := gl_IsSupported('GL_ARB_derivative_control', oglExtensions);
-  GL_ARB_direct_state_access := gl_IsSupported('GL_ARB_direct_state_access', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_draw_buffers := gl_IsSupported('GL_ARB_draw_buffers', oglExtensions);
-  {$EndIf}
-  GL_ARB_draw_buffers_blend := gl_IsSupported('GL_ARB_draw_buffers_blend', oglExtensions);
-  GL_ARB_draw_elements_base_vertex := gl_IsSupported('GL_ARB_draw_elements_base_vertex', oglExtensions);
-  GL_ARB_draw_indirect := gl_IsSupported('GL_ARB_draw_indirect', oglExtensions);
-  GL_ARB_draw_instanced := gl_IsSupported('GL_ARB_draw_instanced', oglExtensions);
-  GL_ARB_enhanced_layouts := gl_IsSupported('GL_ARB_enhanced_layouts', oglExtensions);
-  GL_ARB_explicit_attrib_location := gl_IsSupported('GL_ARB_explicit_attrib_location', oglExtensions);
-  GL_ARB_explicit_uniform_location := gl_IsSupported('GL_ARB_explicit_uniform_location', oglExtensions);
-  GL_ARB_fragment_coord_conventions := gl_IsSupported('GL_ARB_fragment_coord_conventions', oglExtensions);
-  GL_ARB_fragment_layer_viewport := gl_IsSupported('GL_ARB_fragment_layer_viewport', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_fragment_program := gl_IsSupported('GL_ARB_fragment_program', oglExtensions);
-  GL_ARB_fragment_program_shadow := gl_IsSupported('GL_ARB_fragment_program_shadow', oglExtensions);
-  GL_ARB_fragment_shader := gl_IsSupported('GL_ARB_fragment_shader', oglExtensions);
-  {$EndIf}
-  GL_ARB_fragment_shader_interlock := gl_IsSupported('GL_ARB_fragment_shader_interlock', oglExtensions);
-  GL_ARB_framebuffer_no_attachments := gl_IsSupported('GL_ARB_framebuffer_no_attachments', oglExtensions);
-  GL_ARB_framebuffer_object := gl_IsSupported('GL_ARB_framebuffer_object', oglExtensions);
-  GL_ARB_framebuffer_sRGB := gl_IsSupported('GL_ARB_framebuffer_sRGB', oglExtensions);
-  GL_ARB_geometry_shader4 := gl_IsSupported('GL_ARB_geometry_shader4', oglExtensions);
-  GL_ARB_get_program_binary := gl_IsSupported('GL_ARB_get_program_binary', oglExtensions);
-  GL_ARB_get_texture_sub_image := gl_IsSupported('GL_ARB_get_texture_sub_image', oglExtensions);
-  GL_ARB_gl_spirv := gl_IsSupported('GL_ARB_gl_spirv', oglExtensions);
-  GL_ARB_gpu_shader5 := gl_IsSupported('GL_ARB_gpu_shader5', oglExtensions);
-  GL_ARB_gpu_shader_fp64 := gl_IsSupported('GL_ARB_gpu_shader_fp64', oglExtensions);
-  GL_ARB_gpu_shader_int64 := gl_IsSupported('GL_ARB_gpu_shader_int64', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_half_float_pixel := gl_IsSupported('GL_ARB_half_float_pixel', oglExtensions);
-  GL_ARB_imaging := gl_IsSupported('GL_ARB_imaging', oglExtensions);
-  {$EndIf}
-  GL_ARB_half_float_vertex := gl_IsSupported('GL_ARB_half_float_vertex', oglExtensions);
-  GL_ARB_indirect_parameters := gl_IsSupported('GL_ARB_indirect_parameters', oglExtensions);
-  GL_ARB_instanced_arrays := gl_IsSupported('GL_ARB_instanced_arrays', oglExtensions);
-  GL_ARB_internalformat_query := gl_IsSupported('GL_ARB_internalformat_query', oglExtensions);
-  GL_ARB_internalformat_query2 := gl_IsSupported('GL_ARB_internalformat_query2', oglExtensions);
-  GL_ARB_invalidate_subdata := gl_IsSupported('GL_ARB_invalidate_subdata', oglExtensions);
-  GL_ARB_map_buffer_alignment := gl_IsSupported('GL_ARB_map_buffer_alignment', oglExtensions);
-  GL_ARB_map_buffer_range := gl_IsSupported('GL_ARB_map_buffer_range', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_matrix_palette := gl_IsSupported('GL_ARB_matrix_palette', oglExtensions);
-  {$EndIf}
-  GL_ARB_multi_bind := gl_IsSupported('GL_ARB_multi_bind', oglExtensions);
-  GL_ARB_multi_draw_indirect := gl_IsSupported('GL_ARB_multi_draw_indirect', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_multisample := gl_IsSupported('GL_ARB_multisample', oglExtensions);
-  GL_ARB_multitexture := gl_IsSupported('GL_ARB_multitexture', oglExtensions);
-  GL_ARB_occlusion_query := gl_IsSupported('GL_ARB_occlusion_query', oglExtensions);
-  {$EndIf}
-  GL_ARB_occlusion_query2 := gl_IsSupported('GL_ARB_occlusion_query2', oglExtensions);
-  GL_ARB_parallel_shader_compile := gl_IsSupported('GL_ARB_parallel_shader_compile', oglExtensions);
-  GL_ARB_pipeline_statistics_query := gl_IsSupported('GL_ARB_pipeline_statistics_query', oglExtensions);
-  GL_ARB_pixel_buffer_object := gl_IsSupported('GL_ARB_pixel_buffer_object', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_point_parameters := gl_IsSupported('GL_ARB_point_parameters', oglExtensions);
-  GL_ARB_point_sprite := gl_IsSupported('GL_ARB_point_sprite', oglExtensions);
-  {$EndIf}
-  GL_ARB_polygon_offset_clamp := gl_IsSupported('GL_ARB_polygon_offset_clamp', oglExtensions);
-  GL_ARB_post_depth_coverage := gl_IsSupported('GL_ARB_post_depth_coverage', oglExtensions);
-  GL_ARB_program_interface_query := gl_IsSupported('GL_ARB_program_interface_query', oglExtensions);
-  GL_ARB_provoking_vertex := gl_IsSupported('GL_ARB_provoking_vertex', oglExtensions);
-  GL_ARB_query_buffer_object := gl_IsSupported('GL_ARB_query_buffer_object', oglExtensions);
-  GL_ARB_robust_buffer_access_behavior := gl_IsSupported('GL_ARB_robust_buffer_access_behavior', oglExtensions);
-  GL_ARB_robustness := gl_IsSupported('GL_ARB_robustness', oglExtensions);
-  GL_ARB_robustness_isolation := gl_IsSupported('GL_ARB_robustness_isolation', oglExtensions);
-  GL_ARB_sample_locations := gl_IsSupported('GL_ARB_sample_locations', oglExtensions);
-  GL_ARB_sample_shading := gl_IsSupported('GL_ARB_sample_shading', oglExtensions);
-  GL_ARB_sampler_objects := gl_IsSupported('GL_ARB_sampler_objects', oglExtensions);
-  GL_ARB_seamless_cube_map := gl_IsSupported('GL_ARB_seamless_cube_map', oglExtensions);
-  GL_ARB_seamless_cubemap_per_texture := gl_IsSupported('GL_ARB_seamless_cubemap_per_texture', oglExtensions);
-  GL_ARB_separate_shader_objects := gl_IsSupported('GL_ARB_separate_shader_objects', oglExtensions);
-  GL_ARB_shader_atomic_counter_ops := gl_IsSupported('GL_ARB_shader_atomic_counter_ops', oglExtensions);
-  GL_ARB_shader_atomic_counters := gl_IsSupported('GL_ARB_shader_atomic_counters', oglExtensions);
-  GL_ARB_shader_ballot := gl_IsSupported('GL_ARB_shader_ballot', oglExtensions);
-  GL_ARB_shader_bit_encoding := gl_IsSupported('GL_ARB_shader_bit_encoding', oglExtensions);
-  GL_ARB_shader_clock := gl_IsSupported('GL_ARB_shader_clock', oglExtensions);
-  GL_ARB_shader_draw_parameters := gl_IsSupported('GL_ARB_shader_draw_parameters', oglExtensions);
-  GL_ARB_shader_group_vote := gl_IsSupported('GL_ARB_shader_group_vote', oglExtensions);
-  GL_ARB_shader_image_load_store := gl_IsSupported('GL_ARB_shader_image_load_store', oglExtensions);
-  GL_ARB_shader_image_size := gl_IsSupported('GL_ARB_shader_image_size', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shader_objects := gl_IsSupported('GL_ARB_shader_objects', oglExtensions);
-  {$EndIf}
-  GL_ARB_shader_precision := gl_IsSupported('GL_ARB_shader_precision', oglExtensions);
-  GL_ARB_shader_stencil_export := gl_IsSupported('GL_ARB_shader_stencil_export', oglExtensions);
-  GL_ARB_shader_storage_buffer_object := gl_IsSupported('GL_ARB_shader_storage_buffer_object', oglExtensions);
-  GL_ARB_shader_subroutine := gl_IsSupported('GL_ARB_shader_subroutine', oglExtensions);
-  GL_ARB_shader_texture_image_samples := gl_IsSupported('GL_ARB_shader_texture_image_samples', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shader_texture_lod := gl_IsSupported('GL_ARB_shader_texture_lod', oglExtensions);
-  GL_ARB_shading_language_100 := gl_IsSupported('GL_ARB_shading_language_100', oglExtensions);
-  {$EndIf}
-  GL_ARB_shader_viewport_layer_array := gl_IsSupported('GL_ARB_shader_viewport_layer_array', oglExtensions);
-  GL_ARB_shading_language_420pack := gl_IsSupported('GL_ARB_shading_language_420pack', oglExtensions);
-  GL_ARB_shading_language_include := gl_IsSupported('GL_ARB_shading_language_include', oglExtensions);
-  GL_ARB_shading_language_packing := gl_IsSupported('GL_ARB_shading_language_packing', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_shadow := gl_IsSupported('GL_ARB_shadow', oglExtensions);
-  GL_ARB_shadow_ambient := gl_IsSupported('GL_ARB_shadow_ambient', oglExtensions);
-  {$EndIf}
-  GL_ARB_sparse_buffer := gl_IsSupported('GL_ARB_sparse_buffer', oglExtensions);
-  GL_ARB_sparse_texture := gl_IsSupported('GL_ARB_sparse_texture', oglExtensions);
-  GL_ARB_sparse_texture2 := gl_IsSupported('GL_ARB_sparse_texture2', oglExtensions);
-  GL_ARB_sparse_texture_clamp := gl_IsSupported('GL_ARB_sparse_texture_clamp', oglExtensions);
-  GL_ARB_spirv_extensions := gl_IsSupported('GL_ARB_spirv_extensions', oglExtensions);
-  GL_ARB_stencil_texturing := gl_IsSupported('GL_ARB_stencil_texturing', oglExtensions);
-  GL_ARB_sync := gl_IsSupported('GL_ARB_sync', oglExtensions);
-  GL_ARB_tessellation_shader := gl_IsSupported('GL_ARB_tessellation_shader', oglExtensions);
-  GL_ARB_texture_barrier := gl_IsSupported('GL_ARB_texture_barrier', oglExtensions);
-  GL_ARB_texture_border_clamp := gl_IsSupported('GL_ARB_texture_border_clamp', oglExtensions);
-  GL_ARB_texture_buffer_object := gl_IsSupported('GL_ARB_texture_buffer_object', oglExtensions);
-  GL_ARB_texture_buffer_object_rgb32 := gl_IsSupported('GL_ARB_texture_buffer_object_rgb32', oglExtensions);
-  GL_ARB_texture_buffer_range := gl_IsSupported('GL_ARB_texture_buffer_range', oglExtensions);
-  GL_ARB_texture_compression_bptc := gl_IsSupported('GL_ARB_texture_compression_bptc', oglExtensions);
-  GL_ARB_texture_compression_rgtc := gl_IsSupported('GL_ARB_texture_compression_rgtc', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_compression := gl_IsSupported('GL_ARB_texture_compression', oglExtensions);
-  GL_ARB_texture_cube_map := gl_IsSupported('GL_ARB_texture_cube_map', oglExtensions);
-  {$EndIf}
-  GL_ARB_texture_cube_map_array := gl_IsSupported('GL_ARB_texture_cube_map_array', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_env_add := gl_IsSupported('GL_ARB_texture_env_add', oglExtensions);
-  GL_ARB_texture_env_combine := gl_IsSupported('GL_ARB_texture_env_combine', oglExtensions);
-  GL_ARB_texture_env_crossbar := gl_IsSupported('GL_ARB_texture_env_crossbar', oglExtensions);
-  GL_ARB_texture_env_dot3 := gl_IsSupported('GL_ARB_texture_env_dot3', oglExtensions);
-  GL_ARB_texture_float := gl_IsSupported('GL_ARB_texture_float', oglExtensions);
-  {$EndIf}
-  GL_ARB_texture_filter_anisotropic := gl_IsSupported('GL_ARB_texture_filter_anisotropic', oglExtensions);
-  GL_ARB_texture_filter_minmax := gl_IsSupported('GL_ARB_texture_filter_minmax', oglExtensions);
-
-  GL_ARB_texture_gather := gl_IsSupported('GL_ARB_texture_gather', oglExtensions);
-  GL_ARB_texture_mirror_clamp_to_edge := gl_IsSupported('GL_ARB_texture_mirror_clamp_to_edge', oglExtensions);
-  GL_ARB_texture_mirrored_repeat := gl_IsSupported('GL_ARB_texture_mirrored_repeat', oglExtensions);
-  GL_ARB_texture_multisample := gl_IsSupported('GL_ARB_texture_multisample', oglExtensions);
-  GL_ARB_texture_non_power_of_two := gl_IsSupported('GL_ARB_texture_non_power_of_two', oglExtensions);
-  GL_ARB_texture_query_levels := gl_IsSupported('GL_ARB_texture_query_levels', oglExtensions);
-  GL_ARB_texture_query_lod := gl_IsSupported('GL_ARB_texture_query_lod', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_texture_rectangle := gl_IsSupported('GL_ARB_texture_rectangle', oglExtensions);
-  {$EndIf}
-  GL_ARB_texture_rg := gl_IsSupported('GL_ARB_texture_rg', oglExtensions);
-  GL_ARB_texture_rgb10_a2ui := gl_IsSupported('GL_ARB_texture_rgb10_a2ui', oglExtensions);
-  GL_ARB_texture_stencil8 := gl_IsSupported('GL_ARB_texture_stencil8', oglExtensions);
-  GL_ARB_texture_storage := gl_IsSupported('GL_ARB_texture_storage', oglExtensions);
-  GL_ARB_texture_storage_multisample := gl_IsSupported('GL_ARB_texture_storage_multisample', oglExtensions);
-  GL_ARB_texture_swizzle := gl_IsSupported('GL_ARB_texture_swizzle', oglExtensions);
-  GL_ARB_texture_view := gl_IsSupported('GL_ARB_texture_view', oglExtensions);
-  GL_ARB_timer_query := gl_IsSupported('GL_ARB_timer_query', oglExtensions);
-  GL_ARB_transform_feedback2 := gl_IsSupported('GL_ARB_transform_feedback2', oglExtensions);
-  GL_ARB_transform_feedback3 := gl_IsSupported('GL_ARB_transform_feedback3', oglExtensions);
-  GL_ARB_transform_feedback_instanced := gl_IsSupported('GL_ARB_transform_feedback_instanced', oglExtensions);
-  GL_ARB_transform_feedback_overflow_query := gl_IsSupported('GL_ARB_transform_feedback_overflow_query', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_transpose_matrix := gl_IsSupported('GL_ARB_transpose_matrix', oglExtensions);
-  {$EndIf}
-  GL_ARB_uniform_buffer_object := gl_IsSupported('GL_ARB_uniform_buffer_object', oglExtensions);
-  GL_ARB_vertex_array_bgra := gl_IsSupported('GL_ARB_vertex_array_bgra', oglExtensions);
-  GL_ARB_vertex_array_object := gl_IsSupported('GL_ARB_vertex_array_object', oglExtensions);
-  GL_ARB_vertex_attrib_64bit := gl_IsSupported('GL_ARB_vertex_attrib_64bit', oglExtensions);
-  GL_ARB_vertex_attrib_binding := gl_IsSupported('GL_ARB_vertex_attrib_binding', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_ARB_vertex_blend := gl_IsSupported('GL_ARB_vertex_blend', oglExtensions);
-  GL_ARB_vertex_buffer_object := gl_IsSupported('GL_ARB_vertex_buffer_object', oglExtensions);
-  GL_ARB_vertex_program := gl_IsSupported('GL_ARB_vertex_program', oglExtensions);
-  GL_ARB_vertex_shader := gl_IsSupported('GL_ARB_vertex_shader', oglExtensions);
-  GL_ARB_window_pos := gl_IsSupported('GL_ARB_window_pos', oglExtensions);
-  {$EndIf}
-  GL_ARB_vertex_type_10f_11f_11f_rev := gl_IsSupported('GL_ARB_vertex_type_10f_11f_11f_rev', oglExtensions);
-  GL_ARB_vertex_type_2_10_10_10_rev := gl_IsSupported('GL_ARB_vertex_type_2_10_10_10_rev', oglExtensions);
-  GL_ARB_viewport_array := gl_IsSupported('GL_ARB_viewport_array', oglExtensions);
-  GL_KHR_blend_equation_advanced := gl_IsSupported('GL_KHR_blend_equation_advanced', oglExtensions);
-  GL_KHR_blend_equation_advanced_coherent := gl_IsSupported('GL_KHR_blend_equation_advanced_coherent', oglExtensions);
-  GL_KHR_context_flush_control := gl_IsSupported('GL_KHR_context_flush_control', oglExtensions);
-  GL_KHR_debug := gl_IsSupported('GL_KHR_debug', oglExtensions);
-  GL_KHR_no_error := gl_IsSupported('GL_KHR_no_error', oglExtensions);
-  GL_KHR_parallel_shader_compile := gl_IsSupported('GL_KHR_parallel_shader_compile', oglExtensions);
-  GL_KHR_robust_buffer_access_behavior := gl_IsSupported('GL_KHR_robust_buffer_access_behavior', oglExtensions);
-  GL_KHR_robustness := gl_IsSupported('GL_KHR_robustness', oglExtensions);
-  GL_KHR_shader_subgroup := gl_IsSupported('GL_KHR_shader_subgroup', oglExtensions);
-  GL_KHR_texture_compression_astc_hdr := gl_IsSupported('GL_KHR_texture_compression_astc_hdr', oglExtensions);
-  GL_KHR_texture_compression_astc_ldr := gl_IsSupported('GL_KHR_texture_compression_astc_ldr', oglExtensions);
-  GL_KHR_texture_compression_astc_sliced_3d := gl_IsSupported('GL_KHR_texture_compression_astc_sliced_3d', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_OES_byte_coordinates := gl_IsSupported('GL_OES_byte_coordinates', oglExtensions);
-  GL_OES_compressed_paletted_texture := gl_IsSupported('GL_OES_compressed_paletted_texture', oglExtensions);
-  GL_OES_fixed_point := gl_IsSupported('GL_OES_fixed_point', oglExtensions);
-  GL_OES_query_matrix := gl_IsSupported('GL_OES_query_matrix', oglExtensions);
-  GL_OES_read_format := gl_IsSupported('GL_OES_read_format', oglExtensions);
-  GL_OES_single_precision := gl_IsSupported('GL_OES_single_precision', oglExtensions);
-  GL_3DFX_multisample := gl_IsSupported('GL_3DFX_multisample', oglExtensions);
-  GL_3DFX_tbuffer := gl_IsSupported('GL_3DFX_tbuffer', oglExtensions);
-  GL_3DFX_texture_compression_FXT1 := gl_IsSupported('GL_3DFX_texture_compression_FXT1', oglExtensions);
-  GL_AMD_blend_minmax_factor := gl_IsSupported('GL_AMD_blend_minmax_factor', oglExtensions);
-  GL_AMD_conservative_depth := gl_IsSupported('GL_AMD_conservative_depth', oglExtensions);
-  GL_AMD_debug_output := gl_IsSupported('GL_AMD_debug_output', oglExtensions);
-  GL_AMD_depth_clamp_separate := gl_IsSupported('GL_AMD_depth_clamp_separate', oglExtensions);
-  GL_AMD_draw_buffers_blend := gl_IsSupported('GL_AMD_draw_buffers_blend', oglExtensions);
-  {$EndIf}
-  GL_AMD_framebuffer_multisample_advanced := gl_IsSupported('GL_AMD_framebuffer_multisample_advanced', oglExtensions);
-  GL_AMD_gpu_shader_int64 := gl_IsSupported('GL_AMD_gpu_shader_int64', oglExtensions); // хотя это GL_EXT
-  {$IFDEF USE_GLEXT}
-  GL_AMD_framebuffer_sample_positions := gl_IsSupported('GL_AMD_framebuffer_sample_positions', oglExtensions);
-  GL_AMD_gcn_shader := gl_IsSupported('GL_AMD_gcn_shader', oglExtensions);
-  GL_AMD_gpu_shader_half_float := gl_IsSupported('GL_AMD_gpu_shader_half_float', oglExtensions);
-  GL_AMD_gpu_shader_int16 := gl_IsSupported('GL_AMD_gpu_shader_int16', oglExtensions);
-  GL_AMD_interleaved_elements := gl_IsSupported('GL_AMD_interleaved_elements', oglExtensions);
-  GL_AMD_multi_draw_indirect := gl_IsSupported('GL_AMD_multi_draw_indirect', oglExtensions);
-  GL_AMD_name_gen_delete := gl_IsSupported('GL_AMD_name_gen_delete', oglExtensions);
-  GL_AMD_occlusion_query_event := gl_IsSupported('GL_AMD_occlusion_query_event', oglExtensions);
-  {$EndIf}
-  GL_AMD_performance_monitor := gl_IsSupported('GL_AMD_performance_monitor', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_AMD_pinned_memory := gl_IsSupported('GL_AMD_pinned_memory', oglExtensions);
-  GL_AMD_query_buffer_object := gl_IsSupported('GL_AMD_query_buffer_object', oglExtensions);
-  GL_AMD_sample_positions := gl_IsSupported('GL_AMD_sample_positions', oglExtensions);
-  GL_AMD_seamless_cubemap_per_texture := gl_IsSupported('GL_AMD_seamless_cubemap_per_texture', oglExtensions);
-  GL_AMD_shader_atomic_counter_ops := gl_IsSupported('GL_AMD_shader_atomic_counter_ops', oglExtensions);
-  GL_AMD_shader_ballot := gl_IsSupported('GL_AMD_shader_ballot', oglExtensions);
-  GL_AMD_shader_explicit_vertex_parameter := gl_IsSupported('GL_AMD_shader_explicit_vertex_parameter', oglExtensions);
-  GL_AMD_shader_gpu_shader_half_float_fetch := gl_IsSupported('GL_AMD_shader_gpu_shader_half_float_fetch', oglExtensions);
-  GL_AMD_shader_image_load_store_lod := gl_IsSupported('GL_AMD_shader_image_load_store_lod', oglExtensions);
-  GL_AMD_shader_stencil_export := gl_IsSupported('GL_AMD_shader_stencil_export', oglExtensions);
-  GL_AMD_shader_trinary_minmax := gl_IsSupported('GL_AMD_shader_trinary_minmax', oglExtensions);
-  GL_AMD_sparse_texture := gl_IsSupported('GL_AMD_sparse_texture', oglExtensions);
-  GL_AMD_stencil_operation_extended := gl_IsSupported('GL_AMD_stencil_operation_extended', oglExtensions);
-  GL_AMD_texture_gather_bias_lod := gl_IsSupported('GL_AMD_texture_gather_bias_lod', oglExtensions);
-  GL_AMD_texture_texture4 := gl_IsSupported('GL_AMD_texture_texture4', oglExtensions);
-  GL_AMD_transform_feedback3_lines_triangles := gl_IsSupported('GL_AMD_transform_feedback3_lines_triangles', oglExtensions);
-  GL_AMD_transform_feedback4 := gl_IsSupported('GL_AMD_transform_feedback4', oglExtensions);
-  GL_AMD_vertex_shader_layer := gl_IsSupported('GL_AMD_vertex_shader_layer', oglExtensions);
-  GL_AMD_vertex_shader_tessellator := gl_IsSupported('GL_AMD_vertex_shader_tessellator', oglExtensions);
-  GL_AMD_vertex_shader_viewport_index := gl_IsSupported('GL_AMD_vertex_shader_viewport_index', oglExtensions);
-  GL_APPLE_aux_depth_stencil := gl_IsSupported('GL_APPLE_aux_depth_stencil', oglExtensions);
-  GL_APPLE_client_storage := gl_IsSupported('GL_APPLE_client_storage', oglExtensions);
-  GL_APPLE_element_array := gl_IsSupported('GL_APPLE_element_array', oglExtensions);
-  GL_APPLE_fence := gl_IsSupported('GL_APPLE_fence', oglExtensions);
-  GL_APPLE_float_pixels := gl_IsSupported('GL_APPLE_float_pixels', oglExtensions);
-  GL_APPLE_flush_buffer_range := gl_IsSupported('GL_APPLE_flush_buffer_range', oglExtensions);
-  GL_APPLE_object_purgeable := gl_IsSupported('GL_APPLE_object_purgeable', oglExtensions);
-  {$EndIf}
-  GL_APPLE_rgb_422 := gl_IsSupported('GL_APPLE_rgb_422', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_APPLE_row_bytes := gl_IsSupported('GL_APPLE_row_bytes', oglExtensions);
-  GL_APPLE_specular_vector := gl_IsSupported('GL_APPLE_specular_vector', oglExtensions);
-  GL_APPLE_texture_range := gl_IsSupported('GL_APPLE_texture_range', oglExtensions);
-  GL_APPLE_transform_hint := gl_IsSupported('GL_APPLE_transform_hint', oglExtensions);
-  GL_APPLE_vertex_array_object := gl_IsSupported('GL_APPLE_vertex_array_object', oglExtensions);
-  GL_APPLE_vertex_array_range := gl_IsSupported('GL_APPLE_vertex_array_range', oglExtensions);
-  GL_APPLE_vertex_program_evaluators := gl_IsSupported('GL_APPLE_vertex_program_evaluators', oglExtensions);
-  GL_APPLE_ycbcr_422 := gl_IsSupported('GL_APPLE_ycbcr_422', oglExtensions);
-  GL_ATI_draw_buffers := gl_IsSupported('GL_ATI_draw_buffers', oglExtensions);
-  GL_ATI_element_array := gl_IsSupported('GL_ATI_element_array', oglExtensions);
-  GL_ATI_envmap_bumpmap := gl_IsSupported('GL_ATI_envmap_bumpmap', oglExtensions);
-  GL_ATI_fragment_shader := gl_IsSupported('GL_ATI_fragment_shader', oglExtensions);
-  GL_ATI_map_object_buffer := gl_IsSupported('GL_ATI_map_object_buffer', oglExtensions);
-  GL_ATI_meminfo := gl_IsSupported('GL_ATI_meminfo', oglExtensions);
-  GL_ATI_pixel_format_float := gl_IsSupported('GL_ATI_pixel_format_float', oglExtensions);
-  GL_ATI_pn_triangles := gl_IsSupported('GL_ATI_pn_triangles', oglExtensions);
-  GL_ATI_separate_stencil := gl_IsSupported('GL_ATI_separate_stencil', oglExtensions);
-  GL_ATI_text_fragment_shader := gl_IsSupported('GL_ATI_text_fragment_shader', oglExtensions);
-  GL_ATI_texture_env_combine3 := gl_IsSupported('GL_ATI_texture_env_combine3', oglExtensions);
-  GL_ATI_texture_float := gl_IsSupported('GL_ATI_texture_float', oglExtensions);
-  GL_ATI_texture_mirror_once := gl_IsSupported('GL_ATI_texture_mirror_once', oglExtensions);
-  GL_ATI_vertex_array_object := gl_IsSupported('GL_ATI_vertex_array_object', oglExtensions);
-  GL_ATI_vertex_attrib_array_object := gl_IsSupported('GL_ATI_vertex_attrib_array_object', oglExtensions);
-  GL_ATI_vertex_streams := gl_IsSupported('GL_ATI_vertex_streams', oglExtensions);
-  GL_EXT_422_pixels := gl_IsSupported('GL_EXT_422_pixels', oglExtensions);
-  {$EndIf}
-  GL_EXT_EGL_image_storage := gl_IsSupported('GL_EXT_EGL_image_storage', oglExtensions);
-  GL_EXT_EGL_sync := gl_IsSupported('GL_EXT_EGL_sync', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_abgr := gl_IsSupported('GL_EXT_abgr', oglExtensions);
-  GL_EXT_bgra := gl_IsSupported('GL_EXT_bgra', oglExtensions);
-  GL_EXT_bindable_uniform := gl_IsSupported('GL_EXT_bindable_uniform', oglExtensions);
-  GL_EXT_blend_color := gl_IsSupported('GL_EXT_blend_color', oglExtensions);
-  GL_EXT_blend_equation_separate := gl_IsSupported('GL_EXT_blend_equation_separate', oglExtensions);
-//  GL_EXT_blend_func_separate := gl_IsSupported('GL_EXT_blend_func_separate', oglExtensions);
-  GL_EXT_blend_logic_op := gl_IsSupported('GL_EXT_blend_logic_op', oglExtensions);
-  GL_EXT_blend_minmax := gl_IsSupported('GL_EXT_blend_minmax', oglExtensions);
-  GL_EXT_blend_subtract := gl_IsSupported('GL_EXT_blend_subtract', oglExtensions);
-  GL_EXT_clip_volume_hint := gl_IsSupported('GL_EXT_clip_volume_hint', oglExtensions);
-  GL_EXT_cmyka := gl_IsSupported('GL_EXT_cmyka', oglExtensions);
-  GL_EXT_color_subtable := gl_IsSupported('GL_EXT_color_subtable', oglExtensions);
-  GL_EXT_compiled_vertex_array := gl_IsSupported('GL_EXT_compiled_vertex_array', oglExtensions);
-  GL_EXT_convolution := gl_IsSupported('GL_EXT_convolution', oglExtensions);
-  GL_EXT_coordinate_frame := gl_IsSupported('GL_EXT_coordinate_frame', oglExtensions);
-  GL_EXT_copy_texture := gl_IsSupported('GL_EXT_copy_texture', oglExtensions);
-  GL_EXT_cull_vertex := gl_IsSupported('GL_EXT_cull_vertex', oglExtensions);
-  GL_EXT_depth_bounds_test := gl_IsSupported('GL_EXT_depth_bounds_test', oglExtensions);
-  GL_EXT_draw_buffers2 := gl_IsSupported('GL_EXT_draw_buffers2', oglExtensions);
-  {$EndIf}
-  GL_EXT_debug_label := gl_IsSupported('GL_EXT_debug_label', oglExtensions);
-  GL_EXT_debug_marker := gl_IsSupported('GL_EXT_debug_marker', oglExtensions);
-  GL_EXT_direct_state_access := gl_IsSupported('GL_EXT_direct_state_access', oglExtensions);
-  GL_EXT_draw_instanced := gl_IsSupported('GL_EXT_draw_instanced', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_draw_range_elements := gl_IsSupported('GL_EXT_draw_range_elements', oglExtensions);
-  GL_EXT_external_buffer := gl_IsSupported('GL_EXT_external_buffer', oglExtensions);
-  GL_EXT_fog_coord := gl_IsSupported('GL_EXT_fog_coord', oglExtensions);
-  GL_EXT_framebuffer_blit := gl_IsSupported('GL_EXT_framebuffer_blit', oglExtensions);
-  GL_EXT_framebuffer_multisample := gl_IsSupported('GL_EXT_framebuffer_multisample', oglExtensions);
-  GL_EXT_framebuffer_multisample_blit_scaled := gl_IsSupported('GL_EXT_framebuffer_multisample_blit_scaled', oglExtensions);
-  GL_EXT_framebuffer_object := gl_IsSupported('GL_EXT_framebuffer_object', oglExtensions);
-  GL_EXT_framebuffer_sRGB := gl_IsSupported('GL_EXT_framebuffer_sRGB', oglExtensions);
-  GL_EXT_geometry_shader4 := gl_IsSupported('GL_EXT_geometry_shader4', oglExtensions);
-  GL_EXT_gpu_program_parameters := gl_IsSupported('GL_EXT_gpu_program_parameters', oglExtensions);
-  GL_EXT_gpu_shader4 := gl_IsSupported('GL_EXT_gpu_shader4', oglExtensions);
-  GL_EXT_histogram := gl_IsSupported('GL_EXT_histogram', oglExtensions);
-  GL_EXT_index_array_formats := gl_IsSupported('GL_EXT_index_array_formats', oglExtensions);
-  GL_EXT_index_func := gl_IsSupported('GL_EXT_index_func', oglExtensions);
-  GL_EXT_index_material := gl_IsSupported('GL_EXT_index_material', oglExtensions);
-  GL_EXT_index_texture := gl_IsSupported('GL_EXT_index_texture', oglExtensions);
-  GL_EXT_light_texture := gl_IsSupported('GL_EXT_light_texture', oglExtensions);
-  GL_EXT_memory_object := gl_IsSupported('GL_EXT_memory_object', oglExtensions);
-  GL_EXT_memory_object_fd := gl_IsSupported('GL_EXT_memory_object_fd', oglExtensions);
-  GL_EXT_memory_object_win32 := gl_IsSupported('GL_EXT_memory_object_win32', oglExtensions);
-  GL_EXT_misc_attribute := gl_IsSupported('GL_EXT_misc_attribute', oglExtensions);
-  GL_EXT_multi_draw_arrays := gl_IsSupported('GL_EXT_multi_draw_arrays', oglExtensions);
-  GL_EXT_multisample := gl_IsSupported('GL_EXT_multisample', oglExtensions);
-  {$EndIf}
-  GL_EXT_multiview_tessellation_geometry_shader := gl_IsSupported('GL_EXT_multiview_tessellation_geometry_shader', oglExtensions);
-  GL_EXT_multiview_texture_multisample := gl_IsSupported('GL_EXT_multiview_texture_multisample', oglExtensions);
-  GL_EXT_multiview_timer_query := gl_IsSupported('GL_EXT_multiview_timer_query', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_packed_depth_stencil := gl_IsSupported('GL_EXT_packed_depth_stencil', oglExtensions);
-  GL_EXT_packed_float := gl_IsSupported('GL_EXT_packed_float', oglExtensions);
-  GL_EXT_packed_pixels := gl_IsSupported('GL_EXT_packed_pixels', oglExtensions);
-  GL_EXT_paletted_texture := gl_IsSupported('GL_EXT_paletted_texture', oglExtensions);
-  GL_EXT_pixel_buffer_object := gl_IsSupported('GL_EXT_pixel_buffer_object', oglExtensions);
-  GL_EXT_pixel_transform := gl_IsSupported('GL_EXT_pixel_transform', oglExtensions);
-  GL_EXT_pixel_transform_color_table := gl_IsSupported('GL_EXT_pixel_transform_color_table', oglExtensions);
-  GL_EXT_point_parameters := gl_IsSupported('GL_EXT_point_parameters', oglExtensions);
-  GL_EXT_polygon_offset := gl_IsSupported('GL_EXT_polygon_offset', oglExtensions);
-  GL_EXT_provoking_vertex := gl_IsSupported('GL_EXT_provoking_vertex', oglExtensions);
-  {$EndIf}
-  GL_EXT_polygon_offset_clamp := gl_IsSupported('GL_EXT_polygon_offset_clamp', oglExtensions);
-  GL_EXT_post_depth_coverage := gl_IsSupported('GL_EXT_post_depth_coverage', oglExtensions);
-  GL_EXT_raster_multisample := gl_IsSupported('GL_EXT_raster_multisample', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_rescale_normal := gl_IsSupported('GL_EXT_rescale_normal', oglExtensions);
-  GL_EXT_secondary_color := gl_IsSupported('GL_EXT_secondary_color', oglExtensions);
-  GL_EXT_semaphore := gl_IsSupported('GL_EXT_semaphore', oglExtensions);
-  GL_EXT_semaphore_fd := gl_IsSupported('GL_EXT_semaphore_fd', oglExtensions);
-  GL_EXT_semaphore_win32 := gl_IsSupported('GL_EXT_semaphore_win32', oglExtensions);
-  GL_EXT_separate_specular_color := gl_IsSupported('GL_EXT_separate_specular_color', oglExtensions);
-  {$EndIf}
-  GL_EXT_separate_shader_objects := gl_IsSupported('GL_EXT_separate_shader_objects', oglExtensions);
-  GL_EXT_shader_framebuffer_fetch := gl_IsSupported('GL_EXT_shader_framebuffer_fetch', oglExtensions);
-  GL_EXT_shader_framebuffer_fetch_non_coherent := gl_IsSupported('GL_EXT_shader_framebuffer_fetch_non_coherent', oglExtensions);
-  GL_EXT_shader_integer_mix := gl_IsSupported('GL_EXT_shader_integer_mix', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_shader_image_load_formatted := gl_IsSupported('GL_EXT_shader_image_load_formatted', oglExtensions);
-  GL_EXT_shader_image_load_store := gl_IsSupported('GL_EXT_shader_image_load_store', oglExtensions);
-  GL_EXT_shadow_funcs := gl_IsSupported('GL_EXT_shadow_funcs', oglExtensions);
-  GL_EXT_shared_texture_palette := gl_IsSupported('GL_EXT_shared_texture_palette', oglExtensions);
-  GL_EXT_sparse_texture2 := gl_IsSupported('GL_EXT_sparse_texture2', oglExtensions);
-  GL_EXT_stencil_clear_tag := gl_IsSupported('GL_EXT_stencil_clear_tag', oglExtensions);
-  GL_EXT_stencil_two_side := gl_IsSupported('GL_EXT_stencil_two_side', oglExtensions);
-  GL_EXT_stencil_wrap := gl_IsSupported('GL_EXT_stencil_wrap', oglExtensions);
-  GL_EXT_subtexture := gl_IsSupported('GL_EXT_subtexture', oglExtensions);
-  GL_EXT_texture := gl_IsSupported('GL_EXT_texture', oglExtensions);
-  GL_EXT_texture3D := gl_IsSupported('GL_EXT_texture3D', oglExtensions);
-  GL_EXT_texture_array := gl_IsSupported('GL_EXT_texture_array', oglExtensions);
-  GL_EXT_texture_buffer_object := gl_IsSupported('GL_EXT_texture_buffer_object', oglExtensions);
-  GL_EXT_texture_compression_latc := gl_IsSupported('GL_EXT_texture_compression_latc', oglExtensions);
-  GL_EXT_texture_compression_rgtc := gl_IsSupported('GL_EXT_texture_compression_rgtc', oglExtensions);
-//  GL_EXT_texture_compression_s3tc := gl_IsSupported('GL_EXT_texture_compression_s3tc', oglExtensions);
-  GL_EXT_texture_cube_map := gl_IsSupported('GL_EXT_texture_cube_map', oglExtensions);
-  GL_EXT_texture_env_add := gl_IsSupported('GL_EXT_texture_env_add', oglExtensions);
-  GL_EXT_texture_env_combine := gl_IsSupported('GL_EXT_texture_env_combine', oglExtensions);
-  GL_EXT_texture_env_dot3 := gl_IsSupported('GL_EXT_texture_env_dot3', oglExtensions);
-//  GL_EXT_texture_filter_anisotropic := gl_IsSupported('GL_EXT_texture_filter_anisotropic', oglExtensions);
-  {$EndIf}
-  GL_EXT_texture_filter_minmax := gl_IsSupported('GL_EXT_texture_filter_minmax', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_texture_integer := gl_IsSupported('GL_EXT_texture_integer', oglExtensions);
-  GL_EXT_texture_lod_bias := gl_IsSupported('GL_EXT_texture_lod_bias', oglExtensions);
-  GL_EXT_texture_mirror_clamp := gl_IsSupported('GL_EXT_texture_mirror_clamp', oglExtensions);
-  GL_EXT_texture_object := gl_IsSupported('GL_EXT_texture_object', oglExtensions);
-  GL_EXT_texture_perturb_normal := gl_IsSupported('GL_EXT_texture_perturb_normal', oglExtensions);
-  GL_EXT_texture_sRGB := gl_IsSupported('GL_EXT_texture_sRGB', oglExtensions);
-  GL_EXT_texture_shared_exponent := gl_IsSupported('GL_EXT_texture_shared_exponent', oglExtensions);
-  GL_EXT_texture_snorm := gl_IsSupported('GL_EXT_texture_snorm', oglExtensions);
-  {$EndIf}
-  GL_EXT_texture_sRGB_R8 := gl_IsSupported('GL_EXT_texture_sRGB_R8', oglExtensions);
-  GL_EXT_texture_sRGB_RG8 := gl_IsSupported('GL_EXT_texture_sRGB_RG8', oglExtensions);
-  GL_EXT_texture_sRGB_decode := gl_IsSupported('GL_EXT_texture_sRGB_decode', oglExtensions);
-  GL_EXT_texture_shadow_lod := gl_IsSupported('GL_EXT_texture_shadow_lod', oglExtensions);
-  GL_EXT_texture_storage := gl_IsSupported('GL_EXT_texture_storage', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_texture_swizzle := gl_IsSupported('GL_EXT_texture_swizzle', oglExtensions);
-  GL_EXT_timer_query := gl_IsSupported('GL_EXT_timer_query', oglExtensions);
-  GL_EXT_transform_feedback := gl_IsSupported('GL_EXT_transform_feedback', oglExtensions);
-  GL_EXT_vertex_array := gl_IsSupported('GL_EXT_vertex_array', oglExtensions);
-  GL_EXT_vertex_array_bgra := gl_IsSupported('GL_EXT_vertex_array_bgra', oglExtensions);
-  GL_EXT_vertex_attrib_64bit := gl_IsSupported('GL_EXT_vertex_attrib_64bit', oglExtensions);
-  GL_EXT_vertex_shader := gl_IsSupported('GL_EXT_vertex_shader', oglExtensions);
-  GL_EXT_vertex_weighting := gl_IsSupported('GL_EXT_vertex_weighting', oglExtensions);
-  GL_EXT_win32_keyed_mutex := gl_IsSupported('GL_EXT_win32_keyed_mutex', oglExtensions);
-  {$EndIf}
-  GL_EXT_window_rectangles := gl_IsSupported('GL_EXT_window_rectangles', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_EXT_x11_sync_object := gl_IsSupported('GL_EXT_x11_sync_object', oglExtensions);
-  GL_GREMEDY_frame_terminator := gl_IsSupported('GL_GREMEDY_frame_terminator', oglExtensions);
-  GL_GREMEDY_string_marker := gl_IsSupported('GL_GREMEDY_string_marker', oglExtensions);
-  GL_HP_convolution_border_modes := gl_IsSupported('GL_HP_convolution_border_modes', oglExtensions);
-  GL_HP_image_transform := gl_IsSupported('GL_HP_image_transform', oglExtensions);
-  GL_HP_occlusion_test := gl_IsSupported('GL_HP_occlusion_test', oglExtensions);
-  GL_HP_texture_lighting := gl_IsSupported('GL_HP_texture_lighting', oglExtensions);
-  GL_IBM_cull_vertex := gl_IsSupported('GL_IBM_cull_vertex', oglExtensions);
-  GL_IBM_multimode_draw_arrays := gl_IsSupported('GL_IBM_multimode_draw_arrays', oglExtensions);
-  GL_IBM_rasterpos_clip := gl_IsSupported('GL_IBM_rasterpos_clip', oglExtensions);
-  GL_IBM_static_data := gl_IsSupported('GL_IBM_static_data', oglExtensions);
-  GL_IBM_texture_mirrored_repeat := gl_IsSupported('GL_IBM_texture_mirrored_repeat', oglExtensions);
-  GL_IBM_vertex_array_lists := gl_IsSupported('GL_IBM_vertex_array_lists', oglExtensions);
-  GL_INGR_blend_func_separate := gl_IsSupported('GL_INGR_blend_func_separate', oglExtensions);
-  GL_INGR_color_clamp := gl_IsSupported('GL_INGR_color_clamp', oglExtensions);
-  GL_INGR_interlace_read := gl_IsSupported('GL_INGR_interlace_read', oglExtensions);
-  GL_INTEL_fragment_shader_ordering := gl_IsSupported('GL_INTEL_fragment_shader_ordering', oglExtensions);
-  {$EndIf}
-  GL_INTEL_blackhole_render := gl_IsSupported('GL_INTEL_blackhole_render', oglExtensions);
-  GL_INTEL_conservative_rasterization := gl_IsSupported('GL_INTEL_conservative_rasterization', oglExtensions);
-  GL_INTEL_framebuffer_CMAA := gl_IsSupported('GL_INTEL_framebuffer_CMAA', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_INTEL_map_texture := gl_IsSupported('GL_INTEL_map_texture', oglExtensions);
-  GL_INTEL_parallel_arrays := gl_IsSupported('GL_INTEL_parallel_arrays', oglExtensions);
-  GL_MESAX_texture_stack := gl_IsSupported('GL_MESAX_texture_stack', oglExtensions);
-  {$EndIf}
-  GL_INTEL_performance_query := gl_IsSupported('GL_INTEL_performance_query', oglExtensions);
-  GL_MESA_framebuffer_flip_x := gl_IsSupported('GL_MESA_framebuffer_flip_x', oglExtensions);
-  GL_MESA_framebuffer_flip_y := gl_IsSupported('GL_MESA_framebuffer_flip_y', oglExtensions);
-  GL_MESA_framebuffer_swap_xy := gl_IsSupported('GL_MESA_framebuffer_swap_xy', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_MESA_pack_invert := gl_IsSupported('GL_MESA_pack_invert', oglExtensions);
-  GL_MESA_program_binary_formats := gl_IsSupported('GL_MESA_program_binary_formats', oglExtensions);
-  GL_MESA_resize_buffers := gl_IsSupported('GL_MESA_resize_buffers', oglExtensions);
-  GL_MESA_shader_integer_functions := gl_IsSupported('GL_MESA_shader_integer_functions', oglExtensions);
-  GL_MESA_tile_raster_order := gl_IsSupported('GL_MESA_tile_raster_order', oglExtensions);
-  GL_MESA_window_pos := gl_IsSupported('GL_MESA_window_pos', oglExtensions);
-  GL_MESA_ycbcr_texture := gl_IsSupported('GL_MESA_ycbcr_texture', oglExtensions);
-  GL_NVX_blend_equation_advanced_multi_draw_buffers := gl_IsSupported('GL_NVX_blend_equation_advanced_multi_draw_buffers', oglExtensions);
-  GL_NVX_conditional_render := gl_IsSupported('GL_NVX_conditional_render', oglExtensions);
-  GL_NVX_gpu_memory_info := gl_IsSupported('GL_NVX_gpu_memory_info', oglExtensions);
-  GL_NVX_gpu_multicast2 := gl_IsSupported('GL_NVX_gpu_multicast2', oglExtensions);
-  GL_NVX_linked_gpu_multicast := gl_IsSupported('GL_NVX_linked_gpu_multicast', oglExtensions);
-  GL_NVX_progress_fence := gl_IsSupported('GL_NVX_progress_fence', oglExtensions);
-  GL_NV_alpha_to_coverage_dither_control := gl_IsSupported('GL_NV_alpha_to_coverage_dither_control', oglExtensions);
-  {$EndIf}
-  GL_NV_bindless_multi_draw_indirect := gl_IsSupported('GL_NV_bindless_multi_draw_indirect', oglExtensions);
-  GL_NV_bindless_multi_draw_indirect_count := gl_IsSupported('GL_NV_bindless_multi_draw_indirect_count', oglExtensions);
-  GL_NV_bindless_texture := gl_IsSupported('GL_NV_bindless_texture', oglExtensions);
-  GL_NV_blend_equation_advanced := gl_IsSupported('GL_NV_blend_equation_advanced', oglExtensions);
-  GL_NV_blend_equation_advanced_coherent := gl_IsSupported('GL_NV_blend_equation_advanced_coherent', oglExtensions);
-  GL_NV_blend_minmax_factor := gl_IsSupported('GL_NV_blend_minmax_factor', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_blend_square := gl_IsSupported('GL_NV_blend_square', oglExtensions);   
-  GL_NV_compute_program5 := gl_IsSupported('GL_NV_compute_program5', oglExtensions);
-  {$EndIf}
-  GL_NV_clip_space_w_scaling := gl_IsSupported('GL_NV_clip_space_w_scaling', oglExtensions);
-  GL_NV_command_list := gl_IsSupported('GL_NV_command_list', oglExtensions);
-  GL_NV_compute_shader_derivatives := gl_IsSupported('GL_NV_compute_shader_derivatives', oglExtensions);
-  GL_NV_conditional_render := gl_IsSupported('GL_NV_conditional_render', oglExtensions);
-  GL_NV_conservative_raster := gl_IsSupported('GL_NV_conservative_raster', oglExtensions);
-  GL_NV_conservative_raster_dilate := gl_IsSupported('GL_NV_conservative_raster_dilate', oglExtensions);
-  GL_NV_conservative_raster_pre_snap := gl_IsSupported('GL_NV_conservative_raster_pre_snap', oglExtensions);
-  GL_NV_conservative_raster_pre_snap_triangles := gl_IsSupported('GL_NV_conservative_raster_pre_snap_triangles', oglExtensions);
-  GL_NV_conservative_raster_underestimation := gl_IsSupported('GL_NV_conservative_raster_underestimation', oglExtensions);
-  GL_NV_depth_buffer_float := gl_IsSupported('GL_NV_depth_buffer_float', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_copy_depth_to_color := gl_IsSupported('GL_NV_copy_depth_to_color', oglExtensions);
-  GL_NV_copy_image := gl_IsSupported('GL_NV_copy_image', oglExtensions);
-  GL_NV_deep_texture3D := gl_IsSupported('GL_NV_deep_texture3D', oglExtensions);
-  GL_NV_depth_clamp := gl_IsSupported('GL_NV_depth_clamp', oglExtensions);
-  GL_NV_draw_texture := gl_IsSupported('GL_NV_draw_texture', oglExtensions);
-  GL_NV_evaluators := gl_IsSupported('GL_NV_evaluators', oglExtensions);
-  GL_NV_explicit_multisample := gl_IsSupported('GL_NV_explicit_multisample', oglExtensions);
-  GL_NV_fence := gl_IsSupported('GL_NV_fence', oglExtensions);
-  {$EndIf}
-  GL_NV_draw_vulkan_image := gl_IsSupported('GL_NV_draw_vulkan_image', oglExtensions);
-  GL_NV_fill_rectangle := gl_IsSupported('GL_NV_fill_rectangle', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_float_buffer := gl_IsSupported('GL_NV_float_buffer', oglExtensions);
-  GL_NV_fog_distance := gl_IsSupported('GL_NV_fog_distance', oglExtensions);     
-  GL_NV_fragment_program := gl_IsSupported('GL_NV_fragment_program', oglExtensions);
-  GL_NV_fragment_program2 := gl_IsSupported('GL_NV_fragment_program2', oglExtensions);
-  GL_NV_fragment_program4 := gl_IsSupported('GL_NV_fragment_program4', oglExtensions);
-  GL_NV_fragment_program_option := gl_IsSupported('GL_NV_fragment_program_option', oglExtensions);
-  {$EndIf}
-  GL_NV_fragment_coverage_to_color := gl_IsSupported('GL_NV_fragment_coverage_to_color', oglExtensions);
-  GL_NV_fragment_shader_barycentric := gl_IsSupported('GL_NV_fragment_shader_barycentric', oglExtensions);
-  GL_NV_fragment_shader_interlock := gl_IsSupported('GL_NV_fragment_shader_interlock', oglExtensions);
-  GL_NV_framebuffer_mixed_samples := gl_IsSupported('GL_NV_framebuffer_mixed_samples', oglExtensions);
-  GL_NV_framebuffer_multisample_coverage := gl_IsSupported('GL_NV_framebuffer_multisample_coverage', oglExtensions);  
-  GL_NV_geometry_shader_passthrough := gl_IsSupported('GL_NV_geometry_shader_passthrough', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_geometry_program4 := gl_IsSupported('GL_NV_geometry_program4', oglExtensions);
-  GL_NV_geometry_shader4 := gl_IsSupported('GL_NV_geometry_shader4', oglExtensions);
-  GL_NV_gpu_multicast := gl_IsSupported('GL_NV_gpu_multicast', oglExtensions);
-  GL_NV_gpu_program4 := gl_IsSupported('GL_NV_gpu_program4', oglExtensions);
-  GL_NV_gpu_program5 := gl_IsSupported('GL_NV_gpu_program5', oglExtensions);
-  GL_NV_gpu_program5_mem_extended := gl_IsSupported('GL_NV_gpu_program5_mem_extended', oglExtensions);
-  {$EndIf}
-  // узнать, работает ли эта часть при GLext!!!!
-  // хотя функции подменены в другом разделе.
-  GL_NV_gpu_shader5 := gl_IsSupported('GL_NV_gpu_shader5', oglExtensions);  
-  GL_NV_internalformat_sample_query := gl_IsSupported('GL_NV_internalformat_sample_query', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_half_float := gl_IsSupported('GL_NV_half_float', oglExtensions);
-  GL_NV_light_max_exponent := gl_IsSupported('GL_NV_light_max_exponent', oglExtensions);
-  {$EndIf}
-  GL_NV_memory_attachment := gl_IsSupported('GL_NV_memory_attachment', oglExtensions);
-  GL_NV_memory_object_sparse := gl_IsSupported('GL_NV_memory_object_sparse', oglExtensions);
-  GL_NV_mesh_shader := gl_IsSupported('GL_NV_mesh_shader', oglExtensions);    
-  GL_NV_path_rendering := gl_IsSupported('GL_NV_path_rendering', oglExtensions);
-  GL_NV_path_rendering_shared_edge := gl_IsSupported('GL_NV_path_rendering_shared_edge', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_multisample_coverage := gl_IsSupported('GL_NV_multisample_coverage', oglExtensions);
-  GL_NV_multisample_filter_hint := gl_IsSupported('GL_NV_multisample_filter_hint', oglExtensions);
-  GL_NV_occlusion_query := gl_IsSupported('GL_NV_occlusion_query', oglExtensions);
-  GL_NV_packed_depth_stencil := gl_IsSupported('GL_NV_packed_depth_stencil', oglExtensions);
-  GL_NV_parameter_buffer_object := gl_IsSupported('GL_NV_parameter_buffer_object', oglExtensions);
-  GL_NV_parameter_buffer_object2 := gl_IsSupported('GL_NV_parameter_buffer_object2', oglExtensions); 
-  GL_NV_pixel_data_range := gl_IsSupported('GL_NV_pixel_data_range', oglExtensions);
-  GL_NV_point_sprite := gl_IsSupported('GL_NV_point_sprite', oglExtensions);
-  GL_NV_present_video := gl_IsSupported('GL_NV_present_video', oglExtensions);
-  GL_NV_primitive_restart := gl_IsSupported('GL_NV_primitive_restart', oglExtensions);
-  {$EndIf}
-  GL_NV_primitive_shading_rate := gl_IsSupported('GL_NV_primitive_shading_rate', oglExtensions);    
-  GL_NV_representative_fragment_test := gl_IsSupported('GL_NV_representative_fragment_test', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_query_resource := gl_IsSupported('GL_NV_query_resource', oglExtensions);
-  GL_NV_query_resource_tag := gl_IsSupported('GL_NV_query_resource_tag', oglExtensions);
-  GL_NV_register_combiners := gl_IsSupported('GL_NV_register_combiners', oglExtensions);
-  GL_NV_register_combiners2 := gl_IsSupported('GL_NV_register_combiners2', oglExtensions);
-  GL_NV_robustness_video_memory_purge := gl_IsSupported('GL_NV_robustness_video_memory_purge', oglExtensions);
-  {$EndIf}
-  GL_NV_sample_locations := gl_IsSupported('GL_NV_sample_locations', oglExtensions);
-  GL_NV_sample_mask_override_coverage := gl_IsSupported('GL_NV_sample_mask_override_coverage', oglExtensions);
-  GL_NV_scissor_exclusive := gl_IsSupported('GL_NV_scissor_exclusive', oglExtensions);
-  GL_NV_shader_atomic_counters := gl_IsSupported('GL_NV_shader_atomic_counters', oglExtensions);
-  GL_NV_shader_atomic_float := gl_IsSupported('GL_NV_shader_atomic_float', oglExtensions);
-  GL_NV_shader_atomic_float64 := gl_IsSupported('GL_NV_shader_atomic_float64', oglExtensions);
-  GL_NV_shader_atomic_fp16_vector := gl_IsSupported('GL_NV_shader_atomic_fp16_vector', oglExtensions);
-  GL_NV_shader_atomic_int64 := gl_IsSupported('GL_NV_shader_atomic_int64', oglExtensions);
-  GL_NV_shader_buffer_load := gl_IsSupported('GL_NV_shader_buffer_load', oglExtensions);
-  GL_NV_shader_buffer_store := gl_IsSupported('GL_NV_shader_buffer_store', oglExtensions);  
-  GL_NV_shader_subgroup_partitioned := gl_IsSupported('GL_NV_shader_subgroup_partitioned', oglExtensions);
-  GL_NV_shader_texture_footprint := gl_IsSupported('GL_NV_shader_texture_footprint', oglExtensions);
-  GL_NV_shader_thread_group := gl_IsSupported('GL_NV_shader_thread_group', oglExtensions);
-  GL_NV_shader_thread_shuffle := gl_IsSupported('GL_NV_shader_thread_shuffle', oglExtensions);
-  GL_NV_shading_rate_image := gl_IsSupported('GL_NV_shading_rate_image', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_shader_storage_buffer_object := gl_IsSupported('GL_NV_shader_storage_buffer_object', oglExtensions);  
-  GL_NV_stereo_view_rendering := gl_IsSupported('GL_NV_stereo_view_rendering', oglExtensions);
-  GL_NV_tessellation_program5 := gl_IsSupported('GL_NV_tessellation_program5', oglExtensions);
-  GL_NV_texgen_emboss := gl_IsSupported('GL_NV_texgen_emboss', oglExtensions);
-  GL_NV_texgen_reflection := gl_IsSupported('GL_NV_texgen_reflection', oglExtensions);   
-  GL_NV_texture_compression_vtc := gl_IsSupported('GL_NV_texture_compression_vtc', oglExtensions);
-  GL_NV_texture_env_combine4 := gl_IsSupported('GL_NV_texture_env_combine4', oglExtensions);
-  GL_NV_texture_expand_normal := gl_IsSupported('GL_NV_texture_expand_normal', oglExtensions);
-  GL_NV_texture_multisample := gl_IsSupported('GL_NV_texture_multisample', oglExtensions);
-  GL_NV_texture_rectangle := gl_IsSupported('GL_NV_texture_rectangle', oglExtensions);
-  {$EndIf}
-  GL_NV_texture_barrier := gl_IsSupported('GL_NV_texture_barrier', oglExtensions);
-  GL_NV_texture_rectangle_compressed := gl_IsSupported('GL_NV_texture_rectangle_compressed', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_texture_shader := gl_IsSupported('GL_NV_texture_shader', oglExtensions);
-  GL_NV_texture_shader2 := gl_IsSupported('GL_NV_texture_shader2', oglExtensions);
-  GL_NV_texture_shader3 := gl_IsSupported('GL_NV_texture_shader3', oglExtensions);
-  GL_NV_timeline_semaphore := gl_IsSupported('GL_NV_timeline_semaphore', oglExtensions);
-  GL_NV_transform_feedback := gl_IsSupported('GL_NV_transform_feedback', oglExtensions);
-  GL_NV_transform_feedback2 := gl_IsSupported('GL_NV_transform_feedback2', oglExtensions);  
-  GL_NV_vdpau_interop := gl_IsSupported('GL_NV_vdpau_interop', oglExtensions);
-  GL_NV_vdpau_interop2 := gl_IsSupported('GL_NV_vdpau_interop2', oglExtensions);
-  GL_NV_vertex_array_range := gl_IsSupported('GL_NV_vertex_array_range', oglExtensions);
-  GL_NV_vertex_array_range2 := gl_IsSupported('GL_NV_vertex_array_range2', oglExtensions);
-  {$EndIf}
-  GL_NV_uniform_buffer_unified_memory := gl_IsSupported('GL_NV_uniform_buffer_unified_memory', oglExtensions);
-  GL_NV_vertex_attrib_integer_64bit := gl_IsSupported('GL_NV_vertex_attrib_integer_64bit', oglExtensions);
-  GL_NV_vertex_buffer_unified_memory := gl_IsSupported('GL_NV_vertex_buffer_unified_memory', oglExtensions);    
-  GL_NV_viewport_array2 := gl_IsSupported('GL_NV_viewport_array2', oglExtensions);
-  GL_NV_viewport_swizzle := gl_IsSupported('GL_NV_viewport_swizzle', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_NV_vertex_program := gl_IsSupported('GL_NV_vertex_program', oglExtensions);
-  GL_NV_vertex_program1_1 := gl_IsSupported('GL_NV_vertex_program1_1', oglExtensions);
-  GL_NV_vertex_program2 := gl_IsSupported('GL_NV_vertex_program2', oglExtensions);
-  GL_NV_vertex_program2_option := gl_IsSupported('GL_NV_vertex_program2_option', oglExtensions);
-  GL_NV_vertex_program3 := gl_IsSupported('GL_NV_vertex_program3', oglExtensions);
-  GL_NV_vertex_program4 := gl_IsSupported('GL_NV_vertex_program4', oglExtensions);
-  GL_NV_video_capture := gl_IsSupported('GL_NV_video_capture', oglExtensions);
-  GL_OML_interlace := gl_IsSupported('GL_OML_interlace', oglExtensions);
-  GL_OML_resample := gl_IsSupported('GL_OML_resample', oglExtensions);
-  GL_OML_subsample := gl_IsSupported('GL_OML_subsample', oglExtensions);
-  {$EndIf}
-  GL_OVR_multiview := gl_IsSupported('GL_OVR_multiview', oglExtensions);
-  GL_OVR_multiview2 := gl_IsSupported('GL_OVR_multiview2', oglExtensions);
-  {$IFDEF USE_GLEXT}
-  GL_PGI_misc_hints := gl_IsSupported('GL_PGI_misc_hints', oglExtensions);
-  GL_PGI_vertex_hints := gl_IsSupported('GL_PGI_vertex_hints', oglExtensions);
-  GL_REND_screen_coordinates := gl_IsSupported('GL_REND_screen_coordinates', oglExtensions);
-  GL_S3_s3tc := gl_IsSupported('GL_S3_s3tc', oglExtensions);
-  GL_SGIS_detail_texture := gl_IsSupported('GL_SGIS_detail_texture', oglExtensions);
-  GL_SGIS_fog_function := gl_IsSupported('GL_SGIS_fog_function', oglExtensions);
-//  GL_SGIS_generate_mipmap := gl_IsSupported('GL_SGIS_generate_mipmap', oglExtensions);
-  GL_SGIS_multisample := gl_IsSupported('GL_SGIS_multisample', oglExtensions);
-  GL_SGIS_pixel_texture := gl_IsSupported('GL_SGIS_pixel_texture', oglExtensions);
-  GL_SGIS_point_line_texgen := gl_IsSupported('GL_SGIS_point_line_texgen', oglExtensions);
-  GL_SGIS_point_parameters := gl_IsSupported('GL_SGIS_point_parameters', oglExtensions);
-  GL_SGIS_sharpen_texture := gl_IsSupported('GL_SGIS_sharpen_texture', oglExtensions);
-  GL_SGIS_texture4D := gl_IsSupported('GL_SGIS_texture4D', oglExtensions);
-  GL_SGIS_texture_border_clamp := gl_IsSupported('GL_SGIS_texture_border_clamp', oglExtensions);
-  GL_SGIS_texture_color_mask := gl_IsSupported('GL_SGIS_texture_color_mask', oglExtensions);
-  GL_SGIS_texture_edge_clamp := gl_IsSupported('GL_SGIS_texture_edge_clamp', oglExtensions);
-  GL_SGIS_texture_filter4 := gl_IsSupported('GL_SGIS_texture_filter4', oglExtensions);
-  GL_SGIS_texture_lod := gl_IsSupported('GL_SGIS_texture_lod', oglExtensions);
-  GL_SGIS_texture_select := gl_IsSupported('GL_SGIS_texture_select', oglExtensions);
-  GL_SGIX_async := gl_IsSupported('GL_SGIX_async', oglExtensions);
-  GL_SGIX_async_histogram := gl_IsSupported('GL_SGIX_async_histogram', oglExtensions);
-  GL_SGIX_async_pixel := gl_IsSupported('GL_SGIX_async_pixel', oglExtensions);
-  GL_SGIX_blend_alpha_minmax := gl_IsSupported('GL_SGIX_blend_alpha_minmax', oglExtensions);
-  GL_SGIX_calligraphic_fragment := gl_IsSupported('GL_SGIX_calligraphic_fragment', oglExtensions);
-  GL_SGIX_clipmap := gl_IsSupported('GL_SGIX_clipmap', oglExtensions);
-  GL_SGIX_convolution_accuracy := gl_IsSupported('GL_SGIX_convolution_accuracy', oglExtensions);
-  GL_SGIX_depth_pass_instrument := gl_IsSupported('GL_SGIX_depth_pass_instrument', oglExtensions);
-  GL_SGIX_depth_texture := gl_IsSupported('GL_SGIX_depth_texture', oglExtensions);
-  GL_SGIX_flush_raster := gl_IsSupported('GL_SGIX_flush_raster', oglExtensions);
-  GL_SGIX_fog_offset := gl_IsSupported('GL_SGIX_fog_offset', oglExtensions);
-  GL_SGIX_fragment_lighting := gl_IsSupported('GL_SGIX_fragment_lighting', oglExtensions);
-  GL_SGIX_framezoom := gl_IsSupported('GL_SGIX_framezoom', oglExtensions);
-  GL_SGIX_igloo_interface := gl_IsSupported('GL_SGIX_igloo_interface', oglExtensions);
-  GL_SGIX_instruments := gl_IsSupported('GL_SGIX_instruments', oglExtensions);
-  GL_SGIX_interlace := gl_IsSupported('GL_SGIX_interlace', oglExtensions);
-  GL_SGIX_ir_instrument1 := gl_IsSupported('GL_SGIX_ir_instrument1', oglExtensions);
-  GL_SGIX_list_priority := gl_IsSupported('GL_SGIX_list_priority', oglExtensions);
-  GL_SGIX_pixel_texture := gl_IsSupported('GL_SGIX_pixel_texture', oglExtensions);
-  GL_SGIX_pixel_tiles := gl_IsSupported('GL_SGIX_pixel_tiles', oglExtensions);
-  GL_SGIX_polynomial_ffd := gl_IsSupported('GL_SGIX_polynomial_ffd', oglExtensions);
-  GL_SGIX_reference_plane := gl_IsSupported('GL_SGIX_reference_plane', oglExtensions);
-  GL_SGIX_resample := gl_IsSupported('GL_SGIX_resample', oglExtensions);
-  GL_SGIX_scalebias_hint := gl_IsSupported('GL_SGIX_scalebias_hint', oglExtensions);
-  GL_SGIX_shadow := gl_IsSupported('GL_SGIX_shadow', oglExtensions);
-  GL_SGIX_shadow_ambient := gl_IsSupported('GL_SGIX_shadow_ambient', oglExtensions);
-  GL_SGIX_sprite := gl_IsSupported('GL_SGIX_sprite', oglExtensions);
-  GL_SGIX_subsample := gl_IsSupported('GL_SGIX_subsample', oglExtensions);
-  GL_SGIX_tag_sample_buffer := gl_IsSupported('GL_SGIX_tag_sample_buffer', oglExtensions);
-  GL_SGIX_texture_add_env := gl_IsSupported('GL_SGIX_texture_add_env', oglExtensions);
-  GL_SGIX_texture_coordinate_clamp := gl_IsSupported('GL_SGIX_texture_coordinate_clamp', oglExtensions);
-  GL_SGIX_texture_lod_bias := gl_IsSupported('GL_SGIX_texture_lod_bias', oglExtensions);
-  GL_SGIX_texture_multi_buffer := gl_IsSupported('GL_SGIX_texture_multi_buffer', oglExtensions);
-  GL_SGIX_texture_scale_bias := gl_IsSupported('GL_SGIX_texture_scale_bias', oglExtensions);
-  GL_SGIX_vertex_preclip := gl_IsSupported('GL_SGIX_vertex_preclip', oglExtensions);
-  GL_SGIX_ycrcb := gl_IsSupported('GL_SGIX_ycrcb', oglExtensions);
-  GL_SGIX_ycrcb_subsample := gl_IsSupported('GL_SGIX_ycrcb_subsample', oglExtensions);
-  GL_SGIX_ycrcba := gl_IsSupported('GL_SGIX_ycrcba', oglExtensions);
-  GL_SGI_color_matrix := gl_IsSupported('GL_SGI_color_matrix', oglExtensions);
-  GL_SGI_color_table := gl_IsSupported('GL_SGI_color_table', oglExtensions);
-  GL_SGI_texture_color_table := gl_IsSupported('GL_SGI_texture_color_table', oglExtensions);
-  GL_SUNX_constant_data := gl_IsSupported('GL_SUNX_constant_data', oglExtensions);
-  GL_SUN_convolution_border_modes := gl_IsSupported('GL_SUN_convolution_border_modes', oglExtensions);
-  GL_SUN_global_alpha := gl_IsSupported('GL_SUN_global_alpha', oglExtensions);
-  GL_SUN_mesh_array := gl_IsSupported('GL_SUN_mesh_array', oglExtensions);
-  GL_SUN_slice_accum := gl_IsSupported('GL_SUN_slice_accum', oglExtensions);
-  GL_SUN_triangle_list := gl_IsSupported('GL_SUN_triangle_list', oglExtensions);
-  GL_SUN_vertex := gl_IsSupported('GL_SUN_vertex', oglExtensions);
-  GL_WIN_phong_shading := gl_IsSupported('GL_WIN_phong_shading', oglExtensions);
-  GL_WIN_specular_fog := gl_IsSupported('GL_WIN_specular_fog', oglExtensions);
-  {$EndIf}
-end;
-{$IfEnd}
-
-procedure CheckGLVersion;
-var
-  Buffer: String;
-begin
-  {$IfDef USE_GLU}
-  GLU_VERSION_1_1 := False;
-  GLU_VERSION_1_2 := False;
-  GLU_VERSION_1_3 := False;
-
-  Buffer := gluGetString(GLU_VERSION);
-  GLUVersion := Integer(buffer[3]) - 48;
-
-  GLU_VERSION_1_1 := True;
-
-  if GLUVersion >= 2 then
-    GLU_VERSION_1_2 := True;
-
-  if GLUVersion >= 3 then
-    GLU_VERSION_1_3 := True;
-  {$EndIf}
-
-  {$IfDef USE_GL_33}
-  glGetIntegerv(GL_MAJOR_VERSION, @GLVersion[0]);
-  glGetIntegerv(GL_MINOR_VERSION, @GLVersion[1]);
-  {$Else}
-  Buffer := glGetString(GL_VERSION);
-  GLVersion[0] := Integer(Buffer[1]) - 48;
-  GLVersion[1] := Integer(buffer[3]) - 48;
-  {$EndIf}
-  use_glMinorVer := 0;
-  use_glMajorVer := 1;
-
-  if GLVersion[0] > maxGLVerMajor then
-    GLVersion[0] := maxGLVerMajor;
-  if GLVersion[1] > maxGLVerMinor then
-    GLVersion[1] := maxGLVerMinor;
-
-  GL_VERSION_1_0 := True;
-  {$IfDef GL_VERSION_1_1}
-  GL_VERSION_1_1 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_1_2}
-  GL_VERSION_1_2 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_1_3}
-  GL_VERSION_1_3 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_1_4}
-  GL_VERSION_1_4 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_1_5}
-  GL_VERSION_1_5 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_2_0}
-  GL_VERSION_2_0 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_2_1}
-  GL_VERSION_2_1 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_3_0}
-  GL_VERSION_3_0 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_3_1}
-  GL_VERSION_3_1 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_3_2}
-  GL_VERSION_3_2 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_3_3}
-  GL_VERSION_3_3 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_0}
-  GL_VERSION_4_0 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_1}
-  GL_VERSION_4_1 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_2}
-  GL_VERSION_4_2 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_3}
-  GL_VERSION_4_3 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_4}
-  GL_VERSION_4_4 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_5}
-  GL_VERSION_4_5 := False;
-  {$EndIf}
-  {$IfDef GL_VERSION_4_6}
-  GL_VERSION_4_6 := False;
-  {$EndIf}
-
-  {$if defined(GL_VERSION_4_0) or defined(GL_VERSION_4_1) or defined(GL_VERSION_4_2) or defined(GL_VERSION_4_3) or defined(GL_VERSION_4_4) or defined(GL_VERSION_4_5) or defined(GL_VERSION_4_6)}
-  if GLVersion[0] >= 4 then
-  begin
-    use_glMajorVer := 4;
-    {$IfDef GL_VERSION_1_1}
-    GL_VERSION_1_1 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_2}
-    GL_VERSION_1_2 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_3}
-    GL_VERSION_1_3 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_4}
-    GL_VERSION_1_4 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_5}
-    GL_VERSION_1_5 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_0}
-    GL_VERSION_2_0 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_0}
-    GL_VERSION_2_1 := True;
-    {$EndIf}
-    {.$IfDef GL_VERSION_3_0}
-    GL_VERSION_3_0 := True;
-    {.$EndIf}
-    {$IfDef GL_VERSION_3_1}
-    GL_VERSION_3_1 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_3_2}
-    GL_VERSION_3_2 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_3_3}
-    GL_VERSION_3_3 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_0}
-    GL_VERSION_4_0 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_1}
-    if GLVersion[1] >= 1 then
-    begin
-      GL_VERSION_4_1 := True;
-      use_glMinorVer := 1;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_2}
-    if GLVersion[1] >= 2 then
-    begin
-      GL_VERSION_4_2 := True;
-      use_glMinorVer := 2;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_3}
-    if GLVersion[1] >= 3 then
-    begin
-      GL_VERSION_4_3 := True;
-      use_glMinorVer := 3;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_4}
-    if GLVersion[1] >= 4 then
-    begin
-      GL_VERSION_4_4 := True;
-      use_glMinorVer := 4;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_5}
-    if GLVersion[1] >= 5 then
-    begin
-      GL_VERSION_4_5 := True;
-      use_glMinorVer := 5;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_4_6}
-    if GLVersion[1] >= 6 then
-    begin
-      GL_VERSION_4_6 := True;
-      use_glMinorVer := 1;
-    end;
-    {$EndIf}
-    exit;
-  end;
-  {$IfEnd}
-
-  {$if defined(GL_VERSION_3_0) or defined(GL_VERSION_3_1) or defined(GL_VERSION_3_2) or defined(GL_VERSION_3_3)}
-  if GLVersion[0] >= 3 then
-  begin
-    // проверку на то какой контекст делаем надо делать или нет???
-    use_glMajorVer := 3;
-    {$IfDef GL_VERSION_1_1}
-    GL_VERSION_1_1 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_2}
-    GL_VERSION_1_2 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_3}
-    GL_VERSION_1_3 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_4}
-    GL_VERSION_1_4 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_5}
-    GL_VERSION_1_5 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_0}
-    GL_VERSION_2_0 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_0}
-    GL_VERSION_2_1 := True;
-    {$EndIf}
-    {.$IfDef GL_VERSION_3_0}
-    GL_VERSION_3_0 := True;
-    {.$EndIf}
-    {$IfDef GL_VERSION_3_1}
-    if GLVersion[1] >= 1 then
-    begin
-      GL_VERSION_3_1 := True;
-      use_glMinorVer := 1;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_3_2}
-    if GLVersion[1] >= 2 then
-    begin
-      GL_VERSION_3_2 := True;
-      use_glMinorVer := 2;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_3_3}
-    if GLVersion[1] >= 3 then
-    begin
-      GL_VERSION_3_3 := True;
-      use_glMinorVer := 3;
-    end;
-    {$EndIf}
-    exit;
-  end;
-  {$IfEnd}
-
-  {$If defined(GL_VERSION_2_0) or defined(GL_VERSION_2_1)}
-  if GLVersion[0] >= 2 then
-  begin
-    use_glMajorVer := 2;
-    {$IfDef GL_VERSION_1_1}
-    GL_VERSION_1_1 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_2}
-    GL_VERSION_1_2 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_3}
-    GL_VERSION_1_3 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_4}
-    GL_VERSION_1_4 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_5}
-    GL_VERSION_1_5 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_0}
-    GL_VERSION_2_0 := True;
-    {$EndIf}
-    {$IfDef GL_VERSION_2_1}
-    if GLVersion[1] >= 1 then
-    begin
-      GL_VERSION_2_1 := True;
-      use_glMinorVer := 1;
-    end;
-    {$EndIf}
-    exit;
-  end;
-  {$IfEnd}
-
-  {$if defined(GL_VERSION_1_1) or defined(GL_VERSION_1_2) or defined(GL_VERSION_1_3) or defined(GL_VERSION_1_4) or defined(GL_VERSION_1_5)}
-  if GLVersion[0] = 1 then
-  begin
-    {$IfDef GL_VERSION_1_1}
-    if GLVersion[1] >= 1 then
-    begin
-      GL_VERSION_1_1 := True;
-      use_glMinorVer := 1;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_2}
-    if GLVersion[1] >= 2 then
-    begin
-      GL_VERSION_1_2 := True;
-      use_glMinorVer := 2;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_3}
-    if GLVersion[1] >= 3 then
-    begin
-      GL_VERSION_1_3 := True;
-      use_glMinorVer := 3;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_4}
-    if GLVersion[1] >= 4 then
-    begin
-      GL_VERSION_1_4 := True;
-      use_glMinorVer := 4;
-    end;
-    {$EndIf}
-    {$IfDef GL_VERSION_1_5}
-    if GLVersion[1] >= 5 then
-    begin
-      GL_VERSION_1_5 := True;
-      use_glMinorVer := 5;
-    end;
-    {$EndIf}
-  end;
-  {$IfEnd}
-end;
-
-function LoadOpenGL: Boolean;
-var
-  i, j: Integer;
-begin
-{  Result := False;
-  if gl_Library <> Nil then
-    glFreeLib(gl_Library);
-  gl_Library := glLoadLib(PChar(libGL));
-  if gl_Library = nil then
-    exit;                    // Error!!! }
-
-  Result := True;
-
-  {$IfDef LINUX}
-  oglExtensions := '';
-  {$IfDef GL_VERSION_3_0}
-  if use_glMajorVer >= 3 then
-  begin
-    if not Assigned(glGetStringi) then
-      glGetStringi := gl_GetProc('glGetStringi');
-    if Assigned(glGetStringi) then
-    begin
-      glGetIntegerv(GL_NUM_EXTENSIONS, @j);
-      for i := 0 to j - 1 do
-        oglExtensions := oglExtensions + PAnsiChar(glGetStringi(GL_EXTENSIONS, i)) + #32;
-    end;
-  end;
-  {$EndIf}
-  if oglExtensions = '' then
-    oglExtensions := glGetString(GL_EXTENSIONS);
-  {$EndIf}
-
-  {$If defined(USE_GLEXT) or defined(USE_GLCORE)}
-  AllCheckGLExtension;
-  {$IfEnd}
-  // ZenGL ++
-  GL_SGIS_generate_mipmap := gl_IsSupported('GL_SGIS_generate_mipmap', oglExtensions);
-  GL_EXT_texture_compression_s3tc := gl_IsSupported('GL_EXT_texture_compression_s3tc', oglExtensions);
-  GL_EXT_texture_filter_anisotropic := gl_IsSupported('GL_EXT_texture_filter_anisotropic', oglExtensions);
-  GL_EXT_blend_func_separate := gl_IsSupported('GL_EXT_blend_func_separate', oglExtensions);
-
-  {$IfDef USE_DEPRECATED}
-(*  glAccum := gl_GetProc('glAccum');
-//  glAlphaFunc := gl_GetProc('glAlphaFunc');
-  glAreTexturesResident := gl_GetProc('glAreTexturesResident');
-//  glArrayElement := gl_GetProc('glArrayElement');
-//  glBegin := gl_GetProc('glBegin');
-  glBitmap := gl_GetProc('glBitmap');
-//  glCallList := gl_GetProc('glCallList');
-//  glCallLists := gl_GetProc('glCallLists');
-  glClearAccum := gl_GetProc('glClearAccum');
-  glClearIndex := gl_GetProc('glClearIndex');
-  glClipPlane := gl_GetProc('glClipPlane');
-  glColor3b := gl_GetProc('glColor3b');
-  glColor3bv := gl_GetProc('glColor3bv');
-  glColor3d := gl_GetProc('glColor3d');
-  glColor3dv := gl_GetProc('glColor3dv');
-  glColor3f := gl_GetProc('glColor3f');
-  glColor3fv := gl_GetProc('glColor3fv');
-  glColor3i := gl_GetProc('glColor3i');
-  glColor3iv := gl_GetProc('glColor3iv');
-  glColor3s := gl_GetProc('glColor3s');
-  glColor3sv := gl_GetProc('glColor3sv');
-//  glColor3ub := gl_GetProc('glColor3ub');
-//  glColor3ubv := gl_GetProc('glColor3ubv');
-  glColor3ui := gl_GetProc('glColor3ui');
-  glColor3uiv := gl_GetProc('glColor3uiv');
-  glColor3us := gl_GetProc('glColor3us');
-  glColor3usv := gl_GetProc('glColor3usv');
-  glColor4b := gl_GetProc('glColor4b');
-  glColor4bv := gl_GetProc('glColor4bv');
-  glColor4d := gl_GetProc('glColor4d');
-  glColor4dv := gl_GetProc('glColor4dv');
-//  glColor4f := gl_GetProc('glColor4f');
-//  glColor4fv := gl_GetProc('glColor4fv');
-  glColor4i := gl_GetProc('glColor4i');
-  glColor4iv := gl_GetProc('glColor4iv');
-  glColor4s := gl_GetProc('glColor4s');
-  glColor4sv := gl_GetProc('glColor4sv');
-//  glColor4ub := gl_GetProc('glColor4ub');
-//  glColor4ubv := gl_GetProc('glColor4ubv');
-  glColor4ui := gl_GetProc('glColor4ui');
-  glColor4uiv := gl_GetProc('glColor4uiv');
-  glColor4us := gl_GetProc('glColor4us');
-  glColor4usv := gl_GetProc('glColor4usv');
-//  glColorMaterial := gl_GetProc('glColorMaterial');
-//  glColorPointer := gl_GetProc('glColorPointer');
-  glCopyPixels := gl_GetProc('glCopyPixels');
-//  glDeleteLists := gl_GetProc('glDeleteLists');
-//  glDisableClientState := gl_GetProc('glDisableClientState');
-  glDrawPixels := gl_GetProc('glDrawPixels');
-  glEdgeFlag := gl_GetProc('glEdgeFlag');
-//  glEdgeFlagPointer := gl_GetProc('glEdgeFlagPointer');
-  glEdgeFlagv := gl_GetProc('glEdgeFlagv');
-//  glEnableClientState := gl_GetProc('glEnableClientState');
-//  glEnd := gl_GetProc('glEnd');
-//  glEndList := gl_GetProc('glEndList');
-  glEvalCoord1d := gl_GetProc('glEvalCoord1d');
-  glEvalCoord1dv := gl_GetProc('glEvalCoord1dv');
-  glEvalCoord1f := gl_GetProc('glEvalCoord1f');
-  glEvalCoord1fv := gl_GetProc('glEvalCoord1fv');
-  glEvalCoord2d := gl_GetProc('glEvalCoord2d');
-  glEvalCoord2dv := gl_GetProc('glEvalCoord2dv');
-  glEvalCoord2f := gl_GetProc('glEvalCoord2f');
-  glEvalCoord2fv := gl_GetProc('glEvalCoord2fv');
-  glEvalMesh1 := gl_GetProc('glEvalMesh1');
-  glEvalMesh2 := gl_GetProc('glEvalMesh2');
-  glEvalPoint1 := gl_GetProc('glEvalPoint1');
-  glEvalPoint2 := gl_GetProc('glEvalPoint2');
-  glFeedbackBuffer := gl_GetProc('glFeedbackBuffer');
-  glFogf := gl_GetProc('glFogf');
-  glFogfv := gl_GetProc('glFogfv');
-  glFogi := gl_GetProc('glFogi');
-  glFogiv := gl_GetProc('glFogiv');
-//  glFrustum := gl_GetProc('glFrustum');
-//  glGenLists := gl_GetProc('glGenLists');
-  glGetClipPlane := gl_GetProc('glGetClipPlane');
-//  glGetLightfv := gl_GetProc('glGetLightfv');
-//  glGetLightiv := gl_GetProc('glGetLightiv');
-  glGetMapdv := gl_GetProc('glGetMapdv');
-  glGetMapfv := gl_GetProc('glGetMapfv');
-  glGetMapiv := gl_GetProc('glGetMapiv');
-//  glGetMaterialfv := gl_GetProc('glGetMaterialfv');
-//  glGetMaterialiv := gl_GetProc('glGetMaterialiv');
-  glGetPixelMapfv := gl_GetProc('glGetPixelMapfv');
-  glGetPixelMapuiv := gl_GetProc('glGetPixelMapuiv');
-  glGetPixelMapusv := gl_GetProc('glGetPixelMapusv');
-  glGetPolygonStipple := gl_GetProc('glGetPolygonStipple');
-  glGetTexEnvfv := gl_GetProc('glGetTexEnvfv');
-  glGetTexEnviv := gl_GetProc('glGetTexEnviv');
-  glGetTexGendv := gl_GetProc('glGetTexGendv');
-  glGetTexGenfv := gl_GetProc('glGetTexGenfv');
-  glGetTexGeniv := gl_GetProc('glGetTexGeniv');
-  glIndexMask := gl_GetProc('glIndexMask');
-  glIndexPointer := gl_GetProc('glIndexPointer');
-  glIndexd := gl_GetProc('glIndexd');
-  glIndexdv := gl_GetProc('glIndexdv');
-  glIndexf := gl_GetProc('glIndexf');
-  glIndexfv := gl_GetProc('glIndexfv');
-  glIndexi := gl_GetProc('glIndexi');
-  glIndexiv := gl_GetProc('glIndexiv');
-  glIndexs := gl_GetProc('glIndexs');
-  glIndexsv := gl_GetProc('glIndexsv');
-  glIndexub := gl_GetProc('glIndexub');
-  glIndexubv := gl_GetProc('glIndexubv');
-  glInitNames := gl_GetProc('glInitNames');
-//  glInterleavedArrays := gl_GetProc('glInterleavedArrays');
-//  glIsList := gl_GetProc('glIsList');
-//  glLightModelf := gl_GetProc('glLightModelf');
-//  glLightModelfv := gl_GetProc('glLightModelfv');
-  glLightModeli := gl_GetProc('glLightModeli');
-  glLightModeliv := gl_GetProc('glLightModeliv');
-//  glLightf := gl_GetProc('glLightf');
-//  glLightfv := gl_GetProc('glLightfv');
-  glLighti := gl_GetProc('glLighti');
-  glLightiv := gl_GetProc('glLightiv');
-  glLineStipple := gl_GetProc('glLineStipple');
-//  glListBase := gl_GetProc('glListBase');
-//  glLoadIdentity := gl_GetProc('glLoadIdentity');
-  glLoadMatrixd := gl_GetProc('glLoadMatrixd');
-//  glLoadMatrixf := gl_GetProc('glLoadMatrixf');
-  glLoadName := gl_GetProc('glLoadName');
-  glMap1d := gl_GetProc('glMap1d');
-  glMap1f := gl_GetProc('glMap1f');
-  glMap2d := gl_GetProc('glMap2d');
-  glMap2f := gl_GetProc('glMap2f');
-  glMapGrid1d := gl_GetProc('glMapGrid1d');
-  glMapGrid1f := gl_GetProc('glMapGrid1f');
-  glMapGrid2d := gl_GetProc('glMapGrid2d');
-  glMapGrid2f := gl_GetProc('glMapGrid2f');
-//  glMaterialf := gl_GetProc('glMaterialf');
-//  glMaterialfv := gl_GetProc('glMaterialfv');
-  glMateriali := gl_GetProc('glMateriali');
-  glMaterialiv := gl_GetProc('glMaterialiv');
-//  glMatrixMode := gl_GetProc('glMatrixMode');
-  glMultMatrixd := gl_GetProc('glMultMatrixd');
-  glMultMatrixf := gl_GetProc('glMultMatrixf');
-//  glNewList := gl_GetProc('glNewList');
-  glNormal3b := gl_GetProc('glNormal3b');
-  glNormal3bv := gl_GetProc('glNormal3bv');
-  glNormal3d := gl_GetProc('glNormal3d');
-  glNormal3dv := gl_GetProc('glNormal3dv');
-//  glNormal3f := gl_GetProc('glNormal3f');
-//  glNormal3fv := gl_GetProc('glNormal3fv');
-  glNormal3i := gl_GetProc('glNormal3i');
-  glNormal3iv := gl_GetProc('glNormal3iv');
-  glNormal3s := gl_GetProc('glNormal3s');
-  glNormal3sv := gl_GetProc('glNormal3sv');
-//  glNormalPointer := gl_GetProc('glNormalPointer');
-//  glOrtho := gl_GetProc('glOrtho');
-  glPassThrough := gl_GetProc('glPassThrough');
-  glPixelMapfv := gl_GetProc('glPixelMapfv');
-  glPixelMapuiv := gl_GetProc('glPixelMapuiv');
-  glPixelMapusv := gl_GetProc('glPixelMapusv');
-  glPixelTransferf := gl_GetProc('glPixelTransferf');
-  glPixelTransferi := gl_GetProc('glPixelTransferi');
-  glPixelZoom := gl_GetProc('glPixelZoom');
-  glPolygonStipple := gl_GetProc('glPolygonStipple');
-  glPopAttrib := gl_GetProc('glPopAttrib');
-  glPopClientAttrib := gl_GetProc('glPopClientAttrib');
-//  glPopMatrix := gl_GetProc('glPopMatrix');
-  glPopName := gl_GetProc('glPopName');
-  glPrioritizeTextures := gl_GetProc('glPrioritizeTextures');
-  glPushAttrib := gl_GetProc('glPushAttrib');
-  glPushClientAttrib := gl_GetProc('glPushClientAttrib');
-//  glPushMatrix := gl_GetProc('glPushMatrix');
-  glPushName := gl_GetProc('glPushName');
-  glRasterPos2d := gl_GetProc('glRasterPos2d');
-  glRasterPos2dv := gl_GetProc('glRasterPos2dv');
-  glRasterPos2f := gl_GetProc('glRasterPos2f');
-  glRasterPos2fv := gl_GetProc('glRasterPos2fv');
-  glRasterPos2i := gl_GetProc('glRasterPos2i');
-  glRasterPos2iv := gl_GetProc('glRasterPos2iv');
-  glRasterPos2s := gl_GetProc('glRasterPos2s');
-  glRasterPos2sv := gl_GetProc('glRasterPos2sv');
-  glRasterPos3d := gl_GetProc('glRasterPos3d');
-  glRasterPos3dv := gl_GetProc('glRasterPos3dv');
-  glRasterPos3f := gl_GetProc('glRasterPos3f');
-  glRasterPos3fv := gl_GetProc('glRasterPos3fv');
-  glRasterPos3i := gl_GetProc('glRasterPos3i');
-  glRasterPos3iv := gl_GetProc('glRasterPos3iv');
-  glRasterPos3s := gl_GetProc('glRasterPos3s');
-  glRasterPos3sv := gl_GetProc('glRasterPos3sv');
-  glRasterPos4d := gl_GetProc('glRasterPos4d');
-  glRasterPos4dv := gl_GetProc('glRasterPos4dv');
-  glRasterPos4f := gl_GetProc('glRasterPos4f');
-  glRasterPos4fv := gl_GetProc('glRasterPos4fv');
-  glRasterPos4i := gl_GetProc('glRasterPos4i');
-  glRasterPos4iv := gl_GetProc('glRasterPos4iv');
-  glRasterPos4s := gl_GetProc('glRasterPos4s');
-  glRasterPos4sv := gl_GetProc('glRasterPos4sv');
-  glRectd := gl_GetProc('glRectd');
-  glRectdv := gl_GetProc('glRectdv');
-  glRectf := gl_GetProc('glRectf');
-  glRectfv := gl_GetProc('glRectfv');
-  glRecti := gl_GetProc('glRecti');
-  glRectiv := gl_GetProc('glRectiv');
-  glRects := gl_GetProc('glRects');
-  glRectsv := gl_GetProc('glRectsv');
-  glRenderMode := gl_GetProc('glRenderMode');
-  glRotated := gl_GetProc('glRotated');
-//  glRotatef := gl_GetProc('glRotatef');
-  glScaled := gl_GetProc('glScaled');
-//  glScalef := gl_GetProc('glScalef');
-  glSelectBuffer := gl_GetProc('glSelectBuffer');
-//  glShadeModel := gl_GetProc('glShadeModel');
-  glTexCoord1d := gl_GetProc('glTexCoord1d');
-  glTexCoord1dv := gl_GetProc('glTexCoord1dv');
-  glTexCoord1f := gl_GetProc('glTexCoord1f');
-  glTexCoord1fv := gl_GetProc('glTexCoord1fv');
-  glTexCoord1i := gl_GetProc('glTexCoord1i');
-  glTexCoord1iv := gl_GetProc('glTexCoord1iv');
-  glTexCoord1s := gl_GetProc('glTexCoord1s');
-  glTexCoord1sv := gl_GetProc('glTexCoord1sv');
-  glTexCoord2d := gl_GetProc('glTexCoord2d');
-  glTexCoord2dv := gl_GetProc('glTexCoord2dv');
-//  glTexCoord2f := gl_GetProc('glTexCoord2f');
-//  glTexCoord2fv := gl_GetProc('glTexCoord2fv');
-  glTexCoord2i := gl_GetProc('glTexCoord2i');
-  glTexCoord2iv := gl_GetProc('glTexCoord2iv');
-  glTexCoord2s := gl_GetProc('glTexCoord2s');
-  glTexCoord2sv := gl_GetProc('glTexCoord2sv');
-  glTexCoord3d := gl_GetProc('glTexCoord3d');
-  glTexCoord3dv := gl_GetProc('glTexCoord3dv');
-  glTexCoord3f := gl_GetProc('glTexCoord3f');
-  glTexCoord3fv := gl_GetProc('glTexCoord3fv');
-  glTexCoord3i := gl_GetProc('glTexCoord3i');
-  glTexCoord3iv := gl_GetProc('glTexCoord3iv');
-  glTexCoord3s := gl_GetProc('glTexCoord3s');
-  glTexCoord3sv := gl_GetProc('glTexCoord3sv');
-  glTexCoord4d := gl_GetProc('glTexCoord4d');
-  glTexCoord4dv := gl_GetProc('glTexCoord4dv');
-  glTexCoord4f := gl_GetProc('glTexCoord4f');
-  glTexCoord4fv := gl_GetProc('glTexCoord4fv');
-  glTexCoord4i := gl_GetProc('glTexCoord4i');
-  glTexCoord4iv := gl_GetProc('glTexCoord4iv');
-  glTexCoord4s := gl_GetProc('glTexCoord4s');
-  glTexCoord4sv := gl_GetProc('glTexCoord4sv');
-//  glTexCoordPointer := gl_GetProc('glTexCoordPointer');
-  glTexEnvf := gl_GetProc('glTexEnvf');
-  glTexEnvfv := gl_GetProc('glTexEnvfv');
-//  glTexEnvi := gl_GetProc('glTexEnvi');
-//  glTexEnviv := gl_GetProc('glTexEnviv');
-  glTexGend := gl_GetProc('glTexGend');
-  glTexGendv := gl_GetProc('glTexGendv');
-  glTexGenf := gl_GetProc('glTexGenf');
-  glTexGenfv := gl_GetProc('glTexGenfv');
-  glTexGeni := gl_GetProc('glTexGeni');
-  glTexGeniv := gl_GetProc('glTexGeniv');
-  glTranslated := gl_GetProc('glTranslated');
-//  glTranslatef := gl_GetProc('glTranslatef');
-  glVertex2d := gl_GetProc('glVertex2d');
-  glVertex2dv := gl_GetProc('glVertex2dv');
-//  glVertex2f := gl_GetProc('glVertex2f');
-//  glVertex2fv := gl_GetProc('glVertex2fv');
-  glVertex2i := gl_GetProc('glVertex2i');
-  glVertex2iv := gl_GetProc('glVertex2iv');
-  glVertex2s := gl_GetProc('glVertex2s');
-  glVertex2sv := gl_GetProc('glVertex2sv');
-  glVertex3d := gl_GetProc('glVertex3d');
-  glVertex3dv := gl_GetProc('glVertex3dv');
-//  glVertex3f := gl_GetProc('glVertex3f');
-//  glVertex3fv := gl_GetProc('glVertex3fv');
-  glVertex3i := gl_GetProc('glVertex3i');
-  glVertex3iv := gl_GetProc('glVertex3iv');
-  glVertex3s := gl_GetProc('glVertex3s');
-  glVertex3sv := gl_GetProc('glVertex3sv');
-  glVertex4d := gl_GetProc('glVertex4d');
-  glVertex4dv := gl_GetProc('glVertex4dv');
-  glVertex4f := gl_GetProc('glVertex4f');
-  glVertex4fv := gl_GetProc('glVertex4fv');
-  glVertex4i := gl_GetProc('glVertex4i');
-  glVertex4iv := gl_GetProc('glVertex4iv');
-  glVertex4s := gl_GetProc('glVertex4s');
-  glVertex4sv := gl_GetProc('glVertex4sv');
-//  glVertexPointer := gl_GetProc('glVertexPointer'); *)
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_0}
-(*  glCullFace := gl_GetProc('glCullFace');
-  glFrontFace := gl_GetProc('glFrontFace');
-//  glHint := gl_GetProc('glHint');
-  glLineWidth := gl_GetProc('glLineWidth');
-//  glPointSize := gl_GetProc('glPointSize');
-  glPolygonMode := gl_GetProc('glPolygonMode');
-//  glScissor := gl_GetProc('glScissor');
-//  glTexParameterf := gl_GetProc('glTexParameterf');
-//  glTexParameterfv := gl_GetProc('glTexParameterfv');
-//  glTexParameteri := gl_GetProc('glTexParameteri');
-//  glTexParameteriv := gl_GetProc('glTexParameteriv');
-  glTexImage1D := gl_GetProc('glTexImage1D');
-//  glTexImage2D := gl_GetProc('glTexImage2D');
-  glDrawBuffer := gl_GetProc('glDrawBuffer');
-//  glClear := gl_GetProc('glClear');
-//  glClearColor := gl_GetProc('glClearColor');
-  glClearStencil := gl_GetProc('glClearStencil');
-//  glClearDepth := gl_GetProc('glClearDepth');
-  glStencilMask := gl_GetProc('glStencilMask');
-//  glColorMask := gl_GetProc('glColorMask');
-//  glDepthMask := gl_GetProc('glDepthMask');
-//  glDisable := gl_GetProc('glDisable');
-//  glEnable := gl_GetProc('glEnable');
-  glFinish := gl_GetProc('glFinish');
-  glFlush := gl_GetProc('glFlush');
-//  glBlendFunc := gl_GetProc('glBlendFunc');
-  glLogicOp := gl_GetProc('glLogicOp');
-  glStencilFunc := gl_GetProc('glStencilFunc');
-  glStencilOp := gl_GetProc('glStencilOp');
-//  glDepthFunc := gl_GetProc('glDepthFunc');
-//  glPixelStoref := gl_GetProc('glPixelStoref');
-//  glPixelStorei := gl_GetProc('glPixelStorei');
-  glReadBuffer := gl_GetProc('glReadBuffer');
-//  glReadPixels := gl_GetProc('glReadPixels');
-  glGetBooleanv := gl_GetProc('glGetBooleanv');
-  glGetDoublev := gl_GetProc('glGetDoublev');
-  glGetError := gl_GetProc('glGetError');
-//  glGetFloatv := gl_GetProc('glGetFloatv');
-//  glGetIntegerv := gl_GetProc('glGetIntegerv');
-//  glGetString := gl_GetProc('glGetString');
-//  glGetTexImage := gl_GetProc('glGetTexImage');
-  glGetTexParameterfv := gl_GetProc('glGetTexParameterfv');
-  glGetTexParameteriv := gl_GetProc('glGetTexParameteriv');
-  glGetTexLevelParameterfv := gl_GetProc('glGetTexLevelParameterfv');
-  glGetTexLevelParameteriv := gl_GetProc('glGetTexLevelParameteriv');
-  glIsEnabled := gl_GetProc('glIsEnabled');
-//  glDepthRange := gl_GetProc('glDepthRange');
-//  glViewport := gl_GetProc('glViewport'); *)
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_1}
-(*//  glDrawArrays := gl_GetProc('glDrawArrays');
-//  glDrawElements := gl_GetProc('glDrawElements');
-  glGetPointerv := gl_GetProc('glGetPointerv');
-  glPolygonOffset := gl_GetProc('glPolygonOffset');
-  glCopyTexImage1D := gl_GetProc('glCopyTexImage1D');
-  glCopyTexImage2D := gl_GetProc('glCopyTexImage2D');
-  glCopyTexSubImage1D := gl_GetProc('glCopyTexSubImage1D');
-//  glCopyTexSubImage2D := gl_GetProc('glCopyTexSubImage2D');
-  glTexSubImage1D := gl_GetProc('glTexSubImage1D');
-//  glTexSubImage2D := gl_GetProc('glTexSubImage2D');
-//  glBindTexture := gl_GetProc('glBindTexture');
-//  glDeleteTextures := gl_GetProc('glDeleteTextures');
-//  glGenTextures := gl_GetProc('glGenTextures');
-  glIsTexture := gl_GetProc('glIsTexture'); *)
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_2}
-(*//  glDrawRangeElements := gl_GetProc('glDrawRangeElements');
-  glTexImage3D := gl_GetProc('glTexImage3D');
-  glTexSubImage3D := gl_GetProc('glTexSubImage3D');
-  glCopyTexSubImage3D := gl_GetProc('glCopyTexSubImage3D'); *)
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_3}
-(*  glActiveTexture := gl_GetProc('glActiveTexture');
-  glSampleCoverage := gl_GetProc('glSampleCoverage');
-  glCompressedTexImage3D := gl_GetProc('glCompressedTexImage3D');
-//  glCompressedTexImage2D := gl_GetProc('glCompressedTexImage2D');
-  glCompressedTexImage1D:= gl_GetProc('glCompressedTexImage1D');
-  glCompressedTexSubImage3D := gl_GetProc('glCompressedTexSubImage3D');
-  glCompressedTexSubImage2D := gl_GetProc('glCompressedTexSubImage2D');
-  glCompressedTexSubImage1D := gl_GetProc('glCompressedTexSubImage1D');
-  glGetCompressedTexImage := gl_GetProc('glGetCompressedTexImage');
-  {$IfNDef USE_GLCORE}
-  glClientActiveTexture := gl_GetProc('glClientActiveTexture');
-  glMultiTexCoord1d := gl_GetProc('glMultiTexCoord1d');
-  glMultiTexCoord1dv := gl_GetProc('glMultiTexCoord1dv');
-  glMultiTexCoord1f := gl_GetProc('glMultiTexCoord1f');
-  glMultiTexCoord1fv := gl_GetProc('glMultiTexCoord1fv');
-  glMultiTexCoord1i := gl_GetProc('glMultiTexCoord1i');
-  glMultiTexCoord1iv := gl_GetProc('glMultiTexCoord1iv');
-  glMultiTexCoord1s := gl_GetProc('glMultiTexCoord1s');
-  glMultiTexCoord1sv := gl_GetProc('glMultiTexCoord1sv');
-  glMultiTexCoord2d := gl_GetProc('glMultiTexCoord2d');
-  glMultiTexCoord2dv := gl_GetProc('glMultiTexCoord2dv');
-  glMultiTexCoord2f := gl_GetProc('glMultiTexCoord2f');
-  glMultiTexCoord2fv := gl_GetProc('glMultiTexCoord2fv');
-  glMultiTexCoord2i := gl_GetProc('glMultiTexCoord2i');
-  glMultiTexCoord2iv := gl_GetProc('glMultiTexCoord2iv');
-  glMultiTexCoord2s := gl_GetProc('glMultiTexCoord2s');
-  glMultiTexCoord2sv := gl_GetProc('glMultiTexCoord2sv');
-  glMultiTexCoord3d := gl_GetProc('glMultiTexCoord3d');
-  glMultiTexCoord3dv := gl_GetProc('glMultiTexCoord3dv');
-  glMultiTexCoord3f := gl_GetProc('glMultiTexCoord3f');
-  glMultiTexCoord3fv := gl_GetProc('glMultiTexCoord3fv');
-  glMultiTexCoord3i := gl_GetProc('glMultiTexCoord3i');
-  glMultiTexCoord3iv := gl_GetProc('glMultiTexCoord3iv');
-  glMultiTexCoord3s := gl_GetProc('glMultiTexCoord3s');
-  glMultiTexCoord3sv := gl_GetProc('glMultiTexCoord3sv');
-  glMultiTexCoord4d := gl_GetProc('glMultiTexCoord4d');
-  glMultiTexCoord4dv := gl_GetProc('glMultiTexCoord4dv');
-  glMultiTexCoord4f := gl_GetProc('glMultiTexCoord4f');
-  glMultiTexCoord4fv := gl_GetProc('glMultiTexCoord4fv');
-  glMultiTexCoord4i := gl_GetProc('glMultiTexCoord4i');
-  glMultiTexCoord4iv := gl_GetProc('glMultiTexCoord4iv');
-  glMultiTexCoord4s := gl_GetProc('glMultiTexCoord4s');
-  glMultiTexCoord4sv := gl_GetProc('glMultiTexCoord4sv');
-  glLoadTransposeMatrixf := gl_GetProc('glLoadTransposeMatrixf');
-  glLoadTransposeMatrixd := gl_GetProc('glLoadTransposeMatrixd');
-  glMultTransposeMatrixf := gl_GetProc('glMultTransposeMatrixf');
-  glMultTransposeMatrixd := gl_GetProc('glMultTransposeMatrixd');
-  {$EndIf} *)
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_4}
-  if GL_VERSION_1_4 then
-  begin
-  //  glBlendFuncSeparate := gl_GetProc('glBlendFuncSeparate');
-    glMultiDrawArrays := gl_GetProc('glMultiDrawArrays');
-  //  glMultiDrawElements := gl_GetProc('glMultiDrawElements');
-    glPointParameterf := gl_GetProc('glPointParameterf');
-    glPointParameterfv := gl_GetProc('glPointParameterfv');
-    glPointParameteri := gl_GetProc('glPointParameteri');
-    glPointParameteriv := gl_GetProc('glPointParameteriv');
-    glBlendColor := gl_GetProc('glBlendColor');
-  //  glBlendEquation := gl_GetProc('glBlendEquation');
-    {$IfNDef USE_GLCORE}
-    glFogCoordf := gl_GetProc('glFogCoordf');
-    glFogCoordfv := gl_GetProc('glFogCoordfv');
-    glFogCoordd := gl_GetProc('glFogCoordd');
-    glFogCoorddv := gl_GetProc('glFogCoorddv');
-  //  glFogCoordPointer := gl_GetProc('glFogCoordPointer');
-    glSecondaryColor3b := gl_GetProc('glSecondaryColor3b');
-    glSecondaryColor3bv := gl_GetProc('glSecondaryColor3bv');
-    glSecondaryColor3d := gl_GetProc('glSecondaryColor3d');
-    glSecondaryColor3dv := gl_GetProc('glSecondaryColor3dv');
-    glSecondaryColor3f := gl_GetProc('glSecondaryColor3f');
-    glSecondaryColor3fv := gl_GetProc('glSecondaryColor3fv');
-    glSecondaryColor3i := gl_GetProc('glSecondaryColor3i');
-    glSecondaryColor3iv := gl_GetProc('glSecondaryColor3iv');
-    glSecondaryColor3s := gl_GetProc('glSecondaryColor3s');
-    glSecondaryColor3sv := gl_GetProc('glSecondaryColor3sv');
-    glSecondaryColor3ub := gl_GetProc('glSecondaryColor3ub');
-    glSecondaryColor3ubv := gl_GetProc('glSecondaryColor3ubv');
-    glSecondaryColor3ui := gl_GetProc('glSecondaryColor3ui');
-    glSecondaryColor3uiv := gl_GetProc('glSecondaryColor3uiv');
-    glSecondaryColor3us := gl_GetProc('glSecondaryColor3us');
-    glSecondaryColor3usv := gl_GetProc('glSecondaryColor3usv');
-  //  glSecondaryColorPointer := gl_GetProc('glSecondaryColorPointer');
-    glWindowPos2d := gl_GetProc('glWindowPos2d');
-    glWindowPos2dv := gl_GetProc('glWindowPos2dv');
-    glWindowPos2f := gl_GetProc('glWindowPos2f');
-    glWindowPos2fv := gl_GetProc('glWindowPos2fv');
-    glWindowPos2i := gl_GetProc('glWindowPos2i');
-    glWindowPos2iv := gl_GetProc('glWindowPos2iv');
-    glWindowPos2s := gl_GetProc('glWindowPos2s');
-    glWindowPos2sv := gl_GetProc('glWindowPos2sv');
-    glWindowPos3d := gl_GetProc('glWindowPos3d');
-    glWindowPos3dv := gl_GetProc('glWindowPos3dv');
-    glWindowPos3f := gl_GetProc('glWindowPos3f');
-    glWindowPos3fv := gl_GetProc('glWindowPos3fv');
-    glWindowPos3i := gl_GetProc('glWindowPos3i');
-    glWindowPos3iv := gl_GetProc('glWindowPos3iv');
-    glWindowPos3s := gl_GetProc('glWindowPos3s');
-    glWindowPos3sv := gl_GetProc('glWindowPos3sv');
-    {$EndIf}
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_1_5}
-  if GL_VERSION_1_5 then
-  begin
-    glGenQueries := gl_GetProc('glGenQueries');
-    glDeleteQueries := gl_GetProc('glDeleteQueries');
-    glIsQuery := gl_GetProc('glIsQuery');
-    glBeginQuery := gl_GetProc('glBeginQuery');
-    glEndQuery := gl_GetProc('glEndQuery');
-    glGetQueryiv := gl_GetProc('glGetQueryiv');
-    glGetQueryObjectiv := gl_GetProc('glGetQueryObjectiv');
-    glGetQueryObjectuiv := gl_GetProc('glGetQueryObjectuiv');
-    glBindBuffer := gl_GetProc('glBindBuffer');
-    glDeleteBuffers := gl_GetProc('glDeleteBuffers');
-    glGenBuffers := gl_GetProc('glGenBuffers');
-    glIsBuffer := gl_GetProc('glIsBuffer');
-    glBufferData := gl_GetProc('glBufferData');
-    glBufferSubData := gl_GetProc('glBufferSubData');
-    glGetBufferSubData := gl_GetProc('glGetBufferSubData');
-    glMapBuffer := gl_GetProc('glMapBuffer');
-    glUnmapBuffer := gl_GetProc('glUnmapBuffer');
-    glGetBufferParameteriv := gl_GetProc('glGetBufferParameteriv');
-    glGetBufferPointerv := gl_GetProc('glGetBufferPointerv');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_2_0}
-  if GL_VERSION_2_0 then
-  begin
-    glBlendEquationSeparate := gl_GetProc('glBlendEquationSeparate');
-    glDrawBuffers := gl_GetProc('glDrawBuffers');
-    glStencilOpSeparate := gl_GetProc('glStencilOpSeparate');
-    glStencilFuncSeparate := gl_GetProc('glStencilFuncSeparate');
-    glStencilMaskSeparate := gl_GetProc('glStencilMaskSeparate');
-    glAttachShader := gl_GetProc('glAttachShader');
-    glBindAttribLocation := gl_GetProc('glBindAttribLocation');
-    glCompileShader := gl_GetProc('glCompileShader');
-    glCreateProgram := gl_GetProc('glCreateProgram');
-    glCreateShader := gl_GetProc('glCreateShader');
-    glDeleteProgram := gl_GetProc('glDeleteProgram');
-    glDeleteShader := gl_GetProc('glDeleteShader');
-    glDetachShader := gl_GetProc('glDetachShader');
-    glDisableVertexAttribArray := gl_GetProc('glDisableVertexAttribArray');
-    glEnableVertexAttribArray := gl_GetProc('glEnableVertexAttribArray');
-    glGetActiveAttrib := gl_GetProc('glGetActiveAttrib');
-    glGetActiveUniform := gl_GetProc('glGetActiveUniform');
-    glGetAttachedShaders := gl_GetProc('glGetAttachedShaders');
-    glGetAttribLocation := gl_GetProc('glGetAttribLocation');
-    glGetProgramiv := gl_GetProc('glGetProgramiv');
-    glGetProgramInfoLog := gl_GetProc('glGetProgramInfoLog');
-    glGetShaderiv := gl_GetProc('glGetShaderiv');
-    glGetShaderInfoLog := gl_GetProc('glGetShaderInfoLog');
-    glGetShaderSource := gl_GetProc('glGetShaderSource');
-    glGetUniformLocation := gl_GetProc('glGetUniformLocation');
-    glGetUniformfv := gl_GetProc('glGetUniformfv');
-    glGetUniformiv := gl_GetProc('glGetUniformiv');
-    glGetVertexAttribdv := gl_GetProc('glGetVertexAttribdv');
-    glGetVertexAttribfv := gl_GetProc('glGetVertexAttribfv');
-    glGetVertexAttribiv := gl_GetProc('glGetVertexAttribiv');
-    glGetVertexAttribPointerv := gl_GetProc('glGetVertexAttribPointerv');
-    glIsProgram := gl_GetProc('glIsProgram');
-    glIsShader := gl_GetProc('glIsShader');
-    glLinkProgram := gl_GetProc('glLinkProgram');
-    glShaderSource := gl_GetProc('glShaderSource');
-    glUseProgram := gl_GetProc('glUseProgram');
-    glUniform1f := gl_GetProc('glUniform1f');
-    glUniform2f := gl_GetProc('glUniform2f');
-    glUniform3f := gl_GetProc('glUniform3f');
-    glUniform4f := gl_GetProc('glUniform4f');
-    glUniform1i := gl_GetProc('glUniform1i');
-    glUniform2i := gl_GetProc('glUniform2i');
-    glUniform3i := gl_GetProc('glUniform3i');
-    glUniform4i := gl_GetProc('glUniform4i');
-    glUniform1fv := gl_GetProc('glUniform1fv');
-    glUniform2fv := gl_GetProc('glUniform2fv');
-    glUniform3fv := gl_GetProc('glUniform3fv');
-    glUniform4fv := gl_GetProc('glUniform4fv');
-    glUniform1iv := gl_GetProc('glUniform1iv');
-    glUniform2iv := gl_GetProc('glUniform2iv');
-    glUniform3iv := gl_GetProc('glUniform3iv');
-    glUniform4iv := gl_GetProc('glUniform4iv');
-    glUniformMatrix2fv := gl_GetProc('glUniformMatrix2fv');
-    glUniformMatrix3fv := gl_GetProc('glUniformMatrix3fv');
-    glUniformMatrix4fv := gl_GetProc('glUniformMatrix4fv');
-    glValidateProgram := gl_GetProc('glValidateProgram');
-    glVertexAttrib1d := gl_GetProc('glVertexAttrib1d');
-    glVertexAttrib1dv := gl_GetProc('glVertexAttrib1dv');
-    glVertexAttrib1f := gl_GetProc('glVertexAttrib1f');
-    glVertexAttrib1fv := gl_GetProc('glVertexAttrib1fv');
-    glVertexAttrib1s := gl_GetProc('glVertexAttrib1s');
-    glVertexAttrib1sv := gl_GetProc('glVertexAttrib1sv');
-    glVertexAttrib2d := gl_GetProc('glVertexAttrib2d');
-    glVertexAttrib2dv := gl_GetProc('glVertexAttrib2dv');
-    glVertexAttrib2f := gl_GetProc('glVertexAttrib2f');
-    glVertexAttrib2fv := gl_GetProc('glVertexAttrib2fv');
-    glVertexAttrib2s := gl_GetProc('glVertexAttrib2s');
-    glVertexAttrib2sv := gl_GetProc('glVertexAttrib2sv');
-    glVertexAttrib3d := gl_GetProc('glVertexAttrib3d');
-    glVertexAttrib3dv := gl_GetProc('glVertexAttrib3dv');
-    glVertexAttrib3f := gl_GetProc('glVertexAttrib3f');
-    glVertexAttrib3fv := gl_GetProc('glVertexAttrib3f');
-    glVertexAttrib3s := gl_GetProc('glVertexAttrib3s');
-    glVertexAttrib3sv := gl_GetProc('glVertexAttrib3sv');
-    glVertexAttrib4Nbv := gl_GetProc('glVertexAttrib4Nbv');
-    glVertexAttrib4Niv := gl_GetProc('glVertexAttrib4Niv');
-    glVertexAttrib4Nsv := gl_GetProc('glVertexAttrib4Nsv');
-    glVertexAttrib4Nub := gl_GetProc('glVertexAttrib4Nub');
-    glVertexAttrib4Nubv := gl_GetProc('glVertexAttrib4Nubv');
-    glVertexAttrib4Nuiv := gl_GetProc('glVertexAttrib4Nuiv');
-    glVertexAttrib4Nusv := gl_GetProc('glVertexAttrib4Nusv');
-    glVertexAttrib4bv := gl_GetProc('glVertexAttrib4bv');
-    glVertexAttrib4d := gl_GetProc('glVertexAttrib4d');
-    glVertexAttrib4dv := gl_GetProc('glVertexAttrib4dv');
-    glVertexAttrib4f := gl_GetProc('glVertexAttrib4f');
-    glVertexAttrib4fv := gl_GetProc('glVertexAttrib4fv');
-    glVertexAttrib4iv := gl_GetProc('glVertexAttrib4iv');
-    glVertexAttrib4s := gl_GetProc('glVertexAttrib4s');
-    glVertexAttrib4sv := gl_GetProc('glVertexAttrib4sv');
-    glVertexAttrib4ubv := gl_GetProc('glVertexAttrib4ubv');
-    glVertexAttrib4uiv := gl_GetProc('glVertexAttrib4uiv');
-    glVertexAttrib4usv := gl_GetProc('glVertexAttrib4usv');
-    glVertexAttribPointer := gl_GetProc('glVertexAttribPointer');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_2_1}
-  if GL_VERSION_2_1 then
-  begin
-    glUniformMatrix2x3fv := gl_GetProc('glUniformMatrix2x3fv');
-    glUniformMatrix3x2fv := gl_GetProc('glUniformMatrix3x2fv');
-    glUniformMatrix2x4fv := gl_GetProc('glUniformMatrix2x4fv');
-    glUniformMatrix4x2fv := gl_GetProc('glUniformMatrix4x2fv');
-    glUniformMatrix3x4fv := gl_GetProc('glUniformMatrix3x4fv');
-    glUniformMatrix4x3fv := gl_GetProc('glUniformMatrix4x3fv');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_0}
-  if GL_VERSION_3_0 then
-  begin
-    glColorMaski := gl_GetProc('glColorMaski');
-    glGetBooleani_v := gl_GetProc('glGetBooleani_v');
-    glGetIntegeri_v := gl_GetProc('glGetIntegeri_v');
-    glEnablei := gl_GetProc('glEnablei');
-    glDisablei := gl_GetProc('glDisablei');
-    glIsEnabledi := gl_GetProc('glIsEnabledi');
-    glBeginTransformFeedback := gl_GetProc('glBeginTransformFeedback');
-    glEndTransformFeedback := gl_GetProc('glEndTransformFeedback');
-    glBindBufferRange := gl_GetProc('glBindBufferRange');
-    glBindBufferBase := gl_GetProc('glBindBufferBase');
-    glTransformFeedbackVaryings := gl_GetProc('glTransformFeedbackVaryings');
-    glGetTransformFeedbackVarying := gl_GetProc('glGetTransformFeedbackVarying');
-    glClampColor := gl_GetProc('glClampColor');
-    glBeginConditionalRender := gl_GetProc('glBeginConditionalRender');
-    glEndConditionalRender := gl_GetProc('glEndConditionalRender');
-    glVertexAttribIPointer := gl_GetProc('glVertexAttribIPointer');
-    glGetVertexAttribIiv := gl_GetProc('glGetVertexAttribIiv');
-    glGetVertexAttribIuiv := gl_GetProc('glGetVertexAttribIuiv');
-    glVertexAttribI1i := gl_GetProc('glVertexAttribI1i');
-    glVertexAttribI2i := gl_GetProc('glVertexAttribI2i');
-    glVertexAttribI3i := gl_GetProc('glVertexAttribI3i');
-    glVertexAttribI4i := gl_GetProc('glVertexAttribI4i');
-    glVertexAttribI1ui := gl_GetProc('glVertexAttribI1ui');
-    glVertexAttribI2ui := gl_GetProc('glVertexAttribI2ui');
-    glVertexAttribI3ui := gl_GetProc('glVertexAttribI3ui');
-    glVertexAttribI4ui := gl_GetProc('glVertexAttribI4ui');
-    glVertexAttribI1iv := gl_GetProc('glVertexAttribI1iv');
-    glVertexAttribI2iv := gl_GetProc('glVertexAttribI2iv');
-    glVertexAttribI3iv := gl_GetProc('glVertexAttribI3iv');
-    glVertexAttribI4iv := gl_GetProc('glVertexAttribI4iv');
-    glVertexAttribI1uiv := gl_GetProc('glVertexAttribI1uiv');
-    glVertexAttribI2uiv := gl_GetProc('glVertexAttribI2uiv');
-    glVertexAttribI3uiv := gl_GetProc('glVertexAttribI3uiv');
-    glVertexAttribI4uiv := gl_GetProc('glVertexAttribI4uiv');
-    glVertexAttribI4bv := gl_GetProc('glVertexAttribI4bv');
-    glVertexAttribI4sv := gl_GetProc('glVertexAttribI4sv');
-    glVertexAttribI4ubv := gl_GetProc('glVertexAttribI4ubv');
-    glVertexAttribI4usv := gl_GetProc('glVertexAttribI4usv');
-    glGetUniformuiv := gl_GetProc('glGetUniformuiv');
-    glBindFragDataLocation := gl_GetProc('glBindFragDataLocation');
-    glGetFragDataLocation := gl_GetProc('glGetFragDataLocation');
-    glUniform1ui := gl_GetProc('glUniform1ui');
-    glUniform2ui := gl_GetProc('glUniform2ui');
-    glUniform3ui := gl_GetProc('glUniform3ui');
-    glUniform4ui := gl_GetProc('glUniform4ui');
-    glUniform1uiv := gl_GetProc('glUniform1uiv');
-    glUniform2uiv := gl_GetProc('glUniform2uiv');
-    glUniform3uiv := gl_GetProc('glUniform3uiv');
-    glUniform4uiv := gl_GetProc('glUniform4uiv');
-    glTexParameterIiv := gl_GetProc('glTexParameterIiv');
-    glTexParameterIuiv := gl_GetProc('glTexParameterIuiv');
-    glGetTexParameterIiv := gl_GetProc('glGetTexParameterIiv');
-    glGetTexParameterIuiv := gl_GetProc('glGetTexParameterIuiv');
-    glClearBufferiv := gl_GetProc('glClearBufferiv');
-    glClearBufferuiv := gl_GetProc('glClearBufferuiv');
-    glClearBufferfv := gl_GetProc('glClearBufferfv');
-    glClearBufferfi := gl_GetProc('glClearBufferfi');
-    glGetStringi := gl_GetProc('glGetStringi');
-//    glIsRenderbuffer := gl_GetProc('glIsRenderbuffer');
-//    glBindRenderbuffer := gl_GetProc('glBindRenderbuffer');
-//    glDeleteRenderbuffers := gl_GetProc('glDeleteRenderbuffers');
-//    glGenRenderbuffers := gl_GetProc('glGenRenderbuffers');
-//    glRenderbufferStorage := gl_GetProc('glRenderbufferStorage');
-    glGetRenderbufferParameteriv := gl_GetProc('glGetRenderbufferParameteriv');
-//    glIsFramebuffer := gl_GetProc('glIsFramebuffer');
-//    glBindFramebuffer := gl_GetProc('glBindFramebuffer');
-//    glDeleteFramebuffers := gl_GetProc('glDeleteFramebuffers');
-//    glGenFramebuffers := gl_GetProc('glGenFramebuffers');
-//    glCheckFramebufferStatus := gl_GetProc('glCheckFramebufferStatus');
-    glFramebufferTexture1D := gl_GetProc('glFramebufferTexture1D');
-//    glFramebufferTexture2D := gl_GetProc('glFramebufferTexture2D');
-    glFramebufferTexture3D := gl_GetProc('glFramebufferTexture3D');
-//    glFramebufferRenderbuffer := gl_GetProc('glFramebufferRenderbuffer');
-    glGetFramebufferAttachmentParameteriv := gl_GetProc('glGetFramebufferAttachmentParameteriv');
-    glGenerateMipmap := gl_GetProc('glGenerateMipmap');
-    glBlitFramebuffer := gl_GetProc('glBlitFramebuffer');
-    glRenderbufferStorageMultisample := gl_GetProc('glRenderbufferStorageMultisample');
-    glFramebufferTextureLayer := gl_GetProc('glFramebufferTextureLayer');
-    glMapBufferRange := gl_GetProc('glMapBufferRange');
-    glFlushMappedBufferRange := gl_GetProc('glFlushMappedBufferRange');
-    glBindVertexArray := gl_GetProc('glBindVertexArray');
-    glDeleteVertexArrays := gl_GetProc('glDeleteVertexArrays');
-    glGenVertexArrays := gl_GetProc('glGenVertexArrays');
-    glIsVertexArray := gl_GetProc('glIsVertexArray');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_1}
-  if GL_VERSION_3_1 then
-  begin
-    glDrawArraysInstanced := gl_GetProc('glDrawArraysInstanced');
-    glDrawElementsInstanced := gl_GetProc('glDrawElementsInstanced');
-    glTexBuffer := gl_GetProc('glTexBuffer');
-    glPrimitiveRestartIndex := gl_GetProc('glPrimitiveRestartIndex');
-    glCopyBufferSubData := gl_GetProc('glCopyBufferSubData');
-    glGetUniformIndices := gl_GetProc('glGetUniformIndices');
-    glGetActiveUniformsiv := gl_GetProc('glGetActiveUniformsiv');
-    glGetActiveUniformName := gl_GetProc('glGetActiveUniformName');
-    glGetUniformBlockIndex := gl_GetProc('glGetUniformBlockIndex');
-    glGetActiveUniformBlockiv := gl_GetProc('glGetActiveUniformBlockiv');
-    glGetActiveUniformBlockName := gl_GetProc('glGetActiveUniformBlockName');
-    glUniformBlockBinding := gl_GetProc('glUniformBlockBinding');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_2}
-  if GL_VERSION_3_2 then
-  begin
-    glDrawElementsBaseVertex := gl_GetProc('glDrawElementsBaseVertex');
-    glDrawRangeElementsBaseVertex := gl_GetProc('glDrawRangeElementsBaseVertex');
-    glDrawElementsInstancedBaseVertex := gl_GetProc('glDrawElementsInstancedBaseVertex');
-    glMultiDrawElementsBaseVertex := gl_GetProc('glMultiDrawElementsBaseVertex');
-    glProvokingVertex := gl_GetProc('glProvokingVertex');
-    glFenceSync := gl_GetProc('glFenceSync');
-    glIsSync := gl_GetProc('glIsSync');
-    glDeleteSync := gl_GetProc('glDeleteSync');
-    glClientWaitSync := gl_GetProc('glClientWaitSync');
-    glWaitSync := gl_GetProc('glWaitSync');
-    glGetInteger64v := gl_GetProc('glGetInteger64v');
-    glGetSynciv := gl_GetProc('glGetSynciv');
-    glGetInteger64i_v := gl_GetProc('glGetInteger64i_v');
-    glGetBufferParameteri64v := gl_GetProc('glGetBufferParameteri64v');
-    glFramebufferTexture := gl_GetProc('glFramebufferTexture');
-    glTexImage2DMultisample := gl_GetProc('glTexImage2DMultisample');
-    glTexImage3DMultisample := gl_GetProc('glTexImage3DMultisample');
-    glGetMultisamplefv := gl_GetProc('glGetMultisamplefv');
-    glSampleMaski := gl_GetProc('glSampleMaski');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_3_3}
-  if GL_VERSION_3_3 then
-  begin
-    glBindFragDataLocationIndexed := gl_GetProc('glBindFragDataLocationIndexed');
-    glGetFragDataIndex := gl_GetProc('glGetFragDataIndex');
-    glGenSamplers := gl_GetProc('glGenSamplers');
-    glDeleteSamplers := gl_GetProc('glDeleteSamplers');
-    glIsSampler := gl_GetProc('glIsSampler');
-    glBindSampler := gl_GetProc('glBindSampler');
-    glSamplerParameteri := gl_GetProc('glSamplerParameteri');
-    glSamplerParameteriv := gl_GetProc('glSamplerParameteriv');
-    glSamplerParameterf := gl_GetProc('glSamplerParameterf');
-    glSamplerParameterfv := gl_GetProc('glSamplerParameterfv');
-    glSamplerParameterIiv := gl_GetProc('glSamplerParameterIiv');
-    glSamplerParameterIuiv := gl_GetProc('glSamplerParameterIuiv');
-    glGetSamplerParameteriv := gl_GetProc('glGetSamplerParameteriv');
-    glGetSamplerParameterIiv := gl_GetProc('glGetSamplerParameterIiv');
-    glGetSamplerParameterfv := gl_GetProc('glGetSamplerParameterfv');
-    glGetSamplerParameterIuiv := gl_GetProc('glGetSamplerParameterIuiv');
-    glQueryCounter := gl_GetProc('glQueryCounter');
-    glGetQueryObjecti64v := gl_GetProc('glGetQueryObjecti64v');
-    glGetQueryObjectui64v := gl_GetProc('glGetQueryObjectui64v');
-    glVertexAttribDivisor := gl_GetProc('glVertexAttribDivisor');
-    glVertexAttribP1ui := gl_GetProc('glVertexAttribP1ui');
-    glVertexAttribP1uiv := gl_GetProc('glVertexAttribP1uiv');
-    glVertexAttribP2ui := gl_GetProc('glVertexAttribP2ui');
-    glVertexAttribP2uiv := gl_GetProc('glVertexAttribP2uiv');
-    glVertexAttribP3ui := gl_GetProc('glVertexAttribP3ui');
-    glVertexAttribP3uiv := gl_GetProc('glVertexAttribP3uiv');
-    glVertexAttribP4ui := gl_GetProc('glVertexAttribP4ui');
-    glVertexAttribP4uiv := gl_GetProc('glVertexAttribP4uiv');
-    {$IfNDef USE_GLCORE}
-    glVertexP2ui := gl_GetProc('glVertexP2ui');
-    glVertexP2uiv := gl_GetProc('glVertexP2uiv');
-    glVertexP3ui := gl_GetProc('glVertexP3ui');
-    glVertexP3uiv := gl_GetProc('glVertexP3uiv');
-    glVertexP4ui := gl_GetProc('glVertexP4ui');
-    glVertexP4uiv := gl_GetProc('glVertexP4uiv');
-    glTexCoordP1ui := gl_GetProc('glTexCoordP1ui');
-    glTexCoordP1uiv := gl_GetProc('glTexCoordP1uiv');
-    glTexCoordP2ui := gl_GetProc('glTexCoordP2ui');
-    glTexCoordP2uiv := gl_GetProc('glTexCoordP2uiv');
-    glTexCoordP3ui := gl_GetProc('glTexCoordP3ui');
-    glTexCoordP3uiv := gl_GetProc('glTexCoordP3uiv');
-    glTexCoordP4ui := gl_GetProc('glTexCoordP4ui');
-    glTexCoordP4uiv := gl_GetProc('glTexCoordP4uiv');
-    glMultiTexCoordP1ui := gl_GetProc('glMultiTexCoordP1ui');
-    glMultiTexCoordP1uiv := gl_GetProc('glMultiTexCoordP1uiv');
-    glMultiTexCoordP2ui := gl_GetProc('glMultiTexCoordP2ui');
-    glMultiTexCoordP2uiv := gl_GetProc('glMultiTexCoordP2uiv');
-    glMultiTexCoordP3ui := gl_GetProc('glMultiTexCoordP3ui');
-    glMultiTexCoordP3uiv := gl_GetProc('glMultiTexCoordP3uiv');
-    glMultiTexCoordP4ui := gl_GetProc('glMultiTexCoordP4ui');
-    glMultiTexCoordP4uiv := gl_GetProc('glMultiTexCoordP4uiv');
-    glNormalP3ui := gl_GetProc('glNormalP3ui');
-    glNormalP3uiv := gl_GetProc('glNormalP3uiv');
-    glColorP3ui := gl_GetProc('glColorP3ui');
-    glColorP3uiv := gl_GetProc('glColorP3uiv');
-    glColorP4ui := gl_GetProc('glColorP4ui');
-    glColorP4uiv := gl_GetProc('glColorP4uiv');
-    glSecondaryColorP3ui := gl_GetProc('glSecondaryColorP3ui');
-    glSecondaryColorP3uiv := gl_GetProc('glSecondaryColorP3uiv');
-    {$EndIf}
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_0}
-  if GL_VERSION_4_0 then
-  begin
-    glMinSampleShading := gl_GetProc('glMinSampleShading');
-    glBlendEquationi := gl_GetProc('glBlendEquationi');
-    glBlendEquationSeparatei := gl_GetProc('glBlendEquationSeparatei');
-    glBlendFunci := gl_GetProc('glBlendFunci');
-    glBlendFuncSeparatei := gl_GetProc('glBlendFuncSeparatei');
-    glDrawArraysIndirect := gl_GetProc('glDrawArraysIndirect');
-    glDrawElementsIndirect := gl_GetProc('glDrawElementsIndirect');
-    glUniform1d := gl_GetProc('glUniform1d');
-    glUniform2d := gl_GetProc('glUniform2d');
-    glUniform3d := gl_GetProc('glUniform3d');
-    glUniform4d := gl_GetProc('glUniform4d');
-    glUniform1dv := gl_GetProc('glUniform1dv');
-    glUniform2dv := gl_GetProc('glUniform2dv');
-    glUniform3dv := gl_GetProc('glUniform3dv');
-    glUniform4dv := gl_GetProc('glUniform4dv');
-    glUniformMatrix2dv := gl_GetProc('glUniformMatrix2dv');
-    glUniformMatrix3dv := gl_GetProc('glUniformMatrix3dv');
-    glUniformMatrix4dv := gl_GetProc('glUniformMatrix4dv');
-    glUniformMatrix2x3dv := gl_GetProc('glUniformMatrix2x3dv');
-    glUniformMatrix2x4dv := gl_GetProc('glUniformMatrix2x4dv');
-    glUniformMatrix3x2dv := gl_GetProc('glUniformMatrix3x2dv');
-    glUniformMatrix3x4dv := gl_GetProc('glUniformMatrix3x4dv');
-    glUniformMatrix4x2dv := gl_GetProc('glUniformMatrix4x2dv');
-    glUniformMatrix4x3dv := gl_GetProc('glUniformMatrix4x3dv');
-    glGetUniformdv := gl_GetProc('glGetUniformdv');
-    glGetSubroutineUniformLocation := gl_GetProc('glGetSubroutineUniformLocation');
-    glGetSubroutineIndex := gl_GetProc('glGetSubroutineIndex');
-    glGetActiveSubroutineUniformiv := gl_GetProc('glGetActiveSubroutineUniformiv');
-    glGetActiveSubroutineUniformName := gl_GetProc('glGetActiveSubroutineUniformName');
-    glGetActiveSubroutineName := gl_GetProc('glGetActiveSubroutineName');
-    glUniformSubroutinesuiv := gl_GetProc('glUniformSubroutinesuiv');
-    glGetUniformSubroutineuiv := gl_GetProc('glGetUniformSubroutineuiv');
-    glGetProgramStageiv := gl_GetProc('glGetProgramStageiv');
-    glPatchParameteri := gl_GetProc('glPatchParameteri');
-    glPatchParameterfv := gl_GetProc('glPatchParameterfv');
-    glBindTransformFeedback := gl_GetProc('glBindTransformFeedback');
-    glDeleteTransformFeedbacks := gl_GetProc('glDeleteTransformFeedbacks');
-    glGenTransformFeedbacks := gl_GetProc('glGenTransformFeedbacks');
-    glIsTransformFeedback := gl_GetProc('glIsTransformFeedback');
-    glPauseTransformFeedback := gl_GetProc('glPauseTransformFeedback');
-    glResumeTransformFeedback := gl_GetProc('glResumeTransformFeedback');
-    glDrawTransformFeedback := gl_GetProc('glDrawTransformFeedback');
-    glDrawTransformFeedbackStream := gl_GetProc('glDrawTransformFeedbackStream');
-    glBeginQueryIndexed := gl_GetProc('glBeginQueryIndexed');
-    glEndQueryIndexed := gl_GetProc('glEndQueryIndexed');
-    glGetQueryIndexediv := gl_GetProc('glGetQueryIndexediv');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_1}
-  if GL_VERSION_4_1 then
-  begin
-    glReleaseShaderCompiler := gl_GetProc('glReleaseShaderCompiler');
-    glShaderBinary := gl_GetProc('glShaderBinary');
-    glGetShaderPrecisionFormat := gl_GetProc('glGetShaderPrecisionFormat');
-    glDepthRangef := gl_GetProc('glDepthRangef');
-    glClearDepthf := gl_GetProc('glClearDepthf');
-    glGetProgramBinary := gl_GetProc('glGetProgramBinary');
-    glProgramBinary := gl_GetProc('glProgramBinary');
-    glProgramParameteri := gl_GetProc('glProgramParameteri');
-    glUseProgramStages := gl_GetProc('glUseProgramStages');
-    glActiveShaderProgram := gl_GetProc('glActiveShaderProgram');
-    glCreateShaderProgramv := gl_GetProc('glCreateShaderProgramv');
-    glBindProgramPipeline := gl_GetProc('glBindProgramPipeline');
-    glDeleteProgramPipelines := gl_GetProc('glDeleteProgramPipelines');
-    glGenProgramPipelines := gl_GetProc('glGenProgramPipelines');
-    glIsProgramPipeline := gl_GetProc('glIsProgramPipeline');
-    glGetProgramPipelineiv := gl_GetProc('glGetProgramPipelineiv');
-    glProgramUniform1i := gl_GetProc('glProgramUniform1i');
-    glProgramUniform1iv := gl_GetProc('glProgramUniform1iv');
-    glProgramUniform1f := gl_GetProc('glProgramUniform1f');
-    glProgramUniform1fv := gl_GetProc('glProgramUniform1fv');
-    glProgramUniform1d := gl_GetProc('glProgramUniform1d');
-    glProgramUniform1dv := gl_GetProc('glProgramUniform1dv');
-    glProgramUniform1ui := gl_GetProc('glProgramUniform1ui');
-    glProgramUniform1uiv := gl_GetProc('glProgramUniform1uiv');
-    glProgramUniform2i := gl_GetProc('glProgramUniform2i');
-    glProgramUniform2iv := gl_GetProc('glProgramUniform2iv');
-    glProgramUniform2f := gl_GetProc('glProgramUniform2f');
-    glProgramUniform2fv := gl_GetProc('glProgramUniform2fv');
-    glProgramUniform2d := gl_GetProc('glProgramUniform2d');
-    glProgramUniform2dv := gl_GetProc('glProgramUniform2dv');
-    glProgramUniform2ui := gl_GetProc('glProgramUniform2ui');
-    glProgramUniform2uiv := gl_GetProc('glProgramUniform2uiv');
-    glProgramUniform3i := gl_GetProc('glProgramUniform3i');
-    glProgramUniform3iv := gl_GetProc('glProgramUniform3iv');
-    glProgramUniform3f := gl_GetProc('glProgramUniform3f');
-    glProgramUniform3fv := gl_GetProc('glProgramUniform3fv');
-    glProgramUniform3d := gl_GetProc('glProgramUniform3d');
-    glProgramUniform3dv := gl_GetProc('glProgramUniform3dv');
-    glProgramUniform3ui := gl_GetProc('glProgramUniform3ui');
-    glProgramUniform3uiv := gl_GetProc('glProgramUniform3uiv');
-    glProgramUniform4i := gl_GetProc('glProgramUniform4i');
-    glProgramUniform4iv := gl_GetProc('glProgramUniform4iv');
-    glProgramUniform4f := gl_GetProc('glProgramUniform4f');
-    glProgramUniform4fv := gl_GetProc('glProgramUniform4fv');
-    glProgramUniform4d := gl_GetProc('glProgramUniform4d');
-    glProgramUniform4dv := gl_GetProc('glProgramUniform4dv');
-    glProgramUniform4ui := gl_GetProc('glProgramUniform4ui');
-    glProgramUniform4uiv := gl_GetProc('glProgramUniform4uiv');
-    glProgramUniformMatrix2fv := gl_GetProc('glProgramUniformMatrix2fv');
-    glProgramUniformMatrix3fv := gl_GetProc('glProgramUniformMatrix3fv');
-    glProgramUniformMatrix4fv := gl_GetProc('glProgramUniformMatrix4fv');
-    glProgramUniformMatrix2dv := gl_GetProc('glProgramUniformMatrix2dv');
-    glProgramUniformMatrix3dv := gl_GetProc('glProgramUniformMatrix3dv');
-    glProgramUniformMatrix4dv := gl_GetProc('glProgramUniformMatrix4dv');
-    glProgramUniformMatrix2x3fv := gl_GetProc('glProgramUniformMatrix2x3fv');
-    glProgramUniformMatrix3x2fv := gl_GetProc('glProgramUniformMatrix3x2fv');
-    glProgramUniformMatrix2x4fv := gl_GetProc('glProgramUniformMatrix2x4fv');
-    glProgramUniformMatrix4x2fv := gl_GetProc('glProgramUniformMatrix4x2fv');
-    glProgramUniformMatrix3x4fv := gl_GetProc('glProgramUniformMatrix3x4fv');
-    glProgramUniformMatrix4x3fv := gl_GetProc('glProgramUniformMatrix4x3fv');
-    glProgramUniformMatrix2x3dv := gl_GetProc('glProgramUniformMatrix2x3dv');
-    glProgramUniformMatrix3x2dv := gl_GetProc('glProgramUniformMatrix3x2dv');
-    glProgramUniformMatrix2x4dv := gl_GetProc('glProgramUniformMatrix2x4dv');
-    glProgramUniformMatrix4x2dv := gl_GetProc('glProgramUniformMatrix4x2dv');
-    glProgramUniformMatrix3x4dv := gl_GetProc('glProgramUniformMatrix3x4dv');
-    glProgramUniformMatrix4x3dv := gl_GetProc('glProgramUniformMatrix4x3dv');
-    glValidateProgramPipeline := gl_GetProc('glValidateProgramPipeline');
-    glGetProgramPipelineInfoLog := gl_GetProc('glGetProgramPipelineInfoLog');
-    glVertexAttribL1d := gl_GetProc('glVertexAttribL1d');
-    glVertexAttribL2d := gl_GetProc('glVertexAttribL2d');
-    glVertexAttribL3d := gl_GetProc('glVertexAttribL3d');
-    glVertexAttribL4d := gl_GetProc('glVertexAttribL4d');
-    glVertexAttribL1dv := gl_GetProc('glVertexAttribL1dv');
-    glVertexAttribL2dv := gl_GetProc('glVertexAttribL2dv');
-    glVertexAttribL3dv := gl_GetProc('glVertexAttribL3dv');
-    glVertexAttribL4dv := gl_GetProc('glVertexAttribL4dv');
-    glVertexAttribLPointer := gl_GetProc('glVertexAttribLPointer');
-    glGetVertexAttribLdv := gl_GetProc('glGetVertexAttribLdv');
-    glViewportArrayv := gl_GetProc('glViewportArrayv');
-    glViewportIndexedf := gl_GetProc('glViewportIndexedf');
-    glViewportIndexedfv := gl_GetProc('glViewportIndexedfv');
-    glScissorArrayv := gl_GetProc('glScissorArrayv');
-    glScissorIndexed := gl_GetProc('glScissorIndexed');
-    glScissorIndexedv := gl_GetProc('glScissorIndexedv');
-    glDepthRangeArrayv := gl_GetProc('glDepthRangeArrayv');
-    glDepthRangeIndexed := gl_GetProc('glDepthRangeIndexed');
-    glGetFloati_v := gl_GetProc('glGetFloati_v');
-    glGetDoublei_v := gl_GetProc('glGetDoublei_v');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_2}
-  if GL_VERSION_4_2 then
-  begin
-    glDrawArraysInstancedBaseInstance := gl_GetProc('glDrawArraysInstancedBaseInstance');
-    glDrawElementsInstancedBaseInstance := gl_GetProc('glDrawElementsInstancedBaseInstance');
-    glDrawElementsInstancedBaseVertexBaseInstance := gl_GetProc('glDrawElementsInstancedBaseVertexBaseInstance');
-    glGetInternalformativ := gl_GetProc('glGetInternalformativ');
-    glGetActiveAtomicCounterBufferiv := gl_GetProc('glGetActiveAtomicCounterBufferiv');
-    glBindImageTexture := gl_GetProc('glBindImageTexture');
-    glMemoryBarrier := gl_GetProc('glMemoryBarrier');
-    glTexStorage1D := gl_GetProc('glTexStorage1D');
-    glTexStorage2D := gl_GetProc('glTexStorage2D');
-    glTexStorage3D := gl_GetProc('glTexStorage3D');
-    glDrawTransformFeedbackInstanced := gl_GetProc('glDrawTransformFeedbackInstanced');
-    glDrawTransformFeedbackStreamInstanced := gl_GetProc('glDrawTransformFeedbackStreamInstanced');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_3}
-  if GL_VERSION_4_3 then
-  begin
-    glClearBufferData := gl_GetProc('glClearBufferData');
-    glClearBufferSubData := gl_GetProc('glClearBufferSubData');
-    glDispatchCompute := gl_GetProc('glDispatchCompute');
-    glDispatchComputeIndirect := gl_GetProc('glDispatchComputeIndirect');
-    glCopyImageSubData := gl_GetProc('glCopyImageSubData');
-    glFramebufferParameteri := gl_GetProc('glFramebufferParameteri');
-    glGetFramebufferParameteriv := gl_GetProc('glGetFramebufferParameteriv');
-    glGetInternalformati64v := gl_GetProc('glGetInternalformati64v');
-    glInvalidateTexSubImage := gl_GetProc('glInvalidateTexSubImage');
-    glInvalidateTexImage := gl_GetProc('glInvalidateTexImage');
-    glInvalidateBufferSubData := gl_GetProc('glInvalidateBufferSubData');
-    glInvalidateBufferData := gl_GetProc('glInvalidateBufferData');
-    glInvalidateFramebuffer := gl_GetProc('glInvalidateFramebuffer');
-    glInvalidateSubFramebuffer := gl_GetProc('glInvalidateSubFramebuffer');
-    glMultiDrawArraysIndirect := gl_GetProc('glMultiDrawArraysIndirect');
-    glMultiDrawElementsIndirect := gl_GetProc('glMultiDrawElementsIndirect');
-    glGetProgramInterfaceiv := gl_GetProc('glGetProgramInterfaceiv');
-    glGetProgramResourceIndex := gl_GetProc('glGetProgramResourceIndex');
-    glGetProgramResourceName := gl_GetProc('glGetProgramResourceName');
-    glGetProgramResourceiv := gl_GetProc('glGetProgramResourceiv');
-    glGetProgramResourceLocation := gl_GetProc('glGetProgramResourceLocation');
-    glGetProgramResourceLocationIndex := gl_GetProc('glGetProgramResourceLocationIndex');
-    glShaderStorageBlockBinding := gl_GetProc('glShaderStorageBlockBinding');
-    glTexBufferRange := gl_GetProc('glTexBufferRange');
-    glTexStorage2DMultisample := gl_GetProc('glTexStorage2DMultisample');
-    glTexStorage3DMultisample := gl_GetProc('glTexStorage3DMultisample');
-    glTextureView := gl_GetProc('glTextureView');
-    glBindVertexBuffer := gl_GetProc('glBindVertexBuffer');
-    glVertexAttribFormat := gl_GetProc('glVertexAttribFormat');
-    glVertexAttribIFormat := gl_GetProc('glVertexAttribIFormat');
-    glVertexAttribLFormat := gl_GetProc('glVertexAttribLFormat');
-    glVertexAttribBinding := gl_GetProc('glVertexAttribBinding');
-    glVertexBindingDivisor := gl_GetProc('glVertexBindingDivisor');
-    glDebugMessageControl := gl_GetProc('glDebugMessageControl');
-    glDebugMessageInsert := gl_GetProc('glDebugMessageInsert');
-    glDebugMessageCallback := gl_GetProc('glDebugMessageCallback');
-    glGetDebugMessageLog := gl_GetProc('glGetDebugMessageLog');
-    glPushDebugGroup := gl_GetProc('glPushDebugGroup');
-    glPopDebugGroup := gl_GetProc('glPopDebugGroup');
-    glObjectLabel := gl_GetProc('glObjectLabel');
-    glGetObjectLabel := gl_GetProc('glGetObjectLabel');
-    glObjectPtrLabel := gl_GetProc('glObjectPtrLabel');
-    glGetObjectPtrLabel := gl_GetProc('glGetObjectPtrLabel');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_4}
-  if GL_VERSION_4_4 then
-  begin
-    glBufferStorage := gl_GetProc('glBufferStorage');
-    glClearTexImage := gl_GetProc('glClearTexImage');
-    glClearTexSubImage := gl_GetProc('glClearTexSubImage');
-    glBindBuffersBase := gl_GetProc('glBindBuffersBase');
-    glBindBuffersRange := gl_GetProc('glBindBuffersRange');
-    glBindTextures := gl_GetProc('glBindTextures');
-    glBindSamplers := gl_GetProc('glBindSamplers');
-    glBindImageTextures := gl_GetProc('glBindImageTextures');
-    glBindVertexBuffers := gl_GetProc('glBindVertexBuffers');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_5}
-  if GL_VERSION_4_5 then
-  begin
-    glClipControl := gl_GetProc('glClipControl');
-    glCreateTransformFeedbacks := gl_GetProc('glCreateTransformFeedbacks');
-    glTransformFeedbackBufferBase := gl_GetProc('glTransformFeedbackBufferBase');
-    glTransformFeedbackBufferRange := gl_GetProc('glTransformFeedbackBufferRange');
-    glGetTransformFeedbackiv := gl_GetProc('glGetTransformFeedbackiv');
-    glGetTransformFeedbacki_v := gl_GetProc('glGetTransformFeedbacki_v');
-    glGetTransformFeedbacki64_v := gl_GetProc('glGetTransformFeedbacki64_v');
-    glCreateBuffers := gl_GetProc('glCreateBuffers');
-    glNamedBufferStorage := gl_GetProc('glNamedBufferStorage');
-    glNamedBufferData := gl_GetProc('glNamedBufferData');
-    glNamedBufferSubData := gl_GetProc('glNamedBufferSubData');
-    glCopyNamedBufferSubData := gl_GetProc('glCopyNamedBufferSubData');
-    glClearNamedBufferData := gl_GetProc('glClearNamedBufferData');
-    glClearNamedBufferSubData := gl_GetProc('glClearNamedBufferSubData');
-    glMapNamedBuffer := gl_GetProc('glMapNamedBuffer');
-    glMapNamedBufferRange := gl_GetProc('glMapNamedBufferRange');
-    glUnmapNamedBuffer := gl_GetProc('glUnmapNamedBuffer');
-    glFlushMappedNamedBufferRange := gl_GetProc('glFlushMappedNamedBufferRange');
-    glGetNamedBufferParameteriv := gl_GetProc('glGetNamedBufferParameteriv');
-    glGetNamedBufferParameteri64v := gl_GetProc('glGetNamedBufferParameteri64v');
-    glGetNamedBufferPointerv := gl_GetProc('glGetNamedBufferPointerv');
-    glGetNamedBufferSubData := gl_GetProc('glGetNamedBufferSubData');
-    glCreateFramebuffers := gl_GetProc('glCreateFramebuffers');
-    glNamedFramebufferRenderbuffer := gl_GetProc('glNamedFramebufferRenderbuffer');
-    glNamedFramebufferParameteri := gl_GetProc('glNamedFramebufferParameteri');
-    glNamedFramebufferTexture := gl_GetProc('glNamedFramebufferTexture');
-    glNamedFramebufferTextureLayer := gl_GetProc('glNamedFramebufferTextureLayer');
-    glNamedFramebufferDrawBuffer := gl_GetProc('glNamedFramebufferDrawBuffer');
-    glNamedFramebufferDrawBuffers := gl_GetProc('glNamedFramebufferDrawBuffers');
-    glNamedFramebufferReadBuffer := gl_GetProc('glNamedFramebufferReadBuffer');
-    glInvalidateNamedFramebufferData := gl_GetProc('glInvalidateNamedFramebufferData');
-    glInvalidateNamedFramebufferSubData := gl_GetProc('glInvalidateNamedFramebufferSubData');
-    glClearNamedFramebufferiv := gl_GetProc('glClearNamedFramebufferiv');
-    glClearNamedFramebufferuiv := gl_GetProc('glClearNamedFramebufferuiv');
-    glClearNamedFramebufferfv := gl_GetProc('glClearNamedFramebufferfv');
-    glClearNamedFramebufferfi := gl_GetProc('glClearNamedFramebufferfi');
-    glBlitNamedFramebuffer := gl_GetProc('glBlitNamedFramebuffer');
-    glCheckNamedFramebufferStatus := gl_GetProc('glCheckNamedFramebufferStatus');
-    glGetNamedFramebufferParameteriv := gl_GetProc('glGetNamedFramebufferParameteriv');
-    glGetNamedFramebufferAttachmentParameteriv := gl_GetProc('glGetNamedFramebufferAttachmentParameteriv');
-    glCreateRenderbuffers := gl_GetProc('glCreateRenderbuffers');
-    glNamedRenderbufferStorage := gl_GetProc('glNamedRenderbufferStorage');
-    glNamedRenderbufferStorageMultisample := gl_GetProc('glNamedRenderbufferStorageMultisample');
-    glGetNamedRenderbufferParameteriv := gl_GetProc('glGetNamedRenderbufferParameteriv');
-    glCreateTextures := gl_GetProc('glCreateTextures');
-    glTextureBuffer := gl_GetProc('glTextureBuffer');
-    glTextureBufferRange := gl_GetProc('glTextureBufferRange');
-    glTextureStorage1D := gl_GetProc('glTextureStorage1D');
-    glTextureStorage2D := gl_GetProc('glTextureStorage2D');
-    glTextureStorage3D := gl_GetProc('glTextureStorage3D');
-    glTextureStorage2DMultisample := gl_GetProc('glTextureStorage2DMultisample');
-    glTextureStorage3DMultisample := gl_GetProc('glTextureStorage3DMultisample');
-    glTextureSubImage1D := gl_GetProc('glTextureSubImage1D');
-    glTextureSubImage2D := gl_GetProc('glTextureSubImage2D');
-    glTextureSubImage3D := gl_GetProc('glTextureSubImage3D');
-    glCompressedTextureSubImage1D := gl_GetProc('glCompressedTextureSubImage1D');
-    glCompressedTextureSubImage2D := gl_GetProc('glCompressedTextureSubImage2D');
-    glCompressedTextureSubImage3D := gl_GetProc('glCompressedTextureSubImage3D');
-    glCopyTextureSubImage1D := gl_GetProc('glCopyTextureSubImage1D');
-    glCopyTextureSubImage2D := gl_GetProc('glCopyTextureSubImage2D');
-    glCopyTextureSubImage3D := gl_GetProc('glCopyTextureSubImage3D');
-    glTextureParameterf := gl_GetProc('glTextureParameterf');
-    glTextureParameterfv := gl_GetProc('glTextureParameterfv');
-    glTextureParameteri := gl_GetProc('glTextureParameteri');
-    glTextureParameterIiv := gl_GetProc('glTextureParameterIiv');
-    glTextureParameterIuiv := gl_GetProc('glTextureParameterIuiv');
-    glTextureParameteriv := gl_GetProc('glTextureParameteriv');
-    glGenerateTextureMipmap := gl_GetProc('glGenerateTextureMipmap');
-    glBindTextureUnit := gl_GetProc('glBindTextureUnit');
-    glGetTextureImage := gl_GetProc('glGetTextureImage');
-    glGetCompressedTextureImage := gl_GetProc('glGetCompressedTextureImage');
-    glGetTextureLevelParameterfv := gl_GetProc('glGetTextureLevelParameterfv');
-    glGetTextureLevelParameteriv := gl_GetProc('glGetTextureLevelParameteriv');
-    glGetTextureParameterfv := gl_GetProc('glGetTextureParameterfv');
-    glGetTextureParameterIiv := gl_GetProc('glGetTextureParameterIiv');
-    glGetTextureParameterIuiv := gl_GetProc('glGetTextureParameterIuiv');
-    glGetTextureParameteriv := gl_GetProc('glGetTextureParameteriv');
-    glCreateVertexArrays := gl_GetProc('glCreateVertexArrays');
-    glDisableVertexArrayAttrib := gl_GetProc('glDisableVertexArrayAttrib');
-    glEnableVertexArrayAttrib := gl_GetProc('glEnableVertexArrayAttrib');
-    glVertexArrayElementBuffer := gl_GetProc('glVertexArrayElementBuffer');
-    glVertexArrayVertexBuffer := gl_GetProc('glVertexArrayVertexBuffer');
-    glVertexArrayVertexBuffers := gl_GetProc('glVertexArrayVertexBuffers');
-    glVertexArrayAttribBinding := gl_GetProc('glVertexArrayAttribBinding');
-    glVertexArrayAttribFormat := gl_GetProc('glVertexArrayAttribFormat');
-    glVertexArrayAttribIFormat := gl_GetProc('glVertexArrayAttribIFormat');
-    glVertexArrayAttribLFormat := gl_GetProc('glVertexArrayAttribLFormat');
-    glVertexArrayBindingDivisor := gl_GetProc('glVertexArrayBindingDivisor');
-    glGetVertexArrayiv := gl_GetProc('glGetVertexArrayiv');
-    glGetVertexArrayIndexediv := gl_GetProc('glGetVertexArrayIndexediv');
-    glGetVertexArrayIndexed64iv := gl_GetProc('glGetVertexArrayIndexed64iv');
-    glCreateSamplers := gl_GetProc('glCreateSamplers');
-    glCreateProgramPipelines := gl_GetProc('glCreateProgramPipelines');
-    glCreateQueries := gl_GetProc('glCreateQueries');
-    glGetQueryBufferObjecti64v := gl_GetProc('glGetQueryBufferObjecti64v');
-    glGetQueryBufferObjectiv := gl_GetProc('glGetQueryBufferObjectiv');
-    glGetQueryBufferObjectui64v := gl_GetProc('glGetQueryBufferObjectui64v');
-    glGetQueryBufferObjectuiv := gl_GetProc('glGetQueryBufferObjectuiv');
-    glMemoryBarrierByRegion := gl_GetProc('glMemoryBarrierByRegion');
-    glGetTextureSubImage := gl_GetProc('glGetTextureSubImage');
-    glGetCompressedTextureSubImage := gl_GetProc('glGetCompressedTextureSubImage');
-    glGetGraphicsResetStatus := gl_GetProc('glGetGraphicsResetStatus');
-    glGetnCompressedTexImage := gl_GetProc('glGetnCompressedTexImage');
-    glGetnTexImage := gl_GetProc('glGetnTexImage');
-    glGetnUniformdv := gl_GetProc('glGetnUniformdv');
-    glGetnUniformfv := gl_GetProc('glGetnUniformfv');
-    glGetnUniformiv := gl_GetProc('glGetnUniformiv');
-    glGetnUniformuiv := gl_GetProc('glGetnUniformuiv');
-    glReadnPixels := gl_GetProc('glReadnPixels');
-    glTextureBarrier := gl_GetProc('glTextureBarrier');
-    {$IfNDef USE_GLCORE}
-    glGetnMapdv := gl_GetProc('glGetnMapdv');
-    glGetnMapfv := gl_GetProc('glGetnMapfv');
-    glGetnMapiv := gl_GetProc('glGetnMapiv');
-    glGetnPixelMapfv := gl_GetProc('glGetnPixelMapfv');
-    glGetnPixelMapuiv := gl_GetProc('glGetnPixelMapuiv');
-    glGetnPixelMapusv := gl_GetProc('glGetnPixelMapusv');
-    glGetnPolygonStipple := gl_GetProc('glGetnPolygonStipple');
-    glGetnColorTable := gl_GetProc('glGetnColorTable');
-    glGetnConvolutionFilter := gl_GetProc('glGetnConvolutionFilter');
-    glGetnSeparableFilter := gl_GetProc('glGetnSeparableFilter');
-    glGetnHistogram := gl_GetProc('glGetnHistogram');
-    glGetnMinmax := gl_GetProc('glGetnMinmax');
-    {$EndIf}
-  end;
-  {$EndIf}
-
-  {$IfDef GL_VERSION_4_6}
-  if GL_VERSION_4_6 then
-  begin
-    glSpecializeShader := gl_GetProc('glSpecializeShader');
-    glMultiDrawArraysIndirectCount := gl_GetProc('glMultiDrawArraysIndirectCount');
-    glMultiDrawElementsIndirectCount := gl_GetProc('glMultiDrawElementsIndirectCount');
-    glPolygonOffsetClamp := gl_GetProc('glPolygonOffsetClamp');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_ES3_2_compatibility}
-  if GL_ARB_ES3_2_compatibility then
-    glPrimitiveBoundingBoxARB := gl_GetProc('glPrimitiveBoundingBoxARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_bindless_texture}
-  if GL_ARB_bindless_texture then
-  begin
-    glGetTextureHandleARB := gl_GetProc('glGetTextureHandleARB');
-    glGetTextureSamplerHandleARB := gl_GetProc('glGetTextureSamplerHandleARB');
-    glMakeTextureHandleResidentARB := gl_GetProc('glMakeTextureHandleResidentARB');
-    glMakeTextureHandleNonResidentARB := gl_GetProc('glMakeTextureHandleNonResidentARB');
-    glGetImageHandleARB := gl_GetProc('glGetImageHandleARB');
-    glMakeImageHandleResidentARB := gl_GetProc('glMakeImageHandleResidentARB');
-    glMakeImageHandleNonResidentARB := gl_GetProc('glMakeImageHandleNonResidentARB');
-    glUniformHandleui64ARB := gl_GetProc('glUniformHandleui64ARB');
-    glUniformHandleui64vARB := gl_GetProc('glUniformHandleui64vARB');
-    glProgramUniformHandleui64ARB := gl_GetProc('glProgramUniformHandleui64ARB');
-    glProgramUniformHandleui64vARB := gl_GetProc('glProgramUniformHandleui64vARB');
-    glIsTextureHandleResidentARB := gl_GetProc('glIsTextureHandleResidentARB');
-    glIsImageHandleResidentARB := gl_GetProc('glIsImageHandleResidentARB');
-    glVertexAttribL1ui64ARB := gl_GetProc('glVertexAttribL1ui64ARB');
-    glVertexAttribL1ui64vARB := gl_GetProc('glVertexAttribL1ui64vARB');
-    glGetVertexAttribLui64vARB := gl_GetProc('glGetVertexAttribLui64vARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_cl_event}
-  if GL_ARB_cl_event then
-    glCreateSyncFromCLeventARB := gl_GetProc('glCreateSyncFromCLeventARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_color_buffer_float}
-  if GL_ARB_color_buffer_float then
-    glClampColorARB := gl_GetProc('glClampColorARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_compute_variable_group_size}
-  if GL_ARB_compute_variable_group_size then
-    glDispatchComputeGroupSizeARB := gl_GetProc('glDispatchComputeGroupSizeARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_debug_output}
-  if GL_ARB_debug_output then
-  begin
-    glDebugMessageControlARB := gl_GetProc('glDebugMessageControlARB');
-    glDebugMessageInsertARB := gl_GetProc('glDebugMessageInsertARB');
-    glDebugMessageCallbackARB := gl_GetProc('glDebugMessageCallbackARB');
-    glGetDebugMessageLogARB := gl_GetProc('glGetDebugMessageLogARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_buffers}
-  if GL_ARB_draw_buffers then
-    glDrawBuffersARB := gl_GetProc('glDrawBuffersARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_buffers_blend}
-  if GL_ARB_draw_buffers_blend then
-  begin
-    glBlendEquationiARB := gl_GetProc('glBlendEquationiARB');
-    glBlendEquationSeparateiARB := gl_GetProc('glBlendEquationSeparateiARB');
-    glBlendFunciARB := gl_GetProc('glBlendFunciARB');
-    glBlendFuncSeparateiARB := gl_GetProc('glBlendFuncSeparateiARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_draw_instanced}
-  if GL_ARB_draw_instanced then
-  begin
-    glDrawArraysInstancedARB := gl_GetProc('glDrawArraysInstancedARB');
-    glDrawElementsInstancedARB := gl_GetProc('glDrawElementsInstancedARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_fragment_program}
-  if GL_ARB_fragment_program then
-  begin
-    glProgramStringARB := gl_GetProc('glProgramStringARB');
-    glBindProgramARB := gl_GetProc('glBindProgramARB');
-    glDeleteProgramsARB := gl_GetProc('glDeleteProgramsARB');
-    glGenProgramsARB := gl_GetProc('glGenProgramsARB');
-    glProgramEnvParameter4dARB := gl_GetProc('glProgramEnvParameter4dARB');
-    glProgramEnvParameter4dvARB := gl_GetProc('glProgramEnvParameter4dvARB');
-    glProgramEnvParameter4fARB := gl_GetProc('glProgramEnvParameter4fARB');
-    glProgramEnvParameter4fvARB := gl_GetProc('glProgramEnvParameter4fvARB');
-    glProgramLocalParameter4dARB := gl_GetProc('glProgramLocalParameter4dARB');
-    glProgramLocalParameter4dvARB := gl_GetProc('glProgramLocalParameter4dvARB');
-    glProgramLocalParameter4fARB := gl_GetProc('glProgramLocalParameter4fARB');
-    glProgramLocalParameter4fvARB := gl_GetProc('glProgramLocalParameter4fvARB');
-    glGetProgramEnvParameterdvARB := gl_GetProc('glGetProgramEnvParameterdvARB');
-    glGetProgramEnvParameterfvARB := gl_GetProc('glGetProgramEnvParameterfvARB');
-    glGetProgramLocalParameterdvARB := gl_GetProc('glGetProgramLocalParameterdvARB');
-    glGetProgramLocalParameterfvARB := gl_GetProc('glGetProgramLocalParameterfvARB');
-    glGetProgramivARB := gl_GetProc('glGetProgramivARB');
-    glGetProgramStringARB := gl_GetProc('glGetProgramStringARB');
-    glIsProgramARB := gl_GetProc('glIsProgramARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_geometry_shader4}
-  if GL_ARB_geometry_shader4 then
-  begin
-    glProgramParameteriARB := gl_GetProc('glProgramParameteriARB');
-    glFramebufferTextureARB := gl_GetProc('glFramebufferTextureARB');
-    glFramebufferTextureLayerARB := gl_GetProc('glFramebufferTextureLayerARB');
-    glFramebufferTextureFaceARB := gl_GetProc('glFramebufferTextureFaceARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_gl_spirv}
-  if GL_ARB_gl_spirv then
-    glSpecializeShaderARB := gl_GetProc('glSpecializeShaderARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_gpu_shader_int64}
-  if GL_ARB_gpu_shader_int64 then
-  begin
-    glUniform1i64ARB := gl_GetProc('glUniform1i64ARB');
-    glUniform2i64ARB := gl_GetProc('glUniform2i64ARB');
-    glUniform3i64ARB := gl_GetProc('glUniform3i64ARB');
-    glUniform4i64ARB := gl_GetProc('glUniform4i64ARB');
-    glUniform1i64vARB := gl_GetProc('glUniform1i64vARB');
-    glUniform2i64vARB := gl_GetProc('glUniform2i64vARB');
-    glUniform3i64vARB := gl_GetProc('glUniform3i64vARB');
-    glUniform4i64vARB := gl_GetProc('glUniform4i64vARB');
-    glUniform1ui64ARB := gl_GetProc('glUniform1ui64ARB');
-    glUniform2ui64ARB := gl_GetProc('glUniform2ui64ARB');
-    glUniform3ui64ARB := gl_GetProc('glUniform3ui64ARB');
-    glUniform4ui64ARB := gl_GetProc('glUniform4ui64ARB');
-    glUniform1ui64vARB := gl_GetProc('glUniform1ui64vARB');
-    glUniform2ui64vARB := gl_GetProc('glUniform2ui64vARB');
-    glUniform3ui64vARB := gl_GetProc('glUniform3ui64vARB');
-    glUniform4ui64vARB := gl_GetProc('glUniform4ui64vARB');
-    glGetUniformi64vARB := gl_GetProc('glGetUniformi64vARB');
-    glGetUniformui64vARB := gl_GetProc('glGetUniformui64vARB');
-    glGetnUniformi64vARB := gl_GetProc('glGetnUniformi64vARB');
-    glGetnUniformui64vARB := gl_GetProc('glGetnUniformui64vARB');
-    glProgramUniform1i64ARB := gl_GetProc('glProgramUniform1i64ARB');
-    glProgramUniform2i64ARB := gl_GetProc('glProgramUniform2i64ARB');
-    glProgramUniform3i64ARB := gl_GetProc('glProgramUniform3i64ARB');
-    glProgramUniform4i64ARB := gl_GetProc('glProgramUniform4i64ARB');
-    glProgramUniform1i64vARB := gl_GetProc('glProgramUniform1i64vARB');
-    glProgramUniform2i64vARB := gl_GetProc('glProgramUniform2i64vARB');
-    glProgramUniform3i64vARB := gl_GetProc('glProgramUniform3i64vARB');
-    glProgramUniform4i64vARB := gl_GetProc('glProgramUniform4i64vARB');
-    glProgramUniform1ui64ARB := gl_GetProc('glProgramUniform1ui64ARB');
-    glProgramUniform2ui64ARB := gl_GetProc('glProgramUniform2ui64ARB');
-    glProgramUniform3ui64ARB := gl_GetProc('glProgramUniform3ui64ARB');
-    glProgramUniform4ui64ARB := gl_GetProc('glProgramUniform4ui64ARB');
-    glProgramUniform1ui64vARB := gl_GetProc('glProgramUniform1ui64vARB');
-    glProgramUniform2ui64vARB := gl_GetProc('glProgramUniform2ui64vARB');
-    glProgramUniform3ui64vARB := gl_GetProc('glProgramUniform3ui64vARB');
-    glProgramUniform4ui64vARB := gl_GetProc('glProgramUniform4ui64vARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_imaging}
-  if GL_ARB_imaging then
-  begin
-    glColorTable := gl_GetProc('glColorTable');
-    glColorTableParameterfv := gl_GetProc('glColorTableParameterfv');
-    glColorTableParameteriv := gl_GetProc('glColorTableParameteriv');
-    glCopyColorTable := gl_GetProc('glCopyColorTable');
-    glGetColorTable := gl_GetProc('glGetColorTable');
-    glGetColorTableParameterfv := gl_GetProc('glGetColorTableParameterfv');
-    glGetColorTableParameteriv := gl_GetProc('glGetColorTableParameteriv');
-    glColorSubTable := gl_GetProc('glColorSubTable');
-    glCopyColorSubTable := gl_GetProc('glCopyColorSubTable');
-    glConvolutionFilter1D := gl_GetProc('glConvolutionFilter1D');
-    glConvolutionFilter2D := gl_GetProc('glConvolutionFilter2D');
-    glConvolutionParameterf := gl_GetProc('glConvolutionParameterf');
-    glConvolutionParameterfv := gl_GetProc('glConvolutionParameterfv');
-    glConvolutionParameteri := gl_GetProc('glConvolutionParameteri');
-    glConvolutionParameteriv := gl_GetProc('glConvolutionParameteriv');
-    glCopyConvolutionFilter1D := gl_GetProc('glCopyConvolutionFilter1D');
-    glCopyConvolutionFilter2D := gl_GetProc('glCopyConvolutionFilter2D');
-    glGetConvolutionFilter := gl_GetProc('glGetConvolutionFilter');
-    glGetConvolutionParameterfv := gl_GetProc('glGetConvolutionParameterfv');
-    glGetConvolutionParameteriv := gl_GetProc('glGetConvolutionParameteriv');
-    glGetSeparableFilter := gl_GetProc('glGetSeparableFilter');
-    glSeparableFilter2D := gl_GetProc('glSeparableFilter2D');
-    glGetHistogram := gl_GetProc('glGetHistogram');
-    glGetHistogramParameterfv := gl_GetProc('glGetHistogramParameterfv');
-    glGetHistogramParameteriv := gl_GetProc('glGetHistogramParameteriv');
-    glGetMinmax := gl_GetProc('glGetMinmax');
-    glGetMinmaxParameterfv := gl_GetProc('glGetMinmaxParameterfv');
-    glGetMinmaxParameteriv := gl_GetProc('glGetMinmaxParameteriv');
-    glHistogram := gl_GetProc('glHistogram');
-    glMinmax := gl_GetProc('glMinmax');
-    glResetHistogram := gl_GetProc('glResetHistogram');
-    glResetMinmax := gl_GetProc('glResetMinmax');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_indirect_parameters}
-  if GL_ARB_indirect_parameters then
-  begin
-    glMultiDrawArraysIndirectCountARB := gl_GetProc('glMultiDrawArraysIndirectCountARB');
-    glMultiDrawElementsIndirectCountARB := gl_GetProc('glMultiDrawElementsIndirectCountARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_instanced_arrays}
-  if GL_ARB_instanced_arrays then
-    glVertexAttribDivisorARB := gl_GetProc('glVertexAttribDivisorARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_matrix_palette}
-  if GL_ARB_matrix_palette then
-  begin
-    glCurrentPaletteMatrixARB := gl_GetProc('glCurrentPaletteMatrixARB');
-    glMatrixIndexubvARB := gl_GetProc('glMatrixIndexubvARB');
-    glMatrixIndexusvARB := gl_GetProc('glMatrixIndexusvARB');
-    glMatrixIndexuivARB := gl_GetProc('glMatrixIndexuivARB');
-    glMatrixIndexPointerARB := gl_GetProc('glMatrixIndexPointerARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_multisample}
-  if GL_ARB_multisample then
-    glSampleCoverageARB := gl_GetProc('glSampleCoverageARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_multitexture}
-  if GL_ARB_multitexture then
-  begin
-    glActiveTextureARB := gl_GetProc('glActiveTextureARB');
-    glClientActiveTextureARB := gl_GetProc('glClientActiveTextureARB');
-    glMultiTexCoord1dARB := gl_GetProc('glMultiTexCoord1dARB');
-    glMultiTexCoord1dvARB := gl_GetProc('glMultiTexCoord1dvARB');
-    glMultiTexCoord1fARB := gl_GetProc('glMultiTexCoord1fARB');
-    glMultiTexCoord1fvARB := gl_GetProc('glMultiTexCoord1fvARB');
-    glMultiTexCoord1iARB := gl_GetProc('glMultiTexCoord1iARB');
-    glMultiTexCoord1ivARB := gl_GetProc('glMultiTexCoord1ivARB');
-    glMultiTexCoord1sARB := gl_GetProc('glMultiTexCoord1sARB');
-    glMultiTexCoord1svARB := gl_GetProc('glMultiTexCoord1svARB');
-    glMultiTexCoord2dARB := gl_GetProc('glMultiTexCoord2dARB');
-    glMultiTexCoord2dvARB := gl_GetProc('glMultiTexCoord2dvARB');
-    glMultiTexCoord2fARB := gl_GetProc('glMultiTexCoord2fARB');
-    glMultiTexCoord2fvARB := gl_GetProc('glMultiTexCoord2fvARB');
-    glMultiTexCoord2iARB := gl_GetProc('glMultiTexCoord2iARB');
-    glMultiTexCoord2ivARB := gl_GetProc('glMultiTexCoord2ivARB');
-    glMultiTexCoord2sARB := gl_GetProc('glMultiTexCoord2sARB');
-    glMultiTexCoord2svARB := gl_GetProc('glMultiTexCoord2svARB');
-    glMultiTexCoord3dARB := gl_GetProc('glMultiTexCoord3dARB');
-    glMultiTexCoord3dvARB := gl_GetProc('glMultiTexCoord3dvARB');
-    glMultiTexCoord3fARB := gl_GetProc('glMultiTexCoord3fARB');
-    glMultiTexCoord3fvARB := gl_GetProc('glMultiTexCoord3fvARB');
-    glMultiTexCoord3iARB := gl_GetProc('glMultiTexCoord3iARB');
-    glMultiTexCoord3ivARB := gl_GetProc('glMultiTexCoord3ivARB');
-    glMultiTexCoord3sARB := gl_GetProc('glMultiTexCoord3sARB');
-    glMultiTexCoord3svARB := gl_GetProc('glMultiTexCoord3svARB');
-    glMultiTexCoord4dARB := gl_GetProc('glMultiTexCoord4dARB');
-    glMultiTexCoord4dvARB := gl_GetProc('glMultiTexCoord4dvARB');
-    glMultiTexCoord4fARB := gl_GetProc('glMultiTexCoord4fARB');
-    glMultiTexCoord4fvARB := gl_GetProc('glMultiTexCoord4fvARB');
-    glMultiTexCoord4iARB := gl_GetProc('glMultiTexCoord4iARB');
-    glMultiTexCoord4ivARB := gl_GetProc('glMultiTexCoord4ivARB');
-    glMultiTexCoord4sARB := gl_GetProc('glMultiTexCoord4sARB');
-    glMultiTexCoord4svARB := gl_GetProc('glMultiTexCoord4svARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_occlusion_query}
-  if GL_ARB_occlusion_query then
-  begin
-    glGenQueriesARB := gl_GetProc('glGenQueriesARB');
-    glDeleteQueriesARB := gl_GetProc('glDeleteQueriesARB');
-    glIsQueryARB := gl_GetProc('glIsQueryARB');
-    glBeginQueryARB := gl_GetProc('glBeginQueryARB');
-    glEndQueryARB := gl_GetProc('glEndQueryARB');
-    glGetQueryivARB := gl_GetProc('glGetQueryivARB');
-    glGetQueryObjectivARB := gl_GetProc('glGetQueryObjectivARB');
-    glGetQueryObjectuivARB := gl_GetProc('glGetQueryObjectuivARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_parallel_shader_compile}
-  if GL_ARB_parallel_shader_compile then
-    glMaxShaderCompilerThreadsARB := gl_GetProc('glMaxShaderCompilerThreadsARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_point_parameters}
-  if GL_ARB_point_parameters then
-  begin
-    glPointParameterfARB := gl_GetProc('glPointParameterfARB');
-    glPointParameterfvARB := gl_GetProc('glPointParameterfvARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_robustness}
-  if GL_ARB_robustness then
-  begin
-    glGetGraphicsResetStatusARB := gl_GetProc('glGetGraphicsResetStatusARB');
-    glGetnTexImageARB := gl_GetProc('glGetnTexImageARB');
-    glReadnPixelsARB := gl_GetProc('glReadnPixelsARB');
-    glGetnCompressedTexImageARB := gl_GetProc('glGetnCompressedTexImageARB');
-    glGetnUniformfvARB := gl_GetProc('glGetnUniformfvARB');
-    glGetnUniformivARB := gl_GetProc('glGetnUniformivARB');
-    glGetnUniformuivARB := gl_GetProc('glGetnUniformuivARB');
-    glGetnUniformdvARB := gl_GetProc('glGetnUniformdvARB');
-    {$IfNDef USE_GLCORE}
-    glGetnMapdvARB := gl_GetProc('glGetnMapdvARB');
-    glGetnMapfvARB := gl_GetProc('glGetnMapfvARB');
-    glGetnMapivARB := gl_GetProc('glGetnMapivARB');
-    glGetnPixelMapfvARB := gl_GetProc('glGetnPixelMapfvARB');
-    glGetnPixelMapuivARB := gl_GetProc('glGetnPixelMapuivARB');
-    glGetnPixelMapusvARB := gl_GetProc('glGetnPixelMapusvARB');
-    glGetnPolygonStippleARB := gl_GetProc('glGetnPolygonStippleARB');
-    glGetnColorTableARB := gl_GetProc('glGetnColorTableARB');
-    glGetnConvolutionFilterARB := gl_GetProc('glGetnConvolutionFilterARB');
-    glGetnSeparableFilterARB := gl_GetProc('glGetnSeparableFilterARB');
-    glGetnHistogramARB := gl_GetProc('glGetnHistogramARB');
-    glGetnMinmaxARB := gl_GetProc('glGetnMinmaxARB');
-    {$EndIf}
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sample_locations}
-  if GL_ARB_sample_locations then
-  begin
-    glFramebufferSampleLocationsfvARB := gl_GetProc('glFramebufferSampleLocationsfvARB');
-    glNamedFramebufferSampleLocationsfvARB := gl_GetProc('glNamedFramebufferSampleLocationsfvARB');
-    glEvaluateDepthValuesARB := gl_GetProc('glEvaluateDepthValuesARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sample_shading}
-  if GL_ARB_sample_shading then
-    glMinSampleShadingARB := gl_GetProc('glMinSampleShadingARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_shader_objects}
-  if GL_ARB_shader_objects then
-  begin
-    glDeleteObjectARB := gl_GetProc('glDeleteObjectARB');
-    glGetHandleARB := gl_GetProc('glGetHandleARB');
-    glDetachObjectARB := gl_GetProc('glDetachObjectARB');
-    glCreateShaderObjectARB := gl_GetProc('glCreateShaderObjectARB');
-    glShaderSourceARB := gl_GetProc('glShaderSourceARB');
-    glCompileShaderARB := gl_GetProc('glCompileShaderARB');
-    glCreateProgramObjectARB := gl_GetProc('glCreateProgramObjectARB');
-    glAttachObjectARB := gl_GetProc('glAttachObjectARB');
-    glLinkProgramARB := gl_GetProc('glLinkProgramARB');
-    glUseProgramObjectARB := gl_GetProc('glUseProgramObjectARB');
-    glValidateProgramARB := gl_GetProc('glValidateProgramARB');
-    glUniform1fARB := gl_GetProc('glUniform1fARB');
-    glUniform2fARB := gl_GetProc('glUniform2fARB');
-    glUniform3fARB := gl_GetProc('glUniform3fARB');
-    glUniform4fARB := gl_GetProc('glUniform4fARB');
-    glUniform1iARB := gl_GetProc('glUniform1iARB');
-    glUniform2iARB := gl_GetProc('glUniform2iARB');
-    glUniform3iARB := gl_GetProc('glUniform3iARB');
-    glUniform4iARB := gl_GetProc('glUniform4iARB');
-    glUniform1fvARB := gl_GetProc('glUniform1fvARB');
-    glUniform2fvARB := gl_GetProc('glUniform2fvARB');
-    glUniform3fvARB := gl_GetProc('glUniform3fvARB');
-    glUniform4fvARB := gl_GetProc('glUniform4fvARB');
-    glUniform1ivARB := gl_GetProc('glUniform1ivARB');
-    glUniform2ivARB := gl_GetProc('glUniform2ivARB');
-    glUniform3ivARB := gl_GetProc('glUniform3ivARB');
-    glUniform4ivARB := gl_GetProc('glUniform4ivARB');
-    glUniformMatrix2fvARB := gl_GetProc('glUniformMatrix2fvARB');
-    glUniformMatrix3fvARB := gl_GetProc('glUniformMatrix3fvARB');
-    glUniformMatrix4fvARB := gl_GetProc('glUniformMatrix4fvARB');
-    glGetObjectParameterfvARB := gl_GetProc('glGetObjectParameterfvARB');
-    glGetObjectParameterivARB := gl_GetProc('glGetObjectParameterivARB');
-    glGetInfoLogARB := gl_GetProc('glGetInfoLogARB');
-    glGetAttachedObjectsARB := gl_GetProc('glGetAttachedObjectsARB');
-    glGetUniformLocationARB := gl_GetProc('glGetUniformLocationARB');
-    glGetActiveUniformARB := gl_GetProc('glGetActiveUniformARB');
-    glGetUniformfvARB := gl_GetProc('glGetUniformfvARB');
-    glGetUniformivARB := gl_GetProc('glGetUniformivARB');
-    glGetShaderSourceARB := gl_GetProc('glGetShaderSourceARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_shading_language_include}
-  if GL_ARB_shading_language_include then
-  begin
-    glNamedStringARB := gl_GetProc('glNamedStringARB');
-    glDeleteNamedStringARB := gl_GetProc('glDeleteNamedStringARB');
-    glCompileShaderIncludeARB := gl_GetProc('glCompileShaderIncludeARB');
-    glIsNamedStringARB := gl_GetProc('glIsNamedStringARB');
-    glGetNamedStringARB := gl_GetProc('glGetNamedStringARB');
-    glGetNamedStringivARB := gl_GetProc('glGetNamedStringivARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sparse_buffer}
-  if GL_ARB_sparse_buffer then
-  begin
-    glBufferPageCommitmentARB := gl_GetProc('glBufferPageCommitmentARB');
-    glNamedBufferPageCommitmentEXT := gl_GetProc('glNamedBufferPageCommitmentEXT');
-    glNamedBufferPageCommitmentARB := gl_GetProc('glNamedBufferPageCommitmentARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_sparse_texture}
-  if GL_ARB_sparse_texture then
-    glTexPageCommitmentARB := gl_GetProc('glTexPageCommitmentARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_texture_buffer_object}
-  if GL_ARB_texture_buffer_object then
-    glTexBufferARB := gl_GetProc('glTexBufferARB');
-  {$EndIf}
-
-  {$IfDef GL_ARB_texture_compression}
-  if GL_ARB_texture_compression then
-  begin
-    glCompressedTexImage3DARB := gl_GetProc('glCompressedTexImage3DARB');
-    glCompressedTexImage2DARB := gl_GetProc('glCompressedTexImage2DARB');
-    glCompressedTexImage1DARB := gl_GetProc('glCompressedTexImage1DARB');
-    glCompressedTexSubImage3DARB := gl_GetProc('glCompressedTexSubImage3DARB');
-    glCompressedTexSubImage2DARB := gl_GetProc('glCompressedTexSubImage2DARB');
-    glCompressedTexSubImage1DARB := gl_GetProc('glCompressedTexSubImage1DARB');
-    glGetCompressedTexImageARB := gl_GetProc('glGetCompressedTexImageARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_transpose_matrix}
-  if GL_ARB_transpose_matrix then
-  begin
-    glLoadTransposeMatrixfARB := gl_GetProc('glLoadTransposeMatrixfARB');
-    glLoadTransposeMatrixdARB := gl_GetProc('glLoadTransposeMatrixdARB');
-    glMultTransposeMatrixfARB := gl_GetProc('glMultTransposeMatrixfARB');
-    glMultTransposeMatrixdARB := gl_GetProc('glMultTransposeMatrixdARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_blend}
-  if GL_ARB_vertex_blend then
-  begin
-    glWeightbvARB := gl_GetProc('glWeightbvARB');
-    glWeightsvARB := gl_GetProc('glWeightsvARB');
-    glWeightivARB := gl_GetProc('glWeightivARB');
-    glWeightfvARB := gl_GetProc('glWeightfvARB');
-    glWeightdvARB := gl_GetProc('glWeightdvARB');
-    glWeightubvARB := gl_GetProc('glWeightubvARB');
-    glWeightusvARB := gl_GetProc('glWeightusvARB');
-    glWeightuivARB := gl_GetProc('glWeightuivARB');
-    glWeightPointerARB := gl_GetProc('glWeightPointerARB');
-    glVertexBlendARB := gl_GetProc('glVertexBlendARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_buffer_object}
-  if GL_ARB_vertex_buffer_object then
-  begin
-    glBindBufferARB := gl_GetProc('glBindBufferARB');
-    glDeleteBuffersARB := gl_GetProc('glDeleteBuffersARB');
-    glGenBuffersARB := gl_GetProc('glGenBuffersARB');
-    glIsBufferARB := gl_GetProc('glIsBufferARB');
-    glBufferDataARB := gl_GetProc('glBufferDataARB');
-    glBufferSubDataARB := gl_GetProc('glBufferSubDataARB');
-    glGetBufferSubDataARB := gl_GetProc('glGetBufferSubDataARB');
-    glMapBufferARB := gl_GetProc('glMapBufferARB');
-    glUnmapBufferARB := gl_GetProc('glUnmapBufferARB');
-    glGetBufferParameterivARB := gl_GetProc('glGetBufferParameterivARB');
-    glGetBufferPointervARB := gl_GetProc('glGetBufferPointervARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_program}
-  if GL_ARB_vertex_program then
-  begin
-    glVertexAttrib1dARB := gl_GetProc('glVertexAttrib1dARB');
-    glVertexAttrib1dvARB := gl_GetProc('glVertexAttrib1dvARB');
-    glVertexAttrib1fARB := gl_GetProc('glVertexAttrib1fARB');
-    glVertexAttrib1fvARB := gl_GetProc('glVertexAttrib1fvARB');
-    glVertexAttrib1sARB := gl_GetProc('glVertexAttrib1sARB');
-    glVertexAttrib1svARB := gl_GetProc('glVertexAttrib1svARB');
-    glVertexAttrib2dARB := gl_GetProc('glVertexAttrib2dARB');
-    glVertexAttrib2dvARB := gl_GetProc('glVertexAttrib2dvARB');
-    glVertexAttrib2fARB := gl_GetProc('glVertexAttrib2fARB');
-    glVertexAttrib2fvARB := gl_GetProc('glVertexAttrib2fvARB');
-    glVertexAttrib2sARB := gl_GetProc('glVertexAttrib2sARB');
-    glVertexAttrib2svARB := gl_GetProc('glVertexAttrib2svARB');
-    glVertexAttrib3dARB := gl_GetProc('glVertexAttrib3dARB');
-    glVertexAttrib3dvARB := gl_GetProc('glVertexAttrib3dvARB');
-    glVertexAttrib3fARB := gl_GetProc('glVertexAttrib3fARB');
-    glVertexAttrib3fvARB := gl_GetProc('glVertexAttrib3fvARB');
-    glVertexAttrib3sARB := gl_GetProc('glVertexAttrib3sARB');
-    glVertexAttrib3svARB := gl_GetProc('glVertexAttrib3svARB');
-    glVertexAttrib4NbvARB := gl_GetProc('glVertexAttrib4NbvARB');
-    glVertexAttrib4NivARB := gl_GetProc('glVertexAttrib4NivARB');
-    glVertexAttrib4NsvARB := gl_GetProc('glVertexAttrib4NsvARB');
-    glVertexAttrib4NubARB := gl_GetProc('glVertexAttrib4NubARB');
-    glVertexAttrib4NubvARB := gl_GetProc('glVertexAttrib4NubvARB');
-    glVertexAttrib4NuivARB := gl_GetProc('glVertexAttrib4NuivARB');
-    glVertexAttrib4NusvARB := gl_GetProc('glVertexAttrib4NusvARB');
-    glVertexAttrib4bvARB := gl_GetProc('glVertexAttrib4bvARB');
-    glVertexAttrib4dARB := gl_GetProc('glVertexAttrib4dARB');
-    glVertexAttrib4dvARB := gl_GetProc('glVertexAttrib4dvARB');
-    glVertexAttrib4fARB := gl_GetProc('glVertexAttrib4fARB');
-    glVertexAttrib4fvARB := gl_GetProc('glVertexAttrib4fvARB');
-    glVertexAttrib4ivARB := gl_GetProc('glVertexAttrib4ivARB');
-    glVertexAttrib4sARB := gl_GetProc('glVertexAttrib4sARB');
-    glVertexAttrib4svARB := gl_GetProc('glVertexAttrib4svARB');
-    glVertexAttrib4ubvARB := gl_GetProc('glVertexAttrib4ubvARB');
-    glVertexAttrib4uivARB := gl_GetProc('glVertexAttrib4uivARB');
-    glVertexAttrib4usvARB := gl_GetProc('glVertexAttrib4usvARB');
-    glVertexAttribPointerARB := gl_GetProc('glVertexAttribPointerARB');
-    glEnableVertexAttribArrayARB := gl_GetProc('glEnableVertexAttribArrayARB');
-    glDisableVertexAttribArrayARB := gl_GetProc('glDisableVertexAttribArrayARB');
-    glGetVertexAttribdvARB := gl_GetProc('glGetVertexAttribdvARB');
-    glGetVertexAttribfvARB := gl_GetProc('glGetVertexAttribfvARB');
-    glGetVertexAttribivARB := gl_GetProc('glGetVertexAttribivARB');
-    glGetVertexAttribPointervARB := gl_GetProc('glGetVertexAttribPointervARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_vertex_shader}
-  if GL_ARB_vertex_shader then
-  begin
-    glBindAttribLocationARB := gl_GetProc('glBindAttribLocationARB');
-    glGetActiveAttribARB := gl_GetProc('glGetActiveAttribARB');
-    glGetAttribLocationARB := gl_GetProc('glGetAttribLocationARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_viewport_array}
-  if GL_ARB_viewport_array then
-  begin
-    glDepthRangeArraydvNV := gl_GetProc('glDepthRangeArraydvNV');
-    glDepthRangeIndexeddNV := gl_GetProc('glDepthRangeIndexeddNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ARB_window_pos}
-  if GL_ARB_window_pos then
-  begin
-    glWindowPos2dARB := gl_GetProc('glWindowPos2dARB');
-    glWindowPos2dvARB := gl_GetProc('glWindowPos2dvARB');
-    glWindowPos2fARB := gl_GetProc('glWindowPos2fARB');
-    glWindowPos2fvARB := gl_GetProc('glWindowPos2fvARB');
-    glWindowPos2iARB := gl_GetProc('glWindowPos2iARB');
-    glWindowPos2ivARB := gl_GetProc('glWindowPos2ivARB');
-    glWindowPos2sARB := gl_GetProc('glWindowPos2sARB');
-    glWindowPos2svARB := gl_GetProc('glWindowPos2svARB');
-    glWindowPos3dARB := gl_GetProc('glWindowPos3dARB');
-    glWindowPos3dvARB := gl_GetProc('glWindowPos3dvARB');
-    glWindowPos3fARB := gl_GetProc('glWindowPos3fARB');
-    glWindowPos3fvARB := gl_GetProc('glWindowPos3fvARB');
-    glWindowPos3iARB := gl_GetProc('glWindowPos3iARB');
-    glWindowPos3ivARB := gl_GetProc('glWindowPos3ivARB');
-    glWindowPos3sARB := gl_GetProc('glWindowPos3sARB');
-    glWindowPos3svARB := gl_GetProc('glWindowPos3svARB');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_KHR_blend_equation_advanced}
-  if GL_KHR_blend_equation_advanced then
-    glBlendBarrierKHR := gl_GetProc('glBlendBarrierKHR');
-  {$EndIf}
-
-  {$IfDef GL_KHR_parallel_shader_compile}
-  if GL_KHR_parallel_shader_compile then
-    glMaxShaderCompilerThreadsKHR := gl_GetProc('glMaxShaderCompilerThreadsKHR');
-  {$EndIf}
-
-  {$IfDef GL_OES_byte_coordinates}
-  if GL_OES_byte_coordinates then
-  begin
-    glMultiTexCoord1bOES := gl_GetProc('glMultiTexCoord1bOES');
-    glMultiTexCoord1bvOES := gl_GetProc('glMultiTexCoord1bvOES');
-    glMultiTexCoord2bOES := gl_GetProc('glMultiTexCoord2bOES');
-    glMultiTexCoord2bvOES := gl_GetProc('glMultiTexCoord2bvOES');
-    glMultiTexCoord3bOES := gl_GetProc('glMultiTexCoord3bOES');
-    glMultiTexCoord3bvOES := gl_GetProc('glMultiTexCoord3bvOES');
-    glMultiTexCoord4bOES := gl_GetProc('glMultiTexCoord4bOES');
-    glMultiTexCoord4bvOES := gl_GetProc('glMultiTexCoord4bvOES');
-    glTexCoord1bOES := gl_GetProc('glTexCoord1bOES');
-    glTexCoord1bvOES := gl_GetProc('glTexCoord1bvOES');
-    glTexCoord2bOES := gl_GetProc('glTexCoord2bOES');
-    glTexCoord2bvOES := gl_GetProc('glTexCoord2bvOES');
-    glTexCoord3bOES := gl_GetProc('glTexCoord3bOES');
-    glTexCoord3bvOES := gl_GetProc('glTexCoord3bvOES');
-    glTexCoord4bOES := gl_GetProc('glTexCoord4bOES');
-    glTexCoord4bvOES := gl_GetProc('glTexCoord4bvOES');
-    glVertex2bOES := gl_GetProc('glVertex2bOES');
-    glVertex2bvOES := gl_GetProc('glVertex2bvOES');
-    glVertex3bOES := gl_GetProc('glVertex3bOES');
-    glVertex3bvOES := gl_GetProc('glVertex3bvOES');
-    glVertex4bOES := gl_GetProc('glVertex4bOES');
-    glVertex4bvOES := gl_GetProc('glVertex4bvOES');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_OES_fixed_point}
-  if GL_OES_fixed_point then
-  begin
-    glAlphaFuncxOES := gl_GetProc('glAlphaFuncxOES');
-    glClearColorxOES := gl_GetProc('glClearColorxOES');
-    glClearDepthxOES := gl_GetProc('glClearDepthxOES');
-    glClipPlanexOES := gl_GetProc('glClipPlanexOES');
-    glColor4xOES := gl_GetProc('glColor4xOES');
-    glDepthRangexOES := gl_GetProc('glDepthRangexOES');
-    glFogxOES := gl_GetProc('glFogxOES');
-    glFogxvOES := gl_GetProc('glFogxvOES');
-    glFrustumxOES := gl_GetProc('glFrustumxOES');
-    glGetClipPlanexOES := gl_GetProc('glGetClipPlanexOES');
-    glGetFixedvOES := gl_GetProc('glGetFixedvOES');
-    glGetTexEnvxvOES := gl_GetProc('glGetTexEnvxvOES');
-    glGetTexParameterxvOES := gl_GetProc('glGetTexParameterxvOES');
-    glLightModelxOES := gl_GetProc('glLightModelxOES');
-    glLightModelxvOES := gl_GetProc('glLightModelxvOES');
-    glLightxOES := gl_GetProc('glLightxOES');
-    glLightxvOES := gl_GetProc('glLightxvOES');
-    glLineWidthxOES := gl_GetProc('glLineWidthxOES');
-    glLoadMatrixxOES := gl_GetProc('glLoadMatrixxOES');
-    glMaterialxOES := gl_GetProc('glMaterialxOES');
-    glMaterialxvOES := gl_GetProc('glMaterialxvOES');
-    glMultMatrixxOES := gl_GetProc('glMultMatrixxOES');
-    glMultiTexCoord4xOES := gl_GetProc('glMultiTexCoord4xOES');
-    glNormal3xOES := gl_GetProc('glNormal3xOES');
-    glOrthoxOES := gl_GetProc('glOrthoxOES');
-    glPointParameterxvOES := gl_GetProc('glPointParameterxvOES');
-    glPointSizexOES := gl_GetProc('glPointSizexOES');
-    glPolygonOffsetxOES := gl_GetProc('glPolygonOffsetxOES');
-    glRotatexOES := gl_GetProc('glRotatexOES');
-    glScalexOES := gl_GetProc('glScalexOES');
-    glTexEnvxOES := gl_GetProc('glTexEnvxOES');
-    glTexEnvxvOES := gl_GetProc('glTexEnvxvOES');
-    glTexParameterxOES := gl_GetProc('glTexParameterxOES');
-    glTexParameterxvOES := gl_GetProc('glTexParameterxvOES');
-    glTranslatexOES := gl_GetProc('glTranslatexOES');
-    glAccumxOES := gl_GetProc('glAccumxOES');
-    glBitmapxOES := gl_GetProc('glBitmapxOES');
-    glBlendColorxOES := gl_GetProc('glBlendColorxOES');
-    glClearAccumxOES := gl_GetProc('glClearAccumxOES');
-    glColor3xOES := gl_GetProc('glColor3xOES');
-    glColor3xvOES := gl_GetProc('glColor3xvOES');
-    glColor4xvOES := gl_GetProc('glColor4xvOES');
-    glConvolutionParameterxOES := gl_GetProc('glConvolutionParameterxOES');
-    glConvolutionParameterxvOES := gl_GetProc('glConvolutionParameterxvOES');
-    glEvalCoord1xOES := gl_GetProc('glEvalCoord1xOES');
-    glEvalCoord1xvOES := gl_GetProc('glEvalCoord1xvOES');
-    glEvalCoord2xOES := gl_GetProc('glEvalCoord2xOES');
-    glEvalCoord2xvOES := gl_GetProc('glEvalCoord2xvOES');
-    glFeedbackBufferxOES := gl_GetProc('glFeedbackBufferxOES');
-    glGetConvolutionParameterxvOES := gl_GetProc('glGetConvolutionParameterxvOES');
-    glGetHistogramParameterxvOES := gl_GetProc('glGetHistogramParameterxvOES');
-    glGetLightxOES := gl_GetProc('glGetLightxOES');
-    glGetMapxvOES := gl_GetProc('glGetMapxvOES');
-    glGetMaterialxOES := gl_GetProc('glGetMaterialxOES');
-    glGetPixelMapxv := gl_GetProc('glGetPixelMapxv');
-    glGetTexGenxvOES := gl_GetProc('glGetTexGenxvOES');
-    glGetTexLevelParameterxvOES := gl_GetProc('glGetTexLevelParameterxvOES');
-    glIndexxOES := gl_GetProc('glIndexxOES');
-    glIndexxvOES := gl_GetProc('glIndexxvOES');
-    glLoadTransposeMatrixxOES := gl_GetProc('glLoadTransposeMatrixxOES');
-    glMap1xOES := gl_GetProc('glMap1xOES');
-    glMap2xOES := gl_GetProc('glMap2xOES');
-    glMapGrid1xOES := gl_GetProc('glMapGrid1xOES');
-    glMapGrid2xOES := gl_GetProc('glMapGrid2xOES');
-    glMultTransposeMatrixxOES := gl_GetProc('glMultTransposeMatrixxOES');
-    glMultiTexCoord1xOES := gl_GetProc('glMultiTexCoord1xOES');
-    glMultiTexCoord1xvOES := gl_GetProc('glMultiTexCoord1xvOES');
-    glMultiTexCoord2xOES := gl_GetProc('glMultiTexCoord2xOES');
-    glMultiTexCoord2xvOES := gl_GetProc('glMultiTexCoord2xvOES');
-    glMultiTexCoord3xOES := gl_GetProc('glMultiTexCoord3xOES');
-    glMultiTexCoord3xvOES := gl_GetProc('glMultiTexCoord3xvOES');
-    glMultiTexCoord4xvOES := gl_GetProc('glMultiTexCoord4xvOES');
-    glNormal3xvOES := gl_GetProc('glNormal3xvOES');
-    glPassThroughxOES := gl_GetProc('glPassThroughxOES');
-    glPixelMapx := gl_GetProc('glPixelMapx');
-    glPixelStorex := gl_GetProc('glPixelStorex');
-    glPixelTransferxOES := gl_GetProc('glPixelTransferxOES');
-    glPixelZoomxOES := gl_GetProc('glPixelZoomxOES');
-    glPrioritizeTexturesxOES := gl_GetProc('glPrioritizeTexturesxOES');
-    glRasterPos2xOES := gl_GetProc('glRasterPos2xOES');
-    glRasterPos2xvOES := gl_GetProc('glRasterPos2xvOES');
-    glRasterPos3xOES := gl_GetProc('glRasterPos3xOES');
-    glRasterPos3xvOES := gl_GetProc('glRasterPos3xvOES');
-    glRasterPos4xOES := gl_GetProc('glRasterPos4xOES');
-    glRasterPos4xvOES := gl_GetProc('glRasterPos4xvOES');
-    glRectxOES := gl_GetProc('glRectxOES');
-    glRectxvOES := gl_GetProc('glRectxvOES');
-    glTexCoord1xOES := gl_GetProc('glTexCoord1xOES');
-    glTexCoord1xvOES := gl_GetProc('glTexCoord1xvOES');
-    glTexCoord2xOES := gl_GetProc('glTexCoord2xOES');
-    glTexCoord2xvOES := gl_GetProc('glTexCoord2xvOES');
-    glTexCoord3xOES := gl_GetProc('glTexCoord3xOES');
-    glTexCoord3xvOES := gl_GetProc('glTexCoord3xvOES');
-    glTexCoord4xOES := gl_GetProc('glTexCoord4xOES');
-    glTexCoord4xvOES := gl_GetProc('glTexCoord4xvOES');
-    glTexGenxOES := gl_GetProc('glTexGenxOES');
-    glTexGenxvOES := gl_GetProc('glTexGenxvOES');
-    glVertex2xOES := gl_GetProc('glVertex2xOES');
-    glVertex2xvOES := gl_GetProc('glVertex2xvOES');
-    glVertex3xOES := gl_GetProc('glVertex3xOES');
-    glVertex3xvOES := gl_GetProc('glVertex3xvOES');
-    glVertex4xOES := gl_GetProc('glVertex4xOES');
-    glVertex4xvOES := gl_GetProc('glVertex4xvOES');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_OES_query_matrix}
-  if GL_OES_query_matrix then
-    glQueryMatrixxOES := gl_GetProc('glQueryMatrixxOES');
-  {$EndIf}
-
-  {$IfDef GL_OES_single_precision}
-  if GL_OES_single_precision then
-  begin
-    glClearDepthfOES := gl_GetProc('glClearDepthfOES');
-    glClipPlanefOES := gl_GetProc('glClipPlanefOES');
-    glDepthRangefOES := gl_GetProc('glDepthRangefOES');
-    glFrustumfOES := gl_GetProc('glFrustumfOES');
-    glGetClipPlanefOES := gl_GetProc('glGetClipPlanefOES');
-    glOrthofOES := gl_GetProc('glOrthofOES');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_3DFX_tbuffer}
-  if GL_3DFX_tbuffer then
-    glTbufferMask3DFX := gl_GetProc('glTbufferMask3DFX');
-  {$EndIf}
-
-  {$IfDef GL_AMD_debug_output}
-  if GL_AMD_debug_output then
-  begin
-    glDebugMessageEnableAMD := gl_GetProc('glDebugMessageEnableAMD');
-    glDebugMessageInsertAMD := gl_GetProc('glDebugMessageInsertAMD');
-    glDebugMessageCallbackAMD := gl_GetProc('glDebugMessageCallbackAMD');
-    glGetDebugMessageLogAMD := gl_GetProc('glGetDebugMessageLogAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_draw_buffers_blend}
-  if GL_AMD_draw_buffers_blend then
-  begin
-    glBlendFuncIndexedAMD := gl_GetProc('glBlendFuncIndexedAMD');
-    glBlendFuncSeparateIndexedAMD := gl_GetProc('glBlendFuncSeparateIndexedAMD');
-    glBlendEquationIndexedAMD := gl_GetProc('glBlendEquationIndexedAMD');
-    glBlendEquationSeparateIndexedAMD := gl_GetProc('glBlendEquationSeparateIndexedAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_framebuffer_multisample_advanced}
-  if GL_AMD_framebuffer_multisample_advanced then
-  begin
-    glRenderbufferStorageMultisampleAdvancedAMD := gl_GetProc('glRenderbufferStorageMultisampleAdvancedAMD');
-    glNamedRenderbufferStorageMultisampleAdvancedAMD := gl_GetProc('glNamedRenderbufferStorageMultisampleAdvancedAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_framebuffer_sample_positions}
-  if GL_AMD_framebuffer_sample_positions then
-  begin
-    glFramebufferSamplePositionsfvAMD := gl_GetProc('glFramebufferSamplePositionsfvAMD');
-    glNamedFramebufferSamplePositionsfvAMD := gl_GetProc('glNamedFramebufferSamplePositionsfvAMD');
-    glGetFramebufferParameterfvAMD := gl_GetProc('glGetFramebufferParameterfvAMD');
-    glGetNamedFramebufferParameterfvAMD := gl_GetProc('glGetNamedFramebufferParameterfvAMD');
-  end;
-  {$EndIf}
-
-  {$If defined(GL_AMD_gpu_shader_int64) or defined(GL_NV_gpu_shader5)}
-  if GL_AMD_gpu_shader_int64 or GL_NV_gpu_shader5 then
-  begin
-    glUniform1i64NV := gl_GetProc('glUniform1i64NV');
-    glUniform2i64NV := gl_GetProc('glUniform2i64NV');
-    glUniform3i64NV := gl_GetProc('glUniform3i64NV');
-    glUniform4i64NV := gl_GetProc('glUniform4i64NV');
-    glUniform1i64vNV := gl_GetProc('glUniform1i64vNV');
-    glUniform2i64vNV := gl_GetProc('glUniform2i64vNV');
-    glUniform3i64vNV := gl_GetProc('glUniform3i64vNV');
-    glUniform4i64vNV := gl_GetProc('glUniform4i64vNV');
-    glUniform1ui64NV := gl_GetProc('glUniform1ui64NV');
-    glUniform2ui64NV := gl_GetProc('glUniform2ui64NV');
-    glUniform3ui64NV := gl_GetProc('glUniform3ui64NV');
-    glUniform4ui64NV := gl_GetProc('glUniform4ui64NV');
-    glUniform1ui64vNV := gl_GetProc('glUniform1ui64vNV');
-    glUniform2ui64vNV := gl_GetProc('glUniform2ui64vNV');
-    glUniform3ui64vNV := gl_GetProc('glUniform3ui64vNV');
-    glUniform4ui64vNV := gl_GetProc('glUniform4ui64vNV');
-    glGetUniformi64vNV := gl_GetProc('glGetUniformi64vNV');
-    glProgramUniform1i64NV := gl_GetProc('glProgramUniform1i64NV');
-    glProgramUniform2i64NV := gl_GetProc('glProgramUniform2i64NV');
-    glProgramUniform3i64NV := gl_GetProc('glProgramUniform3i64NV');
-    glProgramUniform4i64NV := gl_GetProc('glProgramUniform4i64NV');
-    glProgramUniform1i64vNV := gl_GetProc('glProgramUniform1i64vNV');
-    glProgramUniform2i64vNV := gl_GetProc('glProgramUniform2i64vNV');
-    glProgramUniform3i64vNV := gl_GetProc('glProgramUniform3i64vNV');
-    glProgramUniform4i64vNV := gl_GetProc('glProgramUniform4i64vNV');
-    glProgramUniform1ui64NV := gl_GetProc('glProgramUniform1ui64NV');
-    glProgramUniform2ui64NV := gl_GetProc('glProgramUniform2ui64NV');
-    glProgramUniform3ui64NV := gl_GetProc('glProgramUniform3ui64NV');
-    glProgramUniform4ui64NV := gl_GetProc('glProgramUniform4ui64NV');
-    glProgramUniform1ui64vNV := gl_GetProc('glProgramUniform1ui64vNV');
-    glProgramUniform2ui64vNV := gl_GetProc('glProgramUniform2ui64vNV');
-    glProgramUniform3ui64vNV := gl_GetProc('glProgramUniform3ui64vNV');
-    glProgramUniform4ui64vNV := gl_GetProc('glProgramUniform4ui64vNV');
-  end;
-  {$IfEnd}
-
-  {$If defined(GL_AMD_gpu_shader_int64) or defined(GL_NV_shader_buffer_load)}
-  if GL_AMD_gpu_shader_int64 or GL_NV_shader_buffer_load then
-    glGetUniformui64vNV := gl_GetProc('glGetUniformui64vNV');
-  {$IfEnd}
-
-  {$IfDef GL_AMD_interleaved_elements}
-  if GL_AMD_interleaved_elements then
-    glVertexAttribParameteriAMD := gl_GetProc('glVertexAttribParameteriAMD');
-  {$EndIf}
-
-  {$IfDef GL_AMD_multi_draw_indirect}
-  if GL_AMD_multi_draw_indirect then
-  begin
-    glMultiDrawArraysIndirectAMD := gl_GetProc('glMultiDrawArraysIndirectAMD');
-    glMultiDrawElementsIndirectAMD := gl_GetProc('glMultiDrawElementsIndirectAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_name_gen_delete}
-  if GL_AMD_name_gen_delete then
-  begin
-    glGenNamesAMD := gl_GetProc('glGenNamesAMD');
-    glDeleteNamesAMD := gl_GetProc('glDeleteNamesAMD');
-    glIsNameAMD := gl_GetProc('glIsNameAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_occlusion_query_event}
-  if GL_AMD_occlusion_query_event then
-    glQueryObjectParameteruiAMD := gl_GetProc('glQueryObjectParameteruiAMD');
-  {$EndIf}
-
-  {$IfDef GL_AMD_performance_monitor}
-  if GL_AMD_performance_monitor then
-  begin
-    glGetPerfMonitorGroupsAMD := gl_GetProc('glGetPerfMonitorGroupsAMD');
-    glGetPerfMonitorCountersAMD := gl_GetProc('glGetPerfMonitorCountersAMD');
-    glGetPerfMonitorGroupStringAMD := gl_GetProc('glGetPerfMonitorGroupStringAMD');
-    glGetPerfMonitorCounterStringAMD := gl_GetProc('glGetPerfMonitorCounterStringAMD');
-    glGetPerfMonitorCounterInfoAMD := gl_GetProc('glGetPerfMonitorCounterInfoAMD');
-    glGenPerfMonitorsAMD := gl_GetProc('glGenPerfMonitorsAMD');
-    glDeletePerfMonitorsAMD := gl_GetProc('glDeletePerfMonitorsAMD');
-    glSelectPerfMonitorCountersAMD := gl_GetProc('glSelectPerfMonitorCountersAMD');
-    glBeginPerfMonitorAMD := gl_GetProc('glBeginPerfMonitorAMD');
-    glEndPerfMonitorAMD := gl_GetProc('glEndPerfMonitorAMD');
-    glGetPerfMonitorCounterDataAMD := gl_GetProc('glGetPerfMonitorCounterDataAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_sample_positions}
-  if GL_AMD_sample_positions then
-    glSetMultisamplefvAMD := gl_GetProc('glSetMultisamplefvAMD');
-  {$EndIf}
-
-  {$IfDef GL_AMD_sparse_texture}
-  if GL_AMD_sparse_texture then
-  begin
-    glTexStorageSparseAMD := gl_GetProc('glTexStorageSparseAMD');
-    glTextureStorageSparseAMD := gl_GetProc('glTextureStorageSparseAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_AMD_stencil_operation_extended}
-  if GL_AMD_stencil_operation_extended then
-    glStencilOpValueAMD := gl_GetProc('glStencilOpValueAMD');
-  {$EndIf}
-
-  {$IfDef GL_AMD_vertex_shader_tessellator}
-  if GL_AMD_vertex_shader_tessellator then
-  begin
-    glTessellationFactorAMD := gl_GetProc('glTessellationFactorAMD');
-    glTessellationModeAMD := gl_GetProc('glTessellationModeAMD');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_element_array}
-  if GL_APPLE_element_array then
-  begin
-    glElementPointerAPPLE := gl_GetProc('glElementPointerAPPLE');
-    glDrawElementArrayAPPLE := gl_GetProc('glDrawElementArrayAPPLE');
-    glDrawRangeElementArrayAPPLE := gl_GetProc('glDrawRangeElementArrayAPPLE');
-    glMultiDrawElementArrayAPPLE := gl_GetProc('glMultiDrawElementArrayAPPLE');
-    glMultiDrawRangeElementArrayAPPLE := gl_GetProc('glMultiDrawRangeElementArrayAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_fence}
-  if GL_APPLE_fence then
-  begin
-    glGenFencesAPPLE := gl_GetProc('glGenFencesAPPLE');
-    glDeleteFencesAPPLE := gl_GetProc('glDeleteFencesAPPLE');
-    glSetFenceAPPLE := gl_GetProc('glSetFenceAPPLE');
-    glIsFenceAPPLE := gl_GetProc('glIsFenceAPPLE');
-    glTestFenceAPPLE := gl_GetProc('glTestFenceAPPLE');
-    glFinishFenceAPPLE := gl_GetProc('glFinishFenceAPPLE');
-    glTestObjectAPPLE := gl_GetProc('glTestObjectAPPLE');
-    glFinishObjectAPPLE := gl_GetProc('glFinishObjectAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_flush_buffer_range}
-  if GL_APPLE_flush_buffer_range then
-  begin
-    glBufferParameteriAPPLE := gl_GetProc('glBufferParameteriAPPLE');
-    glFlushMappedBufferRangeAPPLE := gl_GetProc('glFlushMappedBufferRangeAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_object_purgeable}
-  if GL_APPLE_object_purgeable then
-  begin
-    glObjectPurgeableAPPLE := gl_GetProc('glObjectPurgeableAPPLE');
-    glObjectUnpurgeableAPPLE := gl_GetProc('glObjectUnpurgeableAPPLE');
-    glGetObjectParameterivAPPLE := gl_GetProc('glGetObjectParameterivAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_texture_range}
-  if GL_APPLE_texture_range then
-  begin
-    glTextureRangeAPPLE := gl_GetProc('glTextureRangeAPPLE');
-    glGetTexParameterPointervAPPLE := gl_GetProc('glGetTexParameterPointervAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_array_object}
-  if GL_APPLE_vertex_array_object then
-  begin
-    glBindVertexArrayAPPLE := gl_GetProc('glBindVertexArrayAPPLE');
-    glDeleteVertexArraysAPPLE := gl_GetProc('glDeleteVertexArraysAPPLE');
-    glGenVertexArraysAPPLE := gl_GetProc('glGenVertexArraysAPPLE');
-    functionglIsVertexArrayAPPLE := gl_GetProc('functionglIsVertexArrayAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_array_range}
-  if GL_APPLE_vertex_array_range then
-  begin
-    glVertexArrayRangeAPPLE := gl_GetProc('glVertexArrayRangeAPPLE');
-    glFlushVertexArrayRangeAPPLE := gl_GetProc('glFlushVertexArrayRangeAPPLE');
-    glVertexArrayParameteriAPPLE := gl_GetProc('glVertexArrayParameteriAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_APPLE_vertex_program_evaluators}
-  if GL_APPLE_vertex_program_evaluators then
-  begin
-    glEnableVertexAttribAPPLE := gl_GetProc('glEnableVertexAttribAPPLE');
-    glDisableVertexAttribAPPLE := gl_GetProc('glDisableVertexAttribAPPLE');
-    glIsVertexAttribEnabledAPPLE := gl_GetProc('glIsVertexAttribEnabledAPPLE');
-    glMapVertexAttrib1dAPPLE := gl_GetProc('glMapVertexAttrib1dAPPLE');
-    glMapVertexAttrib1fAPPLE := gl_GetProc('glMapVertexAttrib1fAPPLE');
-    glMapVertexAttrib2dAPPLE := gl_GetProc('glMapVertexAttrib2dAPPLE');
-    glMapVertexAttrib2fAPPLE := gl_GetProc('glMapVertexAttrib2fAPPLE');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_draw_buffers}
-  if GL_ATI_draw_buffers then
-    glDrawBuffersATI := gl_GetProc('glDrawBuffersATI');
-  {$EndIf}
-
-  {$IfDef GL_ATI_element_array}
-  if GL_ATI_element_array then
-  begin
-    glElementPointerATI := gl_GetProc('glElementPointerATI');
-    glDrawElementArrayATI := gl_GetProc('glDrawElementArrayATI');
-    glDrawRangeElementArrayATI := gl_GetProc('glDrawRangeElementArrayATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_envmap_bumpmap}
-  if GL_ATI_envmap_bumpmap then
-  begin
-    glTexBumpParameterivATI := gl_GetProc('glTexBumpParameterivATI');
-    glTexBumpParameterfvATI := gl_GetProc('glTexBumpParameterfvATI');
-    glGetTexBumpParameterivATI := gl_GetProc('glGetTexBumpParameterivATI');
-    glGetTexBumpParameterfvATI := gl_GetProc('glGetTexBumpParameterfvATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_fragment_shader}
-  if GL_ATI_fragment_shader then
-  begin
-    glGenFragmentShadersATI := gl_GetProc('glGenFragmentShadersATI');
-    glBindFragmentShaderATI := gl_GetProc('glBindFragmentShaderATI');
-    glDeleteFragmentShaderATI := gl_GetProc('glDeleteFragmentShaderATI');
-    glBeginFragmentShaderATI := gl_GetProc('glBeginFragmentShaderATI');
-    glEndFragmentShaderATI := gl_GetProc('glEndFragmentShaderATI');
-    glPassTexCoordATI := gl_GetProc('glPassTexCoordATI');
-    glSampleMapATI := gl_GetProc('glSampleMapATI');
-    glColorFragmentOp1ATI := gl_GetProc('glColorFragmentOp1ATI');
-    glColorFragmentOp2ATI := gl_GetProc('glColorFragmentOp2ATI');
-    glColorFragmentOp3ATI := gl_GetProc('glColorFragmentOp3ATI');
-    glAlphaFragmentOp1ATI := gl_GetProc('glAlphaFragmentOp1ATI');
-    glAlphaFragmentOp2ATI := gl_GetProc('glAlphaFragmentOp2ATI');
-    glAlphaFragmentOp3ATI := gl_GetProc('glAlphaFragmentOp3ATI');
-    glSetFragmentShaderConstantATI := gl_GetProc('glSetFragmentShaderConstantATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_map_object_buffer}
-  if GL_ATI_map_object_buffer then
-  begin
-    glMapObjectBufferATI := gl_GetProc('glMapObjectBufferATI');
-    glUnmapObjectBufferATI := gl_GetProc('glUnmapObjectBufferATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_pn_triangles}
-  if GL_ATI_pn_triangles then
-  begin
-    glPNTrianglesiATI := gl_GetProc('glPNTrianglesiATI');
-    glPNTrianglesfATI := gl_GetProc('glPNTrianglesfATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_separate_stencil}
-  if GL_ATI_separate_stencil then
-  begin
-    glStencilOpSeparateATI := gl_GetProc('glStencilOpSeparateATI');
-    glStencilFuncSeparateATI := gl_GetProc('glStencilFuncSeparateATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_array_object}
-  if GL_ATI_vertex_array_object then
-  begin
-    glNewObjectBufferATI := gl_GetProc('glNewObjectBufferATI');
-    glIsObjectBufferATI := gl_GetProc('glIsObjectBufferATI');
-    glUpdateObjectBufferATI := gl_GetProc('glUpdateObjectBufferATI');
-    glGetObjectBufferfvATI := gl_GetProc('glGetObjectBufferfvATI');
-    glGetObjectBufferivATI := gl_GetProc('glGetObjectBufferivATI');
-    glFreeObjectBufferATI := gl_GetProc('glFreeObjectBufferATI');
-    glArrayObjectATI := gl_GetProc('glArrayObjectATI');
-    glGetArrayObjectfvATI := gl_GetProc('glGetArrayObjectfvATI');
-    glGetArrayObjectivATI := gl_GetProc('glGetArrayObjectivATI');
-    glVariantArrayObjectATI := gl_GetProc('glVariantArrayObjectATI');
-    glGetVariantArrayObjectfvATI := gl_GetProc('glGetVariantArrayObjectfvATI');
-    glGetVariantArrayObjectivATI := gl_GetProc('glGetVariantArrayObjectivATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_attrib_array_object}
-  if GL_ATI_vertex_attrib_array_object then
-  begin
-    glVertexAttribArrayObjectATI := gl_GetProc('glVertexAttribArrayObjectATI');
-    glGetVertexAttribArrayObjectfvATI := gl_GetProc('glGetVertexAttribArrayObjectfvATI');
-    glGetVertexAttribArrayObjectivATI := gl_GetProc('glGetVertexAttribArrayObjectivATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_ATI_vertex_streams}
-  if GL_ATI_vertex_streams then
-  begin
-    glVertexStream1sATI := gl_GetProc('glVertexStream1sATI');
-    glVertexStream1svATI := gl_GetProc('glVertexStream1svATI');
-    glVertexStream1iATI := gl_GetProc('glVertexStream1iATI');
-    glVertexStream1ivATI := gl_GetProc('glVertexStream1ivATI');
-    glVertexStream1fATI := gl_GetProc('glVertexStream1fATI');
-    glVertexStream1fvATI := gl_GetProc('glVertexStream1fvATI');
-    glVertexStream1dATI := gl_GetProc('glVertexStream1dATI');
-    glVertexStream1dvATI := gl_GetProc('glVertexStream1dvATI');
-    glVertexStream2sATI := gl_GetProc('glVertexStream2sATI');
-    glVertexStream2svATI := gl_GetProc('glVertexStream2svATI');
-    glVertexStream2iATI := gl_GetProc('glVertexStream2iATI');
-    glVertexStream2ivATI := gl_GetProc('glVertexStream2ivATI');
-    glVertexStream2fATI := gl_GetProc('glVertexStream2fATI');
-    glVertexStream2fvATI := gl_GetProc('glVertexStream2fvATI');
-    glVertexStream2dATI := gl_GetProc('glVertexStream2dATI');
-    glVertexStream2dvATI := gl_GetProc('glVertexStream2dvATI');
-    glVertexStream3sATI := gl_GetProc('glVertexStream3sATI');
-    glVertexStream3svATI := gl_GetProc('glVertexStream3svATI');
-    glVertexStream3iATI := gl_GetProc('glVertexStream3iATI');
-    glVertexStream3ivATI := gl_GetProc('glVertexStream3ivATI');
-    glVertexStream3fATI := gl_GetProc('glVertexStream3fATI');
-    glVertexStream3fvATI := gl_GetProc('glVertexStream3fvATI');
-    glVertexStream3dATI := gl_GetProc('glVertexStream3dATI');
-    glVertexStream3dvATI := gl_GetProc('glVertexStream3dvATI');
-    glVertexStream4sATI := gl_GetProc('glVertexStream4sATI');
-    glVertexStream4svATI := gl_GetProc('glVertexStream4svATI');
-    glVertexStream4iATI := gl_GetProc('glVertexStream4iATI');
-    glVertexStream4ivATI := gl_GetProc('glVertexStream4ivATI');
-    glVertexStream4fATI := gl_GetProc('glVertexStream4fATI');
-    glVertexStream4fvATI := gl_GetProc('glVertexStream4fvATI');
-    glVertexStream4dATI := gl_GetProc('glVertexStream4dATI');
-    glVertexStream4dvATI := gl_GetProc('glVertexStream4dvATI');
-    glNormalStream3bATI := gl_GetProc('glNormalStream3bATI');
-    glNormalStream3bvATI := gl_GetProc('glNormalStream3bvATI');
-    glNormalStream3sATI := gl_GetProc('glNormalStream3sATI');
-    glNormalStream3svATI := gl_GetProc('glNormalStream3svATI');
-    glNormalStream3iATI := gl_GetProc('glNormalStream3iATI');
-    glNormalStream3ivATI := gl_GetProc('glNormalStream3ivATI');
-    glNormalStream3fATI := gl_GetProc('glNormalStream3fATI');
-    glNormalStream3fvATI := gl_GetProc('glNormalStream3fvATI');
-    glNormalStream3dATI := gl_GetProc('glNormalStream3dATI');
-    glNormalStream3dvATI := gl_GetProc('glNormalStream3dvATI');
-    glClientActiveVertexStreamATI := gl_GetProc('glClientActiveVertexStreamATI');
-    glVertexBlendEnviATI := gl_GetProc('glVertexBlendEnviATI');
-    glVertexBlendEnvfATI := gl_GetProc('glVertexBlendEnvfATI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_EGL_image_storage}
-  if GL_EXT_EGL_image_storage then
-  begin
-    glEGLImageTargetTexStorageEXT := gl_GetProc('glEGLImageTargetTexStorageEXT');
-    glEGLImageTargetTextureStorageEXT := gl_GetProc('glEGLImageTargetTextureStorageEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_bindable_uniform}
-  if GL_EXT_bindable_uniform then
-  begin
-    glUniformBufferEXT := gl_GetProc('glUniformBufferEXT');
-    glGetUniformBufferSizeEXT := gl_GetProc('glGetUniformBufferSizeEXT');
-    glGetUniformOffsetEXT := gl_GetProc('glGetUniformOffsetEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_color}
-  if GL_EXT_blend_color then
-    glBlendColorEXT := gl_GetProc('glBlendColorEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_equation_separate}
-  if GL_EXT_blend_equation_separate then
-    glBlendEquationSeparateEXT := gl_GetProc('glBlendEquationSeparateEXT');
-  {$EndIf}
-
-(*  {$IfDef GL_EXT_blend_func_separate}
-  glBlendFuncSeparateEXT := gl_GetProc('glBlendFuncSeparateEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_blend_minmax}
-  glBlendEquationEXT := gl_GetProc('glBlendEquationEXT');
-  {$EndIf}  *)
-
-  {$IfDef GL_EXT_color_subtable}
-  if GL_EXT_color_subtable then
-  begin
-    glColorSubTableEXT := gl_GetProc('glColorSubTableEXT');
-    glCopyColorSubTableEXT := gl_GetProc('glCopyColorSubTableEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_compiled_vertex_array}
-  if GL_EXT_compiled_vertex_array then
-  begin
-    glLockArraysEXT := gl_GetProc('glLockArraysEXT');
-    glUnlockArraysEXT := gl_GetProc('glUnlockArraysEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_convolution}
-  if GL_EXT_convolution then
-  begin
-    glConvolutionFilter1DEXT := gl_GetProc('glConvolutionFilter1DEXT');
-    glConvolutionFilter2DEXT := gl_GetProc('glConvolutionFilter2DEXT');
-    glConvolutionParameterfEXT := gl_GetProc('glConvolutionParameterfEXT');
-    glConvolutionParameterfvEXT := gl_GetProc('glConvolutionParameterfvEXT');
-    glConvolutionParameteriEXT := gl_GetProc('glConvolutionParameteriEXT');
-    glConvolutionParameterivEXT := gl_GetProc('glConvolutionParameterivEXT');
-    glCopyConvolutionFilter1DEXT := gl_GetProc('glCopyConvolutionFilter1DEXT');
-    glCopyConvolutionFilter2DEXT := gl_GetProc('glCopyConvolutionFilter2DEXT');
-    glGetConvolutionFilterEXT := gl_GetProc('glGetConvolutionFilterEXT');
-    glGetConvolutionParameterfvEXT := gl_GetProc('glGetConvolutionParameterfvEXT');
-    glGetConvolutionParameterivEXT := gl_GetProc('glGetConvolutionParameterivEXT');
-    glGetSeparableFilterEXT := gl_GetProc('glGetSeparableFilterEXT');
-    glSeparableFilter2DEXT := gl_GetProc('glSeparableFilter2DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_coordinate_frame}
-  if GL_EXT_coordinate_frame then
-  begin
-    glTangent3bEXT := gl_GetProc('glTangent3bEXT');
-    glTangent3bvEXT := gl_GetProc('glTangent3bvEXT');
-    glTangent3dEXT := gl_GetProc('glTangent3dEXT');
-    glTangent3dvEXT := gl_GetProc('glTangent3dvEXT');
-    glTangent3fEXT := gl_GetProc('glTangent3fEXT');
-    glTangent3fvEXT := gl_GetProc('glTangent3fvEXT');
-    glTangent3iEXT := gl_GetProc('glTangent3iEXT');
-    glTangent3ivEXT := gl_GetProc('glTangent3ivEXT');
-    glTangent3sEXT := gl_GetProc('glTangent3sEXT');
-    glTangent3svEXT := gl_GetProc('glTangent3svEXT');
-    glBinormal3bEXT := gl_GetProc('glBinormal3bEXT');
-    glBinormal3bvEXT := gl_GetProc('glBinormal3bvEXT');
-    glBinormal3dEXT := gl_GetProc('glBinormal3dEXT');
-    glBinormal3dvEXT := gl_GetProc('glBinormal3dvEXT');
-    glBinormal3fEXT := gl_GetProc('glBinormal3fEXT');
-    glBinormal3fvEXT := gl_GetProc('glBinormal3fvEXT');
-    glBinormal3iEXT := gl_GetProc('glBinormal3iEXT');
-    glBinormal3ivEXT := gl_GetProc('glBinormal3ivEXT');
-    glBinormal3sEXT := gl_GetProc('glBinormal3sEXT');
-    glBinormal3svEXT := gl_GetProc('glBinormal3svEXT');
-    glTangentPointerEXT := gl_GetProc('glTangentPointerEXT');
-    glBinormalPointerEXT := gl_GetProc('glBinormalPointerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_copy_texture}
-  if GL_EXT_copy_texture then
-  begin
-    glCopyTexImage1DEXT := gl_GetProc('glCopyTexImage1DEXT');
-    glCopyTexImage2DEXT := gl_GetProc('glCopyTexImage2DEXT');
-    glCopyTexSubImage1DEXT := gl_GetProc('glCopyTexSubImage1DEXT');
-    glCopyTexSubImage2DEXT := gl_GetProc('glCopyTexSubImage2DEXT');
-    glCopyTexSubImage3DEXT := gl_GetProc('glCopyTexSubImage3DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_cull_vertex}
-  if GL_EXT_cull_vertex then
-  begin
-    glCullParameterdvEXT := gl_GetProc('glCullParameterdvEXT');
-    glCullParameterfvEXT := gl_GetProc('glCullParameterfvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_debug_label}
-  if GL_EXT_debug_label then
-  begin
-    glLabelObjectEXT := gl_GetProc('glLabelObjectEXT');
-    glGetObjectLabelEXT := gl_GetProc('glGetObjectLabelEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_debug_marker}
-  if GL_EXT_debug_marker then
-  begin
-    glInsertEventMarkerEXT := gl_GetProc('glInsertEventMarkerEXT');
-    glPushGroupMarkerEXT := gl_GetProc('glPushGroupMarkerEXT');
-    glPopGroupMarkerEXT := gl_GetProc('glPopGroupMarkerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_depth_bounds_test}
-  if GL_EXT_depth_bounds_test then
-    glDepthBoundsEXT := gl_GetProc('glDepthBoundsEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_direct_state_access}
-  if GL_EXT_direct_state_access then
-  begin
-    glMatrixLoadfEXT := gl_GetProc('glMatrixLoadfEXT');
-    glMatrixLoaddEXT := gl_GetProc('glMatrixLoaddEXT');
-    glMatrixMultfEXT := gl_GetProc('glMatrixMultfEXT');
-    glMatrixMultdEXT := gl_GetProc('glMatrixMultdEXT');
-    glMatrixLoadIdentityEXT := gl_GetProc('glMatrixLoadIdentityEXT');
-    glMatrixRotatefEXT := gl_GetProc('glMatrixRotatefEXT');
-    glMatrixRotatedEXT := gl_GetProc('glMatrixRotatedEXT');
-    glMatrixScalefEXT := gl_GetProc('glMatrixScalefEXT');
-    glMatrixScaledEXT := gl_GetProc('glMatrixScaledEXT');
-    glMatrixTranslatefEXT := gl_GetProc('glMatrixTranslatefEXT');
-    glMatrixTranslatedEXT := gl_GetProc('glMatrixTranslatedEXT');
-    glMatrixFrustumEXT := gl_GetProc('glMatrixFrustumEXT');
-    glMatrixOrthoEXT := gl_GetProc('glMatrixOrthoEXT');
-    glMatrixPopEXT := gl_GetProc('glMatrixPopEXT');
-    glMatrixPushEXT := gl_GetProc('glMatrixPushEXT');
-    glClientAttribDefaultEXT := gl_GetProc('glClientAttribDefaultEXT');
-    glPushClientAttribDefaultEXT := gl_GetProc('glPushClientAttribDefaultEXT');
-    glTextureParameterfEXT := gl_GetProc('glTextureParameterfEXT');
-    glTextureParameterfvEXT := gl_GetProc('glTextureParameterfvEXT');
-    glTextureParameteriEXT := gl_GetProc('glTextureParameteriEXT');
-    glTextureParameterivEXT := gl_GetProc('glTextureParameterivEXT');
-    glTextureImage1DEXT := gl_GetProc('glTextureImage1DEXT');
-    glTextureImage2DEXT := gl_GetProc('glTextureImage2DEXT');
-    glTextureSubImage1DEXT := gl_GetProc('glTextureSubImage1DEXT');
-    glTextureSubImage2DEXT := gl_GetProc('glTextureSubImage2DEXT');
-    glCopyTextureImage1DEXT := gl_GetProc('glCopyTextureImage1DEXT');
-    glCopyTextureImage2DEXT := gl_GetProc('glCopyTextureImage2DEXT');
-    glCopyTextureSubImage1DEXT := gl_GetProc('glCopyTextureSubImage1DEXT');
-    glCopyTextureSubImage2DEXT := gl_GetProc('glCopyTextureSubImage2DEXT');
-    glGetTextureImageEXT := gl_GetProc('glGetTextureImageEXT');
-    glGetTextureParameterfvEXT := gl_GetProc('glGetTextureParameterfvEXT');
-    glGetTextureParameterivEXT := gl_GetProc('glGetTextureParameterivEXT');
-    glGetTextureLevelParameterfvEXT := gl_GetProc('glGetTextureLevelParameterfvEXT');
-    glGetTextureLevelParameterivEXT := gl_GetProc('glGetTextureLevelParameterivEXT');
-    glTextureImage3DEXT := gl_GetProc('glTextureImage3DEXT');
-    glTextureSubImage3DEXT := gl_GetProc('glTextureSubImage3DEXT');
-    glCopyTextureSubImage3DEXT := gl_GetProc('glCopyTextureSubImage3DEXT');
-    glBindMultiTextureEXT := gl_GetProc('glBindMultiTextureEXT');
-    glMultiTexCoordPointerEXT := gl_GetProc('glMultiTexCoordPointerEXT');
-    glMultiTexEnvfEXT := gl_GetProc('glMultiTexEnvfEXT');
-    glMultiTexEnvfvEXT := gl_GetProc('glMultiTexEnvfvEXT');
-    glMultiTexEnviEXT := gl_GetProc('glMultiTexEnviEXT');
-    glMultiTexEnvivEXT := gl_GetProc('glMultiTexEnvivEXT');
-    glMultiTexGendEXT := gl_GetProc('glMultiTexGendEXT');
-    glMultiTexGendvEXT := gl_GetProc('glMultiTexGendvEXT');
-    glMultiTexGenfEXT := gl_GetProc('glMultiTexGenfEXT');
-    glMultiTexGenfvEXT := gl_GetProc('glMultiTexGenfvEXT');
-    glMultiTexGeniEXT := gl_GetProc('glMultiTexGeniEXT');
-    glMultiTexGenivEXT := gl_GetProc('glMultiTexGenivEXT');
-    glGetMultiTexEnvfvEXT := gl_GetProc('glGetMultiTexEnvfvEXT');
-    glGetMultiTexEnvivEXT := gl_GetProc('glGetMultiTexEnvivEXT');
-    glGetMultiTexGendvEXT := gl_GetProc('glGetMultiTexGendvEXT');
-    glGetMultiTexGenfvEXT := gl_GetProc('glGetMultiTexGenfvEXT');
-    glGetMultiTexGenivEXT := gl_GetProc('glGetMultiTexGenivEXT');
-    glMultiTexParameteriEXT := gl_GetProc('glMultiTexParameteriEXT');
-    glMultiTexParameterivEXT := gl_GetProc('glMultiTexParameterivEXT');
-    glMultiTexParameterfEXT := gl_GetProc('glMultiTexParameterfEXT');
-    glMultiTexParameterfvEXT := gl_GetProc('glMultiTexParameterfvEXT');
-    glMultiTexImage1DEXT := gl_GetProc('glMultiTexImage1DEXT');
-    glMultiTexImage2DEXT := gl_GetProc('glMultiTexImage2DEXT');
-    glMultiTexSubImage1DEXT := gl_GetProc('glMultiTexSubImage1DEXT');
-    glMultiTexSubImage2DEXT := gl_GetProc('glMultiTexSubImage2DEXT');
-    glCopyMultiTexImage1DEXT := gl_GetProc('glCopyMultiTexImage1DEXT');
-    glCopyMultiTexImage2DEXT := gl_GetProc('glCopyMultiTexImage2DEXT');
-    glCopyMultiTexSubImage1DEXT := gl_GetProc('glCopyMultiTexSubImage1DEXT');
-    glCopyMultiTexSubImage2DEXT := gl_GetProc('glCopyMultiTexSubImage2DEXT');
-    glGetMultiTexImageEXT := gl_GetProc('glGetMultiTexImageEXT');
-    glGetMultiTexParameterfvEXT := gl_GetProc('glGetMultiTexParameterfvEXT');
-    glGetMultiTexParameterivEXT := gl_GetProc('glGetMultiTexParameterivEXT');
-    glGetMultiTexLevelParameterfvEXT := gl_GetProc('glGetMultiTexLevelParameterfvEXT');
-    glGetMultiTexLevelParameterivEXT := gl_GetProc('glGetMultiTexLevelParameterivEXT');
-    glMultiTexImage3DEXT := gl_GetProc('glMultiTexImage3DEXT');
-    glMultiTexSubImage3DEXT := gl_GetProc('glMultiTexSubImage3DEXT');
-    glCopyMultiTexSubImage3DEXT := gl_GetProc('glCopyMultiTexSubImage3DEXT');
-    glEnableClientStateIndexedEXT := gl_GetProc('glEnableClientStateIndexedEXT');
-    glDisableClientStateIndexedEXT := gl_GetProc('glDisableClientStateIndexedEXT');
-    glGetFloatIndexedvEXT := gl_GetProc('glGetFloatIndexedvEXT');
-    glGetDoubleIndexedvEXT := gl_GetProc('glGetDoubleIndexedvEXT');
-    glGetPointerIndexedvEXT := gl_GetProc('glGetPointerIndexedvEXT');
-    glEnableIndexedEXT := gl_GetProc('glEnableIndexedEXT');
-    glDisableIndexedEXT := gl_GetProc('glDisableIndexedEXT');
-    glIsEnabledIndexedEXT := gl_GetProc('glIsEnabledIndexedEXT');
-    glGetIntegerIndexedvEXT := gl_GetProc('glGetIntegerIndexedvEXT');
-    glGetBooleanIndexedvEXT := gl_GetProc('glGetBooleanIndexedvEXT');
-    glCompressedTextureImage3DEXT := gl_GetProc('glCompressedTextureImage3DEXT');
-    glCompressedTextureImage2DEXT := gl_GetProc('glCompressedTextureImage2DEXT');
-    glCompressedTextureImage1DEXT := gl_GetProc('glCompressedTextureImage1DEXT');
-    glCompressedTextureSubImage3DEXT := gl_GetProc('glCompressedTextureSubImage3DEXT');
-    glCompressedTextureSubImage2DEXT := gl_GetProc('glCompressedTextureSubImage2DEXT');
-    glCompressedTextureSubImage1DEXT := gl_GetProc('glCompressedTextureSubImage1DEXT');
-    glGetCompressedTextureImageEXT := gl_GetProc('glGetCompressedTextureImageEXT');
-    glCompressedMultiTexImage3DEXT := gl_GetProc('glCompressedMultiTexImage3DEXT');
-    glCompressedMultiTexImage2DEXT := gl_GetProc('glCompressedMultiTexImage2DEXT');
-    glCompressedMultiTexImage1DEXT := gl_GetProc('glCompressedMultiTexImage1DEXT');
-    glCompressedMultiTexSubImage3DEXT := gl_GetProc('glCompressedMultiTexSubImage3DEXT');
-    glCompressedMultiTexSubImage2DEXT := gl_GetProc('glCompressedMultiTexSubImage2DEXT');
-    glCompressedMultiTexSubImage1DEXT := gl_GetProc('glCompressedMultiTexSubImage1DEXT');
-    glGetCompressedMultiTexImageEXT := gl_GetProc('glGetCompressedMultiTexImageEXT');
-    glMatrixLoadTransposefEXT := gl_GetProc('glMatrixLoadTransposefEXT');
-    glMatrixLoadTransposedEXT := gl_GetProc('glMatrixLoadTransposedEXT');
-    glMatrixMultTransposefEXT := gl_GetProc('glMatrixMultTransposefEXT');
-    glMatrixMultTransposedEXT := gl_GetProc('glMatrixMultTransposedEXT');
-    glNamedBufferDataEXT := gl_GetProc('glNamedBufferDataEXT');
-    glNamedBufferSubDataEXT := gl_GetProc('glNamedBufferSubDataEXT');
-    glMapNamedBufferEXT := gl_GetProc('glMapNamedBufferEXT');
-    glUnmapNamedBufferEXT := gl_GetProc('glUnmapNamedBufferEXT');
-    glGetNamedBufferParameterivEXT := gl_GetProc('glGetNamedBufferParameterivEXT');
-    glGetNamedBufferPointervEXT := gl_GetProc('glGetNamedBufferPointervEXT');
-    glGetNamedBufferSubDataEXT := gl_GetProc('glGetNamedBufferSubDataEXT');
-    glProgramUniform1fEXT := gl_GetProc('glProgramUniform1fEXT');
-    glProgramUniform2fEXT := gl_GetProc('glProgramUniform2fEXT');
-    glProgramUniform3fEXT := gl_GetProc('glProgramUniform3fEXT');
-    glProgramUniform4fEXT := gl_GetProc('glProgramUniform4fEXT');
-    glProgramUniform1iEXT := gl_GetProc('glProgramUniform1iEXT');
-    glProgramUniform2iEXT := gl_GetProc('glProgramUniform2iEXT');
-    glProgramUniform3iEXT := gl_GetProc('glProgramUniform3iEXT');
-    glProgramUniform4iEXT := gl_GetProc('glProgramUniform4iEXT');
-    glProgramUniform1fvEXT := gl_GetProc('glProgramUniform1fvEXT');
-    glProgramUniform2fvEXT := gl_GetProc('glProgramUniform2fvEXT');
-    glProgramUniform3fvEXT := gl_GetProc('glProgramUniform3fvEXT');
-    glProgramUniform4fvEXT := gl_GetProc('glProgramUniform4fvEXT');
-    glProgramUniform1ivEXT := gl_GetProc('glProgramUniform1ivEXT');
-    glProgramUniform2ivEXT := gl_GetProc('glProgramUniform2ivEXT');
-    glProgramUniform3ivEXT := gl_GetProc('glProgramUniform3ivEXT');
-    glProgramUniform4ivEXT := gl_GetProc('glProgramUniform4ivEXT');
-    glProgramUniformMatrix2fvEXT := gl_GetProc('glProgramUniformMatrix2fvEXT');
-    glProgramUniformMatrix3fvEXT := gl_GetProc('glProgramUniformMatrix3fvEXT');
-    glProgramUniformMatrix4fvEXT := gl_GetProc('glProgramUniformMatrix4fvEXT');
-    glProgramUniformMatrix2x3fvEXT := gl_GetProc('glProgramUniformMatrix2x3fvEXT');
-    glProgramUniformMatrix3x2fvEXT := gl_GetProc('glProgramUniformMatrix3x2fvEXT');
-    glProgramUniformMatrix2x4fvEXT := gl_GetProc('glProgramUniformMatrix2x4fvEXT');
-    glProgramUniformMatrix4x2fvEXT := gl_GetProc('glProgramUniformMatrix4x2fvEXT');
-    glProgramUniformMatrix3x4fvEXT := gl_GetProc('glProgramUniformMatrix3x4fvEXT');
-    glProgramUniformMatrix4x3fvEXT := gl_GetProc('glProgramUniformMatrix4x3fvEXT');
-    glTextureBufferEXT := gl_GetProc('glTextureBufferEXT');
-    glMultiTexBufferEXT := gl_GetProc('glMultiTexBufferEXT');
-    glTextureParameterIivEXT := gl_GetProc('glTextureParameterIivEXT');
-    glTextureParameterIuivEXT := gl_GetProc('glTextureParameterIuivEXT');
-    glGetTextureParameterIivEXT := gl_GetProc('glGetTextureParameterIivEXT');
-    glGetTextureParameterIuivEXT := gl_GetProc('glGetTextureParameterIuivEXT');
-    glMultiTexParameterIivEXT := gl_GetProc('glMultiTexParameterIivEXT');
-    glMultiTexParameterIuivEXT := gl_GetProc('glMultiTexParameterIuivEXT');
-    glGetMultiTexParameterIivEXT := gl_GetProc('glGetMultiTexParameterIivEXT');
-    glGetMultiTexParameterIuivEXT := gl_GetProc('glGetMultiTexParameterIuivEXT');
-    glProgramUniform1uiEXT := gl_GetProc('glProgramUniform1uiEXT');
-    glProgramUniform2uiEXT := gl_GetProc('glProgramUniform2uiEXT');
-    glProgramUniform3uiEXT := gl_GetProc('glProgramUniform3uiEXT');
-    glProgramUniform4uiEXT := gl_GetProc('glProgramUniform4uiEXT');
-    glProgramUniform1uivEXT := gl_GetProc('glProgramUniform1uivEXT');
-    glProgramUniform2uivEXT := gl_GetProc('glProgramUniform2uivEXT');
-    glProgramUniform3uivEXT := gl_GetProc('glProgramUniform3uivEXT');
-    glProgramUniform4uivEXT := gl_GetProc('glProgramUniform4uivEXT');
-    glNamedProgramLocalParameters4fvEXT := gl_GetProc('glNamedProgramLocalParameters4fvEXT');
-    glNamedProgramLocalParameterI4iEXT := gl_GetProc('glNamedProgramLocalParameterI4iEXT');
-    glNamedProgramLocalParameterI4ivEXT := gl_GetProc('glNamedProgramLocalParameterI4ivEXT');
-    glNamedProgramLocalParametersI4ivEXT := gl_GetProc('glNamedProgramLocalParametersI4ivEXT');
-    glNamedProgramLocalParameterI4uiEXT := gl_GetProc('glNamedProgramLocalParameterI4uiEXT');
-    glNamedProgramLocalParameterI4uivEXT := gl_GetProc('glNamedProgramLocalParameterI4uivEXT');
-    glNamedProgramLocalParametersI4uivEXT := gl_GetProc('glNamedProgramLocalParametersI4uivEXT');
-    glGetNamedProgramLocalParameterIivEXT := gl_GetProc('glGetNamedProgramLocalParameterIivEXT');
-    glGetNamedProgramLocalParameterIuivEXT := gl_GetProc('glGetNamedProgramLocalParameterIuivEXT');
-    glEnableClientStateiEXT := gl_GetProc('glEnableClientStateiEXT');
-    glDisableClientStateiEXT := gl_GetProc('glDisableClientStateiEXT');
-    glGetFloati_vEXT := gl_GetProc('glGetFloati_vEXT');
-    glGetDoublei_vEXT := gl_GetProc('glGetDoublei_vEXT');
-    glGetPointeri_vEXT := gl_GetProc('glGetPointeri_vEXT');
-    glNamedProgramStringEXT := gl_GetProc('glNamedProgramStringEXT');
-    glNamedProgramLocalParameter4dEXT := gl_GetProc('glNamedProgramLocalParameter4dEXT');
-    glNamedProgramLocalParameter4dvEXT := gl_GetProc('glNamedProgramLocalParameter4dvEXT');
-    glNamedProgramLocalParameter4fEXT := gl_GetProc('glNamedProgramLocalParameter4fEXT');
-    glNamedProgramLocalParameter4fvEXT := gl_GetProc('glNamedProgramLocalParameter4fvEXT');
-    glGetNamedProgramLocalParameterdvEXT := gl_GetProc('glGetNamedProgramLocalParameterdvEXT');
-    glGetNamedProgramLocalParameterfvEXT := gl_GetProc('glGetNamedProgramLocalParameterfvEXT');
-    glGetNamedProgramivEXT := gl_GetProc('glGetNamedProgramivEXT');
-    glGetNamedProgramStringEXT := gl_GetProc('glGetNamedProgramStringEXT');
-    glNamedRenderbufferStorageEXT := gl_GetProc('glNamedRenderbufferStorageEXT');
-    glGetNamedRenderbufferParameterivEXT := gl_GetProc('glGetNamedRenderbufferParameterivEXT');
-    glNamedRenderbufferStorageMultisampleEXT := gl_GetProc('glNamedRenderbufferStorageMultisampleEXT');
-    glNamedRenderbufferStorageMultisampleCoverageEXT := gl_GetProc('glNamedRenderbufferStorageMultisampleCoverageEXT');
-    glCheckNamedFramebufferStatusEXT := gl_GetProc('glCheckNamedFramebufferStatusEXT');
-    glNamedFramebufferTexture1DEXT := gl_GetProc('glNamedFramebufferTexture1DEXT');
-    glNamedFramebufferTexture2DEXT := gl_GetProc('glNamedFramebufferTexture2DEXT');
-    glNamedFramebufferTexture3DEXT := gl_GetProc('glNamedFramebufferTexture3DEXT');
-    glNamedFramebufferRenderbufferEXT := gl_GetProc('glNamedFramebufferRenderbufferEXT');
-    glGetNamedFramebufferAttachmentParameterivEXT := gl_GetProc('glGetNamedFramebufferAttachmentParameterivEXT');
-    glGenerateTextureMipmapEXT := gl_GetProc('glGenerateTextureMipmapEXT');
-    glGenerateMultiTexMipmapEXT := gl_GetProc('glGenerateMultiTexMipmapEXT');
-    glFramebufferDrawBufferEXT := gl_GetProc('glFramebufferDrawBufferEXT');
-    glFramebufferDrawBuffersEXT := gl_GetProc('glFramebufferDrawBuffersEXT');
-    glFramebufferReadBufferEXT := gl_GetProc('glFramebufferReadBufferEXT');
-    glGetFramebufferParameterivEXT := gl_GetProc('glGetFramebufferParameterivEXT');
-    glNamedCopyBufferSubDataEXT := gl_GetProc('glNamedCopyBufferSubDataEXT');
-    glNamedFramebufferTextureEXT := gl_GetProc('glNamedFramebufferTextureEXT');
-    glNamedFramebufferTextureLayerEXT := gl_GetProc('glNamedFramebufferTextureLayerEXT');
-    glNamedFramebufferTextureFaceEXT := gl_GetProc('glNamedFramebufferTextureFaceEXT');
-    glTextureRenderbufferEXT := gl_GetProc('glTextureRenderbufferEXT');
-    glMultiTexRenderbufferEXT := gl_GetProc('glMultiTexRenderbufferEXT');
-    glVertexArrayVertexOffsetEXT := gl_GetProc('glVertexArrayVertexOffsetEXT');
-    glVertexArrayColorOffsetEXT := gl_GetProc('glVertexArrayColorOffsetEXT');
-    glVertexArrayEdgeFlagOffsetEXT := gl_GetProc('glVertexArrayEdgeFlagOffsetEXT');
-    glVertexArrayIndexOffsetEXT := gl_GetProc('glVertexArrayIndexOffsetEXT');
-    glVertexArrayNormalOffsetEXT := gl_GetProc('glVertexArrayNormalOffsetEXT');
-    glVertexArrayTexCoordOffsetEXT := gl_GetProc('glVertexArrayTexCoordOffsetEXT');
-    glVertexArrayMultiTexCoordOffsetEXT := gl_GetProc('glVertexArrayMultiTexCoordOffsetEXT');
-    glVertexArrayFogCoordOffsetEXT := gl_GetProc('glVertexArrayFogCoordOffsetEXT');
-    glVertexArraySecondaryColorOffsetEXT := gl_GetProc('glVertexArraySecondaryColorOffsetEXT');
-    glVertexArrayVertexAttribOffsetEXT := gl_GetProc('glVertexArrayVertexAttribOffsetEXT');
-    glVertexArrayVertexAttribIOffsetEXT := gl_GetProc('glVertexArrayVertexAttribIOffsetEXT');
-    glEnableVertexArrayEXT := gl_GetProc('glEnableVertexArrayEXT');
-    glDisableVertexArrayEXT := gl_GetProc('glDisableVertexArrayEXT');
-    glEnableVertexArrayAttribEXT := gl_GetProc('glEnableVertexArrayAttribEXT');
-    glDisableVertexArrayAttribEXT := gl_GetProc('glDisableVertexArrayAttribEXT');
-    glGetVertexArrayIntegervEXT := gl_GetProc('glGetVertexArrayIntegervEXT');
-    glGetVertexArrayPointervEXT := gl_GetProc('glGetVertexArrayPointervEXT');
-    glGetVertexArrayIntegeri_vEXT := gl_GetProc('glGetVertexArrayIntegeri_vEXT');
-    glGetVertexArrayPointeri_vEXT := gl_GetProc('glGetVertexArrayPointeri_vEXT');
-    glMapNamedBufferRangeEXT := gl_GetProc('glMapNamedBufferRangeEXT');
-    glFlushMappedNamedBufferRangeEXT := gl_GetProc('glFlushMappedNamedBufferRangeEXT');
-    glNamedBufferStorageEXT := gl_GetProc('glNamedBufferStorageEXT');
-    glClearNamedBufferDataEXT := gl_GetProc('glClearNamedBufferDataEXT');
-    glClearNamedBufferSubDataEXT := gl_GetProc('glClearNamedBufferSubDataEXT');
-    glNamedFramebufferParameteriEXT := gl_GetProc('glNamedFramebufferParameteriEXT');
-    glGetNamedFramebufferParameterivEXT := gl_GetProc('glGetNamedFramebufferParameterivEXT');
-    glProgramUniform1dEXT := gl_GetProc('glProgramUniform1dEXT');
-    glProgramUniform2dEXT := gl_GetProc('glProgramUniform2dEXT');
-    glProgramUniform3dEXT := gl_GetProc('glProgramUniform3dEXT');
-    glProgramUniform4dEXT := gl_GetProc('glProgramUniform4dEXT');
-    glProgramUniform1dvEXT := gl_GetProc('glProgramUniform1dvEXT');
-    glProgramUniform2dvEXT := gl_GetProc('glProgramUniform2dvEXT');
-    glProgramUniform3dvEXT := gl_GetProc('glProgramUniform3dvEXT');
-    glProgramUniform4dvEXT := gl_GetProc('glProgramUniform4dvEXT');
-    glProgramUniformMatrix2dvEXT := gl_GetProc('glProgramUniformMatrix2dvEXT');
-    glProgramUniformMatrix3dvEXT := gl_GetProc('glProgramUniformMatrix3dvEXT');
-    glProgramUniformMatrix4dvEXT := gl_GetProc('glProgramUniformMatrix4dvEXT');
-    glProgramUniformMatrix2x3dvEXT := gl_GetProc('glProgramUniformMatrix2x3dvEXT');
-    glProgramUniformMatrix2x4dvEXT := gl_GetProc('glProgramUniformMatrix2x4dvEXT');
-    glProgramUniformMatrix3x2dvEXT := gl_GetProc('glProgramUniformMatrix3x2dvEXT');
-    glProgramUniformMatrix3x4dvEXT := gl_GetProc('glProgramUniformMatrix3x4dvEXT');
-    glProgramUniformMatrix4x2dvEXT := gl_GetProc('glProgramUniformMatrix4x2dvEXT');
-    glProgramUniformMatrix4x3dvEXT := gl_GetProc('glProgramUniformMatrix4x3dvEXT');
-    glTextureBufferRangeEXT := gl_GetProc('glTextureBufferRangeEXT');
-    glTextureStorage1DEXT := gl_GetProc('glTextureStorage1DEXT');
-    glTextureStorage2DEXT := gl_GetProc('glTextureStorage2DEXT');
-    glTextureStorage3DEXT := gl_GetProc('glTextureStorage3DEXT');
-    glTextureStorage2DMultisampleEXT := gl_GetProc('glTextureStorage2DMultisampleEXT');
-    glTextureStorage3DMultisampleEXT := gl_GetProc('glTextureStorage3DMultisampleEXT');
-    glVertexArrayBindVertexBufferEXT := gl_GetProc('glVertexArrayBindVertexBufferEXT');
-    glVertexArrayVertexAttribFormatEXT := gl_GetProc('glVertexArrayVertexAttribFormatEXT');
-    glVertexArrayVertexAttribIFormatEXT := gl_GetProc('glVertexArrayVertexAttribIFormatEXT');
-    glVertexArrayVertexAttribLFormatEXT := gl_GetProc('glVertexArrayVertexAttribLFormatEXT');
-    glVertexArrayVertexAttribBindingEXT := gl_GetProc('glVertexArrayVertexAttribBindingEXT');
-    glVertexArrayVertexBindingDivisorEXT := gl_GetProc('glVertexArrayVertexBindingDivisorEXT');
-    glVertexArrayVertexAttribLOffsetEXT := gl_GetProc('glVertexArrayVertexAttribLOffsetEXT');
-    glTexturePageCommitmentEXT := gl_GetProc('glTexturePageCommitmentEXT');
-    glVertexArrayVertexAttribDivisorEXT := gl_GetProc('glVertexArrayVertexAttribDivisorEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_buffers2}
-  if GL_EXT_draw_buffers2 then
-    glColorMaskIndexedEXT := gl_GetProc('glColorMaskIndexedEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_instanced}
-  if GL_EXT_draw_instanced then
-  begin
-    glDrawArraysInstancedEXT := gl_GetProc('glDrawArraysInstancedEXT');
-    glDrawElementsInstancedEXT := gl_GetProc('glDrawElementsInstancedEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_draw_range_elements}
-  if GL_EXT_draw_range_elements then
-    glDrawRangeElementsEXT := gl_GetProc('glDrawRangeElementsEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_external_buffer}
-  if GL_EXT_external_buffer then
-  begin
-    glBufferStorageExternalEXT := gl_GetProc('glBufferStorageExternalEXT');
-    glNamedBufferStorageExternalEXT := gl_GetProc('glNamedBufferStorageExternalEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_fog_coord}
-  if GL_EXT_fog_coord then
-  begin
-    glFogCoordfEXT := gl_GetProc('glFogCoordfEXT');
-    glFogCoordfvEXT := gl_GetProc('glFogCoordfvEXT');
-    glFogCoorddEXT := gl_GetProc('glFogCoorddEXT');
-    glFogCoorddvEXT := gl_GetProc('glFogCoorddvEXT');
-    glFogCoordPointerEXT := gl_GetProc('glFogCoordPointerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_blit}
-  if GL_EXT_framebuffer_blit then
-    glBlitFramebufferEXT := gl_GetProc('glBlitFramebufferEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_multisample}
-  if GL_EXT_framebuffer_multisample then
-    glRenderbufferStorageMultisampleEXT := gl_GetProc('glRenderbufferStorageMultisampleEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_framebuffer_object}
-  if GL_EXT_framebuffer_object then
-  begin
-//    glIsRenderbufferEXT := gl_GetProc('glIsRenderbufferEXT');
-//    glBindRenderbufferEXT := gl_GetProc('glBindRenderbufferEXT');
-//    glDeleteRenderbuffersEXT := gl_GetProc('glDeleteRenderbuffersEXT');
-//    glGenRenderbuffersEXT := gl_GetProc('glGenRenderbuffersEXT');
-//    glRenderbufferStorageEXT := gl_GetProc('glRenderbufferStorageEXT');
-    glGetRenderbufferParameterivEXT := gl_GetProc('glGetRenderbufferParameterivEXT');
-//    glIsFramebufferEXT := gl_GetProc('glIsFramebufferEXT');
-//    glBindFramebufferEXT := gl_GetProc('glBindFramebufferEXT');
-//    glDeleteFramebuffersEXT := gl_GetProc('glDeleteFramebuffersEXT');
-//    glGenFramebuffersEXT := gl_GetProc('glGenFramebuffersEXT');
-//    glCheckFramebufferStatusEXT := gl_GetProc('glCheckFramebufferStatusEXT');
-    glFramebufferTexture1DEXT := gl_GetProc('glFramebufferTexture1DEXT');
-//    glFramebufferTexture2DEXT := gl_GetProc('glFramebufferTexture2DEXT');
-    glFramebufferTexture3DEXT := gl_GetProc('glFramebufferTexture3DEXT');
-//    glFramebufferRenderbufferEXT := gl_GetProc('glFramebufferRenderbufferEXT');
-    glGetFramebufferAttachmentParameterivEXT := gl_GetProc('glGetFramebufferAttachmentParameterivEXT');
-    glGenerateMipmapEXT := gl_GetProc('glGenerateMipmapEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_geometry_shader4}
-  if GL_EXT_geometry_shader4 then
-    glProgramParameteriEXT := gl_GetProc('glProgramParameteriEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_gpu_program_parameters}
-  if GL_EXT_gpu_program_parameters then
-  begin
-    glProgramEnvParameters4fvEXT := gl_GetProc('glProgramEnvParameters4fvEXT');
-    glProgramLocalParameters4fvEXT := gl_GetProc('glProgramLocalParameters4fvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_gpu_shader4}
-  if GL_EXT_gpu_shader4 then
-  begin
-    glGetUniformuivEXT := gl_GetProc('glGetUniformuivEXT');
-    glBindFragDataLocationEXT := gl_GetProc('glBindFragDataLocationEXT');
-    glGetFragDataLocationEXT := gl_GetProc('glGetFragDataLocationEXT');
-    glUniform1uiEXT := gl_GetProc('glUniform1uiEXT');
-    glUniform2uiEXT := gl_GetProc('glUniform2uiEXT');
-    glUniform3uiEXT := gl_GetProc('glUniform3uiEXT');
-    glUniform4uiEXT := gl_GetProc('glUniform4uiEXT');
-    glUniform1uivEXT := gl_GetProc('glUniform1uivEXT');
-    glUniform2uivEXT := gl_GetProc('glUniform2uivEXT');
-    glUniform3uivEXT := gl_GetProc('glUniform3uivEXT');
-    glUniform4uivEXT := gl_GetProc('glUniform4uivEXT');
-    glVertexAttribI1iEXT := gl_GetProc('glVertexAttribI1iEXT');
-    glVertexAttribI2iEXT := gl_GetProc('glVertexAttribI2iEXT');
-    glVertexAttribI3iEXT := gl_GetProc('glVertexAttribI3iEXT');
-    glVertexAttribI4iEXT := gl_GetProc('glVertexAttribI4iEXT');
-    glVertexAttribI1uiEXT := gl_GetProc('glVertexAttribI1uiEXT');
-    glVertexAttribI2uiEXT := gl_GetProc('glVertexAttribI2uiEXT');
-    glVertexAttribI3uiEXT := gl_GetProc('glVertexAttribI3uiEXT');
-    glVertexAttribI4uiEXT := gl_GetProc('glVertexAttribI4uiEXT');
-    glVertexAttribI1ivEXT := gl_GetProc('glVertexAttribI1ivEXT');
-    glVertexAttribI2ivEXT := gl_GetProc('glVertexAttribI2ivEXT');
-    glVertexAttribI3ivEXT := gl_GetProc('glVertexAttribI3ivEXT');
-    glVertexAttribI4ivEXT := gl_GetProc('glVertexAttribI4ivEXT');
-    glVertexAttribI1uivEXT := gl_GetProc('glVertexAttribI1uivEXT');
-    glVertexAttribI2uivEXT := gl_GetProc('glVertexAttribI2uivEXT');
-    glVertexAttribI3uivEXT := gl_GetProc('glVertexAttribI3uivEXT');
-    glVertexAttribI4uivEXT := gl_GetProc('glVertexAttribI4uivEXT');
-    glVertexAttribI4bvEXT := gl_GetProc('glVertexAttribI4bvEXT');
-    glVertexAttribI4svEXT := gl_GetProc('glVertexAttribI4svEXT');
-    glVertexAttribI4ubvEXT := gl_GetProc('glVertexAttribI4ubvEXT');
-    glVertexAttribI4usvEXT := gl_GetProc('glVertexAttribI4usvEXT');
-    glVertexAttribIPointerEXT := gl_GetProc('glVertexAttribIPointerEXT');
-    glGetVertexAttribIivEXT := gl_GetProc('glGetVertexAttribIivEXT');
-    glGetVertexAttribIuivEXT := gl_GetProc('glGetVertexAttribIuivEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_histogram}
-  if GL_EXT_histogram then
-  begin
-    glGetHistogramEXT := gl_GetProc('glGetHistogramEXT');
-    glGetHistogramParameterfvEXT := gl_GetProc('glGetHistogramParameterfvEXT');
-    glGetHistogramParameterivEXT := gl_GetProc('glGetHistogramParameterivEXT');
-    glGetMinmaxEXT := gl_GetProc('glGetMinmaxEXT');
-    glGetMinmaxParameterfvEXT := gl_GetProc('glGetMinmaxParameterfvEXT');
-    glGetMinmaxParameterivEXT := gl_GetProc('glGetMinmaxParameterivEXT');
-    glHistogramEXT := gl_GetProc('glHistogramEXT');
-    glMinmaxEXT := gl_GetProc('glMinmaxEXT');
-    glResetHistogramEXT := gl_GetProc('glResetHistogramEXT');
-    glResetMinmaxEXT := gl_GetProc('glResetMinmaxEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_index_func}
-  if GL_EXT_index_func then
-    glIndexFuncEXT := gl_GetProc('glIndexFuncEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_index_material}
-  if GL_EXT_index_material then
-    glIndexMaterialEXT := gl_GetProc('glIndexMaterialEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_light_texture}
-  if GL_EXT_light_texture then
-  begin
-    glApplyTextureEXT := gl_GetProc('glApplyTextureEXT');
-    glTextureLightEXT := gl_GetProc('glTextureLightEXT');
-    glTextureMaterialEXT := gl_GetProc('glTextureMaterialEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object}
-  if GL_EXT_memory_object then
-  begin
-    glGetUnsignedBytevEXT := gl_GetProc('glGetUnsignedBytevEXT');
-    glGetUnsignedBytei_vEXT := gl_GetProc('glGetUnsignedBytei_vEXT');
-    glDeleteMemoryObjectsEXT := gl_GetProc('glDeleteMemoryObjectsEXT');
-    glIsMemoryObjectEXT := gl_GetProc('glIsMemoryObjectEXT');
-    glCreateMemoryObjectsEXT := gl_GetProc('glCreateMemoryObjectsEXT');
-    glMemoryObjectParameterivEXT := gl_GetProc('glMemoryObjectParameterivEXT');
-    glGetMemoryObjectParameterivEXT := gl_GetProc('glGetMemoryObjectParameterivEXT');
-    glTexStorageMem2DEXT := gl_GetProc('glTexStorageMem2DEXT');
-    glTexStorageMem2DMultisampleEXT := gl_GetProc('glTexStorageMem2DMultisampleEXT');
-    glTexStorageMem3DEXT := gl_GetProc('glTexStorageMem3DEXT');
-    glTexStorageMem3DMultisampleEXT := gl_GetProc('glTexStorageMem3DMultisampleEXT');
-    glBufferStorageMemEXT := gl_GetProc('glBufferStorageMemEXT');
-    glTextureStorageMem2DEXT := gl_GetProc('glTextureStorageMem2DEXT');
-    glTextureStorageMem2DMultisampleEXT := gl_GetProc('glTextureStorageMem2DMultisampleEXT');
-    glTextureStorageMem3DEXT := gl_GetProc('glTextureStorageMem3DEXT');
-    glTextureStorageMem3DMultisampleEXT := gl_GetProc('glTextureStorageMem3DMultisampleEXT');
-    glNamedBufferStorageMemEXT := gl_GetProc('glNamedBufferStorageMemEXT');
-    glTexStorageMem1DEXT := gl_GetProc('glTexStorageMem1DEXT');
-    glTextureStorageMem1DEXT := gl_GetProc('glTextureStorageMem1DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object_fd}
-  if GL_EXT_memory_object_fd then
-    glImportMemoryFdEXT := gl_GetProc('glImportMemoryFdEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_memory_object_win32}
-  if GL_EXT_memory_object_win32 then
-  begin
-    glImportMemoryWin32HandleEXT := gl_GetProc('glImportMemoryWin32HandleEXT');
-    glImportMemoryWin32NameEXT := gl_GetProc('glImportMemoryWin32NameEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_multi_draw_arrays}
-  if GL_EXT_multi_draw_arrays then
-  begin
-    glMultiDrawArraysEXT := gl_GetProc('glMultiDrawArraysEXT');
-    glMultiDrawElementsEXT := gl_GetProc('glMultiDrawElementsEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_multisample}
-  if GL_EXT_multisample then
-  begin
-    glSampleMaskEXT := gl_GetProc('glSampleMaskEXT');
-    glSamplePatternEXT := gl_GetProc('glSamplePatternEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_paletted_texture}
-  if GL_EXT_paletted_texture then
-  begin
-    glColorTableEXT := gl_GetProc('glColorTableEXT');
-    glGetColorTableEXT := gl_GetProc('glGetColorTableEXT');
-    glGetColorTableParameterivEXT := gl_GetProc('glGetColorTableParameterivEXT');
-    glGetColorTableParameterfvEXT := gl_GetProc('glGetColorTableParameterfvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_pixel_transform}
-  if GL_EXT_pixel_transform then
-  begin
-    glPixelTransformParameteriEXT := gl_GetProc('glPixelTransformParameteriEXT');
-    glPixelTransformParameterfEXT := gl_GetProc('glPixelTransformParameterfEXT');
-    glPixelTransformParameterivEXT := gl_GetProc('glPixelTransformParameterivEXT');
-    glPixelTransformParameterfvEXT := gl_GetProc('glPixelTransformParameterfvEXT');
-    glGetPixelTransformParameterivEXT := gl_GetProc('glGetPixelTransformParameterivEXT');
-    glGetPixelTransformParameterfvEXT := gl_GetProc('glGetPixelTransformParameterfvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_point_parameters}
-  if GL_EXT_point_parameters then
-  begin
-    glPointParameterfEXT := gl_GetProc('glPointParameterfEXT');
-    glPointParameterfvEXT := gl_GetProc('glPointParameterfvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_polygon_offset}
-  if GL_EXT_polygon_offset then
-    glPolygonOffsetEXT := gl_GetProc('glPolygonOffsetEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_polygon_offset_clamp}
-  if GL_EXT_polygon_offset_clamp then
-    glPolygonOffsetClampEXT := gl_GetProc('glPolygonOffsetClampEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_provoking_vertex}
-  if GL_EXT_provoking_vertex then
-    glProvokingVertexEXT := gl_GetProc('glProvokingVertexEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_raster_multisample}
-  if GL_EXT_raster_multisample then
-    glRasterSamplesEXT := gl_GetProc('glRasterSamplesEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_secondary_color}
-  if GL_EXT_secondary_color then
-  begin
-    glSecondaryColor3bEXT := gl_GetProc('glSecondaryColor3bEXT');
-    glSecondaryColor3bvEXT := gl_GetProc('glSecondaryColor3bvEXT');
-    glSecondaryColor3dEXT := gl_GetProc('glSecondaryColor3dEXT');
-    glSecondaryColor3dvEXT := gl_GetProc('glSecondaryColor3dvEXT');
-    glSecondaryColor3fEXT := gl_GetProc('glSecondaryColor3fEXT');
-    glSecondaryColor3fvEXT := gl_GetProc('glSecondaryColor3fvEXT');
-    glSecondaryColor3iEXT := gl_GetProc('glSecondaryColor3iEXT');
-    glSecondaryColor3ivEXT := gl_GetProc('glSecondaryColor3ivEXT');
-    glSecondaryColor3sEXT := gl_GetProc('glSecondaryColor3sEXT');
-    glSecondaryColor3svEXT := gl_GetProc('glSecondaryColor3svEXT');
-    glSecondaryColor3ubEXT := gl_GetProc('glSecondaryColor3ubEXT');
-    glSecondaryColor3ubvEXT := gl_GetProc('glSecondaryColor3ubvEXT');
-    glSecondaryColor3uiEXT := gl_GetProc('glSecondaryColor3uiEXT');
-    glSecondaryColor3uivEXT := gl_GetProc('glSecondaryColor3uivEXT');
-    glSecondaryColor3usEXT := gl_GetProc('glSecondaryColor3usEXT');
-    glSecondaryColor3usvEXT := gl_GetProc('glSecondaryColor3usvEXT');
-    glSecondaryColorPointerEXT := gl_GetProc('glSecondaryColorPointerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore}
-  if GL_EXT_semaphore then
-  begin
-    glGenSemaphoresEXT := gl_GetProc('glGenSemaphoresEXT');
-    glDeleteSemaphoresEXT := gl_GetProc('glDeleteSemaphoresEXT');
-    glGetSemaphoreParameterui64vEXT := gl_GetProc('glGetSemaphoreParameterui64vEXT');
-    glIsSemaphoreEXT := gl_GetProc('glIsSemaphoreEXT');
-    glSemaphoreParameterui64vEXT := gl_GetProc('glSemaphoreParameterui64vEXT');
-    glWaitSemaphoreEXT := gl_GetProc('glWaitSemaphoreEXT');
-    glSignalSemaphoreEXT := gl_GetProc('glSignalSemaphoreEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore_fd}
-  if GL_EXT_semaphore_fd then
-    glImportSemaphoreFdEXT := gl_GetProc('glImportSemaphoreFdEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_semaphore_win32}
-  if GL_EXT_semaphore_win32 then
-  begin
-    glImportSemaphoreWin32HandleEXT := gl_GetProc('glImportSemaphoreWin32HandleEXT');
-    glImportSemaphoreWin32NameEXT := gl_GetProc('glImportSemaphoreWin32NameEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_separate_shader_objects}
-  if GL_EXT_separate_shader_objects then
-  begin
-    glUseShaderProgramEXT := gl_GetProc('glUseShaderProgramEXT');
-    glActiveProgramEXT := gl_GetProc('glActiveProgramEXT');
-    glCreateShaderProgramEXT := gl_GetProc('glCreateShaderProgramEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_shader_framebuffer_fetch_non_coherent}
-  if GL_EXT_shader_framebuffer_fetch_non_coherent then
-    glFramebufferFetchBarrierEXT := gl_GetProc('glFramebufferFetchBarrierEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_shader_image_load_store}
-  if GL_EXT_shader_image_load_store then
-  begin
-    glBindImageTextureEXT := gl_GetProc('glBindImageTextureEXT');
-    glMemoryBarrierEXT := gl_GetProc('glMemoryBarrierEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_stencil_clear_tag}
-  if GL_EXT_stencil_clear_tag then
-    glStencilClearTagEXT := gl_GetProc('glStencilClearTagEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_stencil_two_side}
-  if GL_EXT_stencil_two_side then
-    glActiveStencilFaceEXT := gl_GetProc('glActiveStencilFaceEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_subtexture}
-  if GL_EXT_subtexture then
-  begin
-    glTexSubImage1DEXT := gl_GetProc('glTexSubImage1DEXT');
-    glTexSubImage2DEXT := gl_GetProc('glTexSubImage2DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture3D}
-  if GL_EXT_texture3D then
-  begin
-    glTexImage3DEXT := gl_GetProc('glTexImage3DEXT');
-    glTexSubImage3DEXT := gl_GetProc('glTexSubImage3DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_array}
-  if GL_EXT_texture_array then
-    glFramebufferTextureLayerEXT := gl_GetProc('glFramebufferTextureLayerEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_buffer_object}
-  if GL_EXT_texture_buffer_object then
-    glTexBufferEXT := gl_GetProc('glTexBufferEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_integer}
-  if GL_EXT_texture_integer then
-  begin
-    glTexParameterIivEXT := gl_GetProc('glTexParameterIivEXT');
-    glTexParameterIuivEXT := gl_GetProc('glTexParameterIuivEXT');
-    glGetTexParameterIivEXT := gl_GetProc('glGetTexParameterIivEXT');
-    glGetTexParameterIuivEXT := gl_GetProc('glGetTexParameterIuivEXT');
-    glClearColorIiEXT := gl_GetProc('glClearColorIiEXT');
-    glClearColorIuiEXT := gl_GetProc('glClearColorIuiEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_object}
-  if GL_EXT_texture_object then
-  begin
-    glAreTexturesResidentEXT := gl_GetProc('glAreTexturesResidentEXT');
-    glBindTextureEXT := gl_GetProc('glBindTextureEXT');
-    glDeleteTexturesEXT := gl_GetProc('glDeleteTexturesEXT');
-    glGenTexturesEXT := gl_GetProc('glGenTexturesEXT');
-    glIsTextureEXT := gl_GetProc('glIsTextureEXT');
-    glPrioritizeTexturesEXT := gl_GetProc('glPrioritizeTexturesEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_perturb_normal}
-  if GL_EXT_texture_perturb_normal then
-    glTextureNormalEXT := gl_GetProc('glTextureNormalEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_texture_storage}
-  if GL_EXT_texture_storage then
-  begin
-    glTexStorage1DEXT := gl_GetProc('glTexStorage1DEXT');
-    glTexStorage2DEXT := gl_GetProc('glTexStorage2DEXT');
-    glTexStorage3DEXT := gl_GetProc('glTexStorage3DEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_timer_query}
-  if GL_EXT_timer_query then
-  begin
-    glGetQueryObjecti64vEXT := gl_GetProc('glGetQueryObjecti64vEXT');
-    glGetQueryObjectui64vEXT := gl_GetProc('glGetQueryObjectui64vEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_transform_feedback}
-  if GL_EXT_transform_feedback then
-  begin
-    glBeginTransformFeedbackEXT := gl_GetProc('glBeginTransformFeedbackEXT');
-    glEndTransformFeedbackEXT := gl_GetProc('glEndTransformFeedbackEXT');
-    glBindBufferRangeEXT := gl_GetProc('glBindBufferRangeEXT');
-    glBindBufferOffsetEXT := gl_GetProc('glBindBufferOffsetEXT');
-    glBindBufferBaseEXT := gl_GetProc('glBindBufferBaseEXT');
-    glTransformFeedbackVaryingsEXT := gl_GetProc('glTransformFeedbackVaryingsEXT');
-    glGetTransformFeedbackVaryingEXT := gl_GetProc('glGetTransformFeedbackVaryingEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_array}
-  if GL_EXT_vertex_array then
-  begin
-    glArrayElementEXT := gl_GetProc('glArrayElementEXT');
-    glColorPointerEXT := gl_GetProc('glColorPointerEXT');
-    glDrawArraysEXT := gl_GetProc('glDrawArraysEXT');
-    glEdgeFlagPointerEXT := gl_GetProc('glEdgeFlagPointerEXT');
-    glGetPointervEXT := gl_GetProc('glGetPointervEXT');
-    glIndexPointerEXT := gl_GetProc('glIndexPointerEXT');
-    glNormalPointerEXT := gl_GetProc('glNormalPointerEXT');
-    glTexCoordPointerEXT := gl_GetProc('glTexCoordPointerEXT');
-    glVertexPointerEXT := gl_GetProc('glVertexPointerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_attrib_64bit}
-  if GL_EXT_vertex_attrib_64bit then
-  begin
-    glVertexAttribL1dEXT := gl_GetProc('glVertexAttribL1dEXT');
-    glVertexAttribL2dEXT := gl_GetProc('glVertexAttribL2dEXT');
-    glVertexAttribL3dEXT := gl_GetProc('glVertexAttribL3dEXT');
-    glVertexAttribL4dEXT := gl_GetProc('glVertexAttribL4dEXT');
-    glVertexAttribL1dvEXT := gl_GetProc('glVertexAttribL1dvEXT');
-    glVertexAttribL2dvEXT := gl_GetProc('glVertexAttribL2dvEXT');
-    glVertexAttribL3dvEXT := gl_GetProc('glVertexAttribL3dvEXT');
-    glVertexAttribL4dvEXT := gl_GetProc('glVertexAttribL4dvEXT');
-    glVertexAttribLPointerEXT := gl_GetProc('glVertexAttribLPointerEXT');
-    glGetVertexAttribLdvEXT := gl_GetProc('glGetVertexAttribLdvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_shader}
-  if GL_EXT_vertex_shader then
-  begin
-    glBeginVertexShaderEXT := gl_GetProc('glBeginVertexShaderEXT');
-    glEndVertexShaderEXT := gl_GetProc('glEndVertexShaderEXT');
-    glBindVertexShaderEXT := gl_GetProc('glBindVertexShaderEXT');
-    glGenVertexShadersEXT := gl_GetProc('glGenVertexShadersEXT');
-    glDeleteVertexShaderEXT := gl_GetProc('glDeleteVertexShaderEXT');
-    glShaderOp1EXT := gl_GetProc('glShaderOp1EXT');
-    glShaderOp2EXT := gl_GetProc('glShaderOp2EXT');
-    glShaderOp3EXT := gl_GetProc('glShaderOp3EXT');
-    glSwizzleEXT := gl_GetProc('glSwizzleEXT');
-    glWriteMaskEXT := gl_GetProc('glWriteMaskEXT');
-    glInsertComponentEXT := gl_GetProc('glInsertComponentEXT');
-    glExtractComponentEXT := gl_GetProc('glExtractComponentEXT');
-    glGenSymbolsEXT := gl_GetProc('glGenSymbolsEXT');
-    glSetInvariantEXT := gl_GetProc('glSetInvariantEXT');
-    glSetLocalConstantEXT := gl_GetProc('glSetLocalConstantEXT');
-    glVariantbvEXT := gl_GetProc('glVariantbvEXT');
-    glVariantsvEXT := gl_GetProc('glVariantsvEXT');
-    glVariantivEXT := gl_GetProc('glVariantivEXT');
-    glVariantfvEXT := gl_GetProc('glVariantfvEXT');
-    glVariantdvEXT := gl_GetProc('glVariantdvEXT');
-    glVariantubvEXT := gl_GetProc('glVariantubvEXT');
-    glVariantusvEXT := gl_GetProc('glVariantusvEXT');
-    glVariantuivEXT := gl_GetProc('glVariantuivEXT');
-    glVariantPointerEXT := gl_GetProc('glVariantPointerEXT');
-    glEnableVariantClientStateEXT := gl_GetProc('glEnableVariantClientStateEXT');
-    glDisableVariantClientStateEXT := gl_GetProc('glDisableVariantClientStateEXT');
-    glBindLightParameterEXT := gl_GetProc('glBindLightParameterEXT');
-    glBindMaterialParameterEXT := gl_GetProc('glBindMaterialParameterEXT');
-    glBindTexGenParameterEXT := gl_GetProc('glBindTexGenParameterEXT');
-    glBindTextureUnitParameterEXT := gl_GetProc('glBindTextureUnitParameterEXT');
-    glBindParameterEXT := gl_GetProc('glBindParameterEXT');
-    glIsVariantEnabledEXT := gl_GetProc('glIsVariantEnabledEXT');
-    glGetVariantBooleanvEXT := gl_GetProc('glGetVariantBooleanvEXT');
-    glGetVariantIntegervEXT := gl_GetProc('glGetVariantIntegervEXT');
-    glGetVariantFloatvEXT := gl_GetProc('glGetVariantFloatvEXT');
-    glGetVariantPointervEXT := gl_GetProc('glGetVariantPointervEXT');
-    glGetInvariantBooleanvEXT := gl_GetProc('glGetInvariantBooleanvEXT');
-    glGetInvariantIntegervEXT := gl_GetProc('glGetInvariantIntegervEXT');
-    glGetInvariantFloatvEXT := gl_GetProc('glGetInvariantFloatvEXT');
-    glGetLocalConstantBooleanvEXT := gl_GetProc('glGetLocalConstantBooleanvEXT');
-    glGetLocalConstantIntegervEXT := gl_GetProc('glGetLocalConstantIntegervEXT');
-    glGetLocalConstantFloatvEXT := gl_GetProc('glGetLocalConstantFloatvEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_vertex_weighting}
-  if GL_EXT_vertex_weighting then
-  begin
-    glVertexWeightfEXT := gl_GetProc('glVertexWeightfEXT');
-    glVertexWeightfvEXT := gl_GetProc('glVertexWeightfvEXT');
-    glVertexWeightPointerEXT := gl_GetProc('glVertexWeightPointerEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_win32_keyed_mutex}
-  if GL_EXT_win32_keyed_mutex then
-  begin
-    glAcquireKeyedMutexWin32EXT := gl_GetProc('glAcquireKeyedMutexWin32EXT');
-    glReleaseKeyedMutexWin32EXT := gl_GetProc('glReleaseKeyedMutexWin32EXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_EXT_window_rectangles}
-  if GL_EXT_window_rectangles then
-    glWindowRectanglesEXT := gl_GetProc('glWindowRectanglesEXT');
-  {$EndIf}
-
-  {$IfDef GL_EXT_x11_sync_object}
-  if GL_EXT_x11_sync_object then
-    glImportSyncEXT := gl_GetProc('glImportSyncEXT');
-  {$EndIf}
-
-  {$IfDef GL_GREMEDY_frame_terminator}
-  if GL_GREMEDY_frame_terminator then
-    glFrameTerminatorGREMEDY := gl_GetProc('glFrameTerminatorGREMEDY');
-  {$EndIf}
-
-  {$IfDef GL_GREMEDY_string_marker}
-  if GL_GREMEDY_string_marker then
-    glStringMarkerGREMEDY := gl_GetProc('glStringMarkerGREMEDY');
-  {$EndIf}
-
-  {$IfDef GL_HP_image_transform}
-  if GL_HP_image_transform then
-  begin
-    glImageTransformParameteriHP := gl_GetProc('glImageTransformParameteriHP');
-    glImageTransformParameterfHP := gl_GetProc('glImageTransformParameterfHP');
-    glImageTransformParameterivHP := gl_GetProc('glImageTransformParameterivHP');
-    glImageTransformParameterfvHP := gl_GetProc('glImageTransformParameterfvHP');
-    glGetImageTransformParameterivHP := gl_GetProc('glGetImageTransformParameterivHP');
-    glGetImageTransformParameterfvHP := gl_GetProc('glGetImageTransformParameterfvHP');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_IBM_multimode_draw_arrays}
-  if GL_IBM_multimode_draw_arrays then
-  begin
-    glMultiModeDrawArraysIBM := gl_GetProc('glMultiModeDrawArraysIBM');
-    glMultiModeDrawElementsIBM := gl_GetProc('glMultiModeDrawElementsIBM');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_IBM_static_data}
-  if GL_IBM_static_data then
-    glFlushStaticDataIBM := gl_GetProc('glFlushStaticDataIBM');
-  {$EndIf}
-
-  {$IfDef GL_IBM_vertex_array_lists}
-  if GL_IBM_vertex_array_lists then
-  begin
-    glColorPointerListIBM := gl_GetProc('glColorPointerListIBM');
-    glSecondaryColorPointerListIBM := gl_GetProc('glSecondaryColorPointerListIBM');
-    glEdgeFlagPointerListIBM := gl_GetProc('glEdgeFlagPointerListIBM');
-    glFogCoordPointerListIBM := gl_GetProc('glFogCoordPointerListIBM');
-    glIndexPointerListIBM := gl_GetProc('glIndexPointerListIBM');
-    glNormalPointerListIBM := gl_GetProc('glNormalPointerListIBM');
-    glTexCoordPointerListIBM := gl_GetProc('glTexCoordPointerListIBM');
-    glVertexPointerListIBM := gl_GetProc('glVertexPointerListIBM');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_INGR_blend_func_separate}
-  if GL_INGR_blend_func_separate then
-    glBlendFuncSeparateINGR := gl_GetProc('glBlendFuncSeparateINGR');
-  {$EndIf}
-
-  {$IfDef GL_INTEL_framebuffer_CMAA}
-  if GL_INTEL_framebuffer_CMAA then
-    glApplyFramebufferAttachmentCMAAINTEL := gl_GetProc('glApplyFramebufferAttachmentCMAAINTEL');
-  {$EndIf}
-
-  {$IfDef GL_INTEL_map_texture}
-  if GL_INTEL_map_texture then
-  begin
-    glSyncTextureINTEL := gl_GetProc('glSyncTextureINTEL');
-    glUnmapTexture2DINTEL := gl_GetProc('glUnmapTexture2DINTEL');
-    glMapTexture2DINTEL := gl_GetProc('glMapTexture2DINTEL');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_parallel_arrays}
-  if GL_INTEL_parallel_arrays then
-  begin
-    glVertexPointervINTEL := gl_GetProc('glVertexPointervINTEL');
-    glNormalPointervINTEL := gl_GetProc('glNormalPointervINTEL');
-    glColorPointervINTEL := gl_GetProc('glColorPointervINTEL');
-    glTexCoordPointervINTEL := gl_GetProc('glTexCoordPointervINTEL');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_INTEL_performance_query}
-  if GL_INTEL_performance_query then
-  begin
-    glBeginPerfQueryINTEL := gl_GetProc('glBeginPerfQueryINTEL');
-    glCreatePerfQueryINTEL := gl_GetProc('glCreatePerfQueryINTEL');
-    glDeletePerfQueryINTEL := gl_GetProc('glDeletePerfQueryINTEL');
-    glEndPerfQueryINTEL := gl_GetProc('glEndPerfQueryINTEL');
-    glGetFirstPerfQueryIdINTEL := gl_GetProc('glGetFirstPerfQueryIdINTEL');
-    glGetNextPerfQueryIdINTEL := gl_GetProc('glGetNextPerfQueryIdINTEL');
-    glGetPerfCounterInfoINTEL := gl_GetProc('glGetPerfCounterInfoINTEL');
-    glGetPerfQueryDataINTEL := gl_GetProc('glGetPerfQueryDataINTEL');
-    glGetPerfQueryIdByNameINTEL := gl_GetProc('glGetPerfQueryIdByNameINTEL');
-    glGetPerfQueryInfoINTEL := gl_GetProc('glGetPerfQueryInfoINTEL');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_MESA_framebuffer_flip_y}
-  if GL_MESA_framebuffer_flip_y then
-  begin
-    glFramebufferParameteriMESA := gl_GetProc('glFramebufferParameteriMESA');
-    glGetFramebufferParameterivMESA := gl_GetProc('glGetFramebufferParameterivMESA');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_MESA_resize_buffers}
-  if GL_MESA_resize_buffers then
-    glResizeBuffersMESA := gl_GetProc('glResizeBuffersMESA');
-  {$EndIf}
-
-  {$IfDef GL_MESA_window_pos}
-  if GL_MESA_window_pos then
-  begin
-    glWindowPos2dMESA := gl_GetProc('glWindowPos2dMESA');
-    glWindowPos2dvMESA := gl_GetProc('glWindowPos2dvMESA');
-    glWindowPos2fMESA := gl_GetProc('glWindowPos2fMESA');
-    glWindowPos2fvMESA := gl_GetProc('glWindowPos2fvMESA');
-    glWindowPos2iMESA := gl_GetProc('glWindowPos2iMESA');
-    glWindowPos2ivMESA := gl_GetProc('glWindowPos2ivMESA');
-    glWindowPos2sMESA := gl_GetProc('glWindowPos2sMESA');
-    glWindowPos2svMESA := gl_GetProc('glWindowPos2svMESA');
-    glWindowPos3dMESA := gl_GetProc('glWindowPos3dMESA');
-    glWindowPos3dvMESA := gl_GetProc('glWindowPos3dvMESA');
-    glWindowPos3fMESA := gl_GetProc('glWindowPos3fMESA');
-    glWindowPos3fvMESA := gl_GetProc('glWindowPos3fvMESA');
-    glWindowPos3iMESA := gl_GetProc('glWindowPos3iMESA');
-    glWindowPos3ivMESA := gl_GetProc('glWindowPos3ivMESA');
-    glWindowPos3sMESA := gl_GetProc('glWindowPos3sMESA');
-    glWindowPos3svMESA := gl_GetProc('glWindowPos3svMESA');
-    glWindowPos4dMESA := gl_GetProc('glWindowPos4dMESA');
-    glWindowPos4dvMESA := gl_GetProc('glWindowPos4dvMESA');
-    glWindowPos4fMESA := gl_GetProc('glWindowPos4fMESA');
-    glWindowPos4fvMESA := gl_GetProc('glWindowPos4fvMESA');
-    glWindowPos4iMESA := gl_GetProc('glWindowPos4iMESA');
-    glWindowPos4ivMESA := gl_GetProc('glWindowPos4ivMESA');
-    glWindowPos4sMESA := gl_GetProc('glWindowPos4sMESA');
-    glWindowPos4svMESA := gl_GetProc('glWindowPos4svMESA');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NVX_conditional_render}
-  if GL_NVX_conditional_render then
-  begin
-    glBeginConditionalRenderNVX := gl_GetProc('glBeginConditionalRenderNVX');
-    glEndConditionalRenderNVX := gl_GetProc('glEndConditionalRenderNVX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NVX_gpu_multicast2}
-  if GL_NVX_gpu_multicast2 then
-  begin
-    glUploadGpuMaskNVX := gl_GetProc('glUploadGpuMaskNVX');
-    glMulticastViewportArrayvNVX := gl_GetProc('glMulticastViewportArrayvNVX');
-    glMulticastViewportPositionWScaleNVX := gl_GetProc('glMulticastViewportPositionWScaleNVX');
-    glMulticastScissorArrayvNVX := gl_GetProc('glMulticastScissorArrayvNVX');
-    glAsyncCopyBufferSubDataNVX := gl_GetProc('glAsyncCopyBufferSubDataNVX');
-    glAsyncCopyImageSubDataNVX := gl_GetProc('glAsyncCopyImageSubDataNVX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NVX_linked_gpu_multicast}
-  if GL_NVX_linked_gpu_multicast then
-  begin
-    glLGPUNamedBufferSubDataNVX := gl_GetProc('glLGPUNamedBufferSubDataNVX');
-    glLGPUCopyImageSubDataNVX := gl_GetProc('glLGPUCopyImageSubDataNVX');
-    glLGPUInterlockNVX := gl_GetProc('glLGPUInterlockNVX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NVX_progress_fence}
-  if GL_NVX_progress_fence then
-  begin
-    glCreateProgressFenceNVX := gl_GetProc('glCreateProgressFenceNVX');
-    glSignalSemaphoreui64NVX := gl_GetProc('glSignalSemaphoreui64NVX');
-    glWaitSemaphoreui64NVX := gl_GetProc('glWaitSemaphoreui64NVX');
-    glClientWaitSemaphoreui64NVX := gl_GetProc('glClientWaitSemaphoreui64NVX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_alpha_to_coverage_dither_control}
-  if GL_NV_alpha_to_coverage_dither_control then
-    glAlphaToCoverageDitherControlNV := gl_GetProc('glAlphaToCoverageDitherControlNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_multi_draw_indirect}
-  if GL_NV_bindless_multi_draw_indirect then
-  begin
-    glMultiDrawArraysIndirectBindlessNV := gl_GetProc('glMultiDrawArraysIndirectBindlessNV');
-    glMultiDrawElementsIndirectBindlessNV := gl_GetProc('glMultiDrawElementsIndirectBindlessNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_multi_draw_indirect_count}
-  if GL_NV_bindless_multi_draw_indirect_count then
-  begin
-    glMultiDrawArraysIndirectBindlessCountNV := gl_GetProc('glMultiDrawArraysIndirectBindlessCountNV');
-    glMultiDrawElementsIndirectBindlessCountNV := gl_GetProc('glMultiDrawElementsIndirectBindlessCountNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_bindless_texture}
-  if GL_NV_bindless_texture then
-  begin
-    glGetTextureHandleNV := gl_GetProc('glGetTextureHandleNV');
-    glGetTextureSamplerHandleNV := gl_GetProc('glGetTextureSamplerHandleNV');
-    glMakeTextureHandleResidentNV := gl_GetProc('glMakeTextureHandleResidentNV');
-    glMakeTextureHandleNonResidentNV := gl_GetProc('glMakeTextureHandleNonResidentNV');
-    glGetImageHandleNV := gl_GetProc('glGetImageHandleNV');
-    glMakeImageHandleResidentNV := gl_GetProc('glMakeImageHandleResidentNV');
-    glMakeImageHandleNonResidentNV := gl_GetProc('glMakeImageHandleNonResidentNV');
-    glUniformHandleui64NV := gl_GetProc('glUniformHandleui64NV');
-    glUniformHandleui64vNV := gl_GetProc('glUniformHandleui64vNV');
-    glProgramUniformHandleui64NV := gl_GetProc('glProgramUniformHandleui64NV');
-    glProgramUniformHandleui64vNV := gl_GetProc('glProgramUniformHandleui64vNV');
-    glIsTextureHandleResidentNV := gl_GetProc('glIsTextureHandleResidentNV');
-    glIsImageHandleResidentNV := gl_GetProc('glIsImageHandleResidentNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_blend_equation_advanced}
-  if GL_NV_blend_equation_advanced then
-  begin
-    glBlendParameteriNV := gl_GetProc('glBlendParameteriNV');
-    glBlendBarrierNV := gl_GetProc('glBlendBarrierNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_clip_space_w_scaling}
-  if GL_NV_clip_space_w_scaling then
-    glViewportPositionWScaleNV := gl_GetProc('glViewportPositionWScaleNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_command_list}
-  if GL_NV_command_list then
-  begin
-    glCreateStatesNV := gl_GetProc('glCreateStatesNV');
-    glDeleteStatesNV := gl_GetProc('glDeleteStatesNV');
-    glIsStateNV := gl_GetProc('glIsStateNV');
-    glStateCaptureNV := gl_GetProc('glStateCaptureNV');
-    glGetCommandHeaderNV := gl_GetProc('glGetCommandHeaderNV');
-    glGetStageIndexNV := gl_GetProc('glGetStageIndexNV');
-    glDrawCommandsNV := gl_GetProc('glDrawCommandsNV');
-    glDrawCommandsAddressNV := gl_GetProc('glDrawCommandsAddressNV');
-    glDrawCommandsStatesNV := gl_GetProc('glDrawCommandsStatesNV');
-    glDrawCommandsStatesAddressNV := gl_GetProc('glDrawCommandsStatesAddressNV');
-    glCreateCommandListsNV := gl_GetProc('glCreateCommandListsNV');
-    glDeleteCommandListsNV := gl_GetProc('glDeleteCommandListsNV');
-    glIsCommandListNV := gl_GetProc('glIsCommandListNV');
-    glListDrawCommandsStatesClientNV := gl_GetProc('glListDrawCommandsStatesClientNV');
-    glCommandListSegmentsNV := gl_GetProc('glCommandListSegmentsNV');
-    glCompileCommandListNV := gl_GetProc('glCompileCommandListNV');
-    glCallCommandListNV := gl_GetProc('glCallCommandListNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_conditional_render}
-  if GL_NV_conditional_render then
-  begin
-    glBeginConditionalRenderNV := gl_GetProc('glBeginConditionalRenderNV');
-    glEndConditionalRenderNV := gl_GetProc('glEndConditionalRenderNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster}
-  if GL_NV_conservative_raster then
-    glSubpixelPrecisionBiasNV := gl_GetProc('glSubpixelPrecisionBiasNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster_dilate}
-  if GL_NV_conservative_raster_dilate then
-    glConservativeRasterParameterfNV := gl_GetProc('glConservativeRasterParameterfNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_conservative_raster_pre_snap_triangles}
-  if GL_NV_conservative_raster_pre_snap_triangles then
-    glConservativeRasterParameteriNV := gl_GetProc('glConservativeRasterParameteriNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_copy_image}
-  if GL_NV_copy_image then
-    glCopyImageSubDataNV := gl_GetProc('glCopyImageSubDataNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_depth_buffer_float}
-  if GL_NV_depth_buffer_float then
-  begin
-    glDepthRangedNV := gl_GetProc('glDepthRangedNV');
-    glClearDepthdNV := gl_GetProc('glClearDepthdNV');
-    glDepthBoundsdNV := gl_GetProc('glDepthBoundsdNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_draw_texture}
-  if GL_NV_draw_texture then
-    glDrawTextureNV := gl_GetProc('glDrawTextureNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_draw_vulkan_image}
-  if GL_NV_draw_vulkan_image then
-  begin
-    glDrawVkImageNV := gl_GetProc('glDrawVkImageNV');
-    glGetVkProcAddrNV := gl_GetProc('glGetVkProcAddrNV');
-    glWaitVkSemaphoreNV := gl_GetProc('glWaitVkSemaphoreNV');
-    glSignalVkSemaphoreNV := gl_GetProc('glSignalVkSemaphoreNV');
-    glSignalVkFenceNV := gl_GetProc('glSignalVkFenceNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_evaluators}
-  if GL_NV_evaluators then
-  begin
-    glMapControlPointsNV := gl_GetProc('glMapControlPointsNV');
-    glMapParameterivNV := gl_GetProc('glMapParameterivNV');
-    glMapParameterfvNV := gl_GetProc('glMapParameterfvNV');
-    glGetMapControlPointsNV := gl_GetProc('glGetMapControlPointsNV');
-    glGetMapParameterivNV := gl_GetProc('glGetMapParameterivNV');
-    glGetMapParameterfvNV := gl_GetProc('glGetMapParameterfvNV');
-    glGetMapAttribParameterivNV := gl_GetProc('glGetMapAttribParameterivNV');
-    glGetMapAttribParameterfvNV := gl_GetProc('glGetMapAttribParameterfvNV');
-    glEvalMapsNV := gl_GetProc('glEvalMapsNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_explicit_multisample}
-  if GL_NV_explicit_multisample then
-  begin
-    glGetMultisamplefvNV := gl_GetProc('glGetMultisamplefvNV');
-    glSampleMaskIndexedNV := gl_GetProc('glSampleMaskIndexedNV');
-    glTexRenderbufferNV := gl_GetProc('glTexRenderbufferNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_fence}
-  if GL_NV_fence then
-  begin
-    glDeleteFencesNV := gl_GetProc('glDeleteFencesNV');
-    glGenFencesNV := gl_GetProc('glGenFencesNV');
-    glIsFenceNV := gl_GetProc('glIsFenceNV');
-    glTestFenceNV := gl_GetProc('glTestFenceNV');
-    glGetFenceivNV := gl_GetProc('glGetFenceivNV');
-    glFinishFenceNV := gl_GetProc('glFinishFenceNV');
-    glSetFenceNV := gl_GetProc('glSetFenceNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_fragment_coverage_to_color}
-  if GL_NV_fragment_coverage_to_color then
-    glFragmentCoverageColorNV := gl_GetProc('glFragmentCoverageColorNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_fragment_program}
-  if GL_NV_fragment_program then
-  begin
-    glProgramNamedParameter4fNV := gl_GetProc('glProgramNamedParameter4fNV');
-    glProgramNamedParameter4fvNV := gl_GetProc('glProgramNamedParameter4fvNV');
-    glProgramNamedParameter4dNV := gl_GetProc('glProgramNamedParameter4dNV');
-    glProgramNamedParameter4dvNV := gl_GetProc('glProgramNamedParameter4dvNV');
-    glGetProgramNamedParameterfvNV := gl_GetProc('glGetProgramNamedParameterfvNV');
-    glGetProgramNamedParameterdvNV := gl_GetProc('glGetProgramNamedParameterdvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_framebuffer_mixed_samples}
-  if GL_NV_framebuffer_mixed_samples then
-  begin
-    glCoverageModulationTableNV := gl_GetProc('glCoverageModulationTableNV');
-    glGetCoverageModulationTableNV := gl_GetProc('glGetCoverageModulationTableNV');
-    glCoverageModulationNV := gl_GetProc('glCoverageModulationNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_framebuffer_multisample_coverage}
-  if GL_NV_framebuffer_multisample_coverage then
-    glRenderbufferStorageMultisampleCoverageNV := gl_GetProc('glRenderbufferStorageMultisampleCoverageNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_geometry_program4}
-  if GL_NV_geometry_program4 then
-  begin
-    glProgramVertexLimitNV := gl_GetProc('glProgramVertexLimitNV');
-    glFramebufferTextureEXT := gl_GetProc('glFramebufferTextureEXT');
-    glFramebufferTextureFaceEXT := gl_GetProc('glFramebufferTextureFaceEXT');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_multicast}
-  if GL_NV_gpu_multicast then
-  begin
-    glRenderGpuMaskNV := gl_GetProc('glRenderGpuMaskNV');
-    glMulticastBufferSubDataNV := gl_GetProc('glMulticastBufferSubDataNV');
-    glMulticastCopyBufferSubDataNV := gl_GetProc('glMulticastCopyBufferSubDataNV');
-    glMulticastCopyImageSubDataNV := gl_GetProc('glMulticastCopyImageSubDataNV');
-    glMulticastBlitFramebufferNV := gl_GetProc('glMulticastBlitFramebufferNV');
-    glMulticastFramebufferSampleLocationsfvNV := gl_GetProc('glMulticastFramebufferSampleLocationsfvNV');
-    glMulticastBarrierNV := gl_GetProc('glMulticastBarrierNV');
-    glMulticastWaitSyncNV := gl_GetProc('glMulticastWaitSyncNV');
-    glMulticastGetQueryObjectivNV := gl_GetProc('glMulticastGetQueryObjectivNV');
-    glMulticastGetQueryObjectuivNV := gl_GetProc('glMulticastGetQueryObjectuivNV');
-    glMulticastGetQueryObjecti64vNV := gl_GetProc('glMulticastGetQueryObjecti64vNV');
-    glMulticastGetQueryObjectui64vNV := gl_GetProc('glMulticastGetQueryObjectui64vNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_program4}
-  if GL_NV_gpu_program4 then
-  begin
-    glProgramLocalParameterI4iNV := gl_GetProc('glProgramLocalParameterI4iNV');
-    glProgramLocalParameterI4ivNV := gl_GetProc('glProgramLocalParameterI4ivNV');
-    glProgramLocalParametersI4ivNV := gl_GetProc('glProgramLocalParametersI4ivNV');
-    glProgramLocalParameterI4uiNV := gl_GetProc('glProgramLocalParameterI4uiNV');
-    glProgramLocalParameterI4uivNV := gl_GetProc('glProgramLocalParameterI4uivNV');
-    glProgramLocalParametersI4uivNV := gl_GetProc('glProgramLocalParametersI4uivNV');
-    glProgramEnvParameterI4iNV := gl_GetProc('glProgramEnvParameterI4iNV');
-    glProgramEnvParameterI4ivNV := gl_GetProc('glProgramEnvParameterI4ivNV');
-    glProgramEnvParametersI4ivNV := gl_GetProc('glProgramEnvParametersI4ivNV');
-    glProgramEnvParameterI4uiNV := gl_GetProc('glProgramEnvParameterI4uiNV');
-    glProgramEnvParameterI4uivNV := gl_GetProc('glProgramEnvParameterI4uivNV');
-    glProgramEnvParametersI4uivNV := gl_GetProc('glProgramEnvParametersI4uivNV');
-    glGetProgramLocalParameterIivNV := gl_GetProc('glGetProgramLocalParameterIivNV');
-    glGetProgramLocalParameterIuivNV := gl_GetProc('glGetProgramLocalParameterIuivNV');
-    glGetProgramEnvParameterIivNV := gl_GetProc('glGetProgramEnvParameterIivNV');
-    glGetProgramEnvParameterIuivNV := gl_GetProc('glGetProgramEnvParameterIuivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_gpu_program5}
-  if GL_NV_gpu_program5 then
-  begin
-    glProgramSubroutineParametersuivNV := gl_GetProc('glProgramSubroutineParametersuivNV');
-    glGetProgramSubroutineParameteruivNV := gl_GetProc('glGetProgramSubroutineParameteruivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_half_float}
-  if GL_NV_half_float then
-  begin
-    glVertex2hNV := gl_GetProc('glVertex2hNV');
-    glVertex2hvNV := gl_GetProc('glVertex2hvNV');
-    glVertex3hNV := gl_GetProc('glVertex3hNV');
-    glVertex3hvNV := gl_GetProc('glVertex3hvNV');
-    glVertex4hNV := gl_GetProc('glVertex4hNV');
-    glVertex4hvNV := gl_GetProc('glVertex4hvNV');
-    glNormal3hNV := gl_GetProc('glNormal3hNV');
-    glNormal3hvNV := gl_GetProc('glNormal3hvNV');
-    glColor3hNV := gl_GetProc('glColor3hNV');
-    glColor3hvNV := gl_GetProc('glColor3hvNV');
-    glColor4hNV := gl_GetProc('glColor4hNV');
-    glColor4hvNV := gl_GetProc('glColor4hvNV');
-    glTexCoord1hNV := gl_GetProc('glTexCoord1hNV');
-    glTexCoord1hvNV := gl_GetProc('glTexCoord1hvNV');
-    glTexCoord2hNV := gl_GetProc('glTexCoord2hNV');
-    glTexCoord2hvNV := gl_GetProc('glTexCoord2hvNV');
-    glTexCoord3hNV := gl_GetProc('glTexCoord3hNV');
-    glTexCoord3hvNV := gl_GetProc('glTexCoord3hvNV');
-    glTexCoord4hNV := gl_GetProc('glTexCoord4hNV');
-    glTexCoord4hvNV := gl_GetProc('glTexCoord4hvNV');
-    glMultiTexCoord1hNV := gl_GetProc('glMultiTexCoord1hNV');
-    glMultiTexCoord1hvNV := gl_GetProc('glMultiTexCoord1hvNV');
-    glMultiTexCoord2hNV := gl_GetProc('glMultiTexCoord2hNV');
-    glMultiTexCoord2hvNV := gl_GetProc('glMultiTexCoord2hvNV');
-    glMultiTexCoord3hNV := gl_GetProc('glMultiTexCoord3hNV');
-    glMultiTexCoord3hvNV := gl_GetProc('glMultiTexCoord3hvNV');
-    glMultiTexCoord4hNV := gl_GetProc('glMultiTexCoord4hNV');
-    glMultiTexCoord4hvNV := gl_GetProc('glMultiTexCoord4hvNV');
-    glFogCoordhNV := gl_GetProc('glFogCoordhNV');
-    glFogCoordhvNV := gl_GetProc('glFogCoordhvNV');
-    glSecondaryColor3hNV := gl_GetProc('glSecondaryColor3hNV');
-    glSecondaryColor3hvNV := gl_GetProc('glSecondaryColor3hvNV');
-    glVertexWeighthNV := gl_GetProc('glVertexWeighthNV');
-    glVertexWeighthvNV := gl_GetProc('glVertexWeighthvNV');
-    glVertexAttrib1hNV := gl_GetProc('glVertexAttrib1hNV');
-    glVertexAttrib1hvNV := gl_GetProc('glVertexAttrib1hvNV');
-    glVertexAttrib2hNV := gl_GetProc('glVertexAttrib2hNV');
-    glVertexAttrib2hvNV := gl_GetProc('glVertexAttrib2hvNV');
-    glVertexAttrib3hNV := gl_GetProc('glVertexAttrib3hNV');
-    glVertexAttrib3hvNV := gl_GetProc('glVertexAttrib3hvNV');
-    glVertexAttrib4hNV := gl_GetProc('glVertexAttrib4hNV');
-    glVertexAttrib4hvNV := gl_GetProc('glVertexAttrib4hvNV');
-    glVertexAttribs1hvNV := gl_GetProc('glVertexAttribs1hvNV');
-    glVertexAttribs2hvNV := gl_GetProc('glVertexAttribs2hvNV');
-    glVertexAttribs3hvNV := gl_GetProc('glVertexAttribs3hvNV');
-    glVertexAttribs4hvNV := gl_GetProc('glVertexAttribs4hvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_internalformat_sample_query}
-  if GL_NV_internalformat_sample_query then
-    glGetInternalformatSampleivNV := gl_GetProc('glGetInternalformatSampleivNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_memory_attachment}
-  if GL_NV_memory_attachment then
-  begin
-    glGetMemoryObjectDetachedResourcesuivNV := gl_GetProc('glGetMemoryObjectDetachedResourcesuivNV');
-    glResetMemoryObjectParameterNV := gl_GetProc('glResetMemoryObjectParameterNV');
-    glTexAttachMemoryNV := gl_GetProc('glTexAttachMemoryNV');
-    glBufferAttachMemoryNV := gl_GetProc('glBufferAttachMemoryNV');
-    glTextureAttachMemoryNV := gl_GetProc('glTextureAttachMemoryNV');
-    glNamedBufferAttachMemoryNV := gl_GetProc('glNamedBufferAttachMemoryNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_memory_object_sparse}
-  if GL_NV_memory_object_sparse then
-  begin
-    glBufferPageCommitmentMemNV := gl_GetProc('glBufferPageCommitmentMemNV');
-    glTexPageCommitmentMemNV := gl_GetProc('glTexPageCommitmentMemNV');
-    glNamedBufferPageCommitmentMemNV := gl_GetProc('glNamedBufferPageCommitmentMemNV');
-    glTexturePageCommitmentMemNV := gl_GetProc('glTexturePageCommitmentMemNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_mesh_shader}
-  if GL_NV_mesh_shader then
-  begin
-    glDrawMeshTasksNV := gl_GetProc('glDrawMeshTasksNV');
-    glDrawMeshTasksIndirectNV := gl_GetProc('glDrawMeshTasksIndirectNV');
-    glMultiDrawMeshTasksIndirectNV := gl_GetProc('glMultiDrawMeshTasksIndirectNV');
-    glMultiDrawMeshTasksIndirectCountNV := gl_GetProc('glMultiDrawMeshTasksIndirectCountNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_occlusion_query}
-  if GL_NV_occlusion_query then
-  begin
-    glGenOcclusionQueriesNV := gl_GetProc('glGenOcclusionQueriesNV');
-    glDeleteOcclusionQueriesNV := gl_GetProc('glDeleteOcclusionQueriesNV');
-    glIsOcclusionQueryNV := gl_GetProc('glIsOcclusionQueryNV');
-    glBeginOcclusionQueryNV := gl_GetProc('glBeginOcclusionQueryNV');
-    glEndOcclusionQueryNV := gl_GetProc('glEndOcclusionQueryNV');
-    glGetOcclusionQueryivNV := gl_GetProc('glGetOcclusionQueryivNV');
-    glGetOcclusionQueryuivNV := gl_GetProc('glGetOcclusionQueryuivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_parameter_buffer_object}
-  if GL_NV_parameter_buffer_object then
-  begin
-    glProgramBufferParametersfvNV := gl_GetProc('glProgramBufferParametersfvNV');
-    glProgramBufferParametersIivNV := gl_GetProc('glProgramBufferParametersIivNV');
-    glProgramBufferParametersIuivNV := gl_GetProc('glProgramBufferParametersIuivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_path_rendering}
-  if GL_NV_path_rendering then
-  begin
-    glGenPathsNV := gl_GetProc('glGenPathsNV');
-    glDeletePathsNV := gl_GetProc('glDeletePathsNV');
-    glIsPathNV := gl_GetProc('glIsPathNV');
-    glPathCommandsNV := gl_GetProc('glPathCommandsNV');
-    glPathCoordsNV := gl_GetProc('glPathCoordsNV');
-    glPathSubCommandsNV := gl_GetProc('glPathSubCommandsNV');
-    glPathSubCoordsNV := gl_GetProc('glPathSubCoordsNV');
-    glPathStringNV := gl_GetProc('glPathStringNV');
-    glPathGlyphsNV := gl_GetProc('glPathGlyphsNV');
-    glPathGlyphRangeNV := gl_GetProc('glPathGlyphRangeNV');
-    glWeightPathsNV := gl_GetProc('glWeightPathsNV');
-    glCopyPathNV := gl_GetProc('glCopyPathNV');
-    glInterpolatePathsNV := gl_GetProc('glInterpolatePathsNV');
-    glTransformPathNV := gl_GetProc('glTransformPathNV');
-    glPathParameterivNV := gl_GetProc('glPathParameterivNV');
-    glPathParameteriNV := gl_GetProc('glPathParameteriNV');
-    glPathParameterfvNV := gl_GetProc('glPathParameterfvNV');
-    glPathParameterfNV := gl_GetProc('glPathParameterfNV');
-    glPathDashArrayNV := gl_GetProc('glPathDashArrayNV');
-    glPathStencilFuncNV := gl_GetProc('glPathStencilFuncNV');
-    glPathStencilDepthOffsetNV := gl_GetProc('glPathStencilDepthOffsetNV');
-    glStencilFillPathNV := gl_GetProc('glStencilFillPathNV');
-    glStencilStrokePathNV := gl_GetProc('glStencilStrokePathNV');
-    glStencilFillPathInstancedNV := gl_GetProc('glStencilFillPathInstancedNV');
-    glStencilStrokePathInstancedNV := gl_GetProc('glStencilStrokePathInstancedNV');
-    glPathCoverDepthFuncNV := gl_GetProc('glPathCoverDepthFuncNV');
-    glCoverFillPathNV := gl_GetProc('glCoverFillPathNV');
-    glCoverStrokePathNV := gl_GetProc('glCoverStrokePathNV');
-    glCoverFillPathInstancedNV := gl_GetProc('glCoverFillPathInstancedNV');
-    glCoverStrokePathInstancedNV := gl_GetProc('glCoverStrokePathInstancedNV');
-    glGetPathParameterivNV := gl_GetProc('glGetPathParameterivNV');
-    glGetPathParameterfvNV := gl_GetProc('glGetPathParameterfvNV');
-    glGetPathCommandsNV := gl_GetProc('glGetPathCommandsNV');
-    glGetPathCoordsNV := gl_GetProc('glGetPathCoordsNV');
-    glGetPathDashArrayNV := gl_GetProc('glGetPathDashArrayNV');
-    glGetPathMetricsNV := gl_GetProc('glGetPathMetricsNV');
-    glGetPathMetricRangeNV := gl_GetProc('glGetPathMetricRangeNV');
-    glGetPathSpacingNV := gl_GetProc('glGetPathSpacingNV');
-    glIsPointInFillPathNV := gl_GetProc('glIsPointInFillPathNV');
-    glIsPointInStrokePathNV := gl_GetProc('glIsPointInStrokePathNV');
-    glGetPathLengthNV := gl_GetProc('glGetPathLengthNV');
-    glPointAlongPathNV := gl_GetProc('glPointAlongPathNV');
-    glMatrixLoad3x2fNV := gl_GetProc('glMatrixLoad3x2fNV');
-    glMatrixLoad3x3fNV := gl_GetProc('glMatrixLoad3x3fNV');
-    glMatrixLoadTranspose3x3fNV := gl_GetProc('glMatrixLoadTranspose3x3fNV');
-    glMatrixMult3x2fNV := gl_GetProc('glMatrixMult3x2fNV');
-    glMatrixMult3x3fNV := gl_GetProc('glMatrixMult3x3fNV');
-    glMatrixMultTranspose3x3fNV := gl_GetProc('glMatrixMultTranspose3x3fNV');
-    glStencilThenCoverFillPathNV := gl_GetProc('glStencilThenCoverFillPathNV');
-    glStencilThenCoverStrokePathNV := gl_GetProc('glStencilThenCoverStrokePathNV');
-    glStencilThenCoverFillPathInstancedNV := gl_GetProc('glStencilThenCoverFillPathInstancedNV');
-    glStencilThenCoverStrokePathInstancedNV := gl_GetProc('glStencilThenCoverStrokePathInstancedNV');
-    glPathGlyphIndexRangeNV := gl_GetProc('glPathGlyphIndexRangeNV');
-    glPathGlyphIndexArrayNV := gl_GetProc('glPathGlyphIndexArrayNV');
-    glPathMemoryGlyphIndexArrayNV := gl_GetProc('glPathMemoryGlyphIndexArrayNV');
-    glProgramPathFragmentInputGenNV := gl_GetProc('glProgramPathFragmentInputGenNV');
-    glGetProgramResourcefvNV := gl_GetProc('glGetProgramResourcefvNV');
-    {$IfNDef USE_GLCORE}
-    glPathColorGenNV := gl_GetProc('glPathColorGenNV');
-    glPathTexGenNV := gl_GetProc('glPathTexGenNV');
-    glPathFogGenNV := gl_GetProc('glPathFogGenNV');
-    glGetPathColorGenivNV := gl_GetProc('glGetPathColorGenivNV');
-    glGetPathColorGenfvNV := gl_GetProc('glGetPathColorGenfvNV');
-    glGetPathTexGenivNV := gl_GetProc('glGetPathTexGenivNV');
-    glGetPathTexGenfvNV := gl_GetProc('glGetPathTexGenfvNV');
-    {$EndIf}
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_pixel_data_range}
-  if GL_NV_pixel_data_range then
-  begin
-    glPixelDataRangeNV := gl_GetProc('glPixelDataRangeNV');
-    glFlushPixelDataRangeNV := gl_GetProc('glFlushPixelDataRangeNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_point_sprite}
-  if GL_NV_point_sprite then
-  begin
-    glPointParameteriNV := gl_GetProc('glPointParameteriNV');
-    glPointParameterivNV := gl_GetProc('glPointParameterivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_present_video}
-  if GL_NV_present_video then
-  begin
-    glPresentFrameKeyedNV := gl_GetProc('glPresentFrameKeyedNV');
-    glPresentFrameDualFillNV := gl_GetProc('glPresentFrameDualFillNV');
-    glGetVideoivNV := gl_GetProc('glGetVideoivNV');
-    glGetVideouivNV := gl_GetProc('glGetVideouivNV');
-    glGetVideoi64vNV := gl_GetProc('glGetVideoi64vNV');
-    glGetVideoui64vNV := gl_GetProc('glGetVideoui64vNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_primitive_restart}
-  if GL_NV_primitive_restart then
-  begin
-    glPrimitiveRestartNV := gl_GetProc('glPrimitiveRestartNV');
-    glPrimitiveRestartIndexNV := gl_GetProc('glPrimitiveRestartIndexNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_query_resource}
-  if GL_NV_query_resource then
-    glQueryResourceNV := gl_GetProc('glQueryResourceNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_query_resource_tag}
-  if GL_NV_query_resource_tag then
-  begin
-    glGenQueryResourceTagNV := gl_GetProc('glGenQueryResourceTagNV');
-    glDeleteQueryResourceTagNV := gl_GetProc('glDeleteQueryResourceTagNV');
-    glQueryResourceTagNV := gl_GetProc('glQueryResourceTagNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_register_combiners}
-  if GL_NV_register_combiners then
-  begin
-    glCombinerParameterfvNV := gl_GetProc('glCombinerParameterfvNV');
-    glCombinerParameterfNV := gl_GetProc('glCombinerParameterfNV');
-    glCombinerParameterivNV := gl_GetProc('glCombinerParameterivNV');
-    glCombinerParameteriNV := gl_GetProc('glCombinerParameteriNV');
-    glCombinerInputNV := gl_GetProc('glCombinerInputNV');
-    glCombinerOutputNV := gl_GetProc('glCombinerOutputNV');
-    glFinalCombinerInputNV := gl_GetProc('glFinalCombinerInputNV');
-    glGetCombinerInputParameterfvNV := gl_GetProc('glGetCombinerInputParameterfvNV');
-    glGetCombinerInputParameterivNV := gl_GetProc('glGetCombinerInputParameterivNV');
-    glGetCombinerOutputParameterfvNV := gl_GetProc('glGetCombinerOutputParameterfvNV');
-    glGetCombinerOutputParameterivNV := gl_GetProc('glGetCombinerOutputParameterivNV');
-    glGetFinalCombinerInputParameterfvNV := gl_GetProc('glGetFinalCombinerInputParameterfvNV');
-    glGetFinalCombinerInputParameterivNV := gl_GetProc('glGetFinalCombinerInputParameterivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_register_combiners2}
-  if GL_NV_register_combiners2 then
-  begin
-    glCombinerStageParameterfvNV := gl_GetProc('glCombinerStageParameterfvNV');
-    glGetCombinerStageParameterfvNV := gl_GetProc('glGetCombinerStageParameterfvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_sample_locations}
-  if GL_NV_sample_locations then
-  begin
-    glFramebufferSampleLocationsfvNV := gl_GetProc('glFramebufferSampleLocationsfvNV');
-    glNamedFramebufferSampleLocationsfvNV := gl_GetProc('glNamedFramebufferSampleLocationsfvNV');
-    glResolveDepthValuesNV := gl_GetProc('glResolveDepthValuesNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_scissor_exclusive}
-  if GL_NV_scissor_exclusive then
-  begin
-    glScissorExclusiveNV := gl_GetProc('glScissorExclusiveNV');
-    glScissorExclusiveArrayvNV := gl_GetProc('glScissorExclusiveArrayvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_shader_buffer_load}
-  if GL_NV_shader_buffer_load then
-  begin
-    glMakeBufferResidentNV := gl_GetProc('glMakeBufferResidentNV');
-    glMakeBufferNonResidentNV := gl_GetProc('glMakeBufferNonResidentNV');
-    glIsBufferResidentNV := gl_GetProc('glIsBufferResidentNV');
-    glMakeNamedBufferResidentNV := gl_GetProc('glMakeNamedBufferResidentNV');
-    glMakeNamedBufferNonResidentNV := gl_GetProc('glMakeNamedBufferNonResidentNV');
-    glIsNamedBufferResidentNV := gl_GetProc('glIsNamedBufferResidentNV');
-    glGetBufferParameterui64vNV := gl_GetProc('glGetBufferParameterui64vNV');
-    glGetNamedBufferParameterui64vNV := gl_GetProc('glGetNamedBufferParameterui64vNV');
-    glGetIntegerui64vNV := gl_GetProc('glGetIntegerui64vNV');
-    glUniformui64NV := gl_GetProc('glUniformui64NV');
-    glUniformui64vNV := gl_GetProc('glUniformui64vNV');
-    glProgramUniformui64NV := gl_GetProc('glProgramUniformui64NV');
-    glProgramUniformui64vNV := gl_GetProc('glProgramUniformui64vNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_shading_rate_image}
-  if GL_NV_shading_rate_image then
-  begin
-    glBindShadingRateImageNV := gl_GetProc('glBindShadingRateImageNV');
-    glGetShadingRateImagePaletteNV := gl_GetProc('glGetShadingRateImagePaletteNV');
-    glGetShadingRateSampleLocationivNV := gl_GetProc('glGetShadingRateSampleLocationivNV');
-    glShadingRateImageBarrierNV := gl_GetProc('glShadingRateImageBarrierNV');
-    glShadingRateImagePaletteNV := gl_GetProc('glShadingRateImagePaletteNV');
-    glShadingRateSampleOrderNV := gl_GetProc('glShadingRateSampleOrderNV');
-    glShadingRateSampleOrderCustomNV := gl_GetProc('glShadingRateSampleOrderCustomNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_texture_barrier}
-  if GL_NV_texture_barrier then
-    glTextureBarrierNV := gl_GetProc('glTextureBarrierNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_texture_multisample}
-  if GL_NV_texture_multisample then
-  begin
-    glTexImage2DMultisampleCoverageNV := gl_GetProc('glTexImage2DMultisampleCoverageNV');
-    glTexImage3DMultisampleCoverageNV := gl_GetProc('glTexImage3DMultisampleCoverageNV');
-    glTextureImage2DMultisampleNV := gl_GetProc('glTextureImage2DMultisampleNV');
-    glTextureImage3DMultisampleNV := gl_GetProc('glTextureImage3DMultisampleNV');
-    glTextureImage2DMultisampleCoverageNV := gl_GetProc('glTextureImage2DMultisampleCoverageNV');
-    glTextureImage3DMultisampleCoverageNV := gl_GetProc('glTextureImage3DMultisampleCoverageNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_timeline_semaphore}
-  if GL_NV_timeline_semaphore then
-  begin
-    glCreateSemaphoresNV := gl_GetProc('glCreateSemaphoresNV');
-    glSemaphoreParameterivNV := gl_GetProc('glSemaphoreParameterivNV');
-    glGetSemaphoreParameterivNV := gl_GetProc('glGetSemaphoreParameterivNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_transform_feedback}
-  if GL_NV_transform_feedback then
-  begin
-    glBeginTransformFeedbackNV := gl_GetProc('glBeginTransformFeedbackNV');
-    glEndTransformFeedbackNV := gl_GetProc('glEndTransformFeedbackNV');
-    glTransformFeedbackAttribsNV := gl_GetProc('glTransformFeedbackAttribsNV');
-    glBindBufferRangeNV := gl_GetProc('glBindBufferRangeNV');
-    glBindBufferOffsetNV := gl_GetProc('glBindBufferOffsetNV');
-    glBindBufferBaseNV := gl_GetProc('glBindBufferBaseNV');
-    glTransformFeedbackVaryingsNV := gl_GetProc('glTransformFeedbackVaryingsNV');
-    glActiveVaryingNV := gl_GetProc('glActiveVaryingNV');
-    glGetVaryingLocationNV := gl_GetProc('glGetVaryingLocationNV');
-    glGetActiveVaryingNV := gl_GetProc('glGetActiveVaryingNV');
-    glGetTransformFeedbackVaryingNV := gl_GetProc('glGetTransformFeedbackVaryingNV');
-    glTransformFeedbackStreamAttribsNV := gl_GetProc('glTransformFeedbackStreamAttribsNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_transform_feedback2}
-  if GL_NV_transform_feedback2 then
-  begin
-    glBindTransformFeedbackNV := gl_GetProc('glBindTransformFeedbackNV');
-    glDeleteTransformFeedbacksNV := gl_GetProc('glDeleteTransformFeedbacksNV');
-    glGenTransformFeedbacksNV := gl_GetProc('glGenTransformFeedbacksNV');
-    glIsTransformFeedbackNV := gl_GetProc('glIsTransformFeedbackNV');
-    glPauseTransformFeedbackNV := gl_GetProc('glPauseTransformFeedbackNV');
-    glResumeTransformFeedbackNV := gl_GetProc('glResumeTransformFeedbackNV');
-    glDrawTransformFeedbackNV := gl_GetProc('glDrawTransformFeedbackNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_vdpau_interop}
-  if GL_NV_vdpau_interop then
-  begin
-    glVDPAUInitNV := gl_GetProc('glVDPAUInitNV');
-    glVDPAUFiniNV := gl_GetProc('glVDPAUFiniNV');
-    glVDPAURegisterVideoSurfaceNV := gl_GetProc('glVDPAURegisterVideoSurfaceNV');
-    glVDPAURegisterOutputSurfaceNV := gl_GetProc('glVDPAURegisterOutputSurfaceNV');
-    glVDPAUIsSurfaceNV := gl_GetProc('glVDPAUIsSurfaceNV');
-    glVDPAUUnregisterSurfaceNV := gl_GetProc('glVDPAUUnregisterSurfaceNV');
-    glVDPAUGetSurfaceivNV := gl_GetProc('glVDPAUGetSurfaceivNV');
-    glVDPAUSurfaceAccessNV := gl_GetProc('glVDPAUSurfaceAccessNV');
-    glVDPAUMapSurfacesNV := gl_GetProc('glVDPAUMapSurfacesNV');
-    glVDPAUUnmapSurfacesNV := gl_GetProc('glVDPAUUnmapSurfacesNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_vdpau_interop2}
-  if GL_NV_vdpau_interop2 then
-    glVDPAURegisterVideoSurfaceWithPictureStructureNV := gl_GetProc('glVDPAURegisterVideoSurfaceWithPictureStructureNV');
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_array_range}
-  if GL_NV_vertex_array_range then
-  begin
-    glFlushVertexArrayRangeNV := gl_GetProc('glFlushVertexArrayRangeNV');
-    glVertexArrayRangeNV := gl_GetProc('glVertexArrayRangeNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_attrib_integer_64bit}
-  if GL_NV_vertex_attrib_integer_64bit then
-  begin
-    glVertexAttribL1i64NV := gl_GetProc('glVertexAttribL1i64NV');
-    glVertexAttribL2i64NV := gl_GetProc('glVertexAttribL2i64NV');
-    glVertexAttribL3i64NV := gl_GetProc('glVertexAttribL3i64NV');
-    glVertexAttribL4i64NV := gl_GetProc('glVertexAttribL4i64NV');
-    glVertexAttribL1i64vNV := gl_GetProc('glVertexAttribL1i64vNV');
-    glVertexAttribL2i64vNV := gl_GetProc('glVertexAttribL2i64vNV');
-    glVertexAttribL3i64vNV := gl_GetProc('glVertexAttribL3i64vNV');
-    glVertexAttribL4i64vNV := gl_GetProc('glVertexAttribL4i64vNV');
-    glVertexAttribL1ui64NV := gl_GetProc('glVertexAttribL1ui64NV');
-    glVertexAttribL2ui64NV := gl_GetProc('glVertexAttribL2ui64NV');
-    glVertexAttribL3ui64NV := gl_GetProc('glVertexAttribL3ui64NV');
-    glVertexAttribL4ui64NV := gl_GetProc('glVertexAttribL4ui64NV');
-    glVertexAttribL1ui64vNV := gl_GetProc('glVertexAttribL1ui64vNV');
-    glVertexAttribL2ui64vNV := gl_GetProc('glVertexAttribL2ui64vNV');
-    glVertexAttribL3ui64vNV := gl_GetProc('glVertexAttribL3ui64vNV');
-    glVertexAttribL4ui64vNV := gl_GetProc('glVertexAttribL4ui64vNV');
-    glGetVertexAttribLi64vNV := gl_GetProc('glGetVertexAttribLi64vNV');
-    glGetVertexAttribLui64vNV := gl_GetProc('glGetVertexAttribLui64vNV');
-    glVertexAttribLFormatNV := gl_GetProc('glVertexAttribLFormatNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_buffer_unified_memory}
-  if GL_NV_vertex_buffer_unified_memory then
-  begin
-    glBufferAddressRangeNV := gl_GetProc('glBufferAddressRangeNV');
-    glVertexFormatNV := gl_GetProc('glVertexFormatNV');
-    glNormalFormatNV := gl_GetProc('glNormalFormatNV');
-    glColorFormatNV := gl_GetProc('glColorFormatNV');
-    glIndexFormatNV := gl_GetProc('glIndexFormatNV');
-    glTexCoordFormatNV := gl_GetProc('glTexCoordFormatNV');
-    glEdgeFlagFormatNV := gl_GetProc('glEdgeFlagFormatNV');
-    glSecondaryColorFormatNV := gl_GetProc('glSecondaryColorFormatNV');
-    glFogCoordFormatNV := gl_GetProc('glFogCoordFormatNV');
-    glVertexAttribFormatNV := gl_GetProc('glVertexAttribFormatNV');
-    glVertexAttribIFormatNV := gl_GetProc('glVertexAttribIFormatNV');
-    glGetIntegerui64i_vNV := gl_GetProc('glGetIntegerui64i_vNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_vertex_program}
-  if GL_NV_vertex_program then
-  begin
-    glAreProgramsResidentNV := gl_GetProc('glAreProgramsResidentNV');
-    glBindProgramNV := gl_GetProc('glBindProgramNV');
-    glDeleteProgramsNV := gl_GetProc('glDeleteProgramsNV');
-    glExecuteProgramNV := gl_GetProc('glExecuteProgramNV');
-    glGenProgramsNV := gl_GetProc('glGenProgramsNV');
-    glGetProgramParameterdvNV := gl_GetProc('glGetProgramParameterdvNV');
-    glGetProgramParameterfvNV := gl_GetProc('glGetProgramParameterfvNV');
-    glGetProgramivNV := gl_GetProc('glGetProgramivNV');
-    glGetProgramStringNV := gl_GetProc('glGetProgramStringNV');
-    glGetTrackMatrixivNV := gl_GetProc('glGetTrackMatrixivNV');
-    glGetVertexAttribdvNV := gl_GetProc('glGetVertexAttribdvNV');
-    glGetVertexAttribfvNV := gl_GetProc('glGetVertexAttribfvNV');
-    glGetVertexAttribivNV := gl_GetProc('glGetVertexAttribivNV');
-    glGetVertexAttribPointervNV := gl_GetProc('glGetVertexAttribPointervNV');
-    glIsProgramNV := gl_GetProc('glIsProgramNV');
-    glLoadProgramNV := gl_GetProc('glLoadProgramNV');
-    glProgramParameter4dNV := gl_GetProc('glProgramParameter4dNV');
-    glProgramParameter4dvNV := gl_GetProc('glProgramParameter4dvNV');
-    glProgramParameter4fNV := gl_GetProc('glProgramParameter4fNV');
-    glProgramParameter4fvNV := gl_GetProc('glProgramParameter4fvNV');
-    glProgramParameters4dvNV := gl_GetProc('glProgramParameters4dvNV');
-    glProgramParameters4fvNV := gl_GetProc('glProgramParameters4fvNV');
-    glRequestResidentProgramsNV := gl_GetProc('glRequestResidentProgramsNV');
-    glTrackMatrixNV := gl_GetProc('glTrackMatrixNV');
-    glVertexAttribPointerNV := gl_GetProc('glVertexAttribPointerNV');
-    glVertexAttrib1dNV := gl_GetProc('glVertexAttrib1dNV');
-    glVertexAttrib1dvNV := gl_GetProc('glVertexAttrib1dvNV');
-    glVertexAttrib1fNV := gl_GetProc('glVertexAttrib1fNV');
-    glVertexAttrib1fvNV := gl_GetProc('glVertexAttrib1fvNV');
-    glVertexAttrib1sNV := gl_GetProc('glVertexAttrib1sNV');
-    glVertexAttrib1svNV := gl_GetProc('glVertexAttrib1svNV');
-    glVertexAttrib2dNV := gl_GetProc('glVertexAttrib2dNV');
-    glVertexAttrib2dvNV := gl_GetProc('glVertexAttrib2dvNV');
-    glVertexAttrib2fNV := gl_GetProc('glVertexAttrib2fNV');
-    glVertexAttrib2fvNV := gl_GetProc('glVertexAttrib2fvNV');
-    glVertexAttrib2sNV := gl_GetProc('glVertexAttrib2sNV');
-    glVertexAttrib2svNV := gl_GetProc('glVertexAttrib2svNV');
-    glVertexAttrib3dNV := gl_GetProc('glVertexAttrib3dNV');
-    glVertexAttrib3dvNV := gl_GetProc('glVertexAttrib3dvNV');
-    glVertexAttrib3fNV := gl_GetProc('glVertexAttrib3fNV');
-    glVertexAttrib3fvNV := gl_GetProc('glVertexAttrib3fvNV');
-    glVertexAttrib3sNV := gl_GetProc('glVertexAttrib3sNV');
-    glVertexAttrib3svNV := gl_GetProc('glVertexAttrib3svNV');
-    glVertexAttrib4dNV := gl_GetProc('glVertexAttrib4dNV');
-    glVertexAttrib4dvNV := gl_GetProc('glVertexAttrib4dvNV');
-    glVertexAttrib4fNV := gl_GetProc('glVertexAttrib4fNV');
-    glVertexAttrib4fvNV := gl_GetProc('glVertexAttrib4fvNV');
-    glVertexAttrib4sNV := gl_GetProc('glVertexAttrib4sNV');
-    glVertexAttrib4svNV := gl_GetProc('glVertexAttrib4svNV');
-    glVertexAttrib4ubNV := gl_GetProc('glVertexAttrib4ubNV');
-    glVertexAttrib4ubvNV := gl_GetProc('glVertexAttrib4ubvNV');
-    glVertexAttribs1dvNV := gl_GetProc('glVertexAttribs1dvNV');
-    glVertexAttribs1fvNV := gl_GetProc('glVertexAttribs1fvNV');
-    glVertexAttribs1svNV := gl_GetProc('glVertexAttribs1svNV');
-    glVertexAttribs2dvNV := gl_GetProc('glVertexAttribs2dvNV');
-    glVertexAttribs2fvNV := gl_GetProc('glVertexAttribs2fvNV');
-    glVertexAttribs2svNV := gl_GetProc('glVertexAttribs2svNV');
-    glVertexAttribs3dvNV := gl_GetProc('glVertexAttribs3dvNV');
-    glVertexAttribs3fvNV := gl_GetProc('glVertexAttribs3fvNV');
-    glVertexAttribs3svNV := gl_GetProc('glVertexAttribs3svNV');
-    glVertexAttribs4dvNV := gl_GetProc('glVertexAttribs4dvNV');
-    glVertexAttribs4fvNV := gl_GetProc('glVertexAttribs4fvNV');
-    glVertexAttribs4svNV := gl_GetProc('glVertexAttribs4svNV');
-    glVertexAttribs4ubvNV := gl_GetProc('glVertexAttribs4ubvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_video_capture}
-  if GL_NV_video_capture then
-  begin
-    glBeginVideoCaptureNV := gl_GetProc('glBeginVideoCaptureNV');
-    glBindVideoCaptureStreamBufferNV := gl_GetProc('glBindVideoCaptureStreamBufferNV');
-    glBindVideoCaptureStreamTextureNV := gl_GetProc('glBindVideoCaptureStreamTextureNV');
-    glEndVideoCaptureNV := gl_GetProc('glEndVideoCaptureNV');
-    glGetVideoCaptureivNV := gl_GetProc('glGetVideoCaptureivNV');
-    glGetVideoCaptureStreamivNV := gl_GetProc('glGetVideoCaptureStreamivNV');
-    glGetVideoCaptureStreamfvNV := gl_GetProc('glGetVideoCaptureStreamfvNV');
-    glGetVideoCaptureStreamdvNV := gl_GetProc('glGetVideoCaptureStreamdvNV');
-    glVideoCaptureNV := gl_GetProc('glVideoCaptureNV');
-    glVideoCaptureStreamParameterivNV := gl_GetProc('glVideoCaptureStreamParameterivNV');
-    glVideoCaptureStreamParameterfvNV := gl_GetProc('glVideoCaptureStreamParameterfvNV');
-    glVideoCaptureStreamParameterdvNV := gl_GetProc('glVideoCaptureStreamParameterdvNV');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_NV_viewport_swizzle}
-  if GL_NV_viewport_swizzle then
-    glViewportSwizzleNV := gl_GetProc('glViewportSwizzleNV');
-  {$EndIf}
-
-  {$IfDef GL_OVR_multiview}
-  if GL_OVR_multiview  then
-    glFramebufferTextureMultiviewOVR := gl_GetProc('glFramebufferTextureMultiviewOVR');
-  {$EndIf}
-
-  {$IfDef GL_PGI_misc_hints}
-  if GL_PGI_misc_hints then
-    glHintPGI := gl_GetProc('glHintPGI');
-  {$EndIf}
-
-  {$IfDef GL_SGIS_detail_texture}
-  if GL_SGIS_detail_texture then
-  begin
-    glDetailTexFuncSGIS := gl_GetProc('glDetailTexFuncSGIS');
-    glGetDetailTexFuncSGIS := gl_GetProc('glGetDetailTexFuncSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_fog_function}
-  if GL_SGIS_fog_function then
-  begin
-    glFogFuncSGIS := gl_GetProc('glFogFuncSGIS');
-    glGetFogFuncSGIS := gl_GetProc('glGetFogFuncSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_multisample}
-  if GL_SGIS_multisample then
-  begin
-    glSampleMaskSGIS := gl_GetProc('glSampleMaskSGIS');
-    glSamplePatternSGIS := gl_GetProc('glSamplePatternSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_pixel_texture}
-  if GL_SGIS_pixel_texture then
-  begin
-    glPixelTexGenParameteriSGIS := gl_GetProc('glPixelTexGenParameteriSGIS');
-    glPixelTexGenParameterivSGIS := gl_GetProc('glPixelTexGenParameterivSGIS');
-    glPixelTexGenParameterfSGIS := gl_GetProc('glPixelTexGenParameterfSGIS');
-    glPixelTexGenParameterfvSGIS := gl_GetProc('glPixelTexGenParameterfvSGIS');
-    glGetPixelTexGenParameterivSGIS := gl_GetProc('glGetPixelTexGenParameterivSGIS');
-    glGetPixelTexGenParameterfvSGIS := gl_GetProc('glGetPixelTexGenParameterfvSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_point_parameters}
-  if GL_SGIS_point_parameters then
-  begin
-    glPointParameterfSGIS := gl_GetProc('glPointParameterfSGIS');
-    glPointParameterfvSGIS := gl_GetProc('glPointParameterfvSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_sharpen_texture}
-  if GL_SGIS_sharpen_texture then
-  begin
-    glSharpenTexFuncSGIS := gl_GetProc('glSharpenTexFuncSGIS');
-    glGetSharpenTexFuncSGIS := gl_GetProc('glGetSharpenTexFuncSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture4D}
-  if GL_SGIS_texture4D then
-  begin
-    glTexImage4DSGIS := gl_GetProc('glTexImage4DSGIS');
-    glTexSubImage4DSGIS := gl_GetProc('glTexSubImage4DSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture_color_mask}
-  if GL_SGIS_texture_color_mask then
-    glTextureColorMaskSGIS := gl_GetProc('glTextureColorMaskSGIS');
-  {$EndIf}
-
-  {$IfDef GL_SGIS_texture_filter4}
-  if GL_SGIS_texture_filter4 then
-  begin
-    glGetTexFilterFuncSGIS := gl_GetProc('glGetTexFilterFuncSGIS');
-    glTexFilterFuncSGIS := gl_GetProc('glTexFilterFuncSGIS');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_async}
-  if GL_SGIX_async then
-  begin
-    glAsyncMarkerSGIX := gl_GetProc('glAsyncMarkerSGIX');
-    glFinishAsyncSGIX := gl_GetProc('glFinishAsyncSGIX');
-    glPollAsyncSGIX := gl_GetProc('glPollAsyncSGIX');
-    glGenAsyncMarkersSGIX := gl_GetProc('glGenAsyncMarkersSGIX');
-    glDeleteAsyncMarkersSGIX := gl_GetProc('glDeleteAsyncMarkersSGIX');
-    glIsAsyncMarkerSGIX := gl_GetProc('glIsAsyncMarkerSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_flush_raster}
-  if GL_SGIX_flush_raster then
-    glFlushRasterSGIX := gl_GetProc('glFlushRasterSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGIX_fragment_lighting}
-  if GL_SGIX_fragment_lighting then
-  begin
-    glFragmentColorMaterialSGIX := gl_GetProc('glFragmentColorMaterialSGIX');
-    glFragmentLightfSGIX := gl_GetProc('glFragmentLightfSGIX');
-    glFragmentLightfvSGIX := gl_GetProc('glFragmentLightfvSGIX');
-    glFragmentLightiSGIX := gl_GetProc('glFragmentLightiSGIX');
-    glFragmentLightivSGIX := gl_GetProc('glFragmentLightivSGIX');
-    glFragmentLightModelfSGIX := gl_GetProc('glFragmentLightModelfSGIX');
-    glFragmentLightModelfvSGIX := gl_GetProc('glFragmentLightModelfvSGIX');
-    glFragmentLightModeliSGIX := gl_GetProc('glFragmentLightModeliSGIX');
-    glFragmentLightModelivSGIX := gl_GetProc('glFragmentLightModelivSGIX');
-    glFragmentMaterialfSGIX := gl_GetProc('glFragmentMaterialfSGIX');
-    glFragmentMaterialfvSGIX := gl_GetProc('glFragmentMaterialfvSGIX');
-    glFragmentMaterialiSGIX := gl_GetProc('glFragmentMaterialiSGIX');
-    glFragmentMaterialivSGIX := gl_GetProc('glFragmentMaterialivSGIX');
-    glGetFragmentLightfvSGIX := gl_GetProc('glGetFragmentLightfvSGIX');
-    glGetFragmentLightivSGIX := gl_GetProc('glGetFragmentLightivSGIX');
-    glGetFragmentMaterialfvSGIX := gl_GetProc('glGetFragmentMaterialfvSGIX');
-    glGetFragmentMaterialivSGIX := gl_GetProc('glGetFragmentMaterialivSGIX');
-    glLightEnviSGIX := gl_GetProc('glLightEnviSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_framezoom}
-  if GL_SGIX_framezoom then
-    glFrameZoomSGIX := gl_GetProc('glFrameZoomSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGIX_igloo_interface}
-  if GL_SGIX_igloo_interface then
-    glIglooInterfaceSGIX := gl_GetProc('glIglooInterfaceSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGIX_instruments}
-  if GL_SGIX_instruments then
-  begin
-    glGetInstrumentsSGIX := gl_GetProc('glGetInstrumentsSGIX');
-    glInstrumentsBufferSGIX := gl_GetProc('glInstrumentsBufferSGIX');
-    glPollInstrumentsSGIX := gl_GetProc('glPollInstrumentsSGIX');
-    glReadInstrumentsSGIX := gl_GetProc('glReadInstrumentsSGIX');
-    glStartInstrumentsSGIX := gl_GetProc('glStartInstrumentsSGIX');
-    glStopInstrumentsSGIX := gl_GetProc('glStopInstrumentsSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_list_priority}
-  if GL_SGIX_list_priority then
-  begin
-    glGetListParameterfvSGIX := gl_GetProc('glGetListParameterfvSGIX');
-    glGetListParameterivSGIX := gl_GetProc('glGetListParameterivSGIX');
-    glListParameterfSGIX := gl_GetProc('glListParameterfSGIX');
-    glListParameterfvSGIX := gl_GetProc('glListParameterfvSGIX');
-    glListParameteriSGIX := gl_GetProc('glListParameteriSGIX');
-    glListParameterivSGIX := gl_GetProc('glListParameterivSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_pixel_texture}
-  if GL_SGIX_pixel_texture then
-    glPixelTexGenSGIX := gl_GetProc('glPixelTexGenSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGIX_polynomial_ffd}
-  if GL_SGIX_polynomial_ffd then
-  begin
-    glDeformationMap3dSGIX := gl_GetProc('glDeformationMap3dSGIX');
-    glDeformationMap3fSGIX := gl_GetProc('glDeformationMap3fSGIX');
-    glDeformSGIX := gl_GetProc('glDeformSGIX');
-    glLoadIdentityDeformationMapSGIX := gl_GetProc('glLoadIdentityDeformationMapSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_reference_plane}
-  if GL_SGIX_reference_plane then
-    glReferencePlaneSGIX := gl_GetProc('glReferencePlaneSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGIX_sprite}
-  if GL_SGIX_sprite then
-  begin
-    glSpriteParameterfSGIX := gl_GetProc('glSpriteParameterfSGIX');
-    glSpriteParameterfvSGIX := gl_GetProc('glSpriteParameterfvSGIX');
-    glSpriteParameteriSGIX := gl_GetProc('glSpriteParameteriSGIX');
-    glSpriteParameterivSGIX := gl_GetProc('glSpriteParameterivSGIX');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SGIX_tag_sample_buffer}
-  if GL_SGIX_tag_sample_buffer then
-    glTagSampleBufferSGIX := gl_GetProc('glTagSampleBufferSGIX');
-  {$EndIf}
-
-  {$IfDef GL_SGI_color_table}
-  if GL_SGI_color_table then
-  begin
-    glColorTableSGI := gl_GetProc('glColorTableSGI');
-    glColorTableParameterfvSGI := gl_GetProc('glColorTableParameterfvSGI');
-    glColorTableParameterivSGI := gl_GetProc('glColorTableParameterivSGI');
-    glCopyColorTableSGI := gl_GetProc('glCopyColorTableSGI');
-    glGetColorTableSGI := gl_GetProc('glGetColorTableSGI');
-    glGetColorTableParameterfvSGI := gl_GetProc('glGetColorTableParameterfvSGI');
-    glGetColorTableParameterivSGI := gl_GetProc('glGetColorTableParameterivSGI');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SUNX_constant_data}
-  if GL_SUNX_constant_data then
-    glFinishTextureSUNX := gl_GetProc('glFinishTextureSUNX');
-  {$EndIf}
-
-  {$IfDef GL_SUN_global_alpha}
-  if GL_SUN_global_alpha then
-  begin
-    glGlobalAlphaFactorbSUN := gl_GetProc('glGlobalAlphaFactorbSUN');
-    glGlobalAlphaFactorsSUN := gl_GetProc('glGlobalAlphaFactorsSUN');
-    glGlobalAlphaFactoriSUN := gl_GetProc('glGlobalAlphaFactoriSUN');
-    glGlobalAlphaFactorfSUN := gl_GetProc('glGlobalAlphaFactorfSUN');
-    glGlobalAlphaFactordSUN := gl_GetProc('glGlobalAlphaFactordSUN');
-    glGlobalAlphaFactorubSUN := gl_GetProc('glGlobalAlphaFactorubSUN');
-    glGlobalAlphaFactorusSUN := gl_GetProc('glGlobalAlphaFactorusSUN');
-    glGlobalAlphaFactoruiSUN := gl_GetProc('glGlobalAlphaFactoruiSUN');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SUN_mesh_array}
-  if GL_SUN_mesh_array then
-    glDrawMeshArraysSUN := gl_GetProc('glDrawMeshArraysSUN');
-  {$EndIf}
-
-  {$IfDef GL_SUN_triangle_list}
-  if GL_SUN_triangle_list then
-  begin
-    glReplacementCodeuiSUN := gl_GetProc('glReplacementCodeuiSUN');
-    glReplacementCodeusSUN := gl_GetProc('glReplacementCodeusSUN');
-    glReplacementCodeubSUN := gl_GetProc('glReplacementCodeubSUN');
-    glReplacementCodeuivSUN := gl_GetProc('glReplacementCodeuivSUN');
-    glReplacementCodeusvSUN := gl_GetProc('glReplacementCodeusvSUN');
-    glReplacementCodeubvSUN := gl_GetProc('glReplacementCodeubvSUN');
-    glReplacementCodePointerSUN := gl_GetProc('glReplacementCodePointerSUN');
-  end;
-  {$EndIf}
-
-  {$IfDef GL_SUN_vertex}
-  if GL_SUN_vertex then
-  begin
-    glColor4ubVertex2fSUN := gl_GetProc('glColor4ubVertex2fSUN');
-    glColor4ubVertex2fvSUN := gl_GetProc('glColor4ubVertex2fvSUN');
-    glColor4ubVertex3fSUN := gl_GetProc('glColor4ubVertex3fSUN');
-    glColor4ubVertex3fvSUN := gl_GetProc('glColor4ubVertex3fvSUN');
-    glColor3fVertex3fSUN := gl_GetProc('glColor3fVertex3fSUN');
-    glColor3fVertex3fvSUN := gl_GetProc('glColor3fVertex3fvSUN');
-    glNormal3fVertex3fSUN := gl_GetProc('glNormal3fVertex3fSUN');
-    glNormal3fVertex3fvSUN := gl_GetProc('glNormal3fVertex3fvSUN');
-    glColor4fNormal3fVertex3fSUN := gl_GetProc('glColor4fNormal3fVertex3fSUN');
-    glColor4fNormal3fVertex3fvSUN := gl_GetProc('glColor4fNormal3fVertex3fvSUN');
-    glTexCoord2fVertex3fSUN := gl_GetProc('glTexCoord2fVertex3fSUN');
-    glTexCoord2fVertex3fvSUN := gl_GetProc('glTexCoord2fVertex3fvSUN');
-    glTexCoord4fVertex4fSUN := gl_GetProc('glTexCoord4fVertex4fSUN');
-    glTexCoord4fVertex4fvSUN := gl_GetProc('glTexCoord4fVertex4fvSUN');
-    glTexCoord2fColor4ubVertex3fSUN := gl_GetProc('glTexCoord2fColor4ubVertex3fSUN');
-    glTexCoord2fColor4ubVertex3fvSUN := gl_GetProc('glTexCoord2fColor4ubVertex3fvSUN');
-    glTexCoord2fColor3fVertex3fSUN := gl_GetProc('glTexCoord2fColor3fVertex3fSUN');
-    glTexCoord2fColor3fVertex3fvSUN := gl_GetProc('glTexCoord2fColor3fVertex3fvSUN');
-    glTexCoord2fNormal3fVertex3fSUN := gl_GetProc('glTexCoord2fNormal3fVertex3fSUN');
-    glTexCoord2fNormal3fVertex3fvSUN := gl_GetProc('glTexCoord2fNormal3fVertex3fvSUN');
-    glTexCoord2fColor4fNormal3fVertex3fSUN := gl_GetProc('glTexCoord2fColor4fNormal3fVertex3fSUN');
-    glTexCoord2fColor4fNormal3fVertex3fvSUN := gl_GetProc('glTexCoord2fColor4fNormal3fVertex3fvSUN');
-    glTexCoord4fColor4fNormal3fVertex4fSUN := gl_GetProc('glTexCoord4fColor4fNormal3fVertex4fSUN');
-    glTexCoord4fColor4fNormal3fVertex4fvSUN := gl_GetProc('glTexCoord4fColor4fNormal3fVertex4fvSUN');
-    glReplacementCodeuiVertex3fSUN := gl_GetProc('glReplacementCodeuiVertex3fSUN');
-    glReplacementCodeuiVertex3fvSUN := gl_GetProc('glReplacementCodeuiVertex3fvSUN');
-    glReplacementCodeuiColor4ubVertex3fSUN := gl_GetProc('glReplacementCodeuiColor4ubVertex3fSUN');
-    glReplacementCodeuiColor4ubVertex3fvSUN := gl_GetProc('glReplacementCodeuiColor4ubVertex3fvSUN');
-    glReplacementCodeuiColor3fVertex3fSUN := gl_GetProc('glReplacementCodeuiColor3fVertex3fSUN');
-    glReplacementCodeuiColor3fVertex3fvSUN := gl_GetProc('glReplacementCodeuiColor3fVertex3fvSUN');
-    glReplacementCodeuiNormal3fVertex3fSUN := gl_GetProc('glReplacementCodeuiNormal3fVertex3fSUN');
-    glReplacementCodeuiNormal3fVertex3fvSUN := gl_GetProc('glReplacementCodeuiNormal3fVertex3fvSUN');
-    glReplacementCodeuiColor4fNormal3fVertex3fSUN := gl_GetProc('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
-    glReplacementCodeuiColor4fNormal3fVertex3fvSUN := gl_GetProc('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
-    glReplacementCodeuiTexCoord2fVertex3fSUN := gl_GetProc('glReplacementCodeuiTexCoord2fVertex3fSUN');
-    glReplacementCodeuiTexCoord2fVertex3fvSUN := gl_GetProc('glReplacementCodeuiTexCoord2fVertex3fvSUN');
-    glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := gl_GetProc('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
-    glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := gl_GetProc('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
-    glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := gl_GetProc('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
-    glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := gl_GetProc('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
-  end;
-  {$EndIf}
-end;
-
-initialization
-
-(*{$IFDEF FPC}
-  {$IF DEFINED(cpui386) or DEFINED(cpux86_64)}
-  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
-  {$IFEND}
-{$ELSE}
-  Set8087CW($133F);
-{$ENDIF}
-*)
-
-end.
-