[PATCH v11 0/8] MR10019: opengl32: Move wglGetProcAddress implementation to the PE side.
This better splits client / host extension lists, allowing to more easily check for available host-side extensions in win32u later on, then moves the function registry to the PE side to get rid of the remaining extension logic in opengl32 unix side. Doing that, it also drops the driver function check, and always expose extension functions to the client if their extension dependency is satisfied. I'm not completely sure this is right, but I think the unix side tends to expose functions from eglGetProcAddress more often than the opposite. We could also keep a mechanism to check the driver availability, with a bit of additional complexity. On the unix side, all OpenGL functions are queried on initialization instead of just core functions, simplifying their use later on. -- v11: opengl32: Implement the function registry on the PE side. win32u: Query every OpenGL functions on initialization. opengl32: Implement client extension enumeration on the PE side. opengl32: Move major / minor version to the PE side context wrapper. opengl32: Parse host extension list to the opengl_extensions struct. opengl32: Remove now unused wgl pixel format unix thunks. opengl32: Implement wglGetExtensionsString(ARB|EXT) on the PE side. opengl32: Initialize enabled / disabled OpenGL extensions struct. https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 16 +- dlls/opengl32/unix_wgl.c | 90 ++ include/wine/opengl_driver.h | 9 + include/wine/wgl.h | 1918 +++++++++++++++++----------------- 4 files changed, 1061 insertions(+), 972 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 9013f347e13..d424402067e 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -1489,7 +1489,7 @@ print HEADER "\n"; print HEADER "#define ALL_WGL_EXTS"; foreach (sort keys %wgl_extensions) { - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, 1)", $_; } print HEADER "\n\n"; print HEADER "#define ALL_WGL_FUNCS"; @@ -1508,7 +1508,7 @@ print HEADER "\n\n"; print HEADER "#define ALL_EGL_EXTS"; foreach (sort keys %egl_extensions) { - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, 0)", $_; } print HEADER "\n\n"; print HEADER "#define ALL_EGL_FUNCS"; @@ -1525,18 +1525,10 @@ foreach (sort keys %ext_functions) printf HEADER " \\\n USE_GL_FUNC(\%s)", $_; } print HEADER "\n\n"; -print HEADER "#define ALL_GL_CLIENT_EXTS"; +print HEADER "#define ALL_GL_EXTS"; foreach (sort keys %gl_extensions) { - next unless is_exposed_extension($_); - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; -} -print HEADER "\n\n"; -print HEADER "#define ALL_GL_EXTS ALL_GL_CLIENT_EXTS"; -foreach (sort keys %gl_extensions) -{ - next if is_exposed_extension($_); - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, \%u)", $_, is_exposed_extension($_); } print HEADER "\n\n"; print HEADER "#define ALL_GL_FUNCS"; diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 6d73b1cd735..11c0e2d5152 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -191,6 +191,7 @@ static ULONG_PTR zero_bits; static const struct vulkan_funcs *vk_funcs; static VkInstance vk_instance; static PFN_vkDestroyInstance p_vkDestroyInstance; +static BOOLEAN enabled_extensions[GL_EXTENSION_COUNT]; static int vk_device_cmp( const void *key, const struct rb_entry *entry ) { @@ -1153,9 +1154,96 @@ static BOOL initialize_vk_device( TEB *teb, struct context *ctx ) return FALSE; } +struct extension_entry +{ + const char *name; + size_t len; + BOOLEAN exposed; +}; + +#define USE_GL_EXT(x, e) [x] = { .name = #x, .len = sizeof(#x) - 1, .exposed = e }, +static const struct extension_entry all_extensions[] = { ALL_GL_EXTS ALL_WGL_EXTS }; +#undef USE_GL_EXT + +static int extension_entry_cmp( const void *a, const void *b ) +{ + const struct extension_entry *entry_a = a, *entry_b = b; + size_t len = max( entry_a->len, entry_b->len ); + return strncmp( entry_a->name, entry_b->name, len ); +}; + +static enum opengl_extension parse_extension( const char *ext, size_t len ) +{ + const struct extension_entry entry = { .name = ext, .len = len }, *found; + + if (!(found = bsearch( &entry, all_extensions, ARRAY_SIZE(all_extensions), sizeof(entry), extension_entry_cmp ))) + { + WARN( "Extension %s unknown\n", debugstr_an(ext, len) ); + return GL_EXTENSION_COUNT; + } + return found - all_extensions; +} + +static void parse_extensions( enum opengl_extension extensions[GL_EXTENSION_COUNT], const char *name ) +{ + const char *end; + for (end = name; *end; end++) + { + if (*end != ' ') continue; + if ((*extensions = parse_extension( name, end - name )) != GL_EXTENSION_COUNT) extensions++; + name = end + 1; + } + if (end > name && (*extensions = parse_extension( name, end - name )) != GL_EXTENSION_COUNT) extensions++; + *extensions++ = GL_EXTENSION_COUNT; +} + +static void dump_extensions( const char *prefix, const BOOLEAN extensions[GL_EXTENSION_COUNT] ) +{ + if (TRACE_ON(opengl)) + { + TRACE( "%s extensions:\n", prefix ); + for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) + { + if (!extensions[i]) continue; + TRACE( " - %s\n", all_extensions[i].name ); + } + } +} + +static void init_enabled_extensions(void) +{ + enum opengl_extension parsed_extensions[GL_EXTENSION_COUNT]; + char *enabled, *disabled; + + if ((enabled = query_opengl_option( "EnabledExtensions" ))) + { + parse_extensions( parsed_extensions, enabled ); + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + enabled_extensions[*ext] = TRUE; + } + else + { + memset( enabled_extensions, TRUE, sizeof(enabled_extensions) ); + } + + if ((disabled = query_opengl_option( "DisabledExtensions" ))) + { + parse_extensions( parsed_extensions, enabled ); + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + enabled_extensions[*ext] = FALSE; + } + + if (enabled || disabled) dump_extensions( "Enabled", enabled_extensions ); + + free( enabled ); + free( disabled ); +} + static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HDC draw_hdc, HDC read_hdc, HGLRC client_context, struct context *ctx ) { + static pthread_once_t once = PTHREAD_ONCE_INIT; + DWORD tid = HandleToULong(teb->ClientId.UniqueThread); size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; const char *version, *rest = "", **extensions; @@ -1169,6 +1257,8 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD teb->glTable = (void *)funcs; pop_default_fbo( teb ); + pthread_once( &once, init_enabled_extensions ); + if (ctx->major_version) return; /* already synced */ version = (const char *)funcs->p_glGetString( GL_VERSION ); diff --git a/include/wine/opengl_driver.h b/include/wine/opengl_driver.h index 470850c9d49..d53075eee2d 100644 --- a/include/wine/opengl_driver.h +++ b/include/wine/opengl_driver.h @@ -59,6 +59,15 @@ struct wgl_pixel_format int float_components; }; +enum opengl_extension +{ +#define USE_GL_EXT(x, e) x, + ALL_GL_EXTS + ALL_WGL_EXTS +#undef USE_GL_EXT + GL_EXTENSION_COUNT, +}; + struct opengl_client_context { struct HGLRC__ obj; /* client object header */ diff --git a/include/wine/wgl.h b/include/wine/wgl.h index e6d2849f5ce..539b14fb0e9 100644 --- a/include/wine/wgl.h +++ b/include/wine/wgl.h @@ -9854,43 +9854,43 @@ typedef BOOL (GLAPIENTRY *PFN_wglSetPixelFormatWINE)( HDC hdc, int format typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); #define ALL_WGL_EXTS \ - USE_GL_EXT(WGL_3DFX_multisample) \ - USE_GL_EXT(WGL_ARB_context_flush_control) \ - USE_GL_EXT(WGL_ARB_create_context) \ - USE_GL_EXT(WGL_ARB_create_context_no_error) \ - USE_GL_EXT(WGL_ARB_create_context_profile) \ - USE_GL_EXT(WGL_ARB_create_context_robustness) \ - USE_GL_EXT(WGL_ARB_extensions_string) \ - USE_GL_EXT(WGL_ARB_framebuffer_sRGB) \ - USE_GL_EXT(WGL_ARB_make_current_read) \ - USE_GL_EXT(WGL_ARB_multisample) \ - USE_GL_EXT(WGL_ARB_pbuffer) \ - USE_GL_EXT(WGL_ARB_pixel_format) \ - USE_GL_EXT(WGL_ARB_pixel_format_float) \ - USE_GL_EXT(WGL_ARB_render_texture) \ - USE_GL_EXT(WGL_ARB_robustness_application_isolation) \ - USE_GL_EXT(WGL_ARB_robustness_isolation) \ - USE_GL_EXT(WGL_ARB_robustness_share_group_isolation) \ - USE_GL_EXT(WGL_ATI_pixel_format_float) \ - USE_GL_EXT(WGL_ATI_render_texture_rectangle) \ - USE_GL_EXT(WGL_EXT_colorspace) \ - USE_GL_EXT(WGL_EXT_create_context_es2_profile) \ - USE_GL_EXT(WGL_EXT_create_context_es_profile) \ - USE_GL_EXT(WGL_EXT_depth_float) \ - USE_GL_EXT(WGL_EXT_extensions_string) \ - USE_GL_EXT(WGL_EXT_framebuffer_sRGB) \ - USE_GL_EXT(WGL_EXT_multisample) \ - USE_GL_EXT(WGL_EXT_pixel_format_packed_float) \ - USE_GL_EXT(WGL_EXT_swap_control) \ - USE_GL_EXT(WGL_EXT_swap_control_tear) \ - USE_GL_EXT(WGL_NV_float_buffer) \ - USE_GL_EXT(WGL_NV_multigpu_context) \ - USE_GL_EXT(WGL_NV_multisample_coverage) \ - USE_GL_EXT(WGL_NV_render_depth_texture) \ - USE_GL_EXT(WGL_NV_render_texture_rectangle) \ - USE_GL_EXT(WGL_NV_vertex_array_range) \ - USE_GL_EXT(WGL_WINE_pixel_format_passthrough) \ - USE_GL_EXT(WGL_WINE_query_renderer) + USE_GL_EXT(WGL_3DFX_multisample, 1) \ + USE_GL_EXT(WGL_ARB_context_flush_control, 1) \ + USE_GL_EXT(WGL_ARB_create_context, 1) \ + USE_GL_EXT(WGL_ARB_create_context_no_error, 1) \ + USE_GL_EXT(WGL_ARB_create_context_profile, 1) \ + USE_GL_EXT(WGL_ARB_create_context_robustness, 1) \ + USE_GL_EXT(WGL_ARB_extensions_string, 1) \ + USE_GL_EXT(WGL_ARB_framebuffer_sRGB, 1) \ + USE_GL_EXT(WGL_ARB_make_current_read, 1) \ + USE_GL_EXT(WGL_ARB_multisample, 1) \ + USE_GL_EXT(WGL_ARB_pbuffer, 1) \ + USE_GL_EXT(WGL_ARB_pixel_format, 1) \ + USE_GL_EXT(WGL_ARB_pixel_format_float, 1) \ + USE_GL_EXT(WGL_ARB_render_texture, 1) \ + USE_GL_EXT(WGL_ARB_robustness_application_isolation, 1) \ + USE_GL_EXT(WGL_ARB_robustness_isolation, 1) \ + USE_GL_EXT(WGL_ARB_robustness_share_group_isolation, 1) \ + USE_GL_EXT(WGL_ATI_pixel_format_float, 1) \ + USE_GL_EXT(WGL_ATI_render_texture_rectangle, 1) \ + USE_GL_EXT(WGL_EXT_colorspace, 1) \ + USE_GL_EXT(WGL_EXT_create_context_es2_profile, 1) \ + USE_GL_EXT(WGL_EXT_create_context_es_profile, 1) \ + USE_GL_EXT(WGL_EXT_depth_float, 1) \ + USE_GL_EXT(WGL_EXT_extensions_string, 1) \ + USE_GL_EXT(WGL_EXT_framebuffer_sRGB, 1) \ + USE_GL_EXT(WGL_EXT_multisample, 1) \ + USE_GL_EXT(WGL_EXT_pixel_format_packed_float, 1) \ + USE_GL_EXT(WGL_EXT_swap_control, 1) \ + USE_GL_EXT(WGL_EXT_swap_control_tear, 1) \ + USE_GL_EXT(WGL_NV_float_buffer, 1) \ + USE_GL_EXT(WGL_NV_multigpu_context, 1) \ + USE_GL_EXT(WGL_NV_multisample_coverage, 1) \ + USE_GL_EXT(WGL_NV_render_depth_texture, 1) \ + USE_GL_EXT(WGL_NV_render_texture_rectangle, 1) \ + USE_GL_EXT(WGL_NV_vertex_array_range, 1) \ + USE_GL_EXT(WGL_WINE_pixel_format_passthrough, 1) \ + USE_GL_EXT(WGL_WINE_query_renderer, 1) #define ALL_WGL_FUNCS \ USE_GL_FUNC(wglChoosePixelFormat) \ @@ -9946,142 +9946,142 @@ typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); USE_GL_FUNC(wglSwapIntervalEXT) #define ALL_EGL_EXTS \ - USE_GL_EXT(EGL_EXT_bind_to_front) \ - USE_GL_EXT(EGL_EXT_buffer_age) \ - USE_GL_EXT(EGL_EXT_client_extensions) \ - USE_GL_EXT(EGL_EXT_client_sync) \ - USE_GL_EXT(EGL_EXT_compositor) \ - USE_GL_EXT(EGL_EXT_config_select_group) \ - USE_GL_EXT(EGL_EXT_create_context_robustness) \ - USE_GL_EXT(EGL_EXT_device_base) \ - USE_GL_EXT(EGL_EXT_device_drm) \ - USE_GL_EXT(EGL_EXT_device_drm_render_node) \ - USE_GL_EXT(EGL_EXT_device_enumeration) \ - USE_GL_EXT(EGL_EXT_device_openwf) \ - USE_GL_EXT(EGL_EXT_device_persistent_id) \ - USE_GL_EXT(EGL_EXT_device_query) \ - USE_GL_EXT(EGL_EXT_device_query_name) \ - USE_GL_EXT(EGL_EXT_display_alloc) \ - USE_GL_EXT(EGL_EXT_explicit_device) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_hlg) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_linear) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_pq) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_linear) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_passthrough) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb_linear) \ - USE_GL_EXT(EGL_EXT_image_dma_buf_import) \ - USE_GL_EXT(EGL_EXT_image_dma_buf_import_modifiers) \ - USE_GL_EXT(EGL_EXT_image_gl_colorspace) \ - USE_GL_EXT(EGL_EXT_image_implicit_sync_control) \ - USE_GL_EXT(EGL_EXT_multiview_window) \ - USE_GL_EXT(EGL_EXT_output_base) \ - USE_GL_EXT(EGL_EXT_output_drm) \ - USE_GL_EXT(EGL_EXT_output_openwf) \ - USE_GL_EXT(EGL_EXT_pixel_format_float) \ - USE_GL_EXT(EGL_EXT_platform_base) \ - USE_GL_EXT(EGL_EXT_platform_device) \ - USE_GL_EXT(EGL_EXT_platform_wayland) \ - USE_GL_EXT(EGL_EXT_platform_x11) \ - USE_GL_EXT(EGL_EXT_platform_xcb) \ - USE_GL_EXT(EGL_EXT_present_opaque) \ - USE_GL_EXT(EGL_EXT_protected_content) \ - USE_GL_EXT(EGL_EXT_protected_surface) \ - USE_GL_EXT(EGL_EXT_query_reset_notification_strategy) \ - USE_GL_EXT(EGL_EXT_stream_consumer_egloutput) \ - USE_GL_EXT(EGL_EXT_surface_CTA861_3_metadata) \ - USE_GL_EXT(EGL_EXT_surface_SMPTE2086_metadata) \ - USE_GL_EXT(EGL_EXT_surface_compression) \ - USE_GL_EXT(EGL_EXT_swap_buffers_with_damage) \ - USE_GL_EXT(EGL_EXT_sync_reuse) \ - USE_GL_EXT(EGL_EXT_yuv_surface) \ - USE_GL_EXT(EGL_IMG_context_priority) \ - USE_GL_EXT(EGL_IMG_image_plane_attribs) \ - USE_GL_EXT(EGL_KHR_cl_event) \ - USE_GL_EXT(EGL_KHR_cl_event2) \ - USE_GL_EXT(EGL_KHR_client_get_all_proc_addresses) \ - USE_GL_EXT(EGL_KHR_config_attribs) \ - USE_GL_EXT(EGL_KHR_context_flush_control) \ - USE_GL_EXT(EGL_KHR_create_context) \ - USE_GL_EXT(EGL_KHR_create_context_no_error) \ - USE_GL_EXT(EGL_KHR_debug) \ - USE_GL_EXT(EGL_KHR_display_reference) \ - USE_GL_EXT(EGL_KHR_fence_sync) \ - USE_GL_EXT(EGL_KHR_get_all_proc_addresses) \ - USE_GL_EXT(EGL_KHR_gl_colorspace) \ - USE_GL_EXT(EGL_KHR_gl_renderbuffer_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_2D_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_3D_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_cubemap_image) \ - USE_GL_EXT(EGL_KHR_image) \ - USE_GL_EXT(EGL_KHR_image_base) \ - USE_GL_EXT(EGL_KHR_image_pixmap) \ - USE_GL_EXT(EGL_KHR_lock_surface) \ - USE_GL_EXT(EGL_KHR_lock_surface2) \ - USE_GL_EXT(EGL_KHR_lock_surface3) \ - USE_GL_EXT(EGL_KHR_mutable_render_buffer) \ - USE_GL_EXT(EGL_KHR_no_config_context) \ - USE_GL_EXT(EGL_KHR_partial_update) \ - USE_GL_EXT(EGL_KHR_platform_android) \ - USE_GL_EXT(EGL_KHR_platform_gbm) \ - USE_GL_EXT(EGL_KHR_platform_wayland) \ - USE_GL_EXT(EGL_KHR_platform_x11) \ - USE_GL_EXT(EGL_KHR_reusable_sync) \ - USE_GL_EXT(EGL_KHR_stream) \ - USE_GL_EXT(EGL_KHR_stream_attrib) \ - USE_GL_EXT(EGL_KHR_stream_consumer_gltexture) \ - USE_GL_EXT(EGL_KHR_stream_cross_process_fd) \ - USE_GL_EXT(EGL_KHR_stream_fifo) \ - USE_GL_EXT(EGL_KHR_stream_producer_aldatalocator) \ - USE_GL_EXT(EGL_KHR_stream_producer_eglsurface) \ - USE_GL_EXT(EGL_KHR_surfaceless_context) \ - USE_GL_EXT(EGL_KHR_swap_buffers_with_damage) \ - USE_GL_EXT(EGL_KHR_vg_parent_image) \ - USE_GL_EXT(EGL_KHR_wait_sync) \ - USE_GL_EXT(EGL_MESA_drm_image) \ - USE_GL_EXT(EGL_MESA_image_dma_buf_export) \ - USE_GL_EXT(EGL_MESA_platform_gbm) \ - USE_GL_EXT(EGL_MESA_platform_surfaceless) \ - USE_GL_EXT(EGL_MESA_query_driver) \ - USE_GL_EXT(EGL_NV_3dvision_surface) \ - USE_GL_EXT(EGL_NV_context_priority_realtime) \ - USE_GL_EXT(EGL_NV_coverage_sample) \ - USE_GL_EXT(EGL_NV_coverage_sample_resolve) \ - USE_GL_EXT(EGL_NV_cuda_event) \ - USE_GL_EXT(EGL_NV_depth_nonlinear) \ - USE_GL_EXT(EGL_NV_device_cuda) \ - USE_GL_EXT(EGL_NV_native_query) \ - USE_GL_EXT(EGL_NV_post_convert_rounding) \ - USE_GL_EXT(EGL_NV_post_sub_buffer) \ - USE_GL_EXT(EGL_NV_quadruple_buffer) \ - USE_GL_EXT(EGL_NV_robustness_video_memory_purge) \ - USE_GL_EXT(EGL_NV_stream_consumer_eglimage) \ - USE_GL_EXT(EGL_NV_stream_consumer_eglimage_use_scanout_attrib) \ - USE_GL_EXT(EGL_NV_stream_consumer_gltexture_yuv) \ - USE_GL_EXT(EGL_NV_stream_cross_display) \ - USE_GL_EXT(EGL_NV_stream_cross_object) \ - USE_GL_EXT(EGL_NV_stream_cross_partition) \ - USE_GL_EXT(EGL_NV_stream_cross_process) \ - USE_GL_EXT(EGL_NV_stream_cross_system) \ - USE_GL_EXT(EGL_NV_stream_dma) \ - USE_GL_EXT(EGL_NV_stream_fifo_next) \ - USE_GL_EXT(EGL_NV_stream_fifo_synchronous) \ - USE_GL_EXT(EGL_NV_stream_flush) \ - USE_GL_EXT(EGL_NV_stream_frame_limits) \ - USE_GL_EXT(EGL_NV_stream_metadata) \ - USE_GL_EXT(EGL_NV_stream_origin) \ - USE_GL_EXT(EGL_NV_stream_remote) \ - USE_GL_EXT(EGL_NV_stream_reset) \ - USE_GL_EXT(EGL_NV_stream_socket) \ - USE_GL_EXT(EGL_NV_stream_socket_inet) \ - USE_GL_EXT(EGL_NV_stream_socket_unix) \ - USE_GL_EXT(EGL_NV_stream_sync) \ - USE_GL_EXT(EGL_NV_sync) \ - USE_GL_EXT(EGL_NV_system_time) \ - USE_GL_EXT(EGL_NV_triple_buffer) \ - USE_GL_EXT(EGL_WL_bind_wayland_display) \ - USE_GL_EXT(EGL_WL_create_wayland_buffer_from_image) + USE_GL_EXT(EGL_EXT_bind_to_front, 0) \ + USE_GL_EXT(EGL_EXT_buffer_age, 0) \ + USE_GL_EXT(EGL_EXT_client_extensions, 0) \ + USE_GL_EXT(EGL_EXT_client_sync, 0) \ + USE_GL_EXT(EGL_EXT_compositor, 0) \ + USE_GL_EXT(EGL_EXT_config_select_group, 0) \ + USE_GL_EXT(EGL_EXT_create_context_robustness, 0) \ + USE_GL_EXT(EGL_EXT_device_base, 0) \ + USE_GL_EXT(EGL_EXT_device_drm, 0) \ + USE_GL_EXT(EGL_EXT_device_drm_render_node, 0) \ + USE_GL_EXT(EGL_EXT_device_enumeration, 0) \ + USE_GL_EXT(EGL_EXT_device_openwf, 0) \ + USE_GL_EXT(EGL_EXT_device_persistent_id, 0) \ + USE_GL_EXT(EGL_EXT_device_query, 0) \ + USE_GL_EXT(EGL_EXT_device_query_name, 0) \ + USE_GL_EXT(EGL_EXT_display_alloc, 0) \ + USE_GL_EXT(EGL_EXT_explicit_device, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_hlg, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_linear, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_pq, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_linear, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_passthrough, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb_linear, 0) \ + USE_GL_EXT(EGL_EXT_image_dma_buf_import, 0) \ + USE_GL_EXT(EGL_EXT_image_dma_buf_import_modifiers, 0) \ + USE_GL_EXT(EGL_EXT_image_gl_colorspace, 0) \ + USE_GL_EXT(EGL_EXT_image_implicit_sync_control, 0) \ + USE_GL_EXT(EGL_EXT_multiview_window, 0) \ + USE_GL_EXT(EGL_EXT_output_base, 0) \ + USE_GL_EXT(EGL_EXT_output_drm, 0) \ + USE_GL_EXT(EGL_EXT_output_openwf, 0) \ + USE_GL_EXT(EGL_EXT_pixel_format_float, 0) \ + USE_GL_EXT(EGL_EXT_platform_base, 0) \ + USE_GL_EXT(EGL_EXT_platform_device, 0) \ + USE_GL_EXT(EGL_EXT_platform_wayland, 0) \ + USE_GL_EXT(EGL_EXT_platform_x11, 0) \ + USE_GL_EXT(EGL_EXT_platform_xcb, 0) \ + USE_GL_EXT(EGL_EXT_present_opaque, 0) \ + USE_GL_EXT(EGL_EXT_protected_content, 0) \ + USE_GL_EXT(EGL_EXT_protected_surface, 0) \ + USE_GL_EXT(EGL_EXT_query_reset_notification_strategy, 0) \ + USE_GL_EXT(EGL_EXT_stream_consumer_egloutput, 0) \ + USE_GL_EXT(EGL_EXT_surface_CTA861_3_metadata, 0) \ + USE_GL_EXT(EGL_EXT_surface_SMPTE2086_metadata, 0) \ + USE_GL_EXT(EGL_EXT_surface_compression, 0) \ + USE_GL_EXT(EGL_EXT_swap_buffers_with_damage, 0) \ + USE_GL_EXT(EGL_EXT_sync_reuse, 0) \ + USE_GL_EXT(EGL_EXT_yuv_surface, 0) \ + USE_GL_EXT(EGL_IMG_context_priority, 0) \ + USE_GL_EXT(EGL_IMG_image_plane_attribs, 0) \ + USE_GL_EXT(EGL_KHR_cl_event, 0) \ + USE_GL_EXT(EGL_KHR_cl_event2, 0) \ + USE_GL_EXT(EGL_KHR_client_get_all_proc_addresses, 0) \ + USE_GL_EXT(EGL_KHR_config_attribs, 0) \ + USE_GL_EXT(EGL_KHR_context_flush_control, 0) \ + USE_GL_EXT(EGL_KHR_create_context, 0) \ + USE_GL_EXT(EGL_KHR_create_context_no_error, 0) \ + USE_GL_EXT(EGL_KHR_debug, 0) \ + USE_GL_EXT(EGL_KHR_display_reference, 0) \ + USE_GL_EXT(EGL_KHR_fence_sync, 0) \ + USE_GL_EXT(EGL_KHR_get_all_proc_addresses, 0) \ + USE_GL_EXT(EGL_KHR_gl_colorspace, 0) \ + USE_GL_EXT(EGL_KHR_gl_renderbuffer_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_2D_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_3D_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_cubemap_image, 0) \ + USE_GL_EXT(EGL_KHR_image, 0) \ + USE_GL_EXT(EGL_KHR_image_base, 0) \ + USE_GL_EXT(EGL_KHR_image_pixmap, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface2, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface3, 0) \ + USE_GL_EXT(EGL_KHR_mutable_render_buffer, 0) \ + USE_GL_EXT(EGL_KHR_no_config_context, 0) \ + USE_GL_EXT(EGL_KHR_partial_update, 0) \ + USE_GL_EXT(EGL_KHR_platform_android, 0) \ + USE_GL_EXT(EGL_KHR_platform_gbm, 0) \ + USE_GL_EXT(EGL_KHR_platform_wayland, 0) \ + USE_GL_EXT(EGL_KHR_platform_x11, 0) \ + USE_GL_EXT(EGL_KHR_reusable_sync, 0) \ + USE_GL_EXT(EGL_KHR_stream, 0) \ + USE_GL_EXT(EGL_KHR_stream_attrib, 0) \ + USE_GL_EXT(EGL_KHR_stream_consumer_gltexture, 0) \ + USE_GL_EXT(EGL_KHR_stream_cross_process_fd, 0) \ + USE_GL_EXT(EGL_KHR_stream_fifo, 0) \ + USE_GL_EXT(EGL_KHR_stream_producer_aldatalocator, 0) \ + USE_GL_EXT(EGL_KHR_stream_producer_eglsurface, 0) \ + USE_GL_EXT(EGL_KHR_surfaceless_context, 0) \ + USE_GL_EXT(EGL_KHR_swap_buffers_with_damage, 0) \ + USE_GL_EXT(EGL_KHR_vg_parent_image, 0) \ + USE_GL_EXT(EGL_KHR_wait_sync, 0) \ + USE_GL_EXT(EGL_MESA_drm_image, 0) \ + USE_GL_EXT(EGL_MESA_image_dma_buf_export, 0) \ + USE_GL_EXT(EGL_MESA_platform_gbm, 0) \ + USE_GL_EXT(EGL_MESA_platform_surfaceless, 0) \ + USE_GL_EXT(EGL_MESA_query_driver, 0) \ + USE_GL_EXT(EGL_NV_3dvision_surface, 0) \ + USE_GL_EXT(EGL_NV_context_priority_realtime, 0) \ + USE_GL_EXT(EGL_NV_coverage_sample, 0) \ + USE_GL_EXT(EGL_NV_coverage_sample_resolve, 0) \ + USE_GL_EXT(EGL_NV_cuda_event, 0) \ + USE_GL_EXT(EGL_NV_depth_nonlinear, 0) \ + USE_GL_EXT(EGL_NV_device_cuda, 0) \ + USE_GL_EXT(EGL_NV_native_query, 0) \ + USE_GL_EXT(EGL_NV_post_convert_rounding, 0) \ + USE_GL_EXT(EGL_NV_post_sub_buffer, 0) \ + USE_GL_EXT(EGL_NV_quadruple_buffer, 0) \ + USE_GL_EXT(EGL_NV_robustness_video_memory_purge, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_eglimage, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_eglimage_use_scanout_attrib, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_gltexture_yuv, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_display, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_object, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_partition, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_process, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_system, 0) \ + USE_GL_EXT(EGL_NV_stream_dma, 0) \ + USE_GL_EXT(EGL_NV_stream_fifo_next, 0) \ + USE_GL_EXT(EGL_NV_stream_fifo_synchronous, 0) \ + USE_GL_EXT(EGL_NV_stream_flush, 0) \ + USE_GL_EXT(EGL_NV_stream_frame_limits, 0) \ + USE_GL_EXT(EGL_NV_stream_metadata, 0) \ + USE_GL_EXT(EGL_NV_stream_origin, 0) \ + USE_GL_EXT(EGL_NV_stream_remote, 0) \ + USE_GL_EXT(EGL_NV_stream_reset, 0) \ + USE_GL_EXT(EGL_NV_stream_socket, 0) \ + USE_GL_EXT(EGL_NV_stream_socket_inet, 0) \ + USE_GL_EXT(EGL_NV_stream_socket_unix, 0) \ + USE_GL_EXT(EGL_NV_stream_sync, 0) \ + USE_GL_EXT(EGL_NV_sync, 0) \ + USE_GL_EXT(EGL_NV_system_time, 0) \ + USE_GL_EXT(EGL_NV_triple_buffer, 0) \ + USE_GL_EXT(EGL_WL_bind_wayland_display, 0) \ + USE_GL_EXT(EGL_WL_create_wayland_buffer_from_image, 0) #define ALL_EGL_FUNCS \ USE_GL_FUNC(eglBindAPI) \ @@ -10230,793 +10230,791 @@ typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); USE_GL_FUNC(eglUnsignalSyncEXT) \ USE_GL_FUNC(eglWaitSyncKHR) -#define ALL_GL_CLIENT_EXTS \ - USE_GL_EXT(GL_3DFX_multisample) \ - USE_GL_EXT(GL_3DFX_tbuffer) \ - USE_GL_EXT(GL_3DFX_texture_compression_FXT1) \ - USE_GL_EXT(GL_AMDX_debug_output) \ - USE_GL_EXT(GL_AMD_blend_minmax_factor) \ - USE_GL_EXT(GL_AMD_compressed_3DC_texture) \ - USE_GL_EXT(GL_AMD_compressed_ATC_texture) \ - USE_GL_EXT(GL_AMD_conservative_depth) \ - USE_GL_EXT(GL_AMD_debug_output) \ - USE_GL_EXT(GL_AMD_depth_clamp_separate) \ - USE_GL_EXT(GL_AMD_draw_buffers_blend) \ - USE_GL_EXT(GL_AMD_framebuffer_multisample_advanced) \ - USE_GL_EXT(GL_AMD_framebuffer_sample_positions) \ - USE_GL_EXT(GL_AMD_gcn_shader) \ - USE_GL_EXT(GL_AMD_gpu_shader_half_float) \ - USE_GL_EXT(GL_AMD_gpu_shader_half_float_fetch) \ - USE_GL_EXT(GL_AMD_gpu_shader_int16) \ - USE_GL_EXT(GL_AMD_gpu_shader_int64) \ - USE_GL_EXT(GL_AMD_interleaved_elements) \ - USE_GL_EXT(GL_AMD_multi_draw_indirect) \ - USE_GL_EXT(GL_AMD_name_gen_delete) \ - USE_GL_EXT(GL_AMD_occlusion_query_event) \ - USE_GL_EXT(GL_AMD_performance_monitor) \ - USE_GL_EXT(GL_AMD_pinned_memory) \ - USE_GL_EXT(GL_AMD_program_binary_Z400) \ - USE_GL_EXT(GL_AMD_query_buffer_object) \ - USE_GL_EXT(GL_AMD_sample_positions) \ - USE_GL_EXT(GL_AMD_seamless_cubemap_per_texture) \ - USE_GL_EXT(GL_AMD_shader_atomic_counter_ops) \ - USE_GL_EXT(GL_AMD_shader_ballot) \ - USE_GL_EXT(GL_AMD_shader_explicit_vertex_parameter) \ - USE_GL_EXT(GL_AMD_shader_gpu_shader_half_float_fetch) \ - USE_GL_EXT(GL_AMD_shader_image_load_store_lod) \ - USE_GL_EXT(GL_AMD_shader_stencil_export) \ - USE_GL_EXT(GL_AMD_shader_stencil_value_export) \ - USE_GL_EXT(GL_AMD_shader_trinary_minmax) \ - USE_GL_EXT(GL_AMD_sparse_texture) \ - USE_GL_EXT(GL_AMD_stencil_operation_extended) \ - USE_GL_EXT(GL_AMD_texture_cube_map_array) \ - USE_GL_EXT(GL_AMD_texture_gather_bias_lod) \ - USE_GL_EXT(GL_AMD_texture_texture4) \ - USE_GL_EXT(GL_AMD_transform_feedback3_lines_triangles) \ - USE_GL_EXT(GL_AMD_transform_feedback4) \ - USE_GL_EXT(GL_AMD_vertex_shader_layer) \ - USE_GL_EXT(GL_AMD_vertex_shader_tessellator) \ - USE_GL_EXT(GL_AMD_vertex_shader_viewport_index) \ - USE_GL_EXT(GL_APPLE_aux_depth_stencil) \ - USE_GL_EXT(GL_APPLE_client_storage) \ - USE_GL_EXT(GL_APPLE_clip_distance) \ - USE_GL_EXT(GL_APPLE_color_buffer_packed_float) \ - USE_GL_EXT(GL_APPLE_element_array) \ - USE_GL_EXT(GL_APPLE_fence) \ - USE_GL_EXT(GL_APPLE_float_pixels) \ - USE_GL_EXT(GL_APPLE_flush_buffer_range) \ - USE_GL_EXT(GL_APPLE_object_purgeable) \ - USE_GL_EXT(GL_APPLE_rgb_422) \ - USE_GL_EXT(GL_APPLE_row_bytes) \ - USE_GL_EXT(GL_APPLE_specular_vector) \ - USE_GL_EXT(GL_APPLE_texture_2D_limited_npot) \ - USE_GL_EXT(GL_APPLE_texture_format_BGRA8888) \ - USE_GL_EXT(GL_APPLE_texture_max_level) \ - USE_GL_EXT(GL_APPLE_texture_packed_float) \ - USE_GL_EXT(GL_APPLE_texture_range) \ - USE_GL_EXT(GL_APPLE_transform_hint) \ - USE_GL_EXT(GL_APPLE_vertex_array_object) \ - USE_GL_EXT(GL_APPLE_vertex_array_range) \ - USE_GL_EXT(GL_APPLE_vertex_program_evaluators) \ - USE_GL_EXT(GL_APPLE_ycbcr_422) \ - USE_GL_EXT(GL_ARB_ES2_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_1_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_2_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_compatibility) \ - USE_GL_EXT(GL_ARB_arrays_of_arrays) \ - USE_GL_EXT(GL_ARB_base_instance) \ - USE_GL_EXT(GL_ARB_bindless_texture) \ - USE_GL_EXT(GL_ARB_blend_func_extended) \ - USE_GL_EXT(GL_ARB_buffer_storage) \ - USE_GL_EXT(GL_ARB_cl_event) \ - USE_GL_EXT(GL_ARB_clear_buffer_object) \ - USE_GL_EXT(GL_ARB_clear_texture) \ - USE_GL_EXT(GL_ARB_clip_control) \ - USE_GL_EXT(GL_ARB_color_buffer_float) \ - USE_GL_EXT(GL_ARB_compatibility) \ - USE_GL_EXT(GL_ARB_compressed_texture_pixel_storage) \ - USE_GL_EXT(GL_ARB_compute_shader) \ - USE_GL_EXT(GL_ARB_compute_variable_group_size) \ - USE_GL_EXT(GL_ARB_conditional_render_inverted) \ - USE_GL_EXT(GL_ARB_conservative_depth) \ - USE_GL_EXT(GL_ARB_copy_buffer) \ - USE_GL_EXT(GL_ARB_copy_image) \ - USE_GL_EXT(GL_ARB_cull_distance) \ - USE_GL_EXT(GL_ARB_debug_output) \ - USE_GL_EXT(GL_ARB_depth_buffer_float) \ - USE_GL_EXT(GL_ARB_depth_clamp) \ - USE_GL_EXT(GL_ARB_depth_texture) \ - USE_GL_EXT(GL_ARB_derivative_control) \ - USE_GL_EXT(GL_ARB_direct_state_access) \ - USE_GL_EXT(GL_ARB_draw_buffers) \ - USE_GL_EXT(GL_ARB_draw_buffers_blend) \ - USE_GL_EXT(GL_ARB_draw_elements_base_vertex) \ - USE_GL_EXT(GL_ARB_draw_indirect) \ - USE_GL_EXT(GL_ARB_draw_instanced) \ - USE_GL_EXT(GL_ARB_enhanced_layouts) \ - USE_GL_EXT(GL_ARB_explicit_attrib_location) \ - USE_GL_EXT(GL_ARB_explicit_uniform_location) \ - USE_GL_EXT(GL_ARB_fragment_coord_conventions) \ - USE_GL_EXT(GL_ARB_fragment_layer_viewport) \ - USE_GL_EXT(GL_ARB_fragment_program) \ - USE_GL_EXT(GL_ARB_fragment_program_shadow) \ - USE_GL_EXT(GL_ARB_fragment_shader) \ - USE_GL_EXT(GL_ARB_fragment_shader_interlock) \ - USE_GL_EXT(GL_ARB_framebuffer_no_attachments) \ - USE_GL_EXT(GL_ARB_framebuffer_object) \ - USE_GL_EXT(GL_ARB_framebuffer_sRGB) \ - USE_GL_EXT(GL_ARB_geometry_shader4) \ - USE_GL_EXT(GL_ARB_get_program_binary) \ - USE_GL_EXT(GL_ARB_get_texture_sub_image) \ - USE_GL_EXT(GL_ARB_gl_spirv) \ - USE_GL_EXT(GL_ARB_gpu_shader5) \ - USE_GL_EXT(GL_ARB_gpu_shader_fp64) \ - USE_GL_EXT(GL_ARB_gpu_shader_int64) \ - USE_GL_EXT(GL_ARB_half_float_pixel) \ - USE_GL_EXT(GL_ARB_half_float_vertex) \ - USE_GL_EXT(GL_ARB_imaging) \ - USE_GL_EXT(GL_ARB_indirect_parameters) \ - USE_GL_EXT(GL_ARB_instanced_arrays) \ - USE_GL_EXT(GL_ARB_internalformat_query) \ - USE_GL_EXT(GL_ARB_internalformat_query2) \ - USE_GL_EXT(GL_ARB_invalidate_subdata) \ - USE_GL_EXT(GL_ARB_map_buffer_alignment) \ - USE_GL_EXT(GL_ARB_map_buffer_range) \ - USE_GL_EXT(GL_ARB_matrix_palette) \ - USE_GL_EXT(GL_ARB_multi_bind) \ - USE_GL_EXT(GL_ARB_multi_draw_indirect) \ - USE_GL_EXT(GL_ARB_multisample) \ - USE_GL_EXT(GL_ARB_multitexture) \ - USE_GL_EXT(GL_ARB_occlusion_query) \ - USE_GL_EXT(GL_ARB_occlusion_query2) \ - USE_GL_EXT(GL_ARB_parallel_shader_compile) \ - USE_GL_EXT(GL_ARB_pipeline_statistics_query) \ - USE_GL_EXT(GL_ARB_pixel_buffer_object) \ - USE_GL_EXT(GL_ARB_point_parameters) \ - USE_GL_EXT(GL_ARB_point_sprite) \ - USE_GL_EXT(GL_ARB_polygon_offset_clamp) \ - USE_GL_EXT(GL_ARB_post_depth_coverage) \ - USE_GL_EXT(GL_ARB_program_interface_query) \ - USE_GL_EXT(GL_ARB_provoking_vertex) \ - USE_GL_EXT(GL_ARB_query_buffer_object) \ - USE_GL_EXT(GL_ARB_robust_buffer_access_behavior) \ - USE_GL_EXT(GL_ARB_robustness) \ - USE_GL_EXT(GL_ARB_robustness_isolation) \ - USE_GL_EXT(GL_ARB_robustness_share_group_isolation) \ - USE_GL_EXT(GL_ARB_sample_locations) \ - USE_GL_EXT(GL_ARB_sample_shading) \ - USE_GL_EXT(GL_ARB_sampler_objects) \ - USE_GL_EXT(GL_ARB_seamless_cube_map) \ - USE_GL_EXT(GL_ARB_seamless_cubemap_per_texture) \ - USE_GL_EXT(GL_ARB_separate_shader_objects) \ - USE_GL_EXT(GL_ARB_shader_atomic_counter_ops) \ - USE_GL_EXT(GL_ARB_shader_atomic_counters) \ - USE_GL_EXT(GL_ARB_shader_ballot) \ - USE_GL_EXT(GL_ARB_shader_bit_encoding) \ - USE_GL_EXT(GL_ARB_shader_clock) \ - USE_GL_EXT(GL_ARB_shader_draw_parameters) \ - USE_GL_EXT(GL_ARB_shader_group_vote) \ - USE_GL_EXT(GL_ARB_shader_image_load_store) \ - USE_GL_EXT(GL_ARB_shader_image_size) \ - USE_GL_EXT(GL_ARB_shader_objects) \ - USE_GL_EXT(GL_ARB_shader_precision) \ - USE_GL_EXT(GL_ARB_shader_stencil_export) \ - USE_GL_EXT(GL_ARB_shader_storage_buffer_object) \ - USE_GL_EXT(GL_ARB_shader_subroutine) \ - USE_GL_EXT(GL_ARB_shader_texture_image_samples) \ - USE_GL_EXT(GL_ARB_shader_texture_lod) \ - USE_GL_EXT(GL_ARB_shader_viewport_layer_array) \ - USE_GL_EXT(GL_ARB_shading_language_100) \ - USE_GL_EXT(GL_ARB_shading_language_420pack) \ - USE_GL_EXT(GL_ARB_shading_language_include) \ - USE_GL_EXT(GL_ARB_shading_language_packing) \ - USE_GL_EXT(GL_ARB_shadow) \ - USE_GL_EXT(GL_ARB_shadow_ambient) \ - USE_GL_EXT(GL_ARB_sparse_buffer) \ - USE_GL_EXT(GL_ARB_sparse_texture) \ - USE_GL_EXT(GL_ARB_sparse_texture2) \ - USE_GL_EXT(GL_ARB_sparse_texture_clamp) \ - USE_GL_EXT(GL_ARB_spirv_extensions) \ - USE_GL_EXT(GL_ARB_stencil_texturing) \ - USE_GL_EXT(GL_ARB_sync) \ - USE_GL_EXT(GL_ARB_tessellation_shader) \ - USE_GL_EXT(GL_ARB_texture_barrier) \ - USE_GL_EXT(GL_ARB_texture_border_clamp) \ - USE_GL_EXT(GL_ARB_texture_buffer_object) \ - USE_GL_EXT(GL_ARB_texture_buffer_object_rgb32) \ - USE_GL_EXT(GL_ARB_texture_buffer_range) \ - USE_GL_EXT(GL_ARB_texture_compression) \ - USE_GL_EXT(GL_ARB_texture_compression_bptc) \ - USE_GL_EXT(GL_ARB_texture_compression_rgtc) \ - USE_GL_EXT(GL_ARB_texture_cube_map) \ - USE_GL_EXT(GL_ARB_texture_cube_map_array) \ - USE_GL_EXT(GL_ARB_texture_env_add) \ - USE_GL_EXT(GL_ARB_texture_env_combine) \ - USE_GL_EXT(GL_ARB_texture_env_crossbar) \ - USE_GL_EXT(GL_ARB_texture_env_dot3) \ - USE_GL_EXT(GL_ARB_texture_filter_anisotropic) \ - USE_GL_EXT(GL_ARB_texture_filter_minmax) \ - USE_GL_EXT(GL_ARB_texture_float) \ - USE_GL_EXT(GL_ARB_texture_gather) \ - USE_GL_EXT(GL_ARB_texture_mirror_clamp_to_edge) \ - USE_GL_EXT(GL_ARB_texture_mirrored_repeat) \ - USE_GL_EXT(GL_ARB_texture_multisample) \ - USE_GL_EXT(GL_ARB_texture_non_power_of_two) \ - USE_GL_EXT(GL_ARB_texture_query_levels) \ - USE_GL_EXT(GL_ARB_texture_query_lod) \ - USE_GL_EXT(GL_ARB_texture_rectangle) \ - USE_GL_EXT(GL_ARB_texture_rg) \ - USE_GL_EXT(GL_ARB_texture_rgb10_a2ui) \ - USE_GL_EXT(GL_ARB_texture_snorm) \ - USE_GL_EXT(GL_ARB_texture_stencil8) \ - USE_GL_EXT(GL_ARB_texture_storage) \ - USE_GL_EXT(GL_ARB_texture_storage_multisample) \ - USE_GL_EXT(GL_ARB_texture_swizzle) \ - USE_GL_EXT(GL_ARB_texture_view) \ - USE_GL_EXT(GL_ARB_timer_query) \ - USE_GL_EXT(GL_ARB_transform_feedback2) \ - USE_GL_EXT(GL_ARB_transform_feedback3) \ - USE_GL_EXT(GL_ARB_transform_feedback_instanced) \ - USE_GL_EXT(GL_ARB_transform_feedback_overflow_query) \ - USE_GL_EXT(GL_ARB_transpose_matrix) \ - USE_GL_EXT(GL_ARB_uniform_buffer_object) \ - USE_GL_EXT(GL_ARB_vertex_array_bgra) \ - USE_GL_EXT(GL_ARB_vertex_array_object) \ - USE_GL_EXT(GL_ARB_vertex_attrib_64bit) \ - USE_GL_EXT(GL_ARB_vertex_attrib_binding) \ - USE_GL_EXT(GL_ARB_vertex_blend) \ - USE_GL_EXT(GL_ARB_vertex_buffer_object) \ - USE_GL_EXT(GL_ARB_vertex_program) \ - USE_GL_EXT(GL_ARB_vertex_shader) \ - USE_GL_EXT(GL_ARB_vertex_type_10f_11f_11f_rev) \ - USE_GL_EXT(GL_ARB_vertex_type_2_10_10_10_rev) \ - USE_GL_EXT(GL_ARB_viewport_array) \ - USE_GL_EXT(GL_ARB_window_pos) \ - USE_GL_EXT(GL_ATI_blend_equation_separate) \ - USE_GL_EXT(GL_ATI_draw_buffers) \ - USE_GL_EXT(GL_ATI_element_array) \ - USE_GL_EXT(GL_ATI_envmap_bumpmap) \ - USE_GL_EXT(GL_ATI_fragment_shader) \ - USE_GL_EXT(GL_ATI_map_object_buffer) \ - USE_GL_EXT(GL_ATI_meminfo) \ - USE_GL_EXT(GL_ATI_pixel_format_float) \ - USE_GL_EXT(GL_ATI_pn_triangles) \ - USE_GL_EXT(GL_ATI_separate_stencil) \ - USE_GL_EXT(GL_ATI_text_fragment_shader) \ - USE_GL_EXT(GL_ATI_texture_env_combine3) \ - USE_GL_EXT(GL_ATI_texture_float) \ - USE_GL_EXT(GL_ATI_texture_mirror_once) \ - USE_GL_EXT(GL_ATI_vertex_array_object) \ - USE_GL_EXT(GL_ATI_vertex_attrib_array_object) \ - USE_GL_EXT(GL_ATI_vertex_streams) \ - USE_GL_EXT(GL_EXT_422_pixels) \ - USE_GL_EXT(GL_EXT_EGL_image_array) \ - USE_GL_EXT(GL_EXT_EGL_image_external_wrap_modes) \ - USE_GL_EXT(GL_EXT_EGL_image_storage) \ - USE_GL_EXT(GL_EXT_EGL_image_storage_compression) \ - USE_GL_EXT(GL_EXT_EGL_sync) \ - USE_GL_EXT(GL_EXT_YUV_target) \ - USE_GL_EXT(GL_EXT_abgr) \ - USE_GL_EXT(GL_EXT_bgra) \ - USE_GL_EXT(GL_EXT_bindable_uniform) \ - USE_GL_EXT(GL_EXT_blend_color) \ - USE_GL_EXT(GL_EXT_blend_equation_separate) \ - USE_GL_EXT(GL_EXT_blend_func_separate) \ - USE_GL_EXT(GL_EXT_blend_logic_op) \ - USE_GL_EXT(GL_EXT_blend_minmax) \ - USE_GL_EXT(GL_EXT_blend_subtract) \ - USE_GL_EXT(GL_EXT_clip_cull_distance) \ - USE_GL_EXT(GL_EXT_clip_volume_hint) \ - USE_GL_EXT(GL_EXT_cmyka) \ - USE_GL_EXT(GL_EXT_color_buffer_float) \ - USE_GL_EXT(GL_EXT_color_buffer_half_float) \ - USE_GL_EXT(GL_EXT_color_subtable) \ - USE_GL_EXT(GL_EXT_compiled_vertex_array) \ - USE_GL_EXT(GL_EXT_compressed_ETC1_RGB8_sub_texture) \ - USE_GL_EXT(GL_EXT_conservative_depth) \ - USE_GL_EXT(GL_EXT_convolution) \ - USE_GL_EXT(GL_EXT_coordinate_frame) \ - USE_GL_EXT(GL_EXT_copy_buffer) \ - USE_GL_EXT(GL_EXT_copy_texture) \ - USE_GL_EXT(GL_EXT_cull_vertex) \ - USE_GL_EXT(GL_EXT_debug_label) \ - USE_GL_EXT(GL_EXT_debug_marker) \ - USE_GL_EXT(GL_EXT_depth_bounds_test) \ - USE_GL_EXT(GL_EXT_depth_clamp) \ - USE_GL_EXT(GL_EXT_direct_state_access) \ - USE_GL_EXT(GL_EXT_draw_buffers2) \ - USE_GL_EXT(GL_EXT_draw_instanced) \ - USE_GL_EXT(GL_EXT_draw_range_elements) \ - USE_GL_EXT(GL_EXT_external_buffer) \ - USE_GL_EXT(GL_EXT_float_blend) \ - USE_GL_EXT(GL_EXT_fog_coord) \ - USE_GL_EXT(GL_EXT_frag_depth) \ - USE_GL_EXT(GL_EXT_fragment_lighting) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate_attachment) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate_primitive) \ - USE_GL_EXT(GL_EXT_framebuffer_blit) \ - USE_GL_EXT(GL_EXT_framebuffer_blit_layers) \ - USE_GL_EXT(GL_EXT_framebuffer_multisample) \ - USE_GL_EXT(GL_EXT_framebuffer_multisample_blit_scaled) \ - USE_GL_EXT(GL_EXT_framebuffer_object) \ - USE_GL_EXT(GL_EXT_framebuffer_sRGB) \ - USE_GL_EXT(GL_EXT_geometry_point_size) \ - USE_GL_EXT(GL_EXT_geometry_shader4) \ - USE_GL_EXT(GL_EXT_gpu_program_parameters) \ - USE_GL_EXT(GL_EXT_gpu_shader4) \ - USE_GL_EXT(GL_EXT_gpu_shader5) \ - USE_GL_EXT(GL_EXT_histogram) \ - USE_GL_EXT(GL_EXT_index_array_formats) \ - USE_GL_EXT(GL_EXT_index_func) \ - USE_GL_EXT(GL_EXT_index_material) \ - USE_GL_EXT(GL_EXT_index_texture) \ - USE_GL_EXT(GL_EXT_light_texture) \ - USE_GL_EXT(GL_EXT_memory_object) \ - USE_GL_EXT(GL_EXT_memory_object_win32) \ - USE_GL_EXT(GL_EXT_mesh_shader) \ - USE_GL_EXT(GL_EXT_misc_attribute) \ - USE_GL_EXT(GL_EXT_multi_draw_arrays) \ - USE_GL_EXT(GL_EXT_multisample) \ - USE_GL_EXT(GL_EXT_multisample_compatibility) \ - USE_GL_EXT(GL_EXT_multisampled_compatibility) \ - USE_GL_EXT(GL_EXT_multisampled_render_to_texture2) \ - USE_GL_EXT(GL_EXT_multiview_tessellation_geometry_shader) \ - USE_GL_EXT(GL_EXT_multiview_texture_multisample) \ - USE_GL_EXT(GL_EXT_multiview_timer_query) \ - USE_GL_EXT(GL_EXT_packed_depth_stencil) \ - USE_GL_EXT(GL_EXT_packed_float) \ - USE_GL_EXT(GL_EXT_packed_pixels) \ - USE_GL_EXT(GL_EXT_paletted_texture) \ - USE_GL_EXT(GL_EXT_pixel_buffer_object) \ - USE_GL_EXT(GL_EXT_pixel_transform) \ - USE_GL_EXT(GL_EXT_pixel_transform_color_table) \ - USE_GL_EXT(GL_EXT_point_parameters) \ - USE_GL_EXT(GL_EXT_polygon_offset) \ - USE_GL_EXT(GL_EXT_polygon_offset_clamp) \ - USE_GL_EXT(GL_EXT_post_depth_coverage) \ - USE_GL_EXT(GL_EXT_protected_textures) \ - USE_GL_EXT(GL_EXT_provoking_vertex) \ - USE_GL_EXT(GL_EXT_pvrtc_sRGB) \ - USE_GL_EXT(GL_EXT_raster_multisample) \ - USE_GL_EXT(GL_EXT_read_format_bgra) \ - USE_GL_EXT(GL_EXT_render_snorm) \ - USE_GL_EXT(GL_EXT_rescale_normal) \ - USE_GL_EXT(GL_EXT_sRGB) \ - USE_GL_EXT(GL_EXT_sRGB_write_control) \ - USE_GL_EXT(GL_EXT_scene_marker) \ - USE_GL_EXT(GL_EXT_secondary_color) \ - USE_GL_EXT(GL_EXT_semaphore) \ - USE_GL_EXT(GL_EXT_semaphore_win32) \ - USE_GL_EXT(GL_EXT_separate_depth_stencil) \ - USE_GL_EXT(GL_EXT_separate_shader_objects) \ - USE_GL_EXT(GL_EXT_separate_specular_color) \ - USE_GL_EXT(GL_EXT_shader_clock) \ - USE_GL_EXT(GL_EXT_shader_framebuffer_fetch) \ - USE_GL_EXT(GL_EXT_shader_framebuffer_fetch_non_coherent) \ - USE_GL_EXT(GL_EXT_shader_group_vote) \ - USE_GL_EXT(GL_EXT_shader_image_load_formatted) \ - USE_GL_EXT(GL_EXT_shader_image_load_store) \ - USE_GL_EXT(GL_EXT_shader_implicit_conversions) \ - USE_GL_EXT(GL_EXT_shader_integer_mix) \ - USE_GL_EXT(GL_EXT_shader_io_blocks) \ - USE_GL_EXT(GL_EXT_shader_non_constant_global_initializers) \ - USE_GL_EXT(GL_EXT_shader_pixel_local_storage) \ - USE_GL_EXT(GL_EXT_shader_realtime_clock) \ - USE_GL_EXT(GL_EXT_shader_samples_identical) \ - USE_GL_EXT(GL_EXT_shader_texture_lod) \ - USE_GL_EXT(GL_EXT_shader_texture_samples) \ - USE_GL_EXT(GL_EXT_shadow_funcs) \ - USE_GL_EXT(GL_EXT_shadow_samplers) \ - USE_GL_EXT(GL_EXT_shared_texture_palette) \ - USE_GL_EXT(GL_EXT_sparse_texture2) \ - USE_GL_EXT(GL_EXT_stencil_clear_tag) \ - USE_GL_EXT(GL_EXT_stencil_two_side) \ - USE_GL_EXT(GL_EXT_stencil_wrap) \ - USE_GL_EXT(GL_EXT_subtexture) \ - USE_GL_EXT(GL_EXT_swap_control) \ - USE_GL_EXT(GL_EXT_tessellation_point_size) \ - USE_GL_EXT(GL_EXT_texgen_reflection) \ - USE_GL_EXT(GL_EXT_texture) \ - USE_GL_EXT(GL_EXT_texture3D) \ - USE_GL_EXT(GL_EXT_texture_array) \ - USE_GL_EXT(GL_EXT_texture_buffer_object) \ - USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode) \ - USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode_rgb9e5) \ - USE_GL_EXT(GL_EXT_texture_compression_bptc) \ - USE_GL_EXT(GL_EXT_texture_compression_dxt1) \ - USE_GL_EXT(GL_EXT_texture_compression_latc) \ - USE_GL_EXT(GL_EXT_texture_compression_rgtc) \ - USE_GL_EXT(GL_EXT_texture_compression_s3tc) \ - USE_GL_EXT(GL_EXT_texture_compression_s3tc_srgb) \ - USE_GL_EXT(GL_EXT_texture_cube_map) \ - USE_GL_EXT(GL_EXT_texture_cube_map_array) \ - USE_GL_EXT(GL_EXT_texture_env) \ - USE_GL_EXT(GL_EXT_texture_env_add) \ - USE_GL_EXT(GL_EXT_texture_env_combine) \ - USE_GL_EXT(GL_EXT_texture_env_dot3) \ - USE_GL_EXT(GL_EXT_texture_filter_anisotropic) \ - USE_GL_EXT(GL_EXT_texture_filter_minmax) \ - USE_GL_EXT(GL_EXT_texture_format_BGRA8888) \ - USE_GL_EXT(GL_EXT_texture_format_sRGB_override) \ - USE_GL_EXT(GL_EXT_texture_integer) \ - USE_GL_EXT(GL_EXT_texture_lod) \ - USE_GL_EXT(GL_EXT_texture_lod_bias) \ - USE_GL_EXT(GL_EXT_texture_mirror_clamp) \ - USE_GL_EXT(GL_EXT_texture_mirror_clamp_to_edge) \ - USE_GL_EXT(GL_EXT_texture_norm16) \ - USE_GL_EXT(GL_EXT_texture_object) \ - USE_GL_EXT(GL_EXT_texture_perturb_normal) \ - USE_GL_EXT(GL_EXT_texture_query_lod) \ - USE_GL_EXT(GL_EXT_texture_rg) \ - USE_GL_EXT(GL_EXT_texture_sRGB) \ - USE_GL_EXT(GL_EXT_texture_sRGB_R8) \ - USE_GL_EXT(GL_EXT_texture_sRGB_RG8) \ - USE_GL_EXT(GL_EXT_texture_sRGB_decode) \ - USE_GL_EXT(GL_EXT_texture_shadow_lod) \ - USE_GL_EXT(GL_EXT_texture_shared_exponent) \ - USE_GL_EXT(GL_EXT_texture_snorm) \ - USE_GL_EXT(GL_EXT_texture_storage) \ - USE_GL_EXT(GL_EXT_texture_swizzle) \ - USE_GL_EXT(GL_EXT_texture_type_2_10_10_10_REV) \ - USE_GL_EXT(GL_EXT_timer_query) \ - USE_GL_EXT(GL_EXT_transform_feedback) \ - USE_GL_EXT(GL_EXT_unpack_subimage) \ - USE_GL_EXT(GL_EXT_vertex_array) \ - USE_GL_EXT(GL_EXT_vertex_array_bgra) \ - USE_GL_EXT(GL_EXT_vertex_attrib_64bit) \ - USE_GL_EXT(GL_EXT_vertex_shader) \ - USE_GL_EXT(GL_EXT_vertex_weighting) \ - USE_GL_EXT(GL_EXT_win32_keyed_mutex) \ - USE_GL_EXT(GL_EXT_window_rectangles) \ - USE_GL_EXT(GL_EXT_x11_sync_object) \ - USE_GL_EXT(GL_GREMEDY_frame_terminator) \ - USE_GL_EXT(GL_GREMEDY_string_marker) \ - USE_GL_EXT(GL_HP_convolution_border_modes) \ - USE_GL_EXT(GL_HP_image_transform) \ - USE_GL_EXT(GL_HP_occlusion_test) \ - USE_GL_EXT(GL_HP_texture_lighting) \ - USE_GL_EXT(GL_IBM_cull_vertex) \ - USE_GL_EXT(GL_IBM_multimode_draw_arrays) \ - USE_GL_EXT(GL_IBM_rasterpos_clip) \ - USE_GL_EXT(GL_IBM_static_data) \ - USE_GL_EXT(GL_IBM_texture_mirrored_repeat) \ - USE_GL_EXT(GL_IBM_vertex_array_lists) \ - USE_GL_EXT(GL_IMG_program_binary) \ - USE_GL_EXT(GL_IMG_read_format) \ - USE_GL_EXT(GL_IMG_shader_binary) \ - USE_GL_EXT(GL_IMG_texture_compression_pvrtc) \ - USE_GL_EXT(GL_IMG_texture_compression_pvrtc2) \ - USE_GL_EXT(GL_IMG_texture_env_enhanced_fixed_function) \ - USE_GL_EXT(GL_IMG_texture_filter_cubic) \ - USE_GL_EXT(GL_INGR_blend_func_separate) \ - USE_GL_EXT(GL_INGR_color_clamp) \ - USE_GL_EXT(GL_INGR_interlace_read) \ - USE_GL_EXT(GL_INTEL_blackhole_render) \ - USE_GL_EXT(GL_INTEL_conservative_rasterization) \ - USE_GL_EXT(GL_INTEL_fragment_shader_ordering) \ - USE_GL_EXT(GL_INTEL_framebuffer_CMAA) \ - USE_GL_EXT(GL_INTEL_map_texture) \ - USE_GL_EXT(GL_INTEL_parallel_arrays) \ - USE_GL_EXT(GL_INTEL_performance_query) \ - USE_GL_EXT(GL_INTEL_shader_integer_functions2) \ - USE_GL_EXT(GL_INTEL_texture_scissor) \ - USE_GL_EXT(GL_KHR_blend_equation_advanced) \ - USE_GL_EXT(GL_KHR_blend_equation_advanced_coherent) \ - USE_GL_EXT(GL_KHR_context_flush_control) \ - USE_GL_EXT(GL_KHR_debug) \ - USE_GL_EXT(GL_KHR_no_error) \ - USE_GL_EXT(GL_KHR_parallel_shader_compile) \ - USE_GL_EXT(GL_KHR_robust_buffer_access_behavior) \ - USE_GL_EXT(GL_KHR_robustness) \ - USE_GL_EXT(GL_KHR_shader_subgroup) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_hdr) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_ldr) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_sliced_3d) \ - USE_GL_EXT(GL_KTX_buffer_region) \ - USE_GL_EXT(GL_MESAX_texture_stack) \ - USE_GL_EXT(GL_MESA_bgra) \ - USE_GL_EXT(GL_MESA_framebuffer_flip_x) \ - USE_GL_EXT(GL_MESA_framebuffer_flip_y) \ - USE_GL_EXT(GL_MESA_framebuffer_swap_xy) \ - USE_GL_EXT(GL_MESA_pack_invert) \ - USE_GL_EXT(GL_MESA_program_binary_formats) \ - USE_GL_EXT(GL_MESA_resize_buffers) \ - USE_GL_EXT(GL_MESA_shader_integer_functions) \ - USE_GL_EXT(GL_MESA_texture_const_bandwidth) \ - USE_GL_EXT(GL_MESA_tile_raster_order) \ - USE_GL_EXT(GL_MESA_window_pos) \ - USE_GL_EXT(GL_MESA_ycbcr_texture) \ - USE_GL_EXT(GL_NVX_blend_equation_advanced_multi_draw_buffers) \ - USE_GL_EXT(GL_NVX_conditional_render) \ - USE_GL_EXT(GL_NVX_gpu_memory_info) \ - USE_GL_EXT(GL_NVX_gpu_multicast2) \ - USE_GL_EXT(GL_NVX_linked_gpu_multicast) \ - USE_GL_EXT(GL_NVX_progress_fence) \ - USE_GL_EXT(GL_NV_3dvision_settings) \ - USE_GL_EXT(GL_NV_EGL_stream_consumer_external) \ - USE_GL_EXT(GL_NV_ES1_1_compatibility) \ - USE_GL_EXT(GL_NV_ES3_1_compatibility) \ - USE_GL_EXT(GL_NV_alpha_to_coverage_dither_control) \ - USE_GL_EXT(GL_NV_bgr) \ - USE_GL_EXT(GL_NV_bindless_multi_draw_indirect) \ - USE_GL_EXT(GL_NV_bindless_multi_draw_indirect_count) \ - USE_GL_EXT(GL_NV_bindless_texture) \ - USE_GL_EXT(GL_NV_blend_equation_advanced) \ - USE_GL_EXT(GL_NV_blend_equation_advanced_coherent) \ - USE_GL_EXT(GL_NV_blend_minmax_factor) \ - USE_GL_EXT(GL_NV_blend_square) \ - USE_GL_EXT(GL_NV_clip_space_w_scaling) \ - USE_GL_EXT(GL_NV_command_list) \ - USE_GL_EXT(GL_NV_compute_program5) \ - USE_GL_EXT(GL_NV_compute_shader_derivatives) \ - USE_GL_EXT(GL_NV_conditional_render) \ - USE_GL_EXT(GL_NV_conservative_raster) \ - USE_GL_EXT(GL_NV_conservative_raster_dilate) \ - USE_GL_EXT(GL_NV_conservative_raster_pre_snap) \ - USE_GL_EXT(GL_NV_conservative_raster_pre_snap_triangles) \ - USE_GL_EXT(GL_NV_conservative_raster_underestimation) \ - USE_GL_EXT(GL_NV_copy_depth_to_color) \ - USE_GL_EXT(GL_NV_copy_image) \ - USE_GL_EXT(GL_NV_deep_texture3D) \ - USE_GL_EXT(GL_NV_depth_buffer_float) \ - USE_GL_EXT(GL_NV_depth_clamp) \ - USE_GL_EXT(GL_NV_depth_nonlinear) \ - USE_GL_EXT(GL_NV_draw_texture) \ - USE_GL_EXT(GL_NV_draw_vulkan_image) \ - USE_GL_EXT(GL_NV_evaluators) \ - USE_GL_EXT(GL_NV_explicit_attrib_location) \ - USE_GL_EXT(GL_NV_explicit_multisample) \ - USE_GL_EXT(GL_NV_fbo_color_attachments) \ - USE_GL_EXT(GL_NV_fence) \ - USE_GL_EXT(GL_NV_fill_rectangle) \ - USE_GL_EXT(GL_NV_float_buffer) \ - USE_GL_EXT(GL_NV_fog_distance) \ - USE_GL_EXT(GL_NV_fragment_coverage_to_color) \ - USE_GL_EXT(GL_NV_fragment_program) \ - USE_GL_EXT(GL_NV_fragment_program2) \ - USE_GL_EXT(GL_NV_fragment_program4) \ - USE_GL_EXT(GL_NV_fragment_program_option) \ - USE_GL_EXT(GL_NV_fragment_shader_barycentric) \ - USE_GL_EXT(GL_NV_fragment_shader_interlock) \ - USE_GL_EXT(GL_NV_framebuffer_mixed_samples) \ - USE_GL_EXT(GL_NV_framebuffer_multisample_coverage) \ - USE_GL_EXT(GL_NV_generate_mipmap_sRGB) \ - USE_GL_EXT(GL_NV_geometry_program4) \ - USE_GL_EXT(GL_NV_geometry_shader4) \ - USE_GL_EXT(GL_NV_geometry_shader_passthrough) \ - USE_GL_EXT(GL_NV_gpu_multicast) \ - USE_GL_EXT(GL_NV_gpu_program4) \ - USE_GL_EXT(GL_NV_gpu_program5) \ - USE_GL_EXT(GL_NV_gpu_program5_mem_extended) \ - USE_GL_EXT(GL_NV_gpu_program_fp64) \ - USE_GL_EXT(GL_NV_gpu_shader5) \ - USE_GL_EXT(GL_NV_half_float) \ - USE_GL_EXT(GL_NV_image_formats) \ - USE_GL_EXT(GL_NV_internalformat_sample_query) \ - USE_GL_EXT(GL_NV_light_max_exponent) \ - USE_GL_EXT(GL_NV_memory_attachment) \ - USE_GL_EXT(GL_NV_memory_object_sparse) \ - USE_GL_EXT(GL_NV_mesh_shader) \ - USE_GL_EXT(GL_NV_multisample_coverage) \ - USE_GL_EXT(GL_NV_multisample_filter_hint) \ - USE_GL_EXT(GL_NV_occlusion_query) \ - USE_GL_EXT(GL_NV_pack_subimage) \ - USE_GL_EXT(GL_NV_packed_depth_stencil) \ - USE_GL_EXT(GL_NV_packed_float) \ - USE_GL_EXT(GL_NV_packed_float_linear) \ - USE_GL_EXT(GL_NV_parameter_buffer_object) \ - USE_GL_EXT(GL_NV_parameter_buffer_object2) \ - USE_GL_EXT(GL_NV_path_rendering) \ - USE_GL_EXT(GL_NV_path_rendering_shared_edge) \ - USE_GL_EXT(GL_NV_pixel_buffer_object) \ - USE_GL_EXT(GL_NV_pixel_data_range) \ - USE_GL_EXT(GL_NV_platform_binary) \ - USE_GL_EXT(GL_NV_point_sprite) \ - USE_GL_EXT(GL_NV_present_video) \ - USE_GL_EXT(GL_NV_primitive_restart) \ - USE_GL_EXT(GL_NV_primitive_shading_rate) \ - USE_GL_EXT(GL_NV_query_resource) \ - USE_GL_EXT(GL_NV_query_resource_tag) \ - USE_GL_EXT(GL_NV_read_buffer_front) \ - USE_GL_EXT(GL_NV_read_depth) \ - USE_GL_EXT(GL_NV_read_depth_stencil) \ - USE_GL_EXT(GL_NV_read_stencil) \ - USE_GL_EXT(GL_NV_register_combiners) \ - USE_GL_EXT(GL_NV_register_combiners2) \ - USE_GL_EXT(GL_NV_representative_fragment_test) \ - USE_GL_EXT(GL_NV_robustness_video_memory_purge) \ - USE_GL_EXT(GL_NV_sRGB_formats) \ - USE_GL_EXT(GL_NV_sample_locations) \ - USE_GL_EXT(GL_NV_sample_mask_override_coverage) \ - USE_GL_EXT(GL_NV_scissor_exclusive) \ - USE_GL_EXT(GL_NV_shader_atomic_counters) \ - USE_GL_EXT(GL_NV_shader_atomic_float) \ - USE_GL_EXT(GL_NV_shader_atomic_float64) \ - USE_GL_EXT(GL_NV_shader_atomic_fp16_vector) \ - USE_GL_EXT(GL_NV_shader_atomic_int64) \ - USE_GL_EXT(GL_NV_shader_buffer_load) \ - USE_GL_EXT(GL_NV_shader_buffer_store) \ - USE_GL_EXT(GL_NV_shader_noperspective_interpolation) \ - USE_GL_EXT(GL_NV_shader_storage_buffer_object) \ - USE_GL_EXT(GL_NV_shader_subgroup_partitioned) \ - USE_GL_EXT(GL_NV_shader_texture_footprint) \ - USE_GL_EXT(GL_NV_shader_thread_group) \ - USE_GL_EXT(GL_NV_shader_thread_shuffle) \ - USE_GL_EXT(GL_NV_shading_rate_image) \ - USE_GL_EXT(GL_NV_shadow_samplers_array) \ - USE_GL_EXT(GL_NV_shadow_samplers_cube) \ - USE_GL_EXT(GL_NV_stereo_view_rendering) \ - USE_GL_EXT(GL_NV_tessellation_program5) \ - USE_GL_EXT(GL_NV_texgen_emboss) \ - USE_GL_EXT(GL_NV_texgen_reflection) \ - USE_GL_EXT(GL_NV_texture_array) \ - USE_GL_EXT(GL_NV_texture_barrier) \ - USE_GL_EXT(GL_NV_texture_border_clamp) \ - USE_GL_EXT(GL_NV_texture_compression_latc) \ - USE_GL_EXT(GL_NV_texture_compression_s3tc) \ - USE_GL_EXT(GL_NV_texture_compression_s3tc_update) \ - USE_GL_EXT(GL_NV_texture_compression_vtc) \ - USE_GL_EXT(GL_NV_texture_env_combine4) \ - USE_GL_EXT(GL_NV_texture_expand_normal) \ - USE_GL_EXT(GL_NV_texture_multisample) \ - USE_GL_EXT(GL_NV_texture_npot_2D_mipmap) \ - USE_GL_EXT(GL_NV_texture_rectangle) \ - USE_GL_EXT(GL_NV_texture_rectangle_compressed) \ - USE_GL_EXT(GL_NV_texture_shader) \ - USE_GL_EXT(GL_NV_texture_shader2) \ - USE_GL_EXT(GL_NV_texture_shader3) \ - USE_GL_EXT(GL_NV_timeline_semaphore) \ - USE_GL_EXT(GL_NV_transform_feedback) \ - USE_GL_EXT(GL_NV_transform_feedback2) \ - USE_GL_EXT(GL_NV_uniform_buffer_std430_layout) \ - USE_GL_EXT(GL_NV_uniform_buffer_unified_memory) \ - USE_GL_EXT(GL_NV_vdpau_interop) \ - USE_GL_EXT(GL_NV_vdpau_interop2) \ - USE_GL_EXT(GL_NV_vertex_array_range) \ - USE_GL_EXT(GL_NV_vertex_array_range2) \ - USE_GL_EXT(GL_NV_vertex_attrib_integer_64bit) \ - USE_GL_EXT(GL_NV_vertex_buffer_unified_memory) \ - USE_GL_EXT(GL_NV_vertex_program) \ - USE_GL_EXT(GL_NV_vertex_program1_1) \ - USE_GL_EXT(GL_NV_vertex_program2) \ - USE_GL_EXT(GL_NV_vertex_program2_option) \ - USE_GL_EXT(GL_NV_vertex_program3) \ - USE_GL_EXT(GL_NV_vertex_program4) \ - USE_GL_EXT(GL_NV_video_capture) \ - USE_GL_EXT(GL_NV_viewport_array2) \ - USE_GL_EXT(GL_NV_viewport_swizzle) \ - USE_GL_EXT(GL_OES_EGL_image_external_essl3) \ - USE_GL_EXT(GL_OES_EGL_sync) \ - USE_GL_EXT(GL_OES_byte_coordinates) \ - USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_sub_texture) \ - USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_texture) \ - USE_GL_EXT(GL_OES_compressed_paletted_texture) \ - USE_GL_EXT(GL_OES_depth24) \ - USE_GL_EXT(GL_OES_depth32) \ - USE_GL_EXT(GL_OES_depth_texture) \ - USE_GL_EXT(GL_OES_depth_texture_cube_map) \ - USE_GL_EXT(GL_OES_element_index_uint) \ - USE_GL_EXT(GL_OES_extended_matrix_palette) \ - USE_GL_EXT(GL_OES_fbo_render_mipmap) \ - USE_GL_EXT(GL_OES_fixed_point) \ - USE_GL_EXT(GL_OES_fragment_precision_high) \ - USE_GL_EXT(GL_OES_geometry_point_size) \ - USE_GL_EXT(GL_OES_gpu_shader5) \ - USE_GL_EXT(GL_OES_matrix_get) \ - USE_GL_EXT(GL_OES_packed_depth_stencil) \ - USE_GL_EXT(GL_OES_point_sprite) \ - USE_GL_EXT(GL_OES_query_matrix) \ - USE_GL_EXT(GL_OES_read_format) \ - USE_GL_EXT(GL_OES_required_internalformat) \ - USE_GL_EXT(GL_OES_rgb8_rgba8) \ - USE_GL_EXT(GL_OES_sample_variables) \ - USE_GL_EXT(GL_OES_shader_image_atomic) \ - USE_GL_EXT(GL_OES_shader_io_blocks) \ - USE_GL_EXT(GL_OES_shader_multisample_interpolation) \ - USE_GL_EXT(GL_OES_single_precision) \ - USE_GL_EXT(GL_OES_standard_derivatives) \ - USE_GL_EXT(GL_OES_stencil1) \ - USE_GL_EXT(GL_OES_stencil4) \ - USE_GL_EXT(GL_OES_stencil8) \ - USE_GL_EXT(GL_OES_stencil_wrap) \ - USE_GL_EXT(GL_OES_surfaceless_context) \ - USE_GL_EXT(GL_OES_tessellation_point_size) \ - USE_GL_EXT(GL_OES_texture_compression_astc) \ - USE_GL_EXT(GL_OES_texture_cube_map_array) \ - USE_GL_EXT(GL_OES_texture_env_crossbar) \ - USE_GL_EXT(GL_OES_texture_float) \ - USE_GL_EXT(GL_OES_texture_float_linear) \ - USE_GL_EXT(GL_OES_texture_half_float) \ - USE_GL_EXT(GL_OES_texture_half_float_linear) \ - USE_GL_EXT(GL_OES_texture_mirrored_repeat) \ - USE_GL_EXT(GL_OES_texture_npot) \ - USE_GL_EXT(GL_OES_texture_stencil8) \ - USE_GL_EXT(GL_OES_vertex_half_float) \ - USE_GL_EXT(GL_OES_vertex_type_10_10_10_2) \ - USE_GL_EXT(GL_OML_interlace) \ - USE_GL_EXT(GL_OML_resample) \ - USE_GL_EXT(GL_OML_subsample) \ - USE_GL_EXT(GL_OVR_multiview) \ - USE_GL_EXT(GL_OVR_multiview2) \ - USE_GL_EXT(GL_PGI_misc_hints) \ - USE_GL_EXT(GL_PGI_vertex_hints) \ - USE_GL_EXT(GL_REND_screen_coordinates) \ - USE_GL_EXT(GL_S3_s3tc) \ - USE_GL_EXT(GL_SGIS_detail_texture) \ - USE_GL_EXT(GL_SGIS_fog_function) \ - USE_GL_EXT(GL_SGIS_generate_mipmap) \ - USE_GL_EXT(GL_SGIS_multisample) \ - USE_GL_EXT(GL_SGIS_multitexture) \ - USE_GL_EXT(GL_SGIS_pixel_texture) \ - USE_GL_EXT(GL_SGIS_point_line_texgen) \ - USE_GL_EXT(GL_SGIS_point_parameters) \ - USE_GL_EXT(GL_SGIS_sharpen_texture) \ - USE_GL_EXT(GL_SGIS_texture4D) \ - USE_GL_EXT(GL_SGIS_texture_border_clamp) \ - USE_GL_EXT(GL_SGIS_texture_color_mask) \ - USE_GL_EXT(GL_SGIS_texture_edge_clamp) \ - USE_GL_EXT(GL_SGIS_texture_filter4) \ - USE_GL_EXT(GL_SGIS_texture_lod) \ - USE_GL_EXT(GL_SGIS_texture_select) \ - USE_GL_EXT(GL_SGIX_async) \ - USE_GL_EXT(GL_SGIX_async_histogram) \ - USE_GL_EXT(GL_SGIX_async_pixel) \ - USE_GL_EXT(GL_SGIX_blend_alpha_minmax) \ - USE_GL_EXT(GL_SGIX_calligraphic_fragment) \ - USE_GL_EXT(GL_SGIX_clipmap) \ - USE_GL_EXT(GL_SGIX_convolution_accuracy) \ - USE_GL_EXT(GL_SGIX_depth_pass_instrument) \ - USE_GL_EXT(GL_SGIX_depth_texture) \ - USE_GL_EXT(GL_SGIX_flush_raster) \ - USE_GL_EXT(GL_SGIX_fog_offset) \ - USE_GL_EXT(GL_SGIX_fragment_lighting) \ - USE_GL_EXT(GL_SGIX_framezoom) \ - USE_GL_EXT(GL_SGIX_igloo_interface) \ - USE_GL_EXT(GL_SGIX_instruments) \ - USE_GL_EXT(GL_SGIX_interlace) \ - USE_GL_EXT(GL_SGIX_ir_instrument1) \ - USE_GL_EXT(GL_SGIX_list_priority) \ - USE_GL_EXT(GL_SGIX_pixel_texture) \ - USE_GL_EXT(GL_SGIX_pixel_texture_bits) \ - USE_GL_EXT(GL_SGIX_pixel_tiles) \ - USE_GL_EXT(GL_SGIX_polynomial_ffd) \ - USE_GL_EXT(GL_SGIX_reference_plane) \ - USE_GL_EXT(GL_SGIX_resample) \ - USE_GL_EXT(GL_SGIX_scalebias_hint) \ - USE_GL_EXT(GL_SGIX_shadow) \ - USE_GL_EXT(GL_SGIX_shadow_ambient) \ - USE_GL_EXT(GL_SGIX_sprite) \ - USE_GL_EXT(GL_SGIX_subsample) \ - USE_GL_EXT(GL_SGIX_tag_sample_buffer) \ - USE_GL_EXT(GL_SGIX_texture_add_env) \ - USE_GL_EXT(GL_SGIX_texture_coordinate_clamp) \ - USE_GL_EXT(GL_SGIX_texture_lod_bias) \ - USE_GL_EXT(GL_SGIX_texture_multi_buffer) \ - USE_GL_EXT(GL_SGIX_texture_range) \ - USE_GL_EXT(GL_SGIX_texture_scale_bias) \ - USE_GL_EXT(GL_SGIX_vertex_preclip) \ - USE_GL_EXT(GL_SGIX_vertex_preclip_hint) \ - USE_GL_EXT(GL_SGIX_ycrcb) \ - USE_GL_EXT(GL_SGIX_ycrcb_subsample) \ - USE_GL_EXT(GL_SGIX_ycrcba) \ - USE_GL_EXT(GL_SGI_color_matrix) \ - USE_GL_EXT(GL_SGI_color_table) \ - USE_GL_EXT(GL_SGI_texture_color_table) \ - USE_GL_EXT(GL_SUNX_constant_data) \ - USE_GL_EXT(GL_SUN_convolution_border_modes) \ - USE_GL_EXT(GL_SUN_global_alpha) \ - USE_GL_EXT(GL_SUN_mesh_array) \ - USE_GL_EXT(GL_SUN_multi_draw_arrays) \ - USE_GL_EXT(GL_SUN_slice_accum) \ - USE_GL_EXT(GL_SUN_triangle_list) \ - USE_GL_EXT(GL_SUN_vertex) \ - USE_GL_EXT(GL_WIN_phong_shading) \ - USE_GL_EXT(GL_WIN_specular_fog) - -#define ALL_GL_EXTS ALL_GL_CLIENT_EXTS \ - USE_GL_EXT(GL_EXT_memory_object_fd) \ - USE_GL_EXT(GL_EXT_semaphore_fd) +#define ALL_GL_EXTS \ + USE_GL_EXT(GL_3DFX_multisample, 1) \ + USE_GL_EXT(GL_3DFX_tbuffer, 1) \ + USE_GL_EXT(GL_3DFX_texture_compression_FXT1, 1) \ + USE_GL_EXT(GL_AMDX_debug_output, 1) \ + USE_GL_EXT(GL_AMD_blend_minmax_factor, 1) \ + USE_GL_EXT(GL_AMD_compressed_3DC_texture, 1) \ + USE_GL_EXT(GL_AMD_compressed_ATC_texture, 1) \ + USE_GL_EXT(GL_AMD_conservative_depth, 1) \ + USE_GL_EXT(GL_AMD_debug_output, 1) \ + USE_GL_EXT(GL_AMD_depth_clamp_separate, 1) \ + USE_GL_EXT(GL_AMD_draw_buffers_blend, 1) \ + USE_GL_EXT(GL_AMD_framebuffer_multisample_advanced, 1) \ + USE_GL_EXT(GL_AMD_framebuffer_sample_positions, 1) \ + USE_GL_EXT(GL_AMD_gcn_shader, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_half_float, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_half_float_fetch, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_int16, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_int64, 1) \ + USE_GL_EXT(GL_AMD_interleaved_elements, 1) \ + USE_GL_EXT(GL_AMD_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_AMD_name_gen_delete, 1) \ + USE_GL_EXT(GL_AMD_occlusion_query_event, 1) \ + USE_GL_EXT(GL_AMD_performance_monitor, 1) \ + USE_GL_EXT(GL_AMD_pinned_memory, 1) \ + USE_GL_EXT(GL_AMD_program_binary_Z400, 1) \ + USE_GL_EXT(GL_AMD_query_buffer_object, 1) \ + USE_GL_EXT(GL_AMD_sample_positions, 1) \ + USE_GL_EXT(GL_AMD_seamless_cubemap_per_texture, 1) \ + USE_GL_EXT(GL_AMD_shader_atomic_counter_ops, 1) \ + USE_GL_EXT(GL_AMD_shader_ballot, 1) \ + USE_GL_EXT(GL_AMD_shader_explicit_vertex_parameter, 1) \ + USE_GL_EXT(GL_AMD_shader_gpu_shader_half_float_fetch, 1) \ + USE_GL_EXT(GL_AMD_shader_image_load_store_lod, 1) \ + USE_GL_EXT(GL_AMD_shader_stencil_export, 1) \ + USE_GL_EXT(GL_AMD_shader_stencil_value_export, 1) \ + USE_GL_EXT(GL_AMD_shader_trinary_minmax, 1) \ + USE_GL_EXT(GL_AMD_sparse_texture, 1) \ + USE_GL_EXT(GL_AMD_stencil_operation_extended, 1) \ + USE_GL_EXT(GL_AMD_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_AMD_texture_gather_bias_lod, 1) \ + USE_GL_EXT(GL_AMD_texture_texture4, 1) \ + USE_GL_EXT(GL_AMD_transform_feedback3_lines_triangles, 1) \ + USE_GL_EXT(GL_AMD_transform_feedback4, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_layer, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_tessellator, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_viewport_index, 1) \ + USE_GL_EXT(GL_APPLE_aux_depth_stencil, 1) \ + USE_GL_EXT(GL_APPLE_client_storage, 1) \ + USE_GL_EXT(GL_APPLE_clip_distance, 1) \ + USE_GL_EXT(GL_APPLE_color_buffer_packed_float, 1) \ + USE_GL_EXT(GL_APPLE_element_array, 1) \ + USE_GL_EXT(GL_APPLE_fence, 1) \ + USE_GL_EXT(GL_APPLE_float_pixels, 1) \ + USE_GL_EXT(GL_APPLE_flush_buffer_range, 1) \ + USE_GL_EXT(GL_APPLE_object_purgeable, 1) \ + USE_GL_EXT(GL_APPLE_rgb_422, 1) \ + USE_GL_EXT(GL_APPLE_row_bytes, 1) \ + USE_GL_EXT(GL_APPLE_specular_vector, 1) \ + USE_GL_EXT(GL_APPLE_texture_2D_limited_npot, 1) \ + USE_GL_EXT(GL_APPLE_texture_format_BGRA8888, 1) \ + USE_GL_EXT(GL_APPLE_texture_max_level, 1) \ + USE_GL_EXT(GL_APPLE_texture_packed_float, 1) \ + USE_GL_EXT(GL_APPLE_texture_range, 1) \ + USE_GL_EXT(GL_APPLE_transform_hint, 1) \ + USE_GL_EXT(GL_APPLE_vertex_array_object, 1) \ + USE_GL_EXT(GL_APPLE_vertex_array_range, 1) \ + USE_GL_EXT(GL_APPLE_vertex_program_evaluators, 1) \ + USE_GL_EXT(GL_APPLE_ycbcr_422, 1) \ + USE_GL_EXT(GL_ARB_ES2_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_1_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_2_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_compatibility, 1) \ + USE_GL_EXT(GL_ARB_arrays_of_arrays, 1) \ + USE_GL_EXT(GL_ARB_base_instance, 1) \ + USE_GL_EXT(GL_ARB_bindless_texture, 1) \ + USE_GL_EXT(GL_ARB_blend_func_extended, 1) \ + USE_GL_EXT(GL_ARB_buffer_storage, 1) \ + USE_GL_EXT(GL_ARB_cl_event, 1) \ + USE_GL_EXT(GL_ARB_clear_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_clear_texture, 1) \ + USE_GL_EXT(GL_ARB_clip_control, 1) \ + USE_GL_EXT(GL_ARB_color_buffer_float, 1) \ + USE_GL_EXT(GL_ARB_compatibility, 1) \ + USE_GL_EXT(GL_ARB_compressed_texture_pixel_storage, 1) \ + USE_GL_EXT(GL_ARB_compute_shader, 1) \ + USE_GL_EXT(GL_ARB_compute_variable_group_size, 1) \ + USE_GL_EXT(GL_ARB_conditional_render_inverted, 1) \ + USE_GL_EXT(GL_ARB_conservative_depth, 1) \ + USE_GL_EXT(GL_ARB_copy_buffer, 1) \ + USE_GL_EXT(GL_ARB_copy_image, 1) \ + USE_GL_EXT(GL_ARB_cull_distance, 1) \ + USE_GL_EXT(GL_ARB_debug_output, 1) \ + USE_GL_EXT(GL_ARB_depth_buffer_float, 1) \ + USE_GL_EXT(GL_ARB_depth_clamp, 1) \ + USE_GL_EXT(GL_ARB_depth_texture, 1) \ + USE_GL_EXT(GL_ARB_derivative_control, 1) \ + USE_GL_EXT(GL_ARB_direct_state_access, 1) \ + USE_GL_EXT(GL_ARB_draw_buffers, 1) \ + USE_GL_EXT(GL_ARB_draw_buffers_blend, 1) \ + USE_GL_EXT(GL_ARB_draw_elements_base_vertex, 1) \ + USE_GL_EXT(GL_ARB_draw_indirect, 1) \ + USE_GL_EXT(GL_ARB_draw_instanced, 1) \ + USE_GL_EXT(GL_ARB_enhanced_layouts, 1) \ + USE_GL_EXT(GL_ARB_explicit_attrib_location, 1) \ + USE_GL_EXT(GL_ARB_explicit_uniform_location, 1) \ + USE_GL_EXT(GL_ARB_fragment_coord_conventions, 1) \ + USE_GL_EXT(GL_ARB_fragment_layer_viewport, 1) \ + USE_GL_EXT(GL_ARB_fragment_program, 1) \ + USE_GL_EXT(GL_ARB_fragment_program_shadow, 1) \ + USE_GL_EXT(GL_ARB_fragment_shader, 1) \ + USE_GL_EXT(GL_ARB_fragment_shader_interlock, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_no_attachments, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_object, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_sRGB, 1) \ + USE_GL_EXT(GL_ARB_geometry_shader4, 1) \ + USE_GL_EXT(GL_ARB_get_program_binary, 1) \ + USE_GL_EXT(GL_ARB_get_texture_sub_image, 1) \ + USE_GL_EXT(GL_ARB_gl_spirv, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader5, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader_fp64, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader_int64, 1) \ + USE_GL_EXT(GL_ARB_half_float_pixel, 1) \ + USE_GL_EXT(GL_ARB_half_float_vertex, 1) \ + USE_GL_EXT(GL_ARB_imaging, 1) \ + USE_GL_EXT(GL_ARB_indirect_parameters, 1) \ + USE_GL_EXT(GL_ARB_instanced_arrays, 1) \ + USE_GL_EXT(GL_ARB_internalformat_query, 1) \ + USE_GL_EXT(GL_ARB_internalformat_query2, 1) \ + USE_GL_EXT(GL_ARB_invalidate_subdata, 1) \ + USE_GL_EXT(GL_ARB_map_buffer_alignment, 1) \ + USE_GL_EXT(GL_ARB_map_buffer_range, 1) \ + USE_GL_EXT(GL_ARB_matrix_palette, 1) \ + USE_GL_EXT(GL_ARB_multi_bind, 1) \ + USE_GL_EXT(GL_ARB_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_ARB_multisample, 1) \ + USE_GL_EXT(GL_ARB_multitexture, 1) \ + USE_GL_EXT(GL_ARB_occlusion_query, 1) \ + USE_GL_EXT(GL_ARB_occlusion_query2, 1) \ + USE_GL_EXT(GL_ARB_parallel_shader_compile, 1) \ + USE_GL_EXT(GL_ARB_pipeline_statistics_query, 1) \ + USE_GL_EXT(GL_ARB_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_point_parameters, 1) \ + USE_GL_EXT(GL_ARB_point_sprite, 1) \ + USE_GL_EXT(GL_ARB_polygon_offset_clamp, 1) \ + USE_GL_EXT(GL_ARB_post_depth_coverage, 1) \ + USE_GL_EXT(GL_ARB_program_interface_query, 1) \ + USE_GL_EXT(GL_ARB_provoking_vertex, 1) \ + USE_GL_EXT(GL_ARB_query_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_robust_buffer_access_behavior, 1) \ + USE_GL_EXT(GL_ARB_robustness, 1) \ + USE_GL_EXT(GL_ARB_robustness_isolation, 1) \ + USE_GL_EXT(GL_ARB_robustness_share_group_isolation, 1) \ + USE_GL_EXT(GL_ARB_sample_locations, 1) \ + USE_GL_EXT(GL_ARB_sample_shading, 1) \ + USE_GL_EXT(GL_ARB_sampler_objects, 1) \ + USE_GL_EXT(GL_ARB_seamless_cube_map, 1) \ + USE_GL_EXT(GL_ARB_seamless_cubemap_per_texture, 1) \ + USE_GL_EXT(GL_ARB_separate_shader_objects, 1) \ + USE_GL_EXT(GL_ARB_shader_atomic_counter_ops, 1) \ + USE_GL_EXT(GL_ARB_shader_atomic_counters, 1) \ + USE_GL_EXT(GL_ARB_shader_ballot, 1) \ + USE_GL_EXT(GL_ARB_shader_bit_encoding, 1) \ + USE_GL_EXT(GL_ARB_shader_clock, 1) \ + USE_GL_EXT(GL_ARB_shader_draw_parameters, 1) \ + USE_GL_EXT(GL_ARB_shader_group_vote, 1) \ + USE_GL_EXT(GL_ARB_shader_image_load_store, 1) \ + USE_GL_EXT(GL_ARB_shader_image_size, 1) \ + USE_GL_EXT(GL_ARB_shader_objects, 1) \ + USE_GL_EXT(GL_ARB_shader_precision, 1) \ + USE_GL_EXT(GL_ARB_shader_stencil_export, 1) \ + USE_GL_EXT(GL_ARB_shader_storage_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_shader_subroutine, 1) \ + USE_GL_EXT(GL_ARB_shader_texture_image_samples, 1) \ + USE_GL_EXT(GL_ARB_shader_texture_lod, 1) \ + USE_GL_EXT(GL_ARB_shader_viewport_layer_array, 1) \ + USE_GL_EXT(GL_ARB_shading_language_100, 1) \ + USE_GL_EXT(GL_ARB_shading_language_420pack, 1) \ + USE_GL_EXT(GL_ARB_shading_language_include, 1) \ + USE_GL_EXT(GL_ARB_shading_language_packing, 1) \ + USE_GL_EXT(GL_ARB_shadow, 1) \ + USE_GL_EXT(GL_ARB_shadow_ambient, 1) \ + USE_GL_EXT(GL_ARB_sparse_buffer, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture2, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture_clamp, 1) \ + USE_GL_EXT(GL_ARB_spirv_extensions, 1) \ + USE_GL_EXT(GL_ARB_stencil_texturing, 1) \ + USE_GL_EXT(GL_ARB_sync, 1) \ + USE_GL_EXT(GL_ARB_tessellation_shader, 1) \ + USE_GL_EXT(GL_ARB_texture_barrier, 1) \ + USE_GL_EXT(GL_ARB_texture_border_clamp, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_object_rgb32, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_range, 1) \ + USE_GL_EXT(GL_ARB_texture_compression, 1) \ + USE_GL_EXT(GL_ARB_texture_compression_bptc, 1) \ + USE_GL_EXT(GL_ARB_texture_compression_rgtc, 1) \ + USE_GL_EXT(GL_ARB_texture_cube_map, 1) \ + USE_GL_EXT(GL_ARB_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_ARB_texture_env_add, 1) \ + USE_GL_EXT(GL_ARB_texture_env_combine, 1) \ + USE_GL_EXT(GL_ARB_texture_env_crossbar, 1) \ + USE_GL_EXT(GL_ARB_texture_env_dot3, 1) \ + USE_GL_EXT(GL_ARB_texture_filter_anisotropic, 1) \ + USE_GL_EXT(GL_ARB_texture_filter_minmax, 1) \ + USE_GL_EXT(GL_ARB_texture_float, 1) \ + USE_GL_EXT(GL_ARB_texture_gather, 1) \ + USE_GL_EXT(GL_ARB_texture_mirror_clamp_to_edge, 1) \ + USE_GL_EXT(GL_ARB_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_ARB_texture_multisample, 1) \ + USE_GL_EXT(GL_ARB_texture_non_power_of_two, 1) \ + USE_GL_EXT(GL_ARB_texture_query_levels, 1) \ + USE_GL_EXT(GL_ARB_texture_query_lod, 1) \ + USE_GL_EXT(GL_ARB_texture_rectangle, 1) \ + USE_GL_EXT(GL_ARB_texture_rg, 1) \ + USE_GL_EXT(GL_ARB_texture_rgb10_a2ui, 1) \ + USE_GL_EXT(GL_ARB_texture_snorm, 1) \ + USE_GL_EXT(GL_ARB_texture_stencil8, 1) \ + USE_GL_EXT(GL_ARB_texture_storage, 1) \ + USE_GL_EXT(GL_ARB_texture_storage_multisample, 1) \ + USE_GL_EXT(GL_ARB_texture_swizzle, 1) \ + USE_GL_EXT(GL_ARB_texture_view, 1) \ + USE_GL_EXT(GL_ARB_timer_query, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback2, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback3, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback_instanced, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback_overflow_query, 1) \ + USE_GL_EXT(GL_ARB_transpose_matrix, 1) \ + USE_GL_EXT(GL_ARB_uniform_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_array_bgra, 1) \ + USE_GL_EXT(GL_ARB_vertex_array_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_attrib_64bit, 1) \ + USE_GL_EXT(GL_ARB_vertex_attrib_binding, 1) \ + USE_GL_EXT(GL_ARB_vertex_blend, 1) \ + USE_GL_EXT(GL_ARB_vertex_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_program, 1) \ + USE_GL_EXT(GL_ARB_vertex_shader, 1) \ + USE_GL_EXT(GL_ARB_vertex_type_10f_11f_11f_rev, 1) \ + USE_GL_EXT(GL_ARB_vertex_type_2_10_10_10_rev, 1) \ + USE_GL_EXT(GL_ARB_viewport_array, 1) \ + USE_GL_EXT(GL_ARB_window_pos, 1) \ + USE_GL_EXT(GL_ATI_blend_equation_separate, 1) \ + USE_GL_EXT(GL_ATI_draw_buffers, 1) \ + USE_GL_EXT(GL_ATI_element_array, 1) \ + USE_GL_EXT(GL_ATI_envmap_bumpmap, 1) \ + USE_GL_EXT(GL_ATI_fragment_shader, 1) \ + USE_GL_EXT(GL_ATI_map_object_buffer, 1) \ + USE_GL_EXT(GL_ATI_meminfo, 1) \ + USE_GL_EXT(GL_ATI_pixel_format_float, 1) \ + USE_GL_EXT(GL_ATI_pn_triangles, 1) \ + USE_GL_EXT(GL_ATI_separate_stencil, 1) \ + USE_GL_EXT(GL_ATI_text_fragment_shader, 1) \ + USE_GL_EXT(GL_ATI_texture_env_combine3, 1) \ + USE_GL_EXT(GL_ATI_texture_float, 1) \ + USE_GL_EXT(GL_ATI_texture_mirror_once, 1) \ + USE_GL_EXT(GL_ATI_vertex_array_object, 1) \ + USE_GL_EXT(GL_ATI_vertex_attrib_array_object, 1) \ + USE_GL_EXT(GL_ATI_vertex_streams, 1) \ + USE_GL_EXT(GL_EXT_422_pixels, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_array, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_external_wrap_modes, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_storage, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_storage_compression, 1) \ + USE_GL_EXT(GL_EXT_EGL_sync, 1) \ + USE_GL_EXT(GL_EXT_YUV_target, 1) \ + USE_GL_EXT(GL_EXT_abgr, 1) \ + USE_GL_EXT(GL_EXT_bgra, 1) \ + USE_GL_EXT(GL_EXT_bindable_uniform, 1) \ + USE_GL_EXT(GL_EXT_blend_color, 1) \ + USE_GL_EXT(GL_EXT_blend_equation_separate, 1) \ + USE_GL_EXT(GL_EXT_blend_func_separate, 1) \ + USE_GL_EXT(GL_EXT_blend_logic_op, 1) \ + USE_GL_EXT(GL_EXT_blend_minmax, 1) \ + USE_GL_EXT(GL_EXT_blend_subtract, 1) \ + USE_GL_EXT(GL_EXT_clip_cull_distance, 1) \ + USE_GL_EXT(GL_EXT_clip_volume_hint, 1) \ + USE_GL_EXT(GL_EXT_cmyka, 1) \ + USE_GL_EXT(GL_EXT_color_buffer_float, 1) \ + USE_GL_EXT(GL_EXT_color_buffer_half_float, 1) \ + USE_GL_EXT(GL_EXT_color_subtable, 1) \ + USE_GL_EXT(GL_EXT_compiled_vertex_array, 1) \ + USE_GL_EXT(GL_EXT_compressed_ETC1_RGB8_sub_texture, 1) \ + USE_GL_EXT(GL_EXT_conservative_depth, 1) \ + USE_GL_EXT(GL_EXT_convolution, 1) \ + USE_GL_EXT(GL_EXT_coordinate_frame, 1) \ + USE_GL_EXT(GL_EXT_copy_buffer, 1) \ + USE_GL_EXT(GL_EXT_copy_texture, 1) \ + USE_GL_EXT(GL_EXT_cull_vertex, 1) \ + USE_GL_EXT(GL_EXT_debug_label, 1) \ + USE_GL_EXT(GL_EXT_debug_marker, 1) \ + USE_GL_EXT(GL_EXT_depth_bounds_test, 1) \ + USE_GL_EXT(GL_EXT_depth_clamp, 1) \ + USE_GL_EXT(GL_EXT_direct_state_access, 1) \ + USE_GL_EXT(GL_EXT_draw_buffers2, 1) \ + USE_GL_EXT(GL_EXT_draw_instanced, 1) \ + USE_GL_EXT(GL_EXT_draw_range_elements, 1) \ + USE_GL_EXT(GL_EXT_external_buffer, 1) \ + USE_GL_EXT(GL_EXT_float_blend, 1) \ + USE_GL_EXT(GL_EXT_fog_coord, 1) \ + USE_GL_EXT(GL_EXT_frag_depth, 1) \ + USE_GL_EXT(GL_EXT_fragment_lighting, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate_attachment, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate_primitive, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_blit, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_blit_layers, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_multisample, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_multisample_blit_scaled, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_object, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_sRGB, 1) \ + USE_GL_EXT(GL_EXT_geometry_point_size, 1) \ + USE_GL_EXT(GL_EXT_geometry_shader4, 1) \ + USE_GL_EXT(GL_EXT_gpu_program_parameters, 1) \ + USE_GL_EXT(GL_EXT_gpu_shader4, 1) \ + USE_GL_EXT(GL_EXT_gpu_shader5, 1) \ + USE_GL_EXT(GL_EXT_histogram, 1) \ + USE_GL_EXT(GL_EXT_index_array_formats, 1) \ + USE_GL_EXT(GL_EXT_index_func, 1) \ + USE_GL_EXT(GL_EXT_index_material, 1) \ + USE_GL_EXT(GL_EXT_index_texture, 1) \ + USE_GL_EXT(GL_EXT_light_texture, 1) \ + USE_GL_EXT(GL_EXT_memory_object, 1) \ + USE_GL_EXT(GL_EXT_memory_object_fd, 0) \ + USE_GL_EXT(GL_EXT_memory_object_win32, 1) \ + USE_GL_EXT(GL_EXT_mesh_shader, 1) \ + USE_GL_EXT(GL_EXT_misc_attribute, 1) \ + USE_GL_EXT(GL_EXT_multi_draw_arrays, 1) \ + USE_GL_EXT(GL_EXT_multisample, 1) \ + USE_GL_EXT(GL_EXT_multisample_compatibility, 1) \ + USE_GL_EXT(GL_EXT_multisampled_compatibility, 1) \ + USE_GL_EXT(GL_EXT_multisampled_render_to_texture2, 1) \ + USE_GL_EXT(GL_EXT_multiview_tessellation_geometry_shader, 1) \ + USE_GL_EXT(GL_EXT_multiview_texture_multisample, 1) \ + USE_GL_EXT(GL_EXT_multiview_timer_query, 1) \ + USE_GL_EXT(GL_EXT_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_EXT_packed_float, 1) \ + USE_GL_EXT(GL_EXT_packed_pixels, 1) \ + USE_GL_EXT(GL_EXT_paletted_texture, 1) \ + USE_GL_EXT(GL_EXT_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_EXT_pixel_transform, 1) \ + USE_GL_EXT(GL_EXT_pixel_transform_color_table, 1) \ + USE_GL_EXT(GL_EXT_point_parameters, 1) \ + USE_GL_EXT(GL_EXT_polygon_offset, 1) \ + USE_GL_EXT(GL_EXT_polygon_offset_clamp, 1) \ + USE_GL_EXT(GL_EXT_post_depth_coverage, 1) \ + USE_GL_EXT(GL_EXT_protected_textures, 1) \ + USE_GL_EXT(GL_EXT_provoking_vertex, 1) \ + USE_GL_EXT(GL_EXT_pvrtc_sRGB, 1) \ + USE_GL_EXT(GL_EXT_raster_multisample, 1) \ + USE_GL_EXT(GL_EXT_read_format_bgra, 1) \ + USE_GL_EXT(GL_EXT_render_snorm, 1) \ + USE_GL_EXT(GL_EXT_rescale_normal, 1) \ + USE_GL_EXT(GL_EXT_sRGB, 1) \ + USE_GL_EXT(GL_EXT_sRGB_write_control, 1) \ + USE_GL_EXT(GL_EXT_scene_marker, 1) \ + USE_GL_EXT(GL_EXT_secondary_color, 1) \ + USE_GL_EXT(GL_EXT_semaphore, 1) \ + USE_GL_EXT(GL_EXT_semaphore_fd, 0) \ + USE_GL_EXT(GL_EXT_semaphore_win32, 1) \ + USE_GL_EXT(GL_EXT_separate_depth_stencil, 1) \ + USE_GL_EXT(GL_EXT_separate_shader_objects, 1) \ + USE_GL_EXT(GL_EXT_separate_specular_color, 1) \ + USE_GL_EXT(GL_EXT_shader_clock, 1) \ + USE_GL_EXT(GL_EXT_shader_framebuffer_fetch, 1) \ + USE_GL_EXT(GL_EXT_shader_framebuffer_fetch_non_coherent, 1) \ + USE_GL_EXT(GL_EXT_shader_group_vote, 1) \ + USE_GL_EXT(GL_EXT_shader_image_load_formatted, 1) \ + USE_GL_EXT(GL_EXT_shader_image_load_store, 1) \ + USE_GL_EXT(GL_EXT_shader_implicit_conversions, 1) \ + USE_GL_EXT(GL_EXT_shader_integer_mix, 1) \ + USE_GL_EXT(GL_EXT_shader_io_blocks, 1) \ + USE_GL_EXT(GL_EXT_shader_non_constant_global_initializers, 1) \ + USE_GL_EXT(GL_EXT_shader_pixel_local_storage, 1) \ + USE_GL_EXT(GL_EXT_shader_realtime_clock, 1) \ + USE_GL_EXT(GL_EXT_shader_samples_identical, 1) \ + USE_GL_EXT(GL_EXT_shader_texture_lod, 1) \ + USE_GL_EXT(GL_EXT_shader_texture_samples, 1) \ + USE_GL_EXT(GL_EXT_shadow_funcs, 1) \ + USE_GL_EXT(GL_EXT_shadow_samplers, 1) \ + USE_GL_EXT(GL_EXT_shared_texture_palette, 1) \ + USE_GL_EXT(GL_EXT_sparse_texture2, 1) \ + USE_GL_EXT(GL_EXT_stencil_clear_tag, 1) \ + USE_GL_EXT(GL_EXT_stencil_two_side, 1) \ + USE_GL_EXT(GL_EXT_stencil_wrap, 1) \ + USE_GL_EXT(GL_EXT_subtexture, 1) \ + USE_GL_EXT(GL_EXT_swap_control, 1) \ + USE_GL_EXT(GL_EXT_tessellation_point_size, 1) \ + USE_GL_EXT(GL_EXT_texgen_reflection, 1) \ + USE_GL_EXT(GL_EXT_texture, 1) \ + USE_GL_EXT(GL_EXT_texture3D, 1) \ + USE_GL_EXT(GL_EXT_texture_array, 1) \ + USE_GL_EXT(GL_EXT_texture_buffer_object, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode_rgb9e5, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_bptc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_dxt1, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_latc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_rgtc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_s3tc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_s3tc_srgb, 1) \ + USE_GL_EXT(GL_EXT_texture_cube_map, 1) \ + USE_GL_EXT(GL_EXT_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_EXT_texture_env, 1) \ + USE_GL_EXT(GL_EXT_texture_env_add, 1) \ + USE_GL_EXT(GL_EXT_texture_env_combine, 1) \ + USE_GL_EXT(GL_EXT_texture_env_dot3, 1) \ + USE_GL_EXT(GL_EXT_texture_filter_anisotropic, 1) \ + USE_GL_EXT(GL_EXT_texture_filter_minmax, 1) \ + USE_GL_EXT(GL_EXT_texture_format_BGRA8888, 1) \ + USE_GL_EXT(GL_EXT_texture_format_sRGB_override, 1) \ + USE_GL_EXT(GL_EXT_texture_integer, 1) \ + USE_GL_EXT(GL_EXT_texture_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_lod_bias, 1) \ + USE_GL_EXT(GL_EXT_texture_mirror_clamp, 1) \ + USE_GL_EXT(GL_EXT_texture_mirror_clamp_to_edge, 1) \ + USE_GL_EXT(GL_EXT_texture_norm16, 1) \ + USE_GL_EXT(GL_EXT_texture_object, 1) \ + USE_GL_EXT(GL_EXT_texture_perturb_normal, 1) \ + USE_GL_EXT(GL_EXT_texture_query_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_rg, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_R8, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_RG8, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_decode, 1) \ + USE_GL_EXT(GL_EXT_texture_shadow_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_shared_exponent, 1) \ + USE_GL_EXT(GL_EXT_texture_snorm, 1) \ + USE_GL_EXT(GL_EXT_texture_storage, 1) \ + USE_GL_EXT(GL_EXT_texture_swizzle, 1) \ + USE_GL_EXT(GL_EXT_texture_type_2_10_10_10_REV, 1) \ + USE_GL_EXT(GL_EXT_timer_query, 1) \ + USE_GL_EXT(GL_EXT_transform_feedback, 1) \ + USE_GL_EXT(GL_EXT_unpack_subimage, 1) \ + USE_GL_EXT(GL_EXT_vertex_array, 1) \ + USE_GL_EXT(GL_EXT_vertex_array_bgra, 1) \ + USE_GL_EXT(GL_EXT_vertex_attrib_64bit, 1) \ + USE_GL_EXT(GL_EXT_vertex_shader, 1) \ + USE_GL_EXT(GL_EXT_vertex_weighting, 1) \ + USE_GL_EXT(GL_EXT_win32_keyed_mutex, 1) \ + USE_GL_EXT(GL_EXT_window_rectangles, 1) \ + USE_GL_EXT(GL_EXT_x11_sync_object, 1) \ + USE_GL_EXT(GL_GREMEDY_frame_terminator, 1) \ + USE_GL_EXT(GL_GREMEDY_string_marker, 1) \ + USE_GL_EXT(GL_HP_convolution_border_modes, 1) \ + USE_GL_EXT(GL_HP_image_transform, 1) \ + USE_GL_EXT(GL_HP_occlusion_test, 1) \ + USE_GL_EXT(GL_HP_texture_lighting, 1) \ + USE_GL_EXT(GL_IBM_cull_vertex, 1) \ + USE_GL_EXT(GL_IBM_multimode_draw_arrays, 1) \ + USE_GL_EXT(GL_IBM_rasterpos_clip, 1) \ + USE_GL_EXT(GL_IBM_static_data, 1) \ + USE_GL_EXT(GL_IBM_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_IBM_vertex_array_lists, 1) \ + USE_GL_EXT(GL_IMG_program_binary, 1) \ + USE_GL_EXT(GL_IMG_read_format, 1) \ + USE_GL_EXT(GL_IMG_shader_binary, 1) \ + USE_GL_EXT(GL_IMG_texture_compression_pvrtc, 1) \ + USE_GL_EXT(GL_IMG_texture_compression_pvrtc2, 1) \ + USE_GL_EXT(GL_IMG_texture_env_enhanced_fixed_function, 1) \ + USE_GL_EXT(GL_IMG_texture_filter_cubic, 1) \ + USE_GL_EXT(GL_INGR_blend_func_separate, 1) \ + USE_GL_EXT(GL_INGR_color_clamp, 1) \ + USE_GL_EXT(GL_INGR_interlace_read, 1) \ + USE_GL_EXT(GL_INTEL_blackhole_render, 1) \ + USE_GL_EXT(GL_INTEL_conservative_rasterization, 1) \ + USE_GL_EXT(GL_INTEL_fragment_shader_ordering, 1) \ + USE_GL_EXT(GL_INTEL_framebuffer_CMAA, 1) \ + USE_GL_EXT(GL_INTEL_map_texture, 1) \ + USE_GL_EXT(GL_INTEL_parallel_arrays, 1) \ + USE_GL_EXT(GL_INTEL_performance_query, 1) \ + USE_GL_EXT(GL_INTEL_shader_integer_functions2, 1) \ + USE_GL_EXT(GL_INTEL_texture_scissor, 1) \ + USE_GL_EXT(GL_KHR_blend_equation_advanced, 1) \ + USE_GL_EXT(GL_KHR_blend_equation_advanced_coherent, 1) \ + USE_GL_EXT(GL_KHR_context_flush_control, 1) \ + USE_GL_EXT(GL_KHR_debug, 1) \ + USE_GL_EXT(GL_KHR_no_error, 1) \ + USE_GL_EXT(GL_KHR_parallel_shader_compile, 1) \ + USE_GL_EXT(GL_KHR_robust_buffer_access_behavior, 1) \ + USE_GL_EXT(GL_KHR_robustness, 1) \ + USE_GL_EXT(GL_KHR_shader_subgroup, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_hdr, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_ldr, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_sliced_3d, 1) \ + USE_GL_EXT(GL_KTX_buffer_region, 1) \ + USE_GL_EXT(GL_MESAX_texture_stack, 1) \ + USE_GL_EXT(GL_MESA_bgra, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_flip_x, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_flip_y, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_swap_xy, 1) \ + USE_GL_EXT(GL_MESA_pack_invert, 1) \ + USE_GL_EXT(GL_MESA_program_binary_formats, 1) \ + USE_GL_EXT(GL_MESA_resize_buffers, 1) \ + USE_GL_EXT(GL_MESA_shader_integer_functions, 1) \ + USE_GL_EXT(GL_MESA_texture_const_bandwidth, 1) \ + USE_GL_EXT(GL_MESA_tile_raster_order, 1) \ + USE_GL_EXT(GL_MESA_window_pos, 1) \ + USE_GL_EXT(GL_MESA_ycbcr_texture, 1) \ + USE_GL_EXT(GL_NVX_blend_equation_advanced_multi_draw_buffers, 1) \ + USE_GL_EXT(GL_NVX_conditional_render, 1) \ + USE_GL_EXT(GL_NVX_gpu_memory_info, 1) \ + USE_GL_EXT(GL_NVX_gpu_multicast2, 1) \ + USE_GL_EXT(GL_NVX_linked_gpu_multicast, 1) \ + USE_GL_EXT(GL_NVX_progress_fence, 1) \ + USE_GL_EXT(GL_NV_3dvision_settings, 1) \ + USE_GL_EXT(GL_NV_EGL_stream_consumer_external, 1) \ + USE_GL_EXT(GL_NV_ES1_1_compatibility, 1) \ + USE_GL_EXT(GL_NV_ES3_1_compatibility, 1) \ + USE_GL_EXT(GL_NV_alpha_to_coverage_dither_control, 1) \ + USE_GL_EXT(GL_NV_bgr, 1) \ + USE_GL_EXT(GL_NV_bindless_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_NV_bindless_multi_draw_indirect_count, 1) \ + USE_GL_EXT(GL_NV_bindless_texture, 1) \ + USE_GL_EXT(GL_NV_blend_equation_advanced, 1) \ + USE_GL_EXT(GL_NV_blend_equation_advanced_coherent, 1) \ + USE_GL_EXT(GL_NV_blend_minmax_factor, 1) \ + USE_GL_EXT(GL_NV_blend_square, 1) \ + USE_GL_EXT(GL_NV_clip_space_w_scaling, 1) \ + USE_GL_EXT(GL_NV_command_list, 1) \ + USE_GL_EXT(GL_NV_compute_program5, 1) \ + USE_GL_EXT(GL_NV_compute_shader_derivatives, 1) \ + USE_GL_EXT(GL_NV_conditional_render, 1) \ + USE_GL_EXT(GL_NV_conservative_raster, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_dilate, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_pre_snap, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_pre_snap_triangles, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_underestimation, 1) \ + USE_GL_EXT(GL_NV_copy_depth_to_color, 1) \ + USE_GL_EXT(GL_NV_copy_image, 1) \ + USE_GL_EXT(GL_NV_deep_texture3D, 1) \ + USE_GL_EXT(GL_NV_depth_buffer_float, 1) \ + USE_GL_EXT(GL_NV_depth_clamp, 1) \ + USE_GL_EXT(GL_NV_depth_nonlinear, 1) \ + USE_GL_EXT(GL_NV_draw_texture, 1) \ + USE_GL_EXT(GL_NV_draw_vulkan_image, 1) \ + USE_GL_EXT(GL_NV_evaluators, 1) \ + USE_GL_EXT(GL_NV_explicit_attrib_location, 1) \ + USE_GL_EXT(GL_NV_explicit_multisample, 1) \ + USE_GL_EXT(GL_NV_fbo_color_attachments, 1) \ + USE_GL_EXT(GL_NV_fence, 1) \ + USE_GL_EXT(GL_NV_fill_rectangle, 1) \ + USE_GL_EXT(GL_NV_float_buffer, 1) \ + USE_GL_EXT(GL_NV_fog_distance, 1) \ + USE_GL_EXT(GL_NV_fragment_coverage_to_color, 1) \ + USE_GL_EXT(GL_NV_fragment_program, 1) \ + USE_GL_EXT(GL_NV_fragment_program2, 1) \ + USE_GL_EXT(GL_NV_fragment_program4, 1) \ + USE_GL_EXT(GL_NV_fragment_program_option, 1) \ + USE_GL_EXT(GL_NV_fragment_shader_barycentric, 1) \ + USE_GL_EXT(GL_NV_fragment_shader_interlock, 1) \ + USE_GL_EXT(GL_NV_framebuffer_mixed_samples, 1) \ + USE_GL_EXT(GL_NV_framebuffer_multisample_coverage, 1) \ + USE_GL_EXT(GL_NV_generate_mipmap_sRGB, 1) \ + USE_GL_EXT(GL_NV_geometry_program4, 1) \ + USE_GL_EXT(GL_NV_geometry_shader4, 1) \ + USE_GL_EXT(GL_NV_geometry_shader_passthrough, 1) \ + USE_GL_EXT(GL_NV_gpu_multicast, 1) \ + USE_GL_EXT(GL_NV_gpu_program4, 1) \ + USE_GL_EXT(GL_NV_gpu_program5, 1) \ + USE_GL_EXT(GL_NV_gpu_program5_mem_extended, 1) \ + USE_GL_EXT(GL_NV_gpu_program_fp64, 1) \ + USE_GL_EXT(GL_NV_gpu_shader5, 1) \ + USE_GL_EXT(GL_NV_half_float, 1) \ + USE_GL_EXT(GL_NV_image_formats, 1) \ + USE_GL_EXT(GL_NV_internalformat_sample_query, 1) \ + USE_GL_EXT(GL_NV_light_max_exponent, 1) \ + USE_GL_EXT(GL_NV_memory_attachment, 1) \ + USE_GL_EXT(GL_NV_memory_object_sparse, 1) \ + USE_GL_EXT(GL_NV_mesh_shader, 1) \ + USE_GL_EXT(GL_NV_multisample_coverage, 1) \ + USE_GL_EXT(GL_NV_multisample_filter_hint, 1) \ + USE_GL_EXT(GL_NV_occlusion_query, 1) \ + USE_GL_EXT(GL_NV_pack_subimage, 1) \ + USE_GL_EXT(GL_NV_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_NV_packed_float, 1) \ + USE_GL_EXT(GL_NV_packed_float_linear, 1) \ + USE_GL_EXT(GL_NV_parameter_buffer_object, 1) \ + USE_GL_EXT(GL_NV_parameter_buffer_object2, 1) \ + USE_GL_EXT(GL_NV_path_rendering, 1) \ + USE_GL_EXT(GL_NV_path_rendering_shared_edge, 1) \ + USE_GL_EXT(GL_NV_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_NV_pixel_data_range, 1) \ + USE_GL_EXT(GL_NV_platform_binary, 1) \ + USE_GL_EXT(GL_NV_point_sprite, 1) \ + USE_GL_EXT(GL_NV_present_video, 1) \ + USE_GL_EXT(GL_NV_primitive_restart, 1) \ + USE_GL_EXT(GL_NV_primitive_shading_rate, 1) \ + USE_GL_EXT(GL_NV_query_resource, 1) \ + USE_GL_EXT(GL_NV_query_resource_tag, 1) \ + USE_GL_EXT(GL_NV_read_buffer_front, 1) \ + USE_GL_EXT(GL_NV_read_depth, 1) \ + USE_GL_EXT(GL_NV_read_depth_stencil, 1) \ + USE_GL_EXT(GL_NV_read_stencil, 1) \ + USE_GL_EXT(GL_NV_register_combiners, 1) \ + USE_GL_EXT(GL_NV_register_combiners2, 1) \ + USE_GL_EXT(GL_NV_representative_fragment_test, 1) \ + USE_GL_EXT(GL_NV_robustness_video_memory_purge, 1) \ + USE_GL_EXT(GL_NV_sRGB_formats, 1) \ + USE_GL_EXT(GL_NV_sample_locations, 1) \ + USE_GL_EXT(GL_NV_sample_mask_override_coverage, 1) \ + USE_GL_EXT(GL_NV_scissor_exclusive, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_counters, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_float, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_float64, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_fp16_vector, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_int64, 1) \ + USE_GL_EXT(GL_NV_shader_buffer_load, 1) \ + USE_GL_EXT(GL_NV_shader_buffer_store, 1) \ + USE_GL_EXT(GL_NV_shader_noperspective_interpolation, 1) \ + USE_GL_EXT(GL_NV_shader_storage_buffer_object, 1) \ + USE_GL_EXT(GL_NV_shader_subgroup_partitioned, 1) \ + USE_GL_EXT(GL_NV_shader_texture_footprint, 1) \ + USE_GL_EXT(GL_NV_shader_thread_group, 1) \ + USE_GL_EXT(GL_NV_shader_thread_shuffle, 1) \ + USE_GL_EXT(GL_NV_shading_rate_image, 1) \ + USE_GL_EXT(GL_NV_shadow_samplers_array, 1) \ + USE_GL_EXT(GL_NV_shadow_samplers_cube, 1) \ + USE_GL_EXT(GL_NV_stereo_view_rendering, 1) \ + USE_GL_EXT(GL_NV_tessellation_program5, 1) \ + USE_GL_EXT(GL_NV_texgen_emboss, 1) \ + USE_GL_EXT(GL_NV_texgen_reflection, 1) \ + USE_GL_EXT(GL_NV_texture_array, 1) \ + USE_GL_EXT(GL_NV_texture_barrier, 1) \ + USE_GL_EXT(GL_NV_texture_border_clamp, 1) \ + USE_GL_EXT(GL_NV_texture_compression_latc, 1) \ + USE_GL_EXT(GL_NV_texture_compression_s3tc, 1) \ + USE_GL_EXT(GL_NV_texture_compression_s3tc_update, 1) \ + USE_GL_EXT(GL_NV_texture_compression_vtc, 1) \ + USE_GL_EXT(GL_NV_texture_env_combine4, 1) \ + USE_GL_EXT(GL_NV_texture_expand_normal, 1) \ + USE_GL_EXT(GL_NV_texture_multisample, 1) \ + USE_GL_EXT(GL_NV_texture_npot_2D_mipmap, 1) \ + USE_GL_EXT(GL_NV_texture_rectangle, 1) \ + USE_GL_EXT(GL_NV_texture_rectangle_compressed, 1) \ + USE_GL_EXT(GL_NV_texture_shader, 1) \ + USE_GL_EXT(GL_NV_texture_shader2, 1) \ + USE_GL_EXT(GL_NV_texture_shader3, 1) \ + USE_GL_EXT(GL_NV_timeline_semaphore, 1) \ + USE_GL_EXT(GL_NV_transform_feedback, 1) \ + USE_GL_EXT(GL_NV_transform_feedback2, 1) \ + USE_GL_EXT(GL_NV_uniform_buffer_std430_layout, 1) \ + USE_GL_EXT(GL_NV_uniform_buffer_unified_memory, 1) \ + USE_GL_EXT(GL_NV_vdpau_interop, 1) \ + USE_GL_EXT(GL_NV_vdpau_interop2, 1) \ + USE_GL_EXT(GL_NV_vertex_array_range, 1) \ + USE_GL_EXT(GL_NV_vertex_array_range2, 1) \ + USE_GL_EXT(GL_NV_vertex_attrib_integer_64bit, 1) \ + USE_GL_EXT(GL_NV_vertex_buffer_unified_memory, 1) \ + USE_GL_EXT(GL_NV_vertex_program, 1) \ + USE_GL_EXT(GL_NV_vertex_program1_1, 1) \ + USE_GL_EXT(GL_NV_vertex_program2, 1) \ + USE_GL_EXT(GL_NV_vertex_program2_option, 1) \ + USE_GL_EXT(GL_NV_vertex_program3, 1) \ + USE_GL_EXT(GL_NV_vertex_program4, 1) \ + USE_GL_EXT(GL_NV_video_capture, 1) \ + USE_GL_EXT(GL_NV_viewport_array2, 1) \ + USE_GL_EXT(GL_NV_viewport_swizzle, 1) \ + USE_GL_EXT(GL_OES_EGL_image_external_essl3, 1) \ + USE_GL_EXT(GL_OES_EGL_sync, 1) \ + USE_GL_EXT(GL_OES_byte_coordinates, 1) \ + USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_sub_texture, 1) \ + USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_texture, 1) \ + USE_GL_EXT(GL_OES_compressed_paletted_texture, 1) \ + USE_GL_EXT(GL_OES_depth24, 1) \ + USE_GL_EXT(GL_OES_depth32, 1) \ + USE_GL_EXT(GL_OES_depth_texture, 1) \ + USE_GL_EXT(GL_OES_depth_texture_cube_map, 1) \ + USE_GL_EXT(GL_OES_element_index_uint, 1) \ + USE_GL_EXT(GL_OES_extended_matrix_palette, 1) \ + USE_GL_EXT(GL_OES_fbo_render_mipmap, 1) \ + USE_GL_EXT(GL_OES_fixed_point, 1) \ + USE_GL_EXT(GL_OES_fragment_precision_high, 1) \ + USE_GL_EXT(GL_OES_geometry_point_size, 1) \ + USE_GL_EXT(GL_OES_gpu_shader5, 1) \ + USE_GL_EXT(GL_OES_matrix_get, 1) \ + USE_GL_EXT(GL_OES_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_OES_point_sprite, 1) \ + USE_GL_EXT(GL_OES_query_matrix, 1) \ + USE_GL_EXT(GL_OES_read_format, 1) \ + USE_GL_EXT(GL_OES_required_internalformat, 1) \ + USE_GL_EXT(GL_OES_rgb8_rgba8, 1) \ + USE_GL_EXT(GL_OES_sample_variables, 1) \ + USE_GL_EXT(GL_OES_shader_image_atomic, 1) \ + USE_GL_EXT(GL_OES_shader_io_blocks, 1) \ + USE_GL_EXT(GL_OES_shader_multisample_interpolation, 1) \ + USE_GL_EXT(GL_OES_single_precision, 1) \ + USE_GL_EXT(GL_OES_standard_derivatives, 1) \ + USE_GL_EXT(GL_OES_stencil1, 1) \ + USE_GL_EXT(GL_OES_stencil4, 1) \ + USE_GL_EXT(GL_OES_stencil8, 1) \ + USE_GL_EXT(GL_OES_stencil_wrap, 1) \ + USE_GL_EXT(GL_OES_surfaceless_context, 1) \ + USE_GL_EXT(GL_OES_tessellation_point_size, 1) \ + USE_GL_EXT(GL_OES_texture_compression_astc, 1) \ + USE_GL_EXT(GL_OES_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_OES_texture_env_crossbar, 1) \ + USE_GL_EXT(GL_OES_texture_float, 1) \ + USE_GL_EXT(GL_OES_texture_float_linear, 1) \ + USE_GL_EXT(GL_OES_texture_half_float, 1) \ + USE_GL_EXT(GL_OES_texture_half_float_linear, 1) \ + USE_GL_EXT(GL_OES_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_OES_texture_npot, 1) \ + USE_GL_EXT(GL_OES_texture_stencil8, 1) \ + USE_GL_EXT(GL_OES_vertex_half_float, 1) \ + USE_GL_EXT(GL_OES_vertex_type_10_10_10_2, 1) \ + USE_GL_EXT(GL_OML_interlace, 1) \ + USE_GL_EXT(GL_OML_resample, 1) \ + USE_GL_EXT(GL_OML_subsample, 1) \ + USE_GL_EXT(GL_OVR_multiview, 1) \ + USE_GL_EXT(GL_OVR_multiview2, 1) \ + USE_GL_EXT(GL_PGI_misc_hints, 1) \ + USE_GL_EXT(GL_PGI_vertex_hints, 1) \ + USE_GL_EXT(GL_REND_screen_coordinates, 1) \ + USE_GL_EXT(GL_S3_s3tc, 1) \ + USE_GL_EXT(GL_SGIS_detail_texture, 1) \ + USE_GL_EXT(GL_SGIS_fog_function, 1) \ + USE_GL_EXT(GL_SGIS_generate_mipmap, 1) \ + USE_GL_EXT(GL_SGIS_multisample, 1) \ + USE_GL_EXT(GL_SGIS_multitexture, 1) \ + USE_GL_EXT(GL_SGIS_pixel_texture, 1) \ + USE_GL_EXT(GL_SGIS_point_line_texgen, 1) \ + USE_GL_EXT(GL_SGIS_point_parameters, 1) \ + USE_GL_EXT(GL_SGIS_sharpen_texture, 1) \ + USE_GL_EXT(GL_SGIS_texture4D, 1) \ + USE_GL_EXT(GL_SGIS_texture_border_clamp, 1) \ + USE_GL_EXT(GL_SGIS_texture_color_mask, 1) \ + USE_GL_EXT(GL_SGIS_texture_edge_clamp, 1) \ + USE_GL_EXT(GL_SGIS_texture_filter4, 1) \ + USE_GL_EXT(GL_SGIS_texture_lod, 1) \ + USE_GL_EXT(GL_SGIS_texture_select, 1) \ + USE_GL_EXT(GL_SGIX_async, 1) \ + USE_GL_EXT(GL_SGIX_async_histogram, 1) \ + USE_GL_EXT(GL_SGIX_async_pixel, 1) \ + USE_GL_EXT(GL_SGIX_blend_alpha_minmax, 1) \ + USE_GL_EXT(GL_SGIX_calligraphic_fragment, 1) \ + USE_GL_EXT(GL_SGIX_clipmap, 1) \ + USE_GL_EXT(GL_SGIX_convolution_accuracy, 1) \ + USE_GL_EXT(GL_SGIX_depth_pass_instrument, 1) \ + USE_GL_EXT(GL_SGIX_depth_texture, 1) \ + USE_GL_EXT(GL_SGIX_flush_raster, 1) \ + USE_GL_EXT(GL_SGIX_fog_offset, 1) \ + USE_GL_EXT(GL_SGIX_fragment_lighting, 1) \ + USE_GL_EXT(GL_SGIX_framezoom, 1) \ + USE_GL_EXT(GL_SGIX_igloo_interface, 1) \ + USE_GL_EXT(GL_SGIX_instruments, 1) \ + USE_GL_EXT(GL_SGIX_interlace, 1) \ + USE_GL_EXT(GL_SGIX_ir_instrument1, 1) \ + USE_GL_EXT(GL_SGIX_list_priority, 1) \ + USE_GL_EXT(GL_SGIX_pixel_texture, 1) \ + USE_GL_EXT(GL_SGIX_pixel_texture_bits, 1) \ + USE_GL_EXT(GL_SGIX_pixel_tiles, 1) \ + USE_GL_EXT(GL_SGIX_polynomial_ffd, 1) \ + USE_GL_EXT(GL_SGIX_reference_plane, 1) \ + USE_GL_EXT(GL_SGIX_resample, 1) \ + USE_GL_EXT(GL_SGIX_scalebias_hint, 1) \ + USE_GL_EXT(GL_SGIX_shadow, 1) \ + USE_GL_EXT(GL_SGIX_shadow_ambient, 1) \ + USE_GL_EXT(GL_SGIX_sprite, 1) \ + USE_GL_EXT(GL_SGIX_subsample, 1) \ + USE_GL_EXT(GL_SGIX_tag_sample_buffer, 1) \ + USE_GL_EXT(GL_SGIX_texture_add_env, 1) \ + USE_GL_EXT(GL_SGIX_texture_coordinate_clamp, 1) \ + USE_GL_EXT(GL_SGIX_texture_lod_bias, 1) \ + USE_GL_EXT(GL_SGIX_texture_multi_buffer, 1) \ + USE_GL_EXT(GL_SGIX_texture_range, 1) \ + USE_GL_EXT(GL_SGIX_texture_scale_bias, 1) \ + USE_GL_EXT(GL_SGIX_vertex_preclip, 1) \ + USE_GL_EXT(GL_SGIX_vertex_preclip_hint, 1) \ + USE_GL_EXT(GL_SGIX_ycrcb, 1) \ + USE_GL_EXT(GL_SGIX_ycrcb_subsample, 1) \ + USE_GL_EXT(GL_SGIX_ycrcba, 1) \ + USE_GL_EXT(GL_SGI_color_matrix, 1) \ + USE_GL_EXT(GL_SGI_color_table, 1) \ + USE_GL_EXT(GL_SGI_texture_color_table, 1) \ + USE_GL_EXT(GL_SUNX_constant_data, 1) \ + USE_GL_EXT(GL_SUN_convolution_border_modes, 1) \ + USE_GL_EXT(GL_SUN_global_alpha, 1) \ + USE_GL_EXT(GL_SUN_mesh_array, 1) \ + USE_GL_EXT(GL_SUN_multi_draw_arrays, 1) \ + USE_GL_EXT(GL_SUN_slice_accum, 1) \ + USE_GL_EXT(GL_SUN_triangle_list, 1) \ + USE_GL_EXT(GL_SUN_vertex, 1) \ + USE_GL_EXT(GL_WIN_phong_shading, 1) \ + USE_GL_EXT(GL_WIN_specular_fog, 1) #define ALL_GL_FUNCS \ USE_GL_FUNC(glAccum) \ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 4 +- dlls/opengl32/tests/opengl.c | 17 +++++++- dlls/opengl32/unix_thunks.c | 52 ---------------------- dlls/opengl32/unix_wgl.c | 10 +++++ dlls/opengl32/unixlib.h | 15 ------- dlls/opengl32/wgl.c | 79 ++++++++++++++++++++-------------- dlls/win32u/opengl.c | 81 +++++++++++++---------------------- dlls/wineandroid.drv/opengl.c | 6 +-- dlls/winemac.drv/opengl.c | 33 +++++--------- dlls/winewayland.drv/opengl.c | 2 +- dlls/winex11.drv/opengl.c | 39 ++++++----------- include/wine/opengl_driver.h | 8 +++- 12 files changed, 139 insertions(+), 207 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index d424402067e..1a5d788c89a 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -154,6 +154,8 @@ my %manual_win_functions = "wglGetCurrentDC" => 1, "wglGetCurrentReadDCARB" => 1, "wglGetDefaultProcAddress" => 1, + "wglGetExtensionsStringARB" => 1, + "wglGetExtensionsStringEXT" => 1, "wglGetLayerPaletteEntries" => 1, "wglRealizeLayerPalette" => 1, "wglSetLayerPaletteEntries" => 1, @@ -177,8 +179,6 @@ my %manual_win_thunks = "wglCreatePbufferARB" => 1, "wglDeleteContext" => 1, "wglDestroyPbufferARB" => 1, - "wglGetExtensionsStringARB" => 1, - "wglGetExtensionsStringEXT" => 1, "wglGetPixelFormat" => 1, "wglGetPixelFormatAttribfvARB" => 1, "wglGetPixelFormatAttribivARB" => 1, diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c index e0fc1ae1426..107dfc3f9ff 100644 --- a/dlls/opengl32/tests/opengl.c +++ b/dlls/opengl32/tests/opengl.c @@ -66,6 +66,7 @@ static HGLRC (WINAPI *pwglCreateContextAttribsARB)(HDC hDC, HGLRC hShareContext, /* WGL_ARB_extensions_string */ static const char* (WINAPI *pwglGetExtensionsStringARB)(HDC); +static const char* (WINAPI *pwglGetExtensionsStringEXT)(void); /* WGL_ARB_make_current_read */ static BOOL (WINAPI *pwglMakeContextCurrentARB)(HDC hdraw, HDC hread, HGLRC hglrc); @@ -153,6 +154,7 @@ static void init_functions(void) /* WGL_ARB_extensions_string */ GET_PROC(wglGetExtensionsStringARB) + GET_PROC(wglGetExtensionsStringEXT) /* WGL_ARB_make_current_read */ GET_PROC(wglMakeContextCurrentARB); @@ -1653,6 +1655,11 @@ static void test_bitmap_rendering( BOOL use_dib ) ret = wglMakeCurrent( hdc, hglrc ); ok( ret, "wglMakeCurrent failed, error %lu\n", GetLastError() ); + pwglGetExtensionsStringEXT = (void *)wglGetProcAddress( "wglGetExtensionsStringEXT" ); + todo_wine ok(!pwglGetExtensionsStringEXT, "got wglGetExtensionsStringEXT %p\n", pwglGetExtensionsStringEXT); + pwglGetExtensionsStringARB = (void *)wglGetProcAddress( "wglGetExtensionsStringARB" ); + todo_wine ok(!pwglGetExtensionsStringARB, "got wglGetExtensionsStringARB %p\n", pwglGetExtensionsStringARB); + glGetIntegerv( GL_READ_BUFFER, &object ); ok( object == GL_FRONT, "got %u\n", object ); glGetIntegerv( GL_DRAW_BUFFER, &object ); @@ -3839,6 +3846,7 @@ START_TEST(opengl) HMODULE gdi32 = GetModuleHandleA("gdi32.dll"); HDC hdc; int iPixelFormat, res; + const char *tmp; HGLRC hglrc; DWORD error; @@ -3927,7 +3935,14 @@ START_TEST(opengl) test_memory_map(hdc); test_gl_error(hdc); - wgl_extensions = pwglGetExtensionsStringARB(hdc); + tmp = pwglGetExtensionsStringEXT(); + ok(tmp && *tmp, "got wgl_extensions %s\n", debugstr_a(tmp)); + wgl_extensions = tmp; + + tmp = pwglGetExtensionsStringARB(hdc); + ok(tmp && *tmp, "got wgl_extensions %s\n", debugstr_a(tmp)); + ok(!strcmp(tmp, wgl_extensions), "got wgl_extensions %s\n", debugstr_a(tmp)); + if(wgl_extensions == NULL) skip("Skipping opengl32 tests because this OpenGL implementation doesn't support WGL extensions!\n"); if(strstr(wgl_extensions, "WGL_ARB_create_context")) diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index 883b30cf3ea..ce8520c60e5 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -30408,24 +30408,6 @@ static NTSTATUS ext_wglFreeMemoryNV( void *args ) return STATUS_SUCCESS; } -static NTSTATUS ext_wglGetExtensionsStringARB( void *args ) -{ - struct wglGetExtensionsStringARB_params *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( params->hdc ); - if (!funcs || !funcs->p_wglGetExtensionsStringARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetExtensionsStringARB( params->hdc ); - return STATUS_SUCCESS; -} - -static NTSTATUS ext_wglGetExtensionsStringEXT( void *args ) -{ - struct wglGetExtensionsStringEXT_params *params = args; - const struct opengl_funcs *funcs = params->teb->glTable; - if (!funcs->p_wglGetExtensionsStringEXT) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetExtensionsStringEXT(); - return STATUS_SUCCESS; -} - static NTSTATUS ext_wglGetPbufferDCARB( void *args ) { struct wglGetPbufferDCARB_params *params = args; @@ -33650,8 +33632,6 @@ const unixlib_entry_t __wine_unix_call_funcs[] = ext_wglCreatePbufferARB, ext_wglDestroyPbufferARB, ext_wglFreeMemoryNV, - ext_wglGetExtensionsStringARB, - ext_wglGetExtensionsStringEXT, ext_wglGetPbufferDCARB, ext_wglGetPixelFormatAttribfvARB, ext_wglGetPixelFormatAttribivARB, @@ -86722,36 +86702,6 @@ static NTSTATUS wow64_ext_wglFreeMemoryNV( void *args ) return STATUS_SUCCESS; } -static NTSTATUS wow64_ext_wglGetExtensionsStringARB( void *args ) -{ - struct - { - PTR32 teb; - PTR32 hdc; - PTR32 ret; - } *params = args; - const char *ret; - const struct opengl_funcs *funcs = get_dc_funcs( ULongToPtr(params->hdc) ); - if (!funcs || !funcs->p_wglGetExtensionsStringARB) return STATUS_NOT_IMPLEMENTED; - ret = funcs->p_wglGetExtensionsStringARB( ULongToPtr(params->hdc) ); - return return_wow64_string( ret, ¶ms->ret ); -} - -static NTSTATUS wow64_ext_wglGetExtensionsStringEXT( void *args ) -{ - struct - { - PTR32 teb; - PTR32 ret; - } *params = args; - TEB *teb = get_teb64( params->teb ); - const char *ret; - const struct opengl_funcs *funcs = teb->glTable; - if (!funcs->p_wglGetExtensionsStringEXT) return STATUS_NOT_IMPLEMENTED; - ret = funcs->p_wglGetExtensionsStringEXT(); - return return_wow64_string( ret, ¶ms->ret ); -} - static NTSTATUS wow64_ext_wglGetPbufferDCARB( void *args ) { struct @@ -90082,8 +90032,6 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_ext_wglCreatePbufferARB, wow64_ext_wglDestroyPbufferARB, wow64_ext_wglFreeMemoryNV, - wow64_ext_wglGetExtensionsStringARB, - wow64_ext_wglGetExtensionsStringEXT, wow64_ext_wglGetPbufferDCARB, wow64_ext_wglGetPixelFormatAttribfvARB, wow64_ext_wglGetPixelFormatAttribivARB, diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 11c0e2d5152..f38c78d3ef6 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -1244,6 +1244,7 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD { static pthread_once_t once = PTHREAD_ONCE_INIT; + struct opengl_client_context *client = opengl_client_context_from_client( ctx->base.client_context ); DWORD tid = HandleToULong(teb->ClientId.UniqueThread); size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; const char *version, *rest = "", **extensions; @@ -1266,6 +1267,8 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD if (!ctx->major_version) ctx->major_version = 1; TRACE( "context %p version %d.%d\n", ctx, ctx->major_version, ctx->minor_version ); + funcs->p_init_extensions( ctx->base.extensions ); + if (funcs->p_glImportMemoryWin32HandleEXT) size++; if (funcs->p_glImportSemaphoreWin32HandleEXT) size++; @@ -1310,6 +1313,13 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD } } + for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) + { + if (!enabled_extensions[i] || !all_extensions[i].exposed) client->extensions[i] = FALSE; + else if (ctx->base.extensions[i]) client->extensions[i] = TRUE; + /* keep any other extension that has been enabled on the PE side directly */ + } + if (!disabled && !(disabled = query_opengl_option( "DisabledExtensions" ))) disabled = ""; if (!enabled && !(enabled = query_opengl_option( "EnabledExtensions" ))) enabled = ""; if (*enabled || *disabled) diff --git a/dlls/opengl32/unixlib.h b/dlls/opengl32/unixlib.h index b370bf3d05e..a41771ea362 100644 --- a/dlls/opengl32/unixlib.h +++ b/dlls/opengl32/unixlib.h @@ -25734,19 +25734,6 @@ struct wglFreeMemoryNV_params void *pointer; }; -struct wglGetExtensionsStringARB_params -{ - TEB *teb; - HDC hdc; - const char *ret; -}; - -struct wglGetExtensionsStringEXT_params -{ - TEB *teb; - const char *ret; -}; - struct wglGetPbufferDCARB_params { TEB *teb; @@ -28976,8 +28963,6 @@ enum unix_funcs unix_wglCreatePbufferARB, unix_wglDestroyPbufferARB, unix_wglFreeMemoryNV, - unix_wglGetExtensionsStringARB, - unix_wglGetExtensionsStringEXT, unix_wglGetPbufferDCARB, unix_wglGetPixelFormatAttribfvARB, unix_wglGetPixelFormatAttribivARB, diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c index 45b9761b6f9..d550304fa74 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c @@ -57,6 +57,18 @@ static CRITICAL_SECTION_DEBUG wgl_cs_debug = { 0, 0, { (DWORD_PTR)(__FILE__ ": wgl_cs") } }; static CRITICAL_SECTION wgl_cs = { &wgl_cs_debug, -1, 0, 0, 0, 0 }; +static char *wgl_extensions; + +struct extension_entry +{ + const char *name; + size_t len; + BOOLEAN exposed; +}; + +#define USE_GL_EXT(x, e) [x] = { .name = #x, .len = sizeof(#x) - 1, .exposed = e }, +static const struct extension_entry all_extensions[] = { ALL_GL_EXTS ALL_WGL_EXTS }; +#undef USE_GL_EXT #ifndef _WIN64 @@ -98,6 +110,29 @@ static void cleanup_wow64_strings(void) #endif +static void init_wgl_extensions( const BOOLEAN extensions[GL_EXTENSION_COUNT] ) +{ + UINT pos = 0, len = 0; + char *str; + + for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) + { + if (strncmp( all_extensions[i].name, "WGL_", 4 )) continue; + if (extensions[i]) len += all_extensions[i].len + 1; + } + + if (!(str = malloc( len + 1 ))) return; + + for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) + { + if (strncmp( all_extensions[i].name, "WGL_", 4 )) continue; + if (extensions[i]) pos += sprintf( str + pos, "%s ", all_extensions[i].name ); + } + str[pos - 1] = 0; + + wgl_extensions = str; +} + struct handle_entry { UINT handle; @@ -1334,14 +1369,24 @@ int WINAPI wglGetLayerPaletteEntries( HDC hdc, int plane, int start, int count, PROC WINAPI wglGetProcAddress( LPCSTR name ) { struct wglGetProcAddress_params args = { .teb = NtCurrentTeb(), .lpszProc = name }; + struct context *ctx; const void *proc; NTSTATUS status; if (!name) return NULL; + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return NULL; + if ((status = UNIX_CALL( wglGetProcAddress, &args ))) WARN( "wglGetProcAddress %s returned %#lx\n", debugstr_a(name), status ); if (args.ret == (void *)-1) return NULL; + if (!strncmp( name, "wglGetExtensionsString", 22 )) + { + EnterCriticalSection( &wgl_cs ); + if (!wgl_extensions) init_wgl_extensions( ctx->base.extensions ); + LeaveCriticalSection( &wgl_cs ); + } + proc = extension_procs[(UINT_PTR)args.ret]; TRACE( "returning %s -> %p\n", name, proc ); return proc; @@ -2043,44 +2088,14 @@ const GLubyte * WINAPI glGetString( GLenum name ) const char * WINAPI wglGetExtensionsStringARB( HDC hdc ) { - struct wglGetExtensionsStringARB_params args = { .teb = NtCurrentTeb(), .hdc = hdc }; - NTSTATUS status; -#ifndef _WIN64 - char *wow64_str = NULL; -#endif - TRACE( "hdc %p\n", hdc ); - -#ifndef _WIN64 - if (UNIX_CALL( wglGetExtensionsStringARB, &args ) == STATUS_BUFFER_TOO_SMALL) args.ret = wow64_str = malloc( (size_t)args.ret ); -#endif - if ((status = UNIX_CALL( wglGetExtensionsStringARB, &args ))) WARN( "wglGetExtensionsStringARB returned %#lx\n", status ); -#ifndef _WIN64 - if (args.ret != wow64_str) free( wow64_str ); - else if (args.ret) append_wow64_string( wow64_str ); -#endif - return args.ret; + return wgl_extensions; } const char * WINAPI wglGetExtensionsStringEXT(void) { - struct wglGetExtensionsStringEXT_params args = { .teb = NtCurrentTeb() }; - NTSTATUS status; -#ifndef _WIN64 - char *wow64_str = NULL; -#endif - TRACE( "\n" ); - -#ifndef _WIN64 - if (UNIX_CALL( wglGetExtensionsStringEXT, &args ) == STATUS_BUFFER_TOO_SMALL) args.ret = wow64_str = malloc( (size_t)args.ret ); -#endif - if ((status = UNIX_CALL( wglGetExtensionsStringEXT, &args ))) WARN( "wglGetExtensionsStringEXT returned %#lx\n", status ); -#ifndef _WIN64 - if (args.ret != wow64_str) free( wow64_str ); - else if (args.ret) append_wow64_string( wow64_str ); -#endif - return args.ret; + return wgl_extensions; } const GLchar * WINAPI wglQueryCurrentRendererStringWINE( GLenum attribute ) diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index 486c3f45c2a..e2292f2aadd 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -64,9 +64,9 @@ static struct list devices_egl = LIST_INIT( devices_egl ); static struct egl_platform display_egl; static struct opengl_funcs display_funcs; +static BOOLEAN global_extensions[GL_EXTENSION_COUNT]; static struct wgl_pixel_format *pixel_formats; static UINT formats_count, onscreen_count; -static char wgl_extensions[4096]; static BOOL has_extension( const char *list, const char *ext ) { @@ -99,17 +99,6 @@ static void dump_extensions( const char *list ) TRACE( "%s\n", start ); } -static void register_extension( char *list, size_t size, const char *name ) -{ - if (!has_extension( list, name )) - { - size_t len = strlen( list ); - assert( size - len >= strlen( name ) + 1 ); - if (*list) strcat( list + len, " " ); - strcat( list + len, name ); - } -} - void *opengl_drawable_create( UINT size, const struct opengl_drawable_funcs *funcs, int format, struct client_surface *client ) { struct opengl_drawable *drawable; @@ -652,9 +641,8 @@ static BOOL egldrv_describe_pixel_format( int format, struct wgl_pixel_format *d return describe_egl_config( egl->configs[format % count], desc, pixel_format_flags[format / count] ); } -static const char *egldrv_init_wgl_extensions( struct opengl_funcs *funcs ) +static void egldrv_init_extensions( struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT] ) { - return ""; } static BOOL egldrv_surface_create( HWND hwnd, int format, struct opengl_drawable **drawable ) @@ -863,7 +851,7 @@ static const struct opengl_driver_funcs egldrv_funcs = .p_get_proc_address = egldrv_get_proc_address, .p_init_pixel_formats = egldrv_init_pixel_formats, .p_describe_pixel_format = egldrv_describe_pixel_format, - .p_init_wgl_extensions = egldrv_init_wgl_extensions, + .p_init_extensions = egldrv_init_extensions, .p_surface_create = egldrv_surface_create, .p_pbuffer_create = egldrv_pbuffer_create, .p_pbuffer_updated = egldrv_pbuffer_updated, @@ -1269,9 +1257,8 @@ static BOOL nulldrv_describe_pixel_format( int format, struct wgl_pixel_format * return TRUE; } -static const char *nulldrv_init_wgl_extensions( struct opengl_funcs *funcs ) +static void nulldrv_init_extensions( struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT] ) { - return ""; } static BOOL nulldrv_surface_create( HWND hwnd, int format, struct opengl_drawable **drawable ) @@ -1315,7 +1302,7 @@ static const struct opengl_driver_funcs nulldrv_funcs = .p_get_proc_address = nulldrv_get_proc_address, .p_init_pixel_formats = nulldrv_init_pixel_formats, .p_describe_pixel_format = nulldrv_describe_pixel_format, - .p_init_wgl_extensions = nulldrv_init_wgl_extensions, + .p_init_extensions = nulldrv_init_extensions, .p_surface_create = nulldrv_surface_create, .p_pbuffer_create = nulldrv_pbuffer_create, .p_pbuffer_updated = nulldrv_pbuffer_updated, @@ -1325,20 +1312,6 @@ static const struct opengl_driver_funcs nulldrv_funcs = .p_make_current = nulldrv_make_current, }; -static const char *win32u_wglGetExtensionsStringARB( HDC hdc ) -{ - TRACE( "hdc %p\n", hdc ); - if (TRACE_ON(wgl)) dump_extensions( wgl_extensions ); - return wgl_extensions; -} - -static const char *win32u_wglGetExtensionsStringEXT(void) -{ - TRACE( "\n" ); - if (TRACE_ON(wgl)) dump_extensions( wgl_extensions ); - return wgl_extensions; -} - static int win32u_wglGetPixelFormat( HDC hdc ) { BOOL is_display = is_dc_display( hdc ); @@ -1756,6 +1729,11 @@ static PROC win32u_wglGetProcAddress( const char *name ) return ret; } +static void win32u_init_extensions( BOOLEAN extensions[GL_EXTENSION_COUNT] ) +{ + memcpy( extensions, global_extensions, sizeof(global_extensions) ); +} + static void win32u_get_pixel_formats( struct wgl_pixel_format *formats, UINT max_formats, UINT *num_formats, UINT *num_onscreen_formats ) { @@ -2723,9 +2701,10 @@ static void display_funcs_init(void) #undef USE_GL_FUNC display_funcs.p_wglGetProcAddress = win32u_wglGetProcAddress; + display_funcs.p_init_extensions = win32u_init_extensions; display_funcs.p_get_pixel_formats = win32u_get_pixel_formats; - strcpy( wgl_extensions, driver_funcs->p_init_wgl_extensions( &display_funcs ) ); + driver_funcs->p_init_extensions( &display_funcs, global_extensions ); display_funcs.p_wglGetPixelFormat = win32u_wglGetPixelFormat; display_funcs.p_wglSetPixelFormat = win32u_wglSetPixelFormat; @@ -2741,54 +2720,54 @@ static void display_funcs_init(void) display_funcs.p_context_destroy = win32u_context_destroy; display_funcs.p_context_reset = win32u_context_reset; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_multisample" ); + global_extensions[WGL_ARB_multisample] = 1; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_pixel_format" ); + global_extensions[WGL_ARB_pixel_format] = 1; display_funcs.p_wglChoosePixelFormatARB = (void *)1; /* never called */ display_funcs.p_wglGetPixelFormatAttribfvARB = (void *)1; /* never called */ display_funcs.p_wglGetPixelFormatAttribivARB = (void *)1; /* never called */ if (display_egl.has_EGL_EXT_pixel_format_float) { - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_pixel_format_float" ); - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ATI_pixel_format_float" ); + global_extensions[WGL_ARB_pixel_format_float] = 1; + global_extensions[WGL_ATI_pixel_format_float] = 1; } - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_extensions_string" ); - display_funcs.p_wglGetExtensionsStringARB = win32u_wglGetExtensionsStringARB; + global_extensions[WGL_ARB_extensions_string] = 1; + display_funcs.p_wglGetExtensionsStringARB = (void *)1 /* never called */; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_EXT_extensions_string" ); - display_funcs.p_wglGetExtensionsStringEXT = win32u_wglGetExtensionsStringEXT; + global_extensions[WGL_EXT_extensions_string] = 1; + display_funcs.p_wglGetExtensionsStringEXT = (void *)1 /* never called */; /* In WineD3D we need the ability to set the pixel format more than once (e.g. after a device reset). * The default wglSetPixelFormat doesn't allow this, so add our own which allows it. */ - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_WINE_pixel_format_passthrough" ); + global_extensions[WGL_WINE_pixel_format_passthrough] = 1; display_funcs.p_wglSetPixelFormatWINE = win32u_wglSetPixelFormatWINE; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_create_context" ); - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_create_context_no_error" ); - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_create_context_profile" ); + global_extensions[WGL_ARB_create_context] = 1; + global_extensions[WGL_ARB_create_context_no_error] = 1; + global_extensions[WGL_ARB_create_context_profile] = 1; display_funcs.p_wglCreateContextAttribsARB = (void *)1; /* never called */ - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_make_current_read" ); + global_extensions[WGL_ARB_make_current_read] = 1; display_funcs.p_wglGetCurrentReadDCARB = (void *)1; /* never called */ display_funcs.p_wglMakeContextCurrentARB = win32u_wglMakeContextCurrentARB; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_pbuffer" ); + global_extensions[WGL_ARB_pbuffer] = 1; display_funcs.p_wglCreatePbufferARB = win32u_wglCreatePbufferARB; display_funcs.p_wglDestroyPbufferARB = win32u_wglDestroyPbufferARB; display_funcs.p_wglGetPbufferDCARB = win32u_wglGetPbufferDCARB; display_funcs.p_wglReleasePbufferDCARB = win32u_wglReleasePbufferDCARB; display_funcs.p_wglQueryPbufferARB = win32u_wglQueryPbufferARB; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_ARB_render_texture" ); + global_extensions[WGL_ARB_render_texture] = 1; display_funcs.p_wglBindTexImageARB = win32u_wglBindTexImageARB; display_funcs.p_wglReleaseTexImageARB = win32u_wglReleaseTexImageARB; display_funcs.p_wglSetPbufferAttribARB = win32u_wglSetPbufferAttribARB; - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_EXT_swap_control" ); - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_EXT_swap_control_tear" ); + global_extensions[WGL_EXT_swap_control] = 1; + global_extensions[WGL_EXT_swap_control_tear] = 1; display_funcs.p_wglSwapIntervalEXT = win32u_wglSwapIntervalEXT; display_funcs.p_wglGetSwapIntervalEXT = win32u_wglGetSwapIntervalEXT; @@ -2805,7 +2784,7 @@ static void display_funcs_init(void) if (!list_empty( &devices_egl )) { - register_extension( wgl_extensions, ARRAY_SIZE(wgl_extensions), "WGL_WINE_query_renderer" ); + global_extensions[WGL_WINE_query_renderer] = 1; display_funcs.p_query_renderer = win32u_query_renderer; display_funcs.p_wglQueryCurrentRendererIntegerWINE = win32u_wglQueryCurrentRendererIntegerWINE; display_funcs.p_wglQueryCurrentRendererStringWINE = win32u_wglQueryCurrentRendererStringWINE; diff --git a/dlls/wineandroid.drv/opengl.c b/dlls/wineandroid.drv/opengl.c index 1efd312b940..22b86eddd28 100644 --- a/dlls/wineandroid.drv/opengl.c +++ b/dlls/wineandroid.drv/opengl.c @@ -157,16 +157,16 @@ static void android_drawable_flush( struct opengl_drawable *base, UINT flags ) if (flags & GL_FLUSH_INTERVAL) funcs->p_eglSwapInterval( egl->display, abs( base->interval ) ); } -static const char *android_init_wgl_extensions( struct opengl_funcs *funcs ) +static void android_init_extensions( struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT] ) { - return "WGL_EXT_framebuffer_sRGB"; + extensions[WGL_EXT_framebuffer_sRGB] = 1; } static struct opengl_driver_funcs android_driver_funcs = { .p_init_egl_platform = android_init_egl_platform, .p_get_proc_address = android_get_proc_address, - .p_init_wgl_extensions = android_init_wgl_extensions, + .p_init_extensions = android_init_extensions, .p_surface_create = android_surface_create, }; diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c index e60fc04a82e..f5959ac3b69 100644 --- a/dlls/winemac.drv/opengl.c +++ b/dlls/winemac.drv/opengl.c @@ -46,8 +46,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(wgl); struct gl_info { char *glExtensions; - char wglExtensions[4096]; - GLint max_viewport_dims[2]; unsigned int max_major, max_minor; @@ -2537,16 +2535,7 @@ static BOOL macdrv_pbuffer_updated(HDC hdc, struct opengl_drawable *base, GLenum return GL_TRUE; } -static void register_extension(const char *ext) -{ - if (gl_info.wglExtensions[0]) - strcat(gl_info.wglExtensions, " "); - strcat(gl_info.wglExtensions, ext); - - TRACE("'%s'\n", ext); -} - -static const char *macdrv_init_wgl_extensions(struct opengl_funcs *funcs) +static void macdrv_init_extensions(struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT]) { /* * ARB Extensions @@ -2554,42 +2543,40 @@ static const char *macdrv_init_wgl_extensions(struct opengl_funcs *funcs) if (gluCheckExtension((GLubyte*)"GL_ARB_color_buffer_float", (GLubyte*)gl_info.glExtensions)) { - register_extension("WGL_ARB_pixel_format_float"); - register_extension("WGL_ATI_pixel_format_float"); + extensions[WGL_ARB_pixel_format_float] = 1; + extensions[WGL_ATI_pixel_format_float] = 1; } if (gluCheckExtension((GLubyte*)"GL_ARB_multisample", (GLubyte*)gl_info.glExtensions)) - register_extension("WGL_ARB_multisample"); + extensions[WGL_ARB_multisample] = 1; if (gluCheckExtension((GLubyte*)"GL_ARB_framebuffer_sRGB", (GLubyte*)gl_info.glExtensions)) - register_extension("WGL_ARB_framebuffer_sRGB"); + extensions[WGL_ARB_framebuffer_sRGB] = 1; if (gluCheckExtension((GLubyte*)"GL_APPLE_pixel_buffer", (GLubyte*)gl_info.glExtensions)) { if (gluCheckExtension((GLubyte*)"GL_ARB_texture_rectangle", (GLubyte*)gl_info.glExtensions) || gluCheckExtension((GLubyte*)"GL_EXT_texture_rectangle", (GLubyte*)gl_info.glExtensions)) - register_extension("WGL_NV_render_texture_rectangle"); + extensions[WGL_NV_render_texture_rectangle] = 1; } /* Presumably identical to [W]GL_ARB_framebuffer_sRGB, above, but clients may check for either, so register them separately. */ if (gluCheckExtension((GLubyte*)"GL_EXT_framebuffer_sRGB", (GLubyte*)gl_info.glExtensions)) - register_extension("WGL_EXT_framebuffer_sRGB"); + extensions[WGL_EXT_framebuffer_sRGB] = 1; if (gluCheckExtension((GLubyte*)"GL_EXT_packed_float", (GLubyte*)gl_info.glExtensions)) - register_extension("WGL_EXT_pixel_format_packed_float"); + extensions[WGL_EXT_pixel_format_packed_float] = 1; /* * WINE-specific WGL Extensions */ - register_extension("WGL_WINE_query_renderer"); + extensions[WGL_WINE_query_renderer] = 1; funcs->p_wglQueryCurrentRendererIntegerWINE = macdrv_wglQueryCurrentRendererIntegerWINE; funcs->p_wglQueryCurrentRendererStringWINE = macdrv_wglQueryCurrentRendererStringWINE; funcs->p_wglQueryRendererIntegerWINE = macdrv_wglQueryRendererIntegerWINE; funcs->p_wglQueryRendererStringWINE = macdrv_wglQueryRendererStringWINE; - - return gl_info.wglExtensions; } /********************************************************************** @@ -2769,7 +2756,7 @@ static const struct opengl_driver_funcs macdrv_driver_funcs = .p_get_proc_address = macdrv_get_proc_address, .p_init_pixel_formats = macdrv_init_pixel_formats, .p_describe_pixel_format = macdrv_describe_pixel_format, - .p_init_wgl_extensions = macdrv_init_wgl_extensions, + .p_init_extensions = macdrv_init_extensions, .p_surface_create = macdrv_surface_create, .p_context_create = macdrv_context_create, .p_context_destroy = macdrv_context_destroy, diff --git a/dlls/winewayland.drv/opengl.c b/dlls/winewayland.drv/opengl.c index 9a4b14ec7d9..0e78259f3c1 100644 --- a/dlls/winewayland.drv/opengl.c +++ b/dlls/winewayland.drv/opengl.c @@ -259,7 +259,7 @@ UINT WAYLAND_OpenGLInit(UINT version, const struct opengl_funcs *opengl_funcs, c wayland_driver_funcs.p_get_proc_address = (*driver_funcs)->p_get_proc_address; wayland_driver_funcs.p_init_pixel_formats = (*driver_funcs)->p_init_pixel_formats; wayland_driver_funcs.p_describe_pixel_format = (*driver_funcs)->p_describe_pixel_format; - wayland_driver_funcs.p_init_wgl_extensions = (*driver_funcs)->p_init_wgl_extensions; + wayland_driver_funcs.p_init_extensions = (*driver_funcs)->p_init_extensions; wayland_driver_funcs.p_context_create = (*driver_funcs)->p_context_create; wayland_driver_funcs.p_context_destroy = (*driver_funcs)->p_context_destroy; wayland_driver_funcs.p_make_current = (*driver_funcs)->p_make_current; diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 01eb3b9c356..8d67afb0fc6 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -181,7 +181,6 @@ typedef XID GLXPbuffer; static const char *glExtensions; static const char *glxExtensions; -static char wglExtensions[4096]; static int glxVersion[2]; static int glx_opcode; @@ -1376,29 +1375,19 @@ static BOOL glxRequireVersion(int requiredVersion) return (requiredVersion <= glxVersion[1]); } -static void register_extension(const char *ext) +static void x11drv_init_extensions( struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT] ) { - if (wglExtensions[0]) - strcat(wglExtensions, " "); - strcat(wglExtensions, ext); - - TRACE("'%s'\n", ext); -} - -static const char *x11drv_init_wgl_extensions( struct opengl_funcs *funcs ) -{ - wglExtensions[0] = 0; - /* ARB Extensions */ - if (has_extension( glxExtensions, "GLX_ARB_multisample")) register_extension( "WGL_ARB_multisample" ); + if (has_extension( glxExtensions, "GLX_ARB_multisample")) + extensions[WGL_ARB_multisample] = 1; - register_extension("WGL_ARB_pixel_format"); + extensions[WGL_ARB_pixel_format] = 1; if (has_extension( glxExtensions, "GLX_ARB_fbconfig_float")) { - register_extension("WGL_ARB_pixel_format_float"); - register_extension("WGL_ATI_pixel_format_float"); + extensions[WGL_ARB_pixel_format_float] = 1; + extensions[WGL_ATI_pixel_format_float] = 1; } /* Support WGL_ARB_render_texture when there's support or pbuffer based emulation */ @@ -1406,20 +1395,20 @@ static const char *x11drv_init_wgl_extensions( struct opengl_funcs *funcs ) { /* The WGL version of GLX_NV_float_buffer requires render_texture */ if (has_extension( glxExtensions, "GLX_NV_float_buffer")) - register_extension("WGL_NV_float_buffer"); + extensions[WGL_NV_float_buffer] = 1; /* Again there's no GLX equivalent for this extension, so depend on the required GL extension */ if (has_extension(glExtensions, "GL_NV_texture_rectangle")) - register_extension("WGL_NV_render_texture_rectangle"); + extensions[WGL_NV_render_texture_rectangle] = 1; } /* EXT Extensions */ if (has_extension( glxExtensions, "GLX_EXT_framebuffer_sRGB")) - register_extension("WGL_EXT_framebuffer_sRGB"); + extensions[WGL_EXT_framebuffer_sRGB] = 1; if (has_extension( glxExtensions, "GLX_EXT_fbconfig_packed_float")) - register_extension("WGL_EXT_pixel_format_packed_float"); + extensions[WGL_EXT_pixel_format_packed_float] = 1; if (has_extension( glxExtensions, "GLX_EXT_swap_control")) { @@ -1438,7 +1427,7 @@ static const char *x11drv_init_wgl_extensions( struct opengl_funcs *funcs ) /* The OpenGL extension GL_NV_vertex_array_range adds wgl/glX functions which aren't exported as 'real' wgl/glX extensions. */ if (has_extension(glExtensions, "GL_NV_vertex_array_range")) { - register_extension( "WGL_NV_vertex_array_range" ); + extensions[WGL_NV_vertex_array_range] = 1; funcs->p_wglAllocateMemoryNV = pglXAllocateMemoryNV; funcs->p_wglFreeMemoryNV = pglXFreeMemoryNV; } @@ -1450,14 +1439,12 @@ static const char *x11drv_init_wgl_extensions( struct opengl_funcs *funcs ) if (has_extension( glxExtensions, "GLX_MESA_query_renderer" )) { - register_extension( "WGL_WINE_query_renderer" ); + extensions[WGL_WINE_query_renderer] = 1; funcs->p_wglQueryCurrentRendererIntegerWINE = X11DRV_wglQueryCurrentRendererIntegerWINE; funcs->p_wglQueryCurrentRendererStringWINE = X11DRV_wglQueryCurrentRendererStringWINE; funcs->p_wglQueryRendererIntegerWINE = X11DRV_wglQueryRendererIntegerWINE; funcs->p_wglQueryRendererStringWINE = X11DRV_wglQueryRendererStringWINE; } - - return wglExtensions; } static BOOL x11drv_surface_swap( struct opengl_drawable *base ) @@ -1525,7 +1512,7 @@ static struct opengl_driver_funcs x11drv_driver_funcs = .p_get_proc_address = x11drv_get_proc_address, .p_init_pixel_formats = x11drv_init_pixel_formats, .p_describe_pixel_format = x11drv_describe_pixel_format, - .p_init_wgl_extensions = x11drv_init_wgl_extensions, + .p_init_extensions = x11drv_init_extensions, .p_surface_create = x11drv_surface_create, .p_context_create = x11drv_context_create, .p_context_destroy = x11drv_context_destroy, diff --git a/include/wine/opengl_driver.h b/include/wine/opengl_driver.h index d53075eee2d..7cf3d2bd277 100644 --- a/include/wine/opengl_driver.h +++ b/include/wine/opengl_driver.h @@ -74,8 +74,12 @@ struct opengl_client_context UINT64 unix_handle; UINT64 unix_funcs; GLenum last_error; + BOOLEAN extensions[GL_EXTENSION_COUNT]; /* exposed client extensions */ }; +/* make sure client context size stays small */ +C_ASSERT( sizeof(struct opengl_client_context) <= 0x1000 ); + static inline struct opengl_client_context *opengl_client_context_from_client( HGLRC client_context ) { return CONTAINING_RECORD( client_context, struct opengl_client_context, obj ); @@ -113,6 +117,7 @@ struct opengl_context HGLRC client_context; /* client side context pointer */ void *driver_private; /* driver context / private data */ void *internal_context; /* driver context for win32u internal use */ + BOOLEAN extensions[GL_EXTENSION_COUNT]; /* available host extensions */ int format; /* pixel format of the context */ struct opengl_drawable *draw; /* currently bound draw surface */ struct opengl_drawable *read; /* currently bound read surface */ @@ -135,6 +140,7 @@ struct opengl_funcs ALL_GL_FUNCS ALL_GL_EXT_FUNCS #undef USE_GL_FUNC + void (*p_init_extensions)( BOOLEAN extensions[GL_EXTENSION_COUNT] ); void (*p_get_pixel_formats)( struct wgl_pixel_format *formats, UINT max_formats, UINT *num_formats, UINT *num_onscreen_formats ); BOOL (*p_query_renderer)( UINT attribute, void *value ); BOOL (*p_context_flush)( struct opengl_context *context, void (*flush)(void), UINT flags ); @@ -229,7 +235,7 @@ struct opengl_driver_funcs void *(*p_get_proc_address)(const char *); UINT (*p_init_pixel_formats)(UINT*); BOOL (*p_describe_pixel_format)(int,struct wgl_pixel_format*); - const char *(*p_init_wgl_extensions)(struct opengl_funcs *funcs); + void (*p_init_extensions)( struct opengl_funcs *funcs, BOOLEAN extensions[GL_EXTENSION_COUNT] ); BOOL (*p_surface_create)( HWND hwnd, int format, struct opengl_drawable **drawable ); BOOL (*p_context_create)( int format, void *share, const int *attribs, void **context ); BOOL (*p_context_destroy)(void*); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 6 +-- dlls/opengl32/unix_thunks.c | 90 ------------------------------------- dlls/opengl32/unixlib.h | 39 ---------------- dlls/opengl32/wgl.c | 44 ------------------ 4 files changed, 3 insertions(+), 176 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 1a5d788c89a..45cb47ccd11 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -147,6 +147,7 @@ my %manual_win_functions = ( "glDebugEntry" => 1, "wglChoosePixelFormat" => 1, + "wglChoosePixelFormatARB" => 1, "wglCreateLayerContext" => 1, "wglDescribeLayerPlane" => 1, "wglDescribePixelFormat" => 1, @@ -157,6 +158,8 @@ my %manual_win_functions = "wglGetExtensionsStringARB" => 1, "wglGetExtensionsStringEXT" => 1, "wglGetLayerPaletteEntries" => 1, + "wglGetPixelFormatAttribfvARB" => 1, + "wglGetPixelFormatAttribivARB" => 1, "wglRealizeLayerPalette" => 1, "wglSetLayerPaletteEntries" => 1, "wglSwapLayerBuffers" => 1, @@ -173,15 +176,12 @@ my %manual_win_thunks = "glGetString" => 1, "glGetStringi" => 1, "glImportSyncEXT" => 1, - "wglChoosePixelFormatARB" => 1, "wglCreateContext" => 1, "wglCreateContextAttribsARB" => 1, "wglCreatePbufferARB" => 1, "wglDeleteContext" => 1, "wglDestroyPbufferARB" => 1, "wglGetPixelFormat" => 1, - "wglGetPixelFormatAttribfvARB" => 1, - "wglGetPixelFormatAttribivARB" => 1, "wglGetProcAddress" => 1, "wglMakeContextCurrentARB" => 1, "wglMakeCurrent" => 1, diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index ce8520c60e5..ae6dd237e75 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -30363,15 +30363,6 @@ static NTSTATUS ext_wglBindTexImageARB( void *args ) return STATUS_SUCCESS; } -static NTSTATUS ext_wglChoosePixelFormatARB( void *args ) -{ - struct wglChoosePixelFormatARB_params *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( params->hdc ); - if (!funcs || !funcs->p_wglChoosePixelFormatARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglChoosePixelFormatARB( params->hdc, params->piAttribIList, params->pfAttribFList, params->nMaxFormats, params->piFormats, params->nNumFormats ); - return STATUS_SUCCESS; -} - static NTSTATUS ext_wglCreateContextAttribsARB( void *args ) { struct wglCreateContextAttribsARB_params *params = args; @@ -30417,24 +30408,6 @@ static NTSTATUS ext_wglGetPbufferDCARB( void *args ) return STATUS_SUCCESS; } -static NTSTATUS ext_wglGetPixelFormatAttribfvARB( void *args ) -{ - struct wglGetPixelFormatAttribfvARB_params *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( params->hdc ); - if (!funcs || !funcs->p_wglGetPixelFormatAttribfvARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetPixelFormatAttribfvARB( params->hdc, params->iPixelFormat, params->iLayerPlane, params->nAttributes, params->piAttributes, params->pfValues ); - return STATUS_SUCCESS; -} - -static NTSTATUS ext_wglGetPixelFormatAttribivARB( void *args ) -{ - struct wglGetPixelFormatAttribivARB_params *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( params->hdc ); - if (!funcs || !funcs->p_wglGetPixelFormatAttribivARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetPixelFormatAttribivARB( params->hdc, params->iPixelFormat, params->iLayerPlane, params->nAttributes, params->piAttributes, params->piValues ); - return STATUS_SUCCESS; -} - static NTSTATUS ext_wglGetSwapIntervalEXT( void *args ) { struct wglGetSwapIntervalEXT_params *params = args; @@ -33627,14 +33600,11 @@ const unixlib_entry_t __wine_unix_call_funcs[] = ext_glWriteMaskEXT, ext_wglAllocateMemoryNV, ext_wglBindTexImageARB, - ext_wglChoosePixelFormatARB, ext_wglCreateContextAttribsARB, ext_wglCreatePbufferARB, ext_wglDestroyPbufferARB, ext_wglFreeMemoryNV, ext_wglGetPbufferDCARB, - ext_wglGetPixelFormatAttribfvARB, - ext_wglGetPixelFormatAttribivARB, ext_wglGetSwapIntervalEXT, ext_wglMakeContextCurrentARB, ext_wglQueryCurrentRendererIntegerWINE, @@ -86620,25 +86590,6 @@ static NTSTATUS wow64_ext_wglBindTexImageARB( void *args ) return STATUS_SUCCESS; } -static NTSTATUS wow64_ext_wglChoosePixelFormatARB( void *args ) -{ - struct - { - PTR32 teb; - PTR32 hdc; - PTR32 piAttribIList; - PTR32 pfAttribFList; - UINT nMaxFormats; - PTR32 piFormats; - PTR32 nNumFormats; - BOOL ret; - } *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( ULongToPtr(params->hdc) ); - if (!funcs || !funcs->p_wglChoosePixelFormatARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglChoosePixelFormatARB( ULongToPtr(params->hdc), ULongToPtr(params->piAttribIList), ULongToPtr(params->pfAttribFList), params->nMaxFormats, ULongToPtr(params->piFormats), ULongToPtr(params->nNumFormats) ); - return STATUS_SUCCESS; -} - static NTSTATUS wow64_ext_wglCreateContextAttribsARB( void *args ) { struct @@ -86716,44 +86667,6 @@ static NTSTATUS wow64_ext_wglGetPbufferDCARB( void *args ) return STATUS_SUCCESS; } -static NTSTATUS wow64_ext_wglGetPixelFormatAttribfvARB( void *args ) -{ - struct - { - PTR32 teb; - PTR32 hdc; - int iPixelFormat; - int iLayerPlane; - UINT nAttributes; - PTR32 piAttributes; - PTR32 pfValues; - BOOL ret; - } *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( ULongToPtr(params->hdc) ); - if (!funcs || !funcs->p_wglGetPixelFormatAttribfvARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetPixelFormatAttribfvARB( ULongToPtr(params->hdc), params->iPixelFormat, params->iLayerPlane, params->nAttributes, ULongToPtr(params->piAttributes), ULongToPtr(params->pfValues) ); - return STATUS_SUCCESS; -} - -static NTSTATUS wow64_ext_wglGetPixelFormatAttribivARB( void *args ) -{ - struct - { - PTR32 teb; - PTR32 hdc; - int iPixelFormat; - int iLayerPlane; - UINT nAttributes; - PTR32 piAttributes; - PTR32 piValues; - BOOL ret; - } *params = args; - const struct opengl_funcs *funcs = get_dc_funcs( ULongToPtr(params->hdc) ); - if (!funcs || !funcs->p_wglGetPixelFormatAttribivARB) return STATUS_NOT_IMPLEMENTED; - params->ret = funcs->p_wglGetPixelFormatAttribivARB( ULongToPtr(params->hdc), params->iPixelFormat, params->iLayerPlane, params->nAttributes, ULongToPtr(params->piAttributes), ULongToPtr(params->piValues) ); - return STATUS_SUCCESS; -} - static NTSTATUS wow64_ext_wglGetSwapIntervalEXT( void *args ) { struct @@ -90027,14 +89940,11 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_ext_glWriteMaskEXT, wow64_ext_wglAllocateMemoryNV, wow64_ext_wglBindTexImageARB, - wow64_ext_wglChoosePixelFormatARB, wow64_ext_wglCreateContextAttribsARB, wow64_ext_wglCreatePbufferARB, wow64_ext_wglDestroyPbufferARB, wow64_ext_wglFreeMemoryNV, wow64_ext_wglGetPbufferDCARB, - wow64_ext_wglGetPixelFormatAttribfvARB, - wow64_ext_wglGetPixelFormatAttribivARB, wow64_ext_wglGetSwapIntervalEXT, wow64_ext_wglMakeContextCurrentARB, wow64_ext_wglQueryCurrentRendererIntegerWINE, diff --git a/dlls/opengl32/unixlib.h b/dlls/opengl32/unixlib.h index a41771ea362..09340fce5d6 100644 --- a/dlls/opengl32/unixlib.h +++ b/dlls/opengl32/unixlib.h @@ -25689,18 +25689,6 @@ struct wglBindTexImageARB_params BOOL ret; }; -struct wglChoosePixelFormatARB_params -{ - TEB *teb; - HDC hdc; - const int *piAttribIList; - const FLOAT *pfAttribFList; - UINT nMaxFormats; - int *piFormats; - UINT *nNumFormats; - BOOL ret; -}; - struct wglCreateContextAttribsARB_params { TEB *teb; @@ -25741,30 +25729,6 @@ struct wglGetPbufferDCARB_params HDC ret; }; -struct wglGetPixelFormatAttribfvARB_params -{ - TEB *teb; - HDC hdc; - int iPixelFormat; - int iLayerPlane; - UINT nAttributes; - const int *piAttributes; - FLOAT *pfValues; - BOOL ret; -}; - -struct wglGetPixelFormatAttribivARB_params -{ - TEB *teb; - HDC hdc; - int iPixelFormat; - int iLayerPlane; - UINT nAttributes; - const int *piAttributes; - int *piValues; - BOOL ret; -}; - struct wglGetSwapIntervalEXT_params { TEB *teb; @@ -28958,14 +28922,11 @@ enum unix_funcs unix_glWriteMaskEXT, unix_wglAllocateMemoryNV, unix_wglBindTexImageARB, - unix_wglChoosePixelFormatARB, unix_wglCreateContextAttribsARB, unix_wglCreatePbufferARB, unix_wglDestroyPbufferARB, unix_wglFreeMemoryNV, unix_wglGetPbufferDCARB, - unix_wglGetPixelFormatAttribfvARB, - unix_wglGetPixelFormatAttribivARB, unix_wglGetSwapIntervalEXT, unix_wglMakeContextCurrentARB, unix_wglQueryCurrentRendererIntegerWINE, diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c index d550304fa74..78dc09f1b83 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c @@ -1093,28 +1093,6 @@ BOOL WINAPI wglChoosePixelFormatARB( HDC hdc, const int *attribs_int, const FLOA wgl_formats = get_pixel_formats( hdc, &num_wgl_formats, &num_wgl_onscreen_formats ); - /* If the driver doesn't yet provide ARB attrib information in - * wgl_pixel_format, fall back to an explicit call. */ - if (num_wgl_formats && !wgl_formats[0].pixel_type) - { - struct wglChoosePixelFormatARB_params args = - { - .teb = NtCurrentTeb(), - .hdc = hdc, - .piAttribIList = attribs_int, - .pfAttribFList = attribs_float, - .nMaxFormats = max_formats, - .piFormats = formats, - .nNumFormats = num_formats - }; - NTSTATUS status; - - if ((status = UNIX_CALL( wglChoosePixelFormatARB, &args ))) - WARN( "wglChoosePixelFormatARB returned %#lx\n", status ); - - return args.ret; - } - /* Gather, validate and deduplicate all attributes */ for (i = 0; attribs_int && attribs_int[i]; i += 2) { @@ -1197,28 +1175,6 @@ BOOL WINAPI wglGetPixelFormatAttribivARB( HDC hdc, int index, int plane, UINT co formats = get_pixel_formats( hdc, &num_formats, &num_onscreen_formats ); - /* If the driver doesn't yet provide ARB attrib information in - * wgl_pixel_format, fall back to an explicit call. */ - if (num_formats && !formats[0].pixel_type) - { - struct wglGetPixelFormatAttribivARB_params args = - { - .teb = NtCurrentTeb(), - .hdc = hdc, - .iPixelFormat = index, - .iLayerPlane = plane, - .nAttributes = count, - .piAttributes = attributes, - .piValues = values - }; - NTSTATUS status; - - if ((status = UNIX_CALL( wglGetPixelFormatAttribivARB, &args ))) - WARN( "wglGetPixelFormatAttribivARB returned %#lx\n", status ); - - return args.ret; - } - if (!count) return TRUE; if (count == 1 && attributes[0] == WGL_NUMBER_PIXEL_FORMATS_ARB) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/unix_wgl.c | 48 ++++++++++++++++++++++++++-------------- dlls/win32u/opengl.c | 1 + 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index f38c78d3ef6..787c81902e5 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -887,12 +887,6 @@ const GLubyte *wrap_glGetStringi( TEB *teb, GLenum name, GLuint index ) { const struct opengl_funcs *funcs = teb->glTable; - if (!funcs->p_glGetStringi) - { - void **func_ptr = (void **)&funcs->p_glGetStringi; - *func_ptr = funcs->p_wglGetProcAddress( "glGetStringi" ); - } - if (name == GL_EXTENSIONS) { struct context *ctx = get_current_context( teb, NULL, NULL ); @@ -980,7 +974,7 @@ static BOOL initialize_vk_device( TEB *teb, struct context *ctx ) static PFN_vkGetPhysicalDeviceProperties2KHR p_vkGetPhysicalDeviceProperties2KHR; if (ctx->buffers->vk_device) return TRUE; /* already initialized */ - if (!is_extension_supported( ctx, "GL_EXT_memory_object_fd" )) + if (!ctx->base.extensions[GL_EXT_memory_object_fd]) { TRACE( "GL_EXT_memory_object_fd is not supported\n" ); return FALSE; @@ -1245,6 +1239,7 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD static pthread_once_t once = PTHREAD_ONCE_INIT; struct opengl_client_context *client = opengl_client_context_from_client( ctx->base.client_context ); + enum opengl_extension parsed_extensions[GL_EXTENSION_COUNT] = {GL_EXTENSION_COUNT}; DWORD tid = HandleToULong(teb->ClientId.UniqueThread); size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; const char *version, *rest = "", **extensions; @@ -1275,17 +1270,17 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD if (ctx->major_version >= 3) { GLint extensions_count; - - if (!funcs->p_glGetStringi) - { - void **func_ptr = (void **)&funcs->p_glGetStringi; - *func_ptr = funcs->p_wglGetProcAddress( "glGetStringi" ); - } - funcs->p_glGetIntegerv( GL_NUM_EXTENSIONS, &extensions_count ); size += extensions_count; if (!(extensions = malloc( size * sizeof(*extensions) ))) return; for (i = 0; i < extensions_count; i++) extensions[count++] = (const char *)funcs->p_glGetStringi( GL_EXTENSIONS, i ); + + for (GLint i = 0; i < extensions_count; i++) + { + const char *name = (const char *)funcs->p_glGetStringi( GL_EXTENSIONS, i ); + enum opengl_extension ext = parse_extension( name, strlen( name ) ); + if (ext != GL_EXTENSION_COUNT) ctx->base.extensions[ext] = TRUE; + } } else { @@ -1311,7 +1306,12 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD } ext++; } + + if (str) parse_extensions( parsed_extensions, str ); + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + ctx->base.extensions[*ext] = TRUE; } + dump_extensions( "Host", ctx->base.extensions ); for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) { @@ -1335,15 +1335,24 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD count = j; } - if (funcs->p_glImportMemoryWin32HandleEXT) extensions[count++] = "GL_EXT_memory_object_win32"; - if (funcs->p_glImportSemaphoreWin32HandleEXT) extensions[count++] = "GL_EXT_semaphore_win32"; + if (ctx->base.extensions[GL_EXT_memory_object_fd]) + { + client->extensions[GL_EXT_memory_object_win32] = 1; + extensions[count++] = "GL_EXT_memory_object_win32"; + } + if (ctx->base.extensions[GL_EXT_semaphore_fd]) + { + client->extensions[GL_EXT_semaphore_win32] = 1; + extensions[count++] = "GL_EXT_semaphore_win32"; + } + for (i = 0; legacy_extensions[i]; i++) extensions[count++] = legacy_extensions[i]; qsort( extensions, count, sizeof(*extensions), string_array_cmp ); ctx->extension_array = extensions; ctx->extension_count = count; if (is_win64 && ctx->buffers && !initialize_vk_device( teb, ctx ) - && !(ctx->use_pinned_memory = is_extension_supported( ctx, "GL_AMD_pinned_memory" ))) + && !(ctx->use_pinned_memory = ctx->base.extensions[GL_AMD_pinned_memory])) { if (ctx->major_version > 4 || (ctx->major_version == 4 && ctx->minor_version > 3)) { @@ -1362,6 +1371,11 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD } extensions[j++] = ext; } + if (client->extensions[GL_ARB_buffer_storage]) + { + FIXME( "Disabling has_GL_ARB_buffer_storage extension on wow64\n" ); + client->extensions[GL_ARB_buffer_storage] = FALSE; + } ctx->extension_count = j; } diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index e2292f2aadd..b2ad2c647e7 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -2690,6 +2690,7 @@ static void display_funcs_init(void) USE_GL_FUNC(glDeleteFramebuffers) USE_GL_FUNC(glDeleteRenderbuffers) USE_GL_FUNC(glGetNamedFramebufferAttachmentParameteriv) + USE_GL_FUNC(glGetStringi) USE_GL_FUNC(glGetUnsignedBytei_vEXT) USE_GL_FUNC(glGetUnsignedBytevEXT) USE_GL_FUNC(glImportMemoryFdEXT) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 5 +++ dlls/opengl32/thunks.c | 41 +---------------- dlls/opengl32/unix_wgl.c | 31 +++++-------- dlls/opengl32/wgl.c | 85 ++++++++++++++++++++++++++++++++++++ include/wine/opengl_driver.h | 2 + 5 files changed, 105 insertions(+), 59 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 45cb47ccd11..9fc362f9ebe 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -173,6 +173,11 @@ my %manual_win_thunks = "glCreateSyncFromCLeventARB" => 1, "glDeleteSync" => 1, "glFenceSync" => 1, + "glGetBooleanv" => 1, + "glGetDoublev" => 1, + "glGetFloatv" => 1, + "glGetInteger64v" => 1, + "glGetIntegerv" => 1, "glGetString" => 1, "glGetStringi" => 1, "glImportSyncEXT" => 1, diff --git a/dlls/opengl32/thunks.c b/dlls/opengl32/thunks.c index 3c60ec5d6bb..03f04cca07e 100644 --- a/dlls/opengl32/thunks.c +++ b/dlls/opengl32/thunks.c @@ -841,14 +841,6 @@ void WINAPI glGenTextures( GLsizei n, GLuint *textures ) if ((status = UNIX_CALL( glGenTextures, &args ))) WARN( "glGenTextures returned %#lx\n", status ); } -void WINAPI glGetBooleanv( GLenum pname, GLboolean *data ) -{ - struct glGetBooleanv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; - NTSTATUS status; - TRACE( "pname %d, data %p\n", pname, data ); - if ((status = UNIX_CALL( glGetBooleanv, &args ))) WARN( "glGetBooleanv returned %#lx\n", status ); -} - void WINAPI glGetClipPlane( GLenum plane, GLdouble *equation ) { struct glGetClipPlane_params args = { .teb = NtCurrentTeb(), .plane = plane, .equation = equation }; @@ -857,14 +849,6 @@ void WINAPI glGetClipPlane( GLenum plane, GLdouble *equation ) if ((status = UNIX_CALL( glGetClipPlane, &args ))) WARN( "glGetClipPlane returned %#lx\n", status ); } -void WINAPI glGetDoublev( GLenum pname, GLdouble *data ) -{ - struct glGetDoublev_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; - NTSTATUS status; - TRACE( "pname %d, data %p\n", pname, data ); - if ((status = UNIX_CALL( glGetDoublev, &args ))) WARN( "glGetDoublev returned %#lx\n", status ); -} - GLenum WINAPI glGetError(void) { struct glGetError_params args = { .teb = NtCurrentTeb() }; @@ -874,22 +858,6 @@ GLenum WINAPI glGetError(void) return args.ret; } -void WINAPI glGetFloatv( GLenum pname, GLfloat *data ) -{ - struct glGetFloatv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; - NTSTATUS status; - TRACE( "pname %d, data %p\n", pname, data ); - if ((status = UNIX_CALL( glGetFloatv, &args ))) WARN( "glGetFloatv returned %#lx\n", status ); -} - -void WINAPI glGetIntegerv( GLenum pname, GLint *data ) -{ - struct glGetIntegerv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; - NTSTATUS status; - TRACE( "pname %d, data %p\n", pname, data ); - if ((status = UNIX_CALL( glGetIntegerv, &args ))) WARN( "glGetIntegerv returned %#lx\n", status ); -} - void WINAPI glGetLightfv( GLenum light, GLenum pname, GLfloat *params ) { struct glGetLightfv_params args = { .teb = NtCurrentTeb(), .light = light, .pname = pname, .params = params }; @@ -8635,14 +8603,6 @@ static void WINAPI glGetInteger64i_v( GLenum target, GLuint index, GLint64 *data if ((status = UNIX_CALL( glGetInteger64i_v, &args ))) WARN( "glGetInteger64i_v returned %#lx\n", status ); } -static void WINAPI glGetInteger64v( GLenum pname, GLint64 *data ) -{ - struct glGetInteger64v_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; - NTSTATUS status; - TRACE( "pname %d, data %p\n", pname, data ); - if ((status = UNIX_CALL( glGetInteger64v, &args ))) WARN( "glGetInteger64v returned %#lx\n", status ); -} - static void WINAPI glGetIntegerIndexedvEXT( GLenum target, GLuint index, GLint *data ) { struct glGetIntegerIndexedvEXT_params args = { .teb = NtCurrentTeb(), .target = target, .index = index, .data = data }; @@ -24827,6 +24787,7 @@ static BOOL WINAPI wglSwapIntervalEXT( int interval ) extern GLsync WINAPI glCreateSyncFromCLeventARB( struct _cl_context *context, struct _cl_event *event, GLbitfield flags ); extern void WINAPI glDeleteSync( GLsync sync ); extern GLsync WINAPI glFenceSync( GLenum condition, GLbitfield flags ); +extern void WINAPI glGetInteger64v( GLenum pname, GLint64 *data ); extern const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ); extern GLsync WINAPI glImportSyncEXT( GLenum external_sync_type, GLintptr external_sync, GLbitfield flags ); extern BOOL WINAPI wglChoosePixelFormatARB( HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats ); diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 787c81902e5..9563d87e157 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -126,8 +126,6 @@ struct context HGLRC share; /* context to be shared with */ int *attribs; /* creation attributes */ DWORD tid; /* thread that the context is current in */ - int major_version; /* major GL version */ - int minor_version; /* minor GL version */ UINT64 debug_callback; /* client pointer */ UINT64 debug_user; /* client pointer */ GLubyte *extensions; /* extension string */ @@ -713,6 +711,7 @@ static GLubyte *filter_extensions( struct context *ctx, const char *extensions, /* Check if any GL extension from the list is supported */ static BOOL is_any_extension_supported( struct context *ctx, const char *extension ) { + struct opengl_client_context *client = opengl_client_context_from_client( ctx->base.client_context ); size_t len; /* We use the GetProcAddress function from the display driver to retrieve function pointers @@ -739,10 +738,10 @@ static BOOL is_any_extension_supported( struct context *ctx, const char *extensi /* Compare the major/minor version numbers of the native OpenGL library and what is required by the function. * The gl_version string is guaranteed to have at least a major/minor and sometimes it has a release number as well. */ - if (ctx->major_version > major || (ctx->major_version == major && ctx->minor_version >= minor)) return TRUE; + if (client->major_version > major || (client->major_version == major && client->minor_version >= minor)) return TRUE; WARN( "The function requires OpenGL version '%d.%d' while your drivers only provide '%d.%d'\n", - major, minor, ctx->major_version, ctx->minor_version ); + major, minor, client->major_version, client->minor_version ); } extension += len + 1; @@ -810,12 +809,6 @@ static BOOL get_integer( TEB *teb, GLenum pname, GLint *data ) switch (pname) { - case GL_MAJOR_VERSION: - *data = ctx->major_version; - return TRUE; - case GL_MINOR_VERSION: - *data = ctx->minor_version; - return TRUE; case GL_NUM_EXTENSIONS: *data = ctx->extension_count; return TRUE; @@ -1255,19 +1248,19 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD pthread_once( &once, init_enabled_extensions ); - if (ctx->major_version) return; /* already synced */ + if (client->major_version) return; /* already synced */ version = (const char *)funcs->p_glGetString( GL_VERSION ); - if (version) rest = parse_gl_version( version, &ctx->major_version, &ctx->minor_version ); - if (!ctx->major_version) ctx->major_version = 1; - TRACE( "context %p version %d.%d\n", ctx, ctx->major_version, ctx->minor_version ); + if (version) rest = parse_gl_version( version, &client->major_version, &client->minor_version ); + if (!client->major_version) client->major_version = 1; + TRACE( "context %p version %d.%d\n", ctx, client->major_version, client->minor_version ); funcs->p_init_extensions( ctx->base.extensions ); if (funcs->p_glImportMemoryWin32HandleEXT) size++; if (funcs->p_glImportSemaphoreWin32HandleEXT) size++; - if (ctx->major_version >= 3) + if (client->major_version >= 3) { GLint extensions_count; funcs->p_glGetIntegerv( GL_NUM_EXTENSIONS, &extensions_count ); @@ -1354,11 +1347,11 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD if (is_win64 && ctx->buffers && !initialize_vk_device( teb, ctx ) && !(ctx->use_pinned_memory = ctx->base.extensions[GL_AMD_pinned_memory])) { - if (ctx->major_version > 4 || (ctx->major_version == 4 && ctx->minor_version > 3)) + if (client->major_version > 4 || (client->major_version == 4 && client->minor_version > 3)) { - FIXME( "GL version %d.%d is not supported on wow64, using 4.3\n", ctx->major_version, ctx->minor_version ); - ctx->major_version = 4; - ctx->minor_version = 3; + FIXME( "GL version %d.%d is not supported on wow64, using 4.3\n", client->major_version, client->minor_version ); + client->major_version = 4; + client->minor_version = 3; asprintf( &ctx->wow64_version, "4.3%s", rest ); } for (i = 0, j = 0; i < count; i++) diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c index 78dc09f1b83..aa2ca8da2d6 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c @@ -1992,6 +1992,21 @@ GLsync WINAPI glImportSyncEXT( GLenum external_sync_type, GLintptr external_sync return NULL; } +static BOOL get_integer( struct context *ctx, GLenum name, GLint *data ) +{ + switch (name) + { + case GL_MAJOR_VERSION: + *data = ctx->base.major_version; + return TRUE; + case GL_MINOR_VERSION: + *data = ctx->base.minor_version; + return TRUE; + } + + return FALSE; +} + const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) { struct glGetStringi_params args = @@ -2042,6 +2057,76 @@ const GLubyte * WINAPI glGetString( GLenum name ) return args.ret; } +void WINAPI glGetBooleanv( GLenum pname, GLboolean *data ) +{ + struct glGetBooleanv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; + struct context *ctx; + NTSTATUS status; + GLint value; + + TRACE( "pname %d, data %p\n", pname, data ); + + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return; + if (get_integer( ctx, pname, &value )) *data = value; + else if ((status = UNIX_CALL( glGetBooleanv, &args ))) WARN( "glGetBooleanv returned %#lx\n", status ); +} + +void WINAPI glGetDoublev( GLenum pname, GLdouble *data ) +{ + struct glGetDoublev_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; + struct context *ctx; + NTSTATUS status; + GLint value; + + TRACE( "pname %d, data %p\n", pname, data ); + + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return; + if (get_integer( ctx, pname, &value )) *data = value; + else if ((status = UNIX_CALL( glGetDoublev, &args ))) WARN( "glGetDoublev returned %#lx\n", status ); +} + +void WINAPI glGetFloatv( GLenum pname, GLfloat *data ) +{ + struct glGetFloatv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; + struct context *ctx; + NTSTATUS status; + GLint value; + + TRACE( "pname %d, data %p\n", pname, data ); + + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return; + if (get_integer( ctx, pname, &value )) *data = value; + else if ((status = UNIX_CALL( glGetFloatv, &args ))) WARN( "glGetFloatv returned %#lx\n", status ); +} + +void WINAPI glGetInteger64v( GLenum pname, GLint64 *data ) +{ + struct glGetInteger64v_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; + struct context *ctx; + NTSTATUS status; + GLint value; + + TRACE( "pname %d, data %p\n", pname, data ); + + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return; + if (get_integer( ctx, pname, &value )) *data = value; + else if ((status = UNIX_CALL( glGetInteger64v, &args ))) WARN( "glGetInteger64v returned %#lx\n", status ); +} + +void WINAPI glGetIntegerv( GLenum pname, GLint *data ) +{ + struct glGetIntegerv_params args = { .teb = NtCurrentTeb(), .pname = pname, .data = data }; + struct context *ctx; + NTSTATUS status; + GLint value; + + TRACE( "pname %d, data %p\n", pname, data ); + + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return; + if (get_integer( ctx, pname, &value )) *data = value; + else if ((status = UNIX_CALL( glGetIntegerv, &args ))) WARN( "glGetIntegerv returned %#lx\n", status ); +} + const char * WINAPI wglGetExtensionsStringARB( HDC hdc ) { TRACE( "hdc %p\n", hdc ); diff --git a/include/wine/opengl_driver.h b/include/wine/opengl_driver.h index 7cf3d2bd277..e6616c47224 100644 --- a/include/wine/opengl_driver.h +++ b/include/wine/opengl_driver.h @@ -74,6 +74,8 @@ struct opengl_client_context UINT64 unix_handle; UINT64 unix_funcs; GLenum last_error; + int major_version; + int minor_version; BOOLEAN extensions[GL_EXTENSION_COUNT]; /* exposed client extensions */ }; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 1 - dlls/opengl32/tests/opengl.c | 34 ++++++++++---- dlls/opengl32/unix_thunks.c | 4 +- dlls/opengl32/unix_thunks.h | 1 - dlls/opengl32/unix_wgl.c | 86 +++--------------------------------- dlls/opengl32/wgl.c | 75 +++++++++++++++++++++++++++++++ include/wine/opengl_driver.h | 2 + 7 files changed, 111 insertions(+), 92 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 9fc362f9ebe..d9a1228256a 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -218,7 +218,6 @@ my %manual_unix_thunks = "glGetInteger64v" => 1, "glGetIntegerv" => 1, "glGetString" => 1, - "glGetStringi" => 1, "glGetUnsignedBytevEXT" => 1, "glImportSyncEXT" => 1, "glNamedFramebufferDrawBuffer" => 1, diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c index 107dfc3f9ff..9fb9f90e389 100644 --- a/dlls/opengl32/tests/opengl.c +++ b/dlls/opengl32/tests/opengl.c @@ -58,6 +58,13 @@ static const char *debugstr_ok( const char *cond ) } while (0) #define ok_ret( e, r ) ok_ex( r, ==, e, UINT, "%#x" ) +#define check_gl_error(exp) check_gl_error_(__LINE__, exp) +static void check_gl_error_( unsigned int line, GLenum exp ) +{ + GLenum err = glGetError(); + ok_(__FILE__,line)( err == exp, "glGetError returned %x, expected %x\n", err, exp ); +} + static NTSTATUS (WINAPI *pD3DKMTCreateDCFromMemory)( D3DKMT_CREATEDCFROMMEMORY *desc ); static NTSTATUS (WINAPI *pD3DKMTDestroyDCFromMemory)( const D3DKMT_DESTROYDCFROMMEMORY *desc ); @@ -109,11 +116,12 @@ static PFN_glCopyNamedBufferSubData pglCopyNamedBufferSubData; static PFN_glCreateBuffers pglCreateBuffers; static PFN_glDeleteBuffers pglDeleteBuffers; static PFN_glDeleteSync pglDeleteSync; +static PFN_glFenceSync pglFenceSync; static PFN_glFlushMappedBufferRange pglFlushMappedBufferRange; static PFN_glFlushMappedNamedBufferRange pglFlushMappedNamedBufferRange; static PFN_glGenBuffers pglGenBuffers; +static PFN_glGetStringi pglGetStringi; static PFN_glIsSync pglIsSync; -static PFN_glFenceSync pglFenceSync; static PFN_glMapBuffer pglMapBuffer; static PFN_glMapBufferRange pglMapBufferRange; static PFN_glMapNamedBuffer pglMapNamedBuffer; @@ -197,11 +205,12 @@ static void init_functions(void) GET_PROC(glCreateBuffers) GET_PROC(glDeleteBuffers) GET_PROC(glDeleteSync) + GET_PROC(glFenceSync) GET_PROC(glFlushMappedBufferRange) GET_PROC(glFlushMappedNamedBufferRange) GET_PROC(glGenBuffers) + GET_PROC(glGetStringi) GET_PROC(glIsSync) - GET_PROC(glFenceSync) GET_PROC(glMapBuffer) GET_PROC(glMapBufferRange) GET_PROC(glMapNamedBuffer) @@ -2388,6 +2397,8 @@ static void test_opengl3(HDC hdc) { int attribs[] = {WGL_CONTEXT_MAJOR_VERSION_ARB, 3, WGL_CONTEXT_MINOR_VERSION_ARB, 0, 0}; HGLRC gl3Ctx = pwglCreateContextAttribsARB(hdc, 0, attribs); + const GLubyte *ext; + GLint num; if(gl3Ctx == NULL) { @@ -2395,6 +2406,18 @@ static void test_opengl3(HDC hdc) return; } + wglMakeCurrent(hdc, gl3Ctx); + + glGetIntegerv(GL_NUM_EXTENSIONS, &num); + ok(num > 0, "got %u\n", num); + check_gl_error(0); + ext = pglGetStringi(GL_EXTENSIONS, 0); + ok(!!ext, "got %p\n", ext); + check_gl_error(0); + ext = pglGetStringi(GL_EXTENSIONS, num); + ok(!ext, "got %p\n", ext); + check_gl_error(GL_INVALID_VALUE); + wglDeleteContext(gl3Ctx); } @@ -3535,13 +3558,6 @@ static void test_child_window(HWND hwnd, PIXELFORMATDESCRIPTOR *pfd) DestroyWindow(child); } -#define check_gl_error(exp) check_gl_error_(__LINE__, exp) -static void check_gl_error_( unsigned int line, GLenum exp ) -{ - GLenum err = glGetError(); - ok_(__FILE__,line)( err == exp, "glGetError returned %x, expected %x\n", err, exp ); -} - static void test_gl_error( HDC hdc ) { HGLRC rc, old_rc; diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index ae6dd237e75..f7656b811d4 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -12316,7 +12316,7 @@ static NTSTATUS ext_glGetStringi( void *args ) struct glGetStringi_params *params = args; const struct opengl_funcs *funcs = params->teb->glTable; if (!funcs->p_glGetStringi) return STATUS_NOT_IMPLEMENTED; - params->ret = wrap_glGetStringi( params->teb, params->name, params->index ); + params->ret = funcs->p_glGetStringi( params->name, params->index ); return STATUS_SUCCESS; } @@ -55047,7 +55047,7 @@ static NTSTATUS wow64_ext_glGetStringi( void *args ) const GLubyte *ret; const struct opengl_funcs *funcs = teb->glTable; if (!funcs->p_glGetStringi) return STATUS_NOT_IMPLEMENTED; - ret = wrap_glGetStringi( teb, params->name, params->index ); + ret = funcs->p_glGetStringi( params->name, params->index ); return return_wow64_string( ret, ¶ms->ret ); } diff --git a/dlls/opengl32/unix_thunks.h b/dlls/opengl32/unix_thunks.h index 2c0824e0268..a86626520f4 100644 --- a/dlls/opengl32/unix_thunks.h +++ b/dlls/opengl32/unix_thunks.h @@ -34,7 +34,6 @@ extern void wrap_glFramebufferDrawBuffersEXT( TEB *teb, GLuint framebuffer, GLsi extern void wrap_glFramebufferReadBufferEXT( TEB *teb, GLuint framebuffer, GLenum mode ); extern void wrap_glGetFramebufferParameterivEXT( TEB *teb, GLuint framebuffer, GLenum pname, GLint *params ); extern void wrap_glGetInteger64v( TEB *teb, GLenum pname, GLint64 *data ); -extern const GLubyte *wrap_glGetStringi( TEB *teb, GLenum name, GLuint index ); extern void wrap_glGetUnsignedBytevEXT( TEB *teb, GLenum pname, GLubyte *data ); extern GLsync wrap_glImportSyncEXT( TEB *teb, GLenum external_sync_type, GLintptr external_sync, GLbitfield flags, GLsync handle ); extern void wrap_glNamedFramebufferDrawBuffer( TEB *teb, GLuint framebuffer, GLenum buf ); diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 9563d87e157..de95adf3a9d 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -653,61 +653,6 @@ static BOOL is_extension_supported( struct context *ctx, const char *extension ) sizeof(ctx->extension_array[0]), string_array_cmp ) != NULL; } -static char *append_extension( char *ptr, const char *name ) -{ - size_t size = strlen( name ); - memcpy( ptr, name, size ); - ptr += size; - *ptr++ = ' '; - return ptr; -} - -/* build the extension string by filtering out the disabled extensions */ -static GLubyte *filter_extensions( struct context *ctx, const char *extensions, const struct opengl_funcs *funcs ) -{ - const char *end, **extra; - size_t size; - char *p, *str; - - size = strlen( extensions ) + 2; - if (funcs->p_glImportMemoryWin32HandleEXT) size += strlen( "GL_EXT_memory_object_win32" ) + 1; - if (funcs->p_glImportSemaphoreWin32HandleEXT) size += strlen( "GL_EXT_semaphore_win32" ) + 1; - for (extra = legacy_extensions; *extra; extra++) size += strlen( *extra ) + 1; - if (!(p = str = malloc( size ))) return NULL; - - TRACE( "GL_EXTENSIONS:\n" ); - - for (;;) - { - while (*extensions == ' ') extensions++; - if (!*extensions) break; - - if (!(end = strchr( extensions, ' ' ))) end = extensions + strlen( extensions ); - memcpy( p, extensions, end - extensions ); - p[end - extensions] = 0; - - if (is_extension_supported( ctx, p )) - { - TRACE( "++ %s\n", p ); - p += end - extensions; - *p++ = ' '; - } - else - { - TRACE( "-- %s (disabled in context)\n", p ); - } - extensions = end; - } - - if (funcs->p_glImportMemoryWin32HandleEXT) p = append_extension( p, "GL_EXT_memory_object_win32" ); - if (funcs->p_glImportSemaphoreWin32HandleEXT) p = append_extension( p, "GL_EXT_semaphore_win32" ); - for (extra = legacy_extensions; *extra; extra++) p = append_extension( p, *extra ); - - if (p != str) --p; - *p = 0; - return (GLubyte *)str; -} - /* Check if any GL extension from the list is supported */ static BOOL is_any_extension_supported( struct context *ctx, const char *extension ) { @@ -809,9 +754,6 @@ static BOOL get_integer( TEB *teb, GLenum pname, GLint *data ) switch (pname) { - case GL_NUM_EXTENSIONS: - *data = ctx->extension_count; - return TRUE; case GL_DRAW_FRAMEBUFFER_BINDING: if (!draw->draw_fbo) break; *data = ctx->draw_fbo; @@ -860,12 +802,6 @@ const GLubyte *wrap_glGetString( TEB *teb, GLenum name ) const char *renderer = funcs->p_wglQueryCurrentRendererStringWINE( WGL_RENDERER_DEVICE_ID_WINE ); return renderer ? (const GLubyte *)renderer : ret; } - if (name == GL_EXTENSIONS) - { - struct context *ctx = get_current_context( teb, NULL, NULL ); - GLubyte **extensions = &ctx->extensions; - if (*extensions || (*extensions = filter_extensions( ctx, (const char *)ret, funcs ))) return *extensions; - } else if (name == GL_VERSION) { struct context *ctx = get_current_context( teb, NULL, NULL ); @@ -876,20 +812,6 @@ const GLubyte *wrap_glGetString( TEB *teb, GLenum name ) return ret; } -const GLubyte *wrap_glGetStringi( TEB *teb, GLenum name, GLuint index ) -{ - const struct opengl_funcs *funcs = teb->glTable; - - if (name == GL_EXTENSIONS) - { - struct context *ctx = get_current_context( teb, NULL, NULL ); - if (index < ctx->extension_count) return (const GLubyte *)ctx->extension_array[index]; - index = -1; - } - - return funcs->p_glGetStringi( name, index ); -} - static int registry_entry_cmp( const void *a, const void *b ) { const struct registry_entry *entry_a = a, *entry_b = b; @@ -1236,6 +1158,7 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD DWORD tid = HandleToULong(teb->ClientId.UniqueThread); size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; const char *version, *rest = "", **extensions; + USHORT *ptr; int i, j; static const char *disabled, *enabled; @@ -1372,7 +1295,12 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD ctx->extension_count = j; } - if (TRACE_ON(opengl)) for (i = 0; i < count; i++) TRACE( "++ %s\n", extensions[i] ); + dump_extensions( "Client", client->extensions ); + + ptr = client->compat_extensions; + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + if (client->extensions[*ext]) *ptr++ = *ext; + *ptr = GL_EXTENSION_COUNT; } BOOL wrap_wglMakeCurrent( TEB *teb, HDC hdc, HGLRC client_context ) diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c index aa2ca8da2d6..3112e5fae1c 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c @@ -277,6 +277,7 @@ struct context { struct opengl_client_context base; struct handle_table syncs; + char *extensions; }; static struct context *context_from_opengl_client_context( struct opengl_client_context *base ) @@ -322,6 +323,7 @@ static void free_client_context( struct handle_entry *ptr ) { struct context *context = context_from_opengl_client_context( ptr->context ); free_handle( &contexts, ptr ); + free( context->extensions ); free( context ); } @@ -1992,6 +1994,29 @@ GLsync WINAPI glImportSyncEXT( GLenum external_sync_type, GLintptr external_sync return NULL; } +static const enum opengl_extension legacy_extensions[] = +{ + WGL_EXT_extensions_string, + WGL_EXT_swap_control, +}; + +static const char *enum_gl_extensions( struct context *ctx, UINT index, GLint *ret ) +{ + UINT count = 0; + for (enum opengl_extension ext = 0; ext < ARRAY_SIZE(all_extensions); ext++) + { + if (strncmp( all_extensions[ext].name, "GL_", 3 )) continue; + if (ctx->base.extensions[ext] && count++ == index) return all_extensions[ext].name; + } + for (UINT i = 0; i < ARRAY_SIZE(legacy_extensions); i++) + { + enum opengl_extension ext = legacy_extensions[i]; + if (ctx->base.extensions[ext] && count++ == index) return all_extensions[ext].name; + } + if (ret) *ret = count; + return NULL; +} + static BOOL get_integer( struct context *ctx, GLenum name, GLint *data ) { switch (name) @@ -2002,6 +2027,9 @@ static BOOL get_integer( struct context *ctx, GLenum name, GLint *data ) case GL_MINOR_VERSION: *data = ctx->base.minor_version; return TRUE; + case GL_NUM_EXTENSIONS: + enum_gl_extensions( ctx, -1, data ); + return TRUE; } return FALSE; @@ -2019,9 +2047,21 @@ const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) #ifndef _WIN64 GLubyte *wow64_str = NULL; #endif + struct context *ctx; + const char *str; TRACE( "name %d, index %d\n", name, index ); + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return NULL; + + switch (name) + { + case GL_EXTENSIONS: + if ((str = enum_gl_extensions( ctx, index, NULL ))) return (const GLubyte *)str; + set_gl_error( GL_INVALID_VALUE ); + return NULL; + } + #ifndef _WIN64 if (UNIX_CALL( glGetStringi, &args ) == STATUS_BUFFER_TOO_SMALL) args.ret = wow64_str = malloc( (size_t)args.ret ); #endif @@ -2039,6 +2079,7 @@ const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) const GLubyte * WINAPI glGetString( GLenum name ) { struct glGetString_params args = { .teb = NtCurrentTeb(), .name = name }; + struct context *ctx; NTSTATUS status; #ifndef _WIN64 GLubyte *wow64_str = NULL; @@ -2046,6 +2087,40 @@ const GLubyte * WINAPI glGetString( GLenum name ) TRACE( "name %d\n", name ); + if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return NULL; + + switch (name) + { + case GL_EXTENSIONS: + if (*ctx->base.compat_extensions == GL_EXTENSION_COUNT) + { + set_gl_error( GL_INVALID_ENUM ); + return NULL; + } + if (!ctx->extensions) + { + const USHORT *indexes = ctx->base.compat_extensions; + UINT size = 0; + char *ptr; + + for (UINT i = 0; indexes[i] != GL_EXTENSION_COUNT; i++) size += all_extensions[indexes[i]].len + 1; + if (ctx->base.extensions[GL_EXT_memory_object_win32]) size += strlen( "GL_EXT_memory_object_win32 " ); + if (ctx->base.extensions[GL_EXT_semaphore_win32]) size += strlen( "GL_EXT_semaphore_win32 " ); + if (ctx->base.extensions[WGL_EXT_extensions_string]) size += strlen( "WGL_EXT_extensions_string " ); + if (ctx->base.extensions[WGL_EXT_swap_control]) size += strlen( "WGL_EXT_swap_control " ); + if (!(ptr = ctx->extensions = malloc( size ))) return NULL; + + for (UINT i = 0; indexes[i] != GL_EXTENSION_COUNT; i++) ptr += sprintf( ptr, "%s ", all_extensions[indexes[i]].name ); + if (ctx->base.extensions[GL_EXT_memory_object_win32]) ptr += sprintf( ptr, "GL_EXT_memory_object_win32 " ); + if (ctx->base.extensions[GL_EXT_semaphore_win32]) ptr += sprintf( ptr, "GL_EXT_semaphore_win32 " ); + if (ctx->base.extensions[WGL_EXT_extensions_string]) ptr += sprintf( ptr, "WGL_EXT_extensions_string " ); + if (ctx->base.extensions[WGL_EXT_swap_control]) ptr += sprintf( ptr, "WGL_EXT_swap_control " ); + if (ptr != ctx->extensions) ptr[-1] = 0; + } + + return (const GLubyte *)ctx->extensions; + } + #ifndef _WIN64 if (UNIX_CALL( glGetString, &args ) == STATUS_BUFFER_TOO_SMALL) args.ret = wow64_str = malloc( (size_t)args.ret ); #endif diff --git a/include/wine/opengl_driver.h b/include/wine/opengl_driver.h index e6616c47224..7702268e2cf 100644 --- a/include/wine/opengl_driver.h +++ b/include/wine/opengl_driver.h @@ -77,9 +77,11 @@ struct opengl_client_context int major_version; int minor_version; BOOLEAN extensions[GL_EXTENSION_COUNT]; /* exposed client extensions */ + UINT16 compat_extensions[GL_EXTENSION_COUNT]; /* compat extension indexes */ }; /* make sure client context size stays small */ +C_ASSERT( ARRAY_SIZE(((struct opengl_client_context *)0)->compat_extensions) <= 0x10000 ); C_ASSERT( sizeof(struct opengl_client_context) <= 0x1000 ); static inline struct opengl_client_context *opengl_client_context_from_client( HGLRC client_context ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/unix_wgl.c | 37 ++++++++++--------------------------- dlls/win32u/opengl.c | 18 +----------------- 2 files changed, 11 insertions(+), 44 deletions(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index de95adf3a9d..790302b533c 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -840,17 +840,17 @@ PROC wrap_wglGetProcAddress( TEB *teb, LPCSTR name ) return (void *)-1; } + if (strncmp( name, "wgl", 3) && !is_any_extension_supported( ctx, found->extension )) + { + WARN( "Extension %s required for %s not supported\n", found->extension, name ); + return (void *)-1; + } + func_ptr = (const void **)((char *)funcs + found->offset); if (!*func_ptr) { void *driver_func = funcs->p_wglGetProcAddress( name ); - if (!is_any_extension_supported( ctx, found->extension )) - { - WARN( "Extension %s required for %s not supported\n", found->extension, name ); - return (void *)-1; - } - if (driver_func == NULL) { WARN( "Function %s not supported by driver\n", name ); @@ -936,15 +936,6 @@ static BOOL initialize_vk_device( TEB *teb, struct context *ctx ) } if (!vk_instance) return FALSE; -#define GET_GL_FUNC(name) if (!funcs->p_##name) funcs->p_##name = (void *)funcs->p_wglGetProcAddress( #name ) - GET_GL_FUNC( glBufferStorageMemEXT ); - GET_GL_FUNC( glCreateMemoryObjectsEXT ); - GET_GL_FUNC( glDeleteMemoryObjectsEXT ); - GET_GL_FUNC( glGetUnsignedBytei_vEXT ); - GET_GL_FUNC( glImportMemoryFdEXT ); - GET_GL_FUNC( glNamedBufferStorageMemEXT ); -#undef GET_GL_FUNC - funcs->p_glGetIntegerv( GL_NUM_DEVICE_UUIDS_EXT, &uuid_count ); for (i = 0; i < uuid_count; i++) { @@ -2145,37 +2136,29 @@ NTSTATUS return_wow64_string( const void *str, PTR32 *wow64_str ) static GLint get_buffer_param( TEB *teb, GLenum target, GLenum param ) { const struct opengl_funcs *funcs = teb->glTable; - typeof(*funcs->p_glGetBufferParameteriv) *func; GLint size = 0; - if (!(func = funcs->p_glGetBufferParameteriv)) func = (void *)funcs->p_wglGetProcAddress( "glGetBufferParameteriv" ); - if (func) func( target, param, &size ); + if (funcs->p_glGetBufferParameteriv) funcs->p_glGetBufferParameteriv( target, param, &size ); return size; } static GLint get_named_buffer_param( TEB *teb, GLint buffer, GLenum param ) { const struct opengl_funcs *funcs = teb->glTable; - typeof(*funcs->p_glGetNamedBufferParameteriv) *func; GLint size = 0; - if (!(func = funcs->p_glGetNamedBufferParameteriv)) func = (void *)funcs->p_wglGetProcAddress( "glGetNamedBufferParameteriv" ); - if (func) func( buffer, param, &size ); + if (funcs->p_glGetNamedBufferParameteriv) funcs->p_glGetNamedBufferParameteriv( buffer, param, &size ); return size; } static void unmap_buffer( TEB *teb, GLenum target ) { const struct opengl_funcs *funcs = teb->glTable; - typeof(*funcs->p_glUnmapBuffer) *func; - if (!(func = funcs->p_glUnmapBuffer)) func = (void *)funcs->p_wglGetProcAddress( "glUnmapBuffer" ); - if (func) func( target ); + if (funcs->p_glUnmapBuffer) funcs->p_glUnmapBuffer( target ); } static void unmap_named_buffer( TEB *teb, GLint buffer ) { const struct opengl_funcs *funcs = teb->glTable; - typeof(*funcs->p_glUnmapNamedBuffer) *func; - if (!(func = funcs->p_glUnmapNamedBuffer)) func = (void *)funcs->p_wglGetProcAddress( "glUnmapNamedBuffer" ); - if (func) func( buffer ); + if (funcs->p_glUnmapNamedBuffer) funcs->p_glUnmapNamedBuffer( buffer ); } static GLuint get_target_name( TEB *teb, GLenum target ) diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index b2ad2c647e7..7bbca1a53fa 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -2682,23 +2682,7 @@ static void display_funcs_init(void) if (!display_funcs.p_##func && !(display_funcs.p_##func = driver_funcs->p_get_proc_address( #func ))) \ WARN( "%s not found.\n", #func ); ALL_GL_FUNCS - USE_GL_FUNC(glBindFramebuffer) - USE_GL_FUNC(glBlitFramebuffer) - USE_GL_FUNC(glCheckNamedFramebufferStatus) - USE_GL_FUNC(glCreateFramebuffers) - USE_GL_FUNC(glCreateRenderbuffers) - USE_GL_FUNC(glDeleteFramebuffers) - USE_GL_FUNC(glDeleteRenderbuffers) - USE_GL_FUNC(glGetNamedFramebufferAttachmentParameteriv) - USE_GL_FUNC(glGetStringi) - USE_GL_FUNC(glGetUnsignedBytei_vEXT) - USE_GL_FUNC(glGetUnsignedBytevEXT) - USE_GL_FUNC(glImportMemoryFdEXT) - USE_GL_FUNC(glImportSemaphoreFdEXT) - USE_GL_FUNC(glNamedFramebufferDrawBuffer) - USE_GL_FUNC(glNamedFramebufferReadBuffer) - USE_GL_FUNC(glNamedFramebufferRenderbuffer) - USE_GL_FUNC(glNamedRenderbufferStorageMultisample) + ALL_GL_EXT_FUNCS #undef USE_GL_FUNC display_funcs.p_wglGetProcAddress = win32u_wglGetProcAddress; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 99 +- dlls/opengl32/private.h | 4 +- dlls/opengl32/thunks.c | 5560 +++++++++++++++++----------------- dlls/opengl32/unix_private.h | 10 - dlls/opengl32/unix_thunks.c | 2791 ----------------- dlls/opengl32/unix_thunks.h | 1 - dlls/opengl32/unix_wgl.c | 216 +- dlls/opengl32/unixlib.h | 10 +- dlls/opengl32/wgl.c | 12 +- dlls/win32u/opengl.c | 24 - 10 files changed, 2877 insertions(+), 5850 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index d9a1228256a..5b335356dec 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -160,6 +160,7 @@ my %manual_win_functions = "wglGetLayerPaletteEntries" => 1, "wglGetPixelFormatAttribfvARB" => 1, "wglGetPixelFormatAttribivARB" => 1, + "wglGetProcAddress" => 1, "wglRealizeLayerPalette" => 1, "wglSetLayerPaletteEntries" => 1, "wglSwapLayerBuffers" => 1, @@ -187,7 +188,6 @@ my %manual_win_thunks = "wglDeleteContext" => 1, "wglDestroyPbufferARB" => 1, "wglGetPixelFormat" => 1, - "wglGetProcAddress" => 1, "wglMakeContextCurrentARB" => 1, "wglMakeCurrent" => 1, "wglQueryCurrentRendererStringWINE" => 1, @@ -230,7 +230,6 @@ my %manual_unix_thunks = "wglCreateContext" => 1, "wglCreateContextAttribsARB" => 1, "wglDeleteContext" => 1, - "wglGetProcAddress" => 1, "wglMakeContextCurrentARB" => 1, "wglMakeCurrent" => 1, "wglShareLists" => 1, @@ -1587,7 +1586,7 @@ print OUT "#include \"winbase.h\"\n"; print OUT "#include \"winternl.h\"\n"; print OUT "#include \"wingdi.h\"\n"; print OUT "#include \"ntuser.h\"\n\n"; -print OUT "#include \"wine/wgl.h\"\n"; +print OUT "#include \"wine/opengl_driver.h\"\n"; print OUT "#include \"wine/unixlib.h\"\n\n"; print OUT "struct process_attach_params\n"; @@ -1672,7 +1671,8 @@ open OUT, ">thunks.c" or die "cannot create thunks.c"; print OUT "/* Automatically generated from http://www.opengl.org/registry files; DO NOT EDIT! */\n\n"; print OUT "#include <stdarg.h>\n"; -print OUT "#include <stddef.h>\n\n"; +print OUT "#include <stddef.h>\n"; +print OUT "#include <stdlib.h>\n\n"; print OUT "#include \"ntstatus.h\"\n"; print OUT "#define WIN32_NO_STATUS\n"; @@ -1715,14 +1715,69 @@ foreach (sort keys %ext_functions) printf OUT "extern %s WINAPI %s(%s);\n", $func_ret, $_, $decl_args; } -print OUT "const void *extension_procs[] =\n"; +print OUT "struct function_entry\n"; +print OUT "{\n"; +print OUT " const char *name;\n"; +print OUT " void *function;\n"; +print OUT " enum opengl_extension supported[4];\n"; +print OUT "};\n"; +print OUT "\n"; +print OUT "static int function_entry_cmp( const void *a, const void *b )\n"; +print OUT "{\n"; +print OUT " const struct function_entry *entry_a = a, *entry_b = b;\n"; +print OUT " return strcmp( entry_a->name, entry_b->name );\n"; +print OUT "};\n"; +print OUT "\n"; +print OUT "static BOOL is_function_supported( const struct function_entry *entry, const struct opengl_client_context *ctx )\n"; print OUT "{\n"; +print OUT " for (const enum opengl_extension *ext = entry->supported; *ext != GL_EXTENSION_COUNT; ext++)\n"; +print OUT " {\n"; +print OUT " if (*ext < GL_EXTENSION_COUNT && ctx->extensions[*ext]) return TRUE;\n"; +print OUT " if (*ext > GL_EXTENSION_COUNT && ctx->major_version > HIWORD(*ext)) return TRUE;\n"; +print OUT " if (*ext > GL_EXTENSION_COUNT && ctx->major_version == HIWORD(*ext) && ctx->minor_version >= LOWORD(*ext)) return TRUE;\n"; +print OUT " }\n"; +print OUT " return FALSE;\n"; +print OUT "}\n"; +print OUT "\n"; +print OUT "void *get_proc_address( const char *name, const struct opengl_client_context *ctx )\n"; +print OUT "{\n"; +print OUT " static const struct function_entry functions[] =\n"; +print OUT " {\n"; foreach (sort keys %ext_functions) { next unless is_exposed_function( $ext_functions{$_} ); - printf OUT " %s,\n", $_; -} -print OUT "};\n"; + my $func = $ext_functions{$_}; + my @checks; + + print OUT " { \"$_\", $_, "; + foreach my $ext (@{$func->[2]}) + { + next unless is_exposed_extension( $ext ); + $ext =~ s/GL_VERSION_(\d+)_(\d+)/MAKELONG($2, $1)/; + push @checks, $ext; + for my $alias (@{$extension_aliases{$ext}}) + { + next unless is_exposed_extension( $alias ); + $alias =~ s/GL_VERSION_(\d+)_(\d+)/MAKELONG($2, $1)/; + push @checks, $alias; + } + } + print OUT "{ " . join(", ", sort @checks) . ", GL_EXTENSION_COUNT } },\n"; +} +print OUT " };\n"; +print OUT " const struct function_entry *found, entry = { .name = name };\n"; +print OUT " if (!(found = bsearch( &entry, functions, ARRAY_SIZE(functions), sizeof(entry), function_entry_cmp )))\n"; +print OUT " {\n"; +print OUT " WARN( \"Function %s unknown\\n\", name );\n"; +print OUT " return NULL;\n"; +print OUT " }\n"; +print OUT " if (!is_function_supported( found, ctx ))\n"; +print OUT " {\n"; +print OUT " WARN( \"Function %s not supported\\n\", name );\n"; +print OUT " return NULL;\n"; +print OUT " }\n"; +print OUT " return found->function;\n"; +print OUT "}\n"; close OUT; @@ -1918,32 +1973,4 @@ foreach (sort keys %norm_functions) print OUT " .p_$_ = null_$_,\n"; } print OUT "};\n"; - -# Then the table giving the string <-> function correspondence */ -my $count = 0; -foreach (keys %ext_functions) -{ - next unless is_exposed_function( $ext_functions{$_} ); - $count += 1; -} -print OUT "\nconst int extension_registry_size = $count;\n"; -print OUT "const struct registry_entry extension_registry[$count] =\n"; -print OUT "{\n"; -foreach (sort keys %ext_functions) -{ - next unless is_exposed_function( $ext_functions{$_} ); - my $func = $ext_functions{$_}; - my @exts; - foreach my $ext (@{$func->[2]}) - { - push @exts, $ext; - foreach my $alias (@{$extension_aliases{$ext}}) - { - push @exts, $alias; - } - } - printf OUT " { \"%s\", \"%s\\0\", offsetof(struct opengl_funcs, p_$_) },\n", $_, join("\\0", sort @exts); -} -print OUT "};\n"; - close OUT; diff --git a/dlls/opengl32/private.h b/dlls/opengl32/private.h index 42298ac9ccc..63821690c52 100644 --- a/dlls/opengl32/private.h +++ b/dlls/opengl32/private.h @@ -27,14 +27,14 @@ #include "winbase.h" #include "winternl.h" #include "wingdi.h" +#include "wine/opengl_driver.h" #include "wine/wgl.h" -extern const void *extension_procs[]; - extern int WINAPI wglDescribePixelFormat( HDC hdc, int ipfd, UINT cjpfd, PIXELFORMATDESCRIPTOR *ppfd ); extern BOOL get_pbuffer_from_handle( HPBUFFERARB handle, HPBUFFERARB *obj ); extern BOOL get_context_from_handle( HGLRC handle, HGLRC *obj ); extern BOOL get_sync_from_handle( GLsync handle, GLsync *obj ); extern void set_gl_error( GLenum error ); +extern void *get_proc_address( const char *name, const struct opengl_client_context *ctx ); #endif /* __WINE_OPENGL32_PRIVATE_H */ diff --git a/dlls/opengl32/thunks.c b/dlls/opengl32/thunks.c index 03f04cca07e..502bf0ebd8a 100644 --- a/dlls/opengl32/thunks.c +++ b/dlls/opengl32/thunks.c @@ -2,6 +2,7 @@ #include <stdarg.h> #include <stddef.h> +#include <stdlib.h> #include "ntstatus.h" #define WIN32_NO_STATUS @@ -24802,2764 +24803,2803 @@ extern BOOL WINAPI wglGetPixelFormatAttribivARB( HDC hdc, int iPixelFormat, int extern BOOL WINAPI wglMakeContextCurrentARB( HDC hDrawDC, HDC hReadDC, HGLRC hglrc ); extern const GLchar * WINAPI wglQueryCurrentRendererStringWINE( GLenum attribute ); extern const GLchar * WINAPI wglQueryRendererStringWINE( HDC dc, GLint renderer, GLenum attribute ); -const void *extension_procs[] = -{ - glAccumxOES, - glAcquireKeyedMutexWin32EXT, - glActiveProgramEXT, - glActiveShaderProgram, - glActiveStencilFaceEXT, - glActiveTexture, - glActiveTextureARB, - glActiveVaryingNV, - glAlphaFragmentOp1ATI, - glAlphaFragmentOp2ATI, - glAlphaFragmentOp3ATI, - glAlphaFuncx, - glAlphaFuncxOES, - glAlphaToCoverageDitherControlNV, - glApplyFramebufferAttachmentCMAAINTEL, - glApplyTextureEXT, - glAreProgramsResidentNV, - glAreTexturesResidentEXT, - glArrayElementEXT, - glArrayObjectATI, - glAsyncCopyBufferSubDataNVX, - glAsyncCopyImageSubDataNVX, - glAsyncMarkerSGIX, - glAttachObjectARB, - glAttachShader, - glBeginConditionalRender, - glBeginConditionalRenderNV, - glBeginConditionalRenderNVX, - glBeginFragmentShaderATI, - glBeginOcclusionQueryNV, - glBeginPerfMonitorAMD, - glBeginPerfQueryINTEL, - glBeginQuery, - glBeginQueryARB, - glBeginQueryIndexed, - glBeginTransformFeedback, - glBeginTransformFeedbackEXT, - glBeginTransformFeedbackNV, - glBeginVertexShaderEXT, - glBeginVideoCaptureNV, - glBindAttribLocation, - glBindAttribLocationARB, - glBindBuffer, - glBindBufferARB, - glBindBufferBase, - glBindBufferBaseEXT, - glBindBufferBaseNV, - glBindBufferOffsetEXT, - glBindBufferOffsetNV, - glBindBufferRange, - glBindBufferRangeEXT, - glBindBufferRangeNV, - glBindBuffersBase, - glBindBuffersRange, - glBindFragDataLocation, - glBindFragDataLocationEXT, - glBindFragDataLocationIndexed, - glBindFragmentShaderATI, - glBindFramebuffer, - glBindFramebufferEXT, - glBindImageTexture, - glBindImageTextureEXT, - glBindImageTextures, - glBindLightParameterEXT, - glBindMaterialParameterEXT, - glBindMultiTextureEXT, - glBindParameterEXT, - glBindProgramARB, - glBindProgramNV, - glBindProgramPipeline, - glBindRenderbuffer, - glBindRenderbufferEXT, - glBindSampler, - glBindSamplers, - glBindShadingRateImageNV, - glBindTexGenParameterEXT, - glBindTextureEXT, - glBindTextureUnit, - glBindTextureUnitParameterEXT, - glBindTextures, - glBindTransformFeedback, - glBindTransformFeedbackNV, - glBindVertexArray, - glBindVertexArrayAPPLE, - glBindVertexBuffer, - glBindVertexBuffers, - glBindVertexShaderEXT, - glBindVideoCaptureStreamBufferNV, - glBindVideoCaptureStreamTextureNV, - glBinormal3bEXT, - glBinormal3bvEXT, - glBinormal3dEXT, - glBinormal3dvEXT, - glBinormal3fEXT, - glBinormal3fvEXT, - glBinormal3iEXT, - glBinormal3ivEXT, - glBinormal3sEXT, - glBinormal3svEXT, - glBinormalPointerEXT, - glBitmapxOES, - glBlendBarrier, - glBlendBarrierKHR, - glBlendBarrierNV, - glBlendColor, - glBlendColorEXT, - glBlendColorxOES, - glBlendEquation, - glBlendEquationEXT, - glBlendEquationIndexedAMD, - glBlendEquationSeparate, - glBlendEquationSeparateEXT, - glBlendEquationSeparateIndexedAMD, - glBlendEquationSeparatei, - glBlendEquationSeparateiARB, - glBlendEquationi, - glBlendEquationiARB, - glBlendFuncIndexedAMD, - glBlendFuncSeparate, - glBlendFuncSeparateEXT, - glBlendFuncSeparateINGR, - glBlendFuncSeparateIndexedAMD, - glBlendFuncSeparatei, - glBlendFuncSeparateiARB, - glBlendFunci, - glBlendFunciARB, - glBlendParameteriNV, - glBlitFramebuffer, - glBlitFramebufferEXT, - glBlitFramebufferLayerEXT, - glBlitFramebufferLayersEXT, - glBlitNamedFramebuffer, - glBufferAddressRangeNV, - glBufferAttachMemoryNV, - glBufferData, - glBufferDataARB, - glBufferPageCommitmentARB, - glBufferPageCommitmentMemNV, - glBufferParameteriAPPLE, - glBufferRegionEnabled, - glBufferStorage, - glBufferStorageExternalEXT, - glBufferStorageMemEXT, - glBufferSubData, - glBufferSubDataARB, - glCallCommandListNV, - glCheckFramebufferStatus, - glCheckFramebufferStatusEXT, - glCheckNamedFramebufferStatus, - glCheckNamedFramebufferStatusEXT, - glClampColor, - glClampColorARB, - glClearAccumxOES, - glClearBufferData, - glClearBufferSubData, - glClearBufferfi, - glClearBufferfv, - glClearBufferiv, - glClearBufferuiv, - glClearColorIiEXT, - glClearColorIuiEXT, - glClearColorx, - glClearColorxOES, - glClearDepthdNV, - glClearDepthf, - glClearDepthfOES, - glClearDepthx, - glClearDepthxOES, - glClearNamedBufferData, - glClearNamedBufferDataEXT, - glClearNamedBufferSubData, - glClearNamedBufferSubDataEXT, - glClearNamedFramebufferfi, - glClearNamedFramebufferfv, - glClearNamedFramebufferiv, - glClearNamedFramebufferuiv, - glClearTexImage, - glClearTexSubImage, - glClientActiveTexture, - glClientActiveTextureARB, - glClientActiveVertexStreamATI, - glClientAttribDefaultEXT, - glClientWaitSemaphoreui64NVX, - glClientWaitSync, - glClipControl, - glClipPlanef, - glClipPlanefOES, - glClipPlanex, - glClipPlanexOES, - glColor3fVertex3fSUN, - glColor3fVertex3fvSUN, - glColor3hNV, - glColor3hvNV, - glColor3xOES, - glColor3xvOES, - glColor4fNormal3fVertex3fSUN, - glColor4fNormal3fVertex3fvSUN, - glColor4hNV, - glColor4hvNV, - glColor4ubVertex2fSUN, - glColor4ubVertex2fvSUN, - glColor4ubVertex3fSUN, - glColor4ubVertex3fvSUN, - glColor4x, - glColor4xOES, - glColor4xvOES, - glColorFormatNV, - glColorFragmentOp1ATI, - glColorFragmentOp2ATI, - glColorFragmentOp3ATI, - glColorMaskIndexedEXT, - glColorMaski, - glColorP3ui, - glColorP3uiv, - glColorP4ui, - glColorP4uiv, - glColorPointerEXT, - glColorPointerListIBM, - glColorPointervINTEL, - glColorSubTable, - glColorSubTableEXT, - glColorTable, - glColorTableEXT, - glColorTableParameterfv, - glColorTableParameterfvSGI, - glColorTableParameteriv, - glColorTableParameterivSGI, - glColorTableSGI, - glCombinerInputNV, - glCombinerOutputNV, - glCombinerParameterfNV, - glCombinerParameterfvNV, - glCombinerParameteriNV, - glCombinerParameterivNV, - glCombinerStageParameterfvNV, - glCommandListSegmentsNV, - glCompileCommandListNV, - glCompileShader, - glCompileShaderARB, - glCompileShaderIncludeARB, - glCompressedMultiTexImage1DEXT, - glCompressedMultiTexImage2DEXT, - glCompressedMultiTexImage3DEXT, - glCompressedMultiTexSubImage1DEXT, - glCompressedMultiTexSubImage2DEXT, - glCompressedMultiTexSubImage3DEXT, - glCompressedTexImage1D, - glCompressedTexImage1DARB, - glCompressedTexImage2D, - glCompressedTexImage2DARB, - glCompressedTexImage3D, - glCompressedTexImage3DARB, - glCompressedTexSubImage1D, - glCompressedTexSubImage1DARB, - glCompressedTexSubImage2D, - glCompressedTexSubImage2DARB, - glCompressedTexSubImage3D, - glCompressedTexSubImage3DARB, - glCompressedTextureImage1DEXT, - glCompressedTextureImage2DEXT, - glCompressedTextureImage3DEXT, - glCompressedTextureSubImage1D, - glCompressedTextureSubImage1DEXT, - glCompressedTextureSubImage2D, - glCompressedTextureSubImage2DEXT, - glCompressedTextureSubImage3D, - glCompressedTextureSubImage3DEXT, - glConservativeRasterParameterfNV, - glConservativeRasterParameteriNV, - glConvolutionFilter1D, - glConvolutionFilter1DEXT, - glConvolutionFilter2D, - glConvolutionFilter2DEXT, - glConvolutionParameterf, - glConvolutionParameterfEXT, - glConvolutionParameterfv, - glConvolutionParameterfvEXT, - glConvolutionParameteri, - glConvolutionParameteriEXT, - glConvolutionParameteriv, - glConvolutionParameterivEXT, - glConvolutionParameterxOES, - glConvolutionParameterxvOES, - glCopyBufferSubData, - glCopyColorSubTable, - glCopyColorSubTableEXT, - glCopyColorTable, - glCopyColorTableSGI, - glCopyConvolutionFilter1D, - glCopyConvolutionFilter1DEXT, - glCopyConvolutionFilter2D, - glCopyConvolutionFilter2DEXT, - glCopyImageSubData, - glCopyImageSubDataNV, - glCopyMultiTexImage1DEXT, - glCopyMultiTexImage2DEXT, - glCopyMultiTexSubImage1DEXT, - glCopyMultiTexSubImage2DEXT, - glCopyMultiTexSubImage3DEXT, - glCopyNamedBufferSubData, - glCopyPathNV, - glCopyTexImage1DEXT, - glCopyTexImage2DEXT, - glCopyTexSubImage1DEXT, - glCopyTexSubImage2DEXT, - glCopyTexSubImage3D, - glCopyTexSubImage3DEXT, - glCopyTextureImage1DEXT, - glCopyTextureImage2DEXT, - glCopyTextureSubImage1D, - glCopyTextureSubImage1DEXT, - glCopyTextureSubImage2D, - glCopyTextureSubImage2DEXT, - glCopyTextureSubImage3D, - glCopyTextureSubImage3DEXT, - glCoverFillPathInstancedNV, - glCoverFillPathNV, - glCoverStrokePathInstancedNV, - glCoverStrokePathNV, - glCoverageModulationNV, - glCoverageModulationTableNV, - glCreateBuffers, - glCreateCommandListsNV, - glCreateFramebuffers, - glCreateMemoryObjectsEXT, - glCreatePerfQueryINTEL, - glCreateProgram, - glCreateProgramObjectARB, - glCreateProgramPipelines, - glCreateProgressFenceNVX, - glCreateQueries, - glCreateRenderbuffers, - glCreateSamplers, - glCreateSemaphoresNV, - glCreateShader, - glCreateShaderObjectARB, - glCreateShaderProgramEXT, - glCreateShaderProgramv, - glCreateStatesNV, - glCreateSyncFromCLeventARB, - glCreateTextures, - glCreateTransformFeedbacks, - glCreateVertexArrays, - glCullParameterdvEXT, - glCullParameterfvEXT, - glCurrentPaletteMatrixARB, - glDebugMessageCallback, - glDebugMessageCallbackAMD, - glDebugMessageCallbackARB, - glDebugMessageControl, - glDebugMessageControlARB, - glDebugMessageEnableAMD, - glDebugMessageInsert, - glDebugMessageInsertAMD, - glDebugMessageInsertARB, - glDeformSGIX, - glDeformationMap3dSGIX, - glDeformationMap3fSGIX, - glDeleteAsyncMarkersSGIX, - glDeleteBufferRegion, - glDeleteBuffers, - glDeleteBuffersARB, - glDeleteCommandListsNV, - glDeleteFencesAPPLE, - glDeleteFencesNV, - glDeleteFragmentShaderATI, - glDeleteFramebuffers, - glDeleteFramebuffersEXT, - glDeleteMemoryObjectsEXT, - glDeleteNamedStringARB, - glDeleteNamesAMD, - glDeleteObjectARB, - glDeleteObjectBufferATI, - glDeleteOcclusionQueriesNV, - glDeletePathsNV, - glDeletePerfMonitorsAMD, - glDeletePerfQueryINTEL, - glDeleteProgram, - glDeleteProgramPipelines, - glDeleteProgramsARB, - glDeleteProgramsNV, - glDeleteQueries, - glDeleteQueriesARB, - glDeleteQueryResourceTagNV, - glDeleteRenderbuffers, - glDeleteRenderbuffersEXT, - glDeleteSamplers, - glDeleteSemaphoresEXT, - glDeleteShader, - glDeleteStatesNV, - glDeleteSync, - glDeleteTexturesEXT, - glDeleteTransformFeedbacks, - glDeleteTransformFeedbacksNV, - glDeleteVertexArrays, - glDeleteVertexArraysAPPLE, - glDeleteVertexShaderEXT, - glDepthBoundsEXT, - glDepthBoundsdNV, - glDepthRangeArraydvNV, - glDepthRangeArrayv, - glDepthRangeIndexed, - glDepthRangeIndexeddNV, - glDepthRangedNV, - glDepthRangef, - glDepthRangefOES, - glDepthRangex, - glDepthRangexOES, - glDetachObjectARB, - glDetachShader, - glDetailTexFuncSGIS, - glDisableClientStateIndexedEXT, - glDisableClientStateiEXT, - glDisableIndexedEXT, - glDisableVariantClientStateEXT, - glDisableVertexArrayAttrib, - glDisableVertexArrayAttribEXT, - glDisableVertexArrayEXT, - glDisableVertexAttribAPPLE, - glDisableVertexAttribArray, - glDisableVertexAttribArrayARB, - glDisablei, - glDispatchCompute, - glDispatchComputeGroupSizeARB, - glDispatchComputeIndirect, - glDrawArraysEXT, - glDrawArraysIndirect, - glDrawArraysInstanced, - glDrawArraysInstancedARB, - glDrawArraysInstancedBaseInstance, - glDrawArraysInstancedEXT, - glDrawBufferRegion, - glDrawBuffers, - glDrawBuffersARB, - glDrawBuffersATI, - glDrawCommandsAddressNV, - glDrawCommandsNV, - glDrawCommandsStatesAddressNV, - glDrawCommandsStatesNV, - glDrawElementArrayAPPLE, - glDrawElementArrayATI, - glDrawElementsBaseVertex, - glDrawElementsIndirect, - glDrawElementsInstanced, - glDrawElementsInstancedARB, - glDrawElementsInstancedBaseInstance, - glDrawElementsInstancedBaseVertex, - glDrawElementsInstancedBaseVertexBaseInstance, - glDrawElementsInstancedEXT, - glDrawMeshArraysSUN, - glDrawMeshTasksEXT, - glDrawMeshTasksIndirectEXT, - glDrawMeshTasksIndirectNV, - glDrawMeshTasksNV, - glDrawRangeElementArrayAPPLE, - glDrawRangeElementArrayATI, - glDrawRangeElements, - glDrawRangeElementsBaseVertex, - glDrawRangeElementsEXT, - glDrawTextureNV, - glDrawTransformFeedback, - glDrawTransformFeedbackInstanced, - glDrawTransformFeedbackNV, - glDrawTransformFeedbackStream, - glDrawTransformFeedbackStreamInstanced, - glDrawVkImageNV, - glEGLImageTargetTexStorageEXT, - glEGLImageTargetTextureStorageEXT, - glEdgeFlagFormatNV, - glEdgeFlagPointerEXT, - glEdgeFlagPointerListIBM, - glElementPointerAPPLE, - glElementPointerATI, - glEnableClientStateIndexedEXT, - glEnableClientStateiEXT, - glEnableIndexedEXT, - glEnableVariantClientStateEXT, - glEnableVertexArrayAttrib, - glEnableVertexArrayAttribEXT, - glEnableVertexArrayEXT, - glEnableVertexAttribAPPLE, - glEnableVertexAttribArray, - glEnableVertexAttribArrayARB, - glEnablei, - glEndConditionalRender, - glEndConditionalRenderNV, - glEndConditionalRenderNVX, - glEndFragmentShaderATI, - glEndOcclusionQueryNV, - glEndPerfMonitorAMD, - glEndPerfQueryINTEL, - glEndQuery, - glEndQueryARB, - glEndQueryIndexed, - glEndTransformFeedback, - glEndTransformFeedbackEXT, - glEndTransformFeedbackNV, - glEndVertexShaderEXT, - glEndVideoCaptureNV, - glEvalCoord1xOES, - glEvalCoord1xvOES, - glEvalCoord2xOES, - glEvalCoord2xvOES, - glEvalMapsNV, - glEvaluateDepthValuesARB, - glExecuteProgramNV, - glExtractComponentEXT, - glFeedbackBufferxOES, - glFenceSync, - glFinalCombinerInputNV, - glFinishAsyncSGIX, - glFinishFenceAPPLE, - glFinishFenceNV, - glFinishObjectAPPLE, - glFinishTextureSUNX, - glFlushMappedBufferRange, - glFlushMappedBufferRangeAPPLE, - glFlushMappedNamedBufferRange, - glFlushMappedNamedBufferRangeEXT, - glFlushPixelDataRangeNV, - glFlushRasterSGIX, - glFlushStaticDataIBM, - glFlushVertexArrayRangeAPPLE, - glFlushVertexArrayRangeNV, - glFogCoordFormatNV, - glFogCoordPointer, - glFogCoordPointerEXT, - glFogCoordPointerListIBM, - glFogCoordd, - glFogCoorddEXT, - glFogCoorddv, - glFogCoorddvEXT, - glFogCoordf, - glFogCoordfEXT, - glFogCoordfv, - glFogCoordfvEXT, - glFogCoordhNV, - glFogCoordhvNV, - glFogFuncSGIS, - glFogx, - glFogxOES, - glFogxv, - glFogxvOES, - glFragmentColorMaterialSGIX, - glFragmentCoverageColorNV, - glFragmentLightModelfSGIX, - glFragmentLightModelfvSGIX, - glFragmentLightModeliSGIX, - glFragmentLightModelivSGIX, - glFragmentLightfSGIX, - glFragmentLightfvSGIX, - glFragmentLightiSGIX, - glFragmentLightivSGIX, - glFragmentMaterialfSGIX, - glFragmentMaterialfvSGIX, - glFragmentMaterialiSGIX, - glFragmentMaterialivSGIX, - glFrameTerminatorGREMEDY, - glFrameZoomSGIX, - glFramebufferDrawBufferEXT, - glFramebufferDrawBuffersEXT, - glFramebufferFetchBarrierEXT, - glFramebufferParameteri, - glFramebufferParameteriMESA, - glFramebufferReadBufferEXT, - glFramebufferRenderbuffer, - glFramebufferRenderbufferEXT, - glFramebufferSampleLocationsfvARB, - glFramebufferSampleLocationsfvNV, - glFramebufferSamplePositionsfvAMD, - glFramebufferShadingRateEXT, - glFramebufferTexture, - glFramebufferTexture1D, - glFramebufferTexture1DEXT, - glFramebufferTexture2D, - glFramebufferTexture2DEXT, - glFramebufferTexture3D, - glFramebufferTexture3DEXT, - glFramebufferTextureARB, - glFramebufferTextureEXT, - glFramebufferTextureFaceARB, - glFramebufferTextureFaceEXT, - glFramebufferTextureLayer, - glFramebufferTextureLayerARB, - glFramebufferTextureLayerEXT, - glFramebufferTextureMultiviewOVR, - glFreeObjectBufferATI, - glFrustumf, - glFrustumfOES, - glFrustumx, - glFrustumxOES, - glGenAsyncMarkersSGIX, - glGenBuffers, - glGenBuffersARB, - glGenFencesAPPLE, - glGenFencesNV, - glGenFragmentShadersATI, - glGenFramebuffers, - glGenFramebuffersEXT, - glGenNamesAMD, - glGenOcclusionQueriesNV, - glGenPathsNV, - glGenPerfMonitorsAMD, - glGenProgramPipelines, - glGenProgramsARB, - glGenProgramsNV, - glGenQueries, - glGenQueriesARB, - glGenQueryResourceTagNV, - glGenRenderbuffers, - glGenRenderbuffersEXT, - glGenSamplers, - glGenSemaphoresEXT, - glGenSymbolsEXT, - glGenTexturesEXT, - glGenTransformFeedbacks, - glGenTransformFeedbacksNV, - glGenVertexArrays, - glGenVertexArraysAPPLE, - glGenVertexShadersEXT, - glGenerateMipmap, - glGenerateMipmapEXT, - glGenerateMultiTexMipmapEXT, - glGenerateTextureMipmap, - glGenerateTextureMipmapEXT, - glGetActiveAtomicCounterBufferiv, - glGetActiveAttrib, - glGetActiveAttribARB, - glGetActiveSubroutineName, - glGetActiveSubroutineUniformName, - glGetActiveSubroutineUniformiv, - glGetActiveUniform, - glGetActiveUniformARB, - glGetActiveUniformBlockName, - glGetActiveUniformBlockiv, - glGetActiveUniformName, - glGetActiveUniformsiv, - glGetActiveVaryingNV, - glGetArrayObjectfvATI, - glGetArrayObjectivATI, - glGetAttachedObjectsARB, - glGetAttachedShaders, - glGetAttribLocation, - glGetAttribLocationARB, - glGetBooleanIndexedvEXT, - glGetBooleani_v, - glGetBufferParameteri64v, - glGetBufferParameteriv, - glGetBufferParameterivARB, - glGetBufferParameterui64vNV, - glGetBufferPointerv, - glGetBufferPointervARB, - glGetBufferSubData, - glGetBufferSubDataARB, - glGetClipPlanef, - glGetClipPlanefOES, - glGetClipPlanex, - glGetClipPlanexOES, - glGetColorTable, - glGetColorTableEXT, - glGetColorTableParameterfv, - glGetColorTableParameterfvEXT, - glGetColorTableParameterfvSGI, - glGetColorTableParameteriv, - glGetColorTableParameterivEXT, - glGetColorTableParameterivSGI, - glGetColorTableSGI, - glGetCombinerInputParameterfvNV, - glGetCombinerInputParameterivNV, - glGetCombinerOutputParameterfvNV, - glGetCombinerOutputParameterivNV, - glGetCombinerStageParameterfvNV, - glGetCommandHeaderNV, - glGetCompressedMultiTexImageEXT, - glGetCompressedTexImage, - glGetCompressedTexImageARB, - glGetCompressedTextureImage, - glGetCompressedTextureImageEXT, - glGetCompressedTextureSubImage, - glGetConvolutionFilter, - glGetConvolutionFilterEXT, - glGetConvolutionParameterfv, - glGetConvolutionParameterfvEXT, - glGetConvolutionParameteriv, - glGetConvolutionParameterivEXT, - glGetConvolutionParameterxvOES, - glGetCoverageModulationTableNV, - glGetDebugMessageLog, - glGetDebugMessageLogAMD, - glGetDebugMessageLogARB, - glGetDetailTexFuncSGIS, - glGetDoubleIndexedvEXT, - glGetDoublei_v, - glGetDoublei_vEXT, - glGetFenceivNV, - glGetFinalCombinerInputParameterfvNV, - glGetFinalCombinerInputParameterivNV, - glGetFirstPerfQueryIdINTEL, - glGetFixedv, - glGetFixedvOES, - glGetFloatIndexedvEXT, - glGetFloati_v, - glGetFloati_vEXT, - glGetFogFuncSGIS, - glGetFragDataIndex, - glGetFragDataLocation, - glGetFragDataLocationEXT, - glGetFragmentLightfvSGIX, - glGetFragmentLightivSGIX, - glGetFragmentMaterialfvSGIX, - glGetFragmentMaterialivSGIX, - glGetFragmentShadingRatesEXT, - glGetFramebufferAttachmentParameteriv, - glGetFramebufferAttachmentParameterivEXT, - glGetFramebufferParameterfvAMD, - glGetFramebufferParameteriv, - glGetFramebufferParameterivEXT, - glGetFramebufferParameterivMESA, - glGetGraphicsResetStatus, - glGetGraphicsResetStatusARB, - glGetHandleARB, - glGetHistogram, - glGetHistogramEXT, - glGetHistogramParameterfv, - glGetHistogramParameterfvEXT, - glGetHistogramParameteriv, - glGetHistogramParameterivEXT, - glGetHistogramParameterxvOES, - glGetImageHandleARB, - glGetImageHandleNV, - glGetImageTransformParameterfvHP, - glGetImageTransformParameterivHP, - glGetInfoLogARB, - glGetInstrumentsSGIX, - glGetInteger64i_v, - glGetInteger64v, - glGetIntegerIndexedvEXT, - glGetIntegeri_v, - glGetIntegerui64i_vNV, - glGetIntegerui64vNV, - glGetInternalformatSampleivNV, - glGetInternalformati64v, - glGetInternalformativ, - glGetInvariantBooleanvEXT, - glGetInvariantFloatvEXT, - glGetInvariantIntegervEXT, - glGetLightxOES, - glGetLightxv, - glGetListParameterfvSGIX, - glGetListParameterivSGIX, - glGetLocalConstantBooleanvEXT, - glGetLocalConstantFloatvEXT, - glGetLocalConstantIntegervEXT, - glGetMapAttribParameterfvNV, - glGetMapAttribParameterivNV, - glGetMapControlPointsNV, - glGetMapParameterfvNV, - glGetMapParameterivNV, - glGetMapxvOES, - glGetMaterialxOES, - glGetMaterialxv, - glGetMemoryObjectDetachedResourcesuivNV, - glGetMemoryObjectParameterivEXT, - glGetMinmax, - glGetMinmaxEXT, - glGetMinmaxParameterfv, - glGetMinmaxParameterfvEXT, - glGetMinmaxParameteriv, - glGetMinmaxParameterivEXT, - glGetMultiTexEnvfvEXT, - glGetMultiTexEnvivEXT, - glGetMultiTexGendvEXT, - glGetMultiTexGenfvEXT, - glGetMultiTexGenivEXT, - glGetMultiTexImageEXT, - glGetMultiTexLevelParameterfvEXT, - glGetMultiTexLevelParameterivEXT, - glGetMultiTexParameterIivEXT, - glGetMultiTexParameterIuivEXT, - glGetMultiTexParameterfvEXT, - glGetMultiTexParameterivEXT, - glGetMultisamplefv, - glGetMultisamplefvNV, - glGetNamedBufferParameteri64v, - glGetNamedBufferParameteriv, - glGetNamedBufferParameterivEXT, - glGetNamedBufferParameterui64vNV, - glGetNamedBufferPointerv, - glGetNamedBufferPointervEXT, - glGetNamedBufferSubData, - glGetNamedBufferSubDataEXT, - glGetNamedFramebufferAttachmentParameteriv, - glGetNamedFramebufferAttachmentParameterivEXT, - glGetNamedFramebufferParameterfvAMD, - glGetNamedFramebufferParameteriv, - glGetNamedFramebufferParameterivEXT, - glGetNamedProgramLocalParameterIivEXT, - glGetNamedProgramLocalParameterIuivEXT, - glGetNamedProgramLocalParameterdvEXT, - glGetNamedProgramLocalParameterfvEXT, - glGetNamedProgramStringEXT, - glGetNamedProgramivEXT, - glGetNamedRenderbufferParameteriv, - glGetNamedRenderbufferParameterivEXT, - glGetNamedStringARB, - glGetNamedStringivARB, - glGetNextPerfQueryIdINTEL, - glGetObjectBufferfvATI, - glGetObjectBufferivATI, - glGetObjectLabel, - glGetObjectLabelEXT, - glGetObjectParameterfvARB, - glGetObjectParameterivAPPLE, - glGetObjectParameterivARB, - glGetObjectPtrLabel, - glGetOcclusionQueryivNV, - glGetOcclusionQueryuivNV, - glGetPathColorGenfvNV, - glGetPathColorGenivNV, - glGetPathCommandsNV, - glGetPathCoordsNV, - glGetPathDashArrayNV, - glGetPathLengthNV, - glGetPathMetricRangeNV, - glGetPathMetricsNV, - glGetPathParameterfvNV, - glGetPathParameterivNV, - glGetPathSpacingNV, - glGetPathTexGenfvNV, - glGetPathTexGenivNV, - glGetPerfCounterInfoINTEL, - glGetPerfMonitorCounterDataAMD, - glGetPerfMonitorCounterInfoAMD, - glGetPerfMonitorCounterStringAMD, - glGetPerfMonitorCountersAMD, - glGetPerfMonitorGroupStringAMD, - glGetPerfMonitorGroupsAMD, - glGetPerfQueryDataINTEL, - glGetPerfQueryIdByNameINTEL, - glGetPerfQueryInfoINTEL, - glGetPixelMapxv, - glGetPixelTexGenParameterfvSGIS, - glGetPixelTexGenParameterivSGIS, - glGetPixelTransformParameterfvEXT, - glGetPixelTransformParameterivEXT, - glGetPointerIndexedvEXT, - glGetPointeri_vEXT, - glGetPointervEXT, - glGetProgramBinary, - glGetProgramEnvParameterIivNV, - glGetProgramEnvParameterIuivNV, - glGetProgramEnvParameterdvARB, - glGetProgramEnvParameterfvARB, - glGetProgramInfoLog, - glGetProgramInterfaceiv, - glGetProgramLocalParameterIivNV, - glGetProgramLocalParameterIuivNV, - glGetProgramLocalParameterdvARB, - glGetProgramLocalParameterfvARB, - glGetProgramNamedParameterdvNV, - glGetProgramNamedParameterfvNV, - glGetProgramParameterdvNV, - glGetProgramParameterfvNV, - glGetProgramPipelineInfoLog, - glGetProgramPipelineiv, - glGetProgramResourceIndex, - glGetProgramResourceLocation, - glGetProgramResourceLocationIndex, - glGetProgramResourceName, - glGetProgramResourcefvNV, - glGetProgramResourceiv, - glGetProgramStageiv, - glGetProgramStringARB, - glGetProgramStringNV, - glGetProgramSubroutineParameteruivNV, - glGetProgramiv, - glGetProgramivARB, - glGetProgramivNV, - glGetQueryBufferObjecti64v, - glGetQueryBufferObjectiv, - glGetQueryBufferObjectui64v, - glGetQueryBufferObjectuiv, - glGetQueryIndexediv, - glGetQueryObjecti64v, - glGetQueryObjecti64vEXT, - glGetQueryObjectiv, - glGetQueryObjectivARB, - glGetQueryObjectui64v, - glGetQueryObjectui64vEXT, - glGetQueryObjectuiv, - glGetQueryObjectuivARB, - glGetQueryiv, - glGetQueryivARB, - glGetRenderbufferParameteriv, - glGetRenderbufferParameterivEXT, - glGetSamplerParameterIiv, - glGetSamplerParameterIuiv, - glGetSamplerParameterfv, - glGetSamplerParameteriv, - glGetSemaphoreParameterivNV, - glGetSemaphoreParameterui64vEXT, - glGetSeparableFilter, - glGetSeparableFilterEXT, - glGetShaderInfoLog, - glGetShaderPrecisionFormat, - glGetShaderSource, - glGetShaderSourceARB, - glGetShaderiv, - glGetShadingRateImagePaletteNV, - glGetShadingRateSampleLocationivNV, - glGetSharpenTexFuncSGIS, - glGetStageIndexNV, - glGetStringi, - glGetSubroutineIndex, - glGetSubroutineUniformLocation, - glGetSynciv, - glGetTexBumpParameterfvATI, - glGetTexBumpParameterivATI, - glGetTexEnvxv, - glGetTexEnvxvOES, - glGetTexFilterFuncSGIS, - glGetTexGenxvOES, - glGetTexLevelParameterxvOES, - glGetTexParameterIiv, - glGetTexParameterIivEXT, - glGetTexParameterIuiv, - glGetTexParameterIuivEXT, - glGetTexParameterPointervAPPLE, - glGetTexParameterxv, - glGetTexParameterxvOES, - glGetTextureHandleARB, - glGetTextureHandleNV, - glGetTextureImage, - glGetTextureImageEXT, - glGetTextureLevelParameterfv, - glGetTextureLevelParameterfvEXT, - glGetTextureLevelParameteriv, - glGetTextureLevelParameterivEXT, - glGetTextureParameterIiv, - glGetTextureParameterIivEXT, - glGetTextureParameterIuiv, - glGetTextureParameterIuivEXT, - glGetTextureParameterfv, - glGetTextureParameterfvEXT, - glGetTextureParameteriv, - glGetTextureParameterivEXT, - glGetTextureSamplerHandleARB, - glGetTextureSamplerHandleNV, - glGetTextureSubImage, - glGetTrackMatrixivNV, - glGetTransformFeedbackVarying, - glGetTransformFeedbackVaryingEXT, - glGetTransformFeedbackVaryingNV, - glGetTransformFeedbacki64_v, - glGetTransformFeedbacki_v, - glGetTransformFeedbackiv, - glGetUniformBlockIndex, - glGetUniformBufferSizeEXT, - glGetUniformIndices, - glGetUniformLocation, - glGetUniformLocationARB, - glGetUniformOffsetEXT, - glGetUniformSubroutineuiv, - glGetUniformdv, - glGetUniformfv, - glGetUniformfvARB, - glGetUniformi64vARB, - glGetUniformi64vNV, - glGetUniformiv, - glGetUniformivARB, - glGetUniformui64vARB, - glGetUniformui64vNV, - glGetUniformuiv, - glGetUniformuivEXT, - glGetUnsignedBytei_vEXT, - glGetUnsignedBytevEXT, - glGetVariantArrayObjectfvATI, - glGetVariantArrayObjectivATI, - glGetVariantBooleanvEXT, - glGetVariantFloatvEXT, - glGetVariantIntegervEXT, - glGetVariantPointervEXT, - glGetVaryingLocationNV, - glGetVertexArrayIndexed64iv, - glGetVertexArrayIndexediv, - glGetVertexArrayIntegeri_vEXT, - glGetVertexArrayIntegervEXT, - glGetVertexArrayPointeri_vEXT, - glGetVertexArrayPointervEXT, - glGetVertexArrayiv, - glGetVertexAttribArrayObjectfvATI, - glGetVertexAttribArrayObjectivATI, - glGetVertexAttribIiv, - glGetVertexAttribIivEXT, - glGetVertexAttribIuiv, - glGetVertexAttribIuivEXT, - glGetVertexAttribLdv, - glGetVertexAttribLdvEXT, - glGetVertexAttribLi64vNV, - glGetVertexAttribLui64vARB, - glGetVertexAttribLui64vNV, - glGetVertexAttribPointerv, - glGetVertexAttribPointervARB, - glGetVertexAttribPointervNV, - glGetVertexAttribdv, - glGetVertexAttribdvARB, - glGetVertexAttribdvNV, - glGetVertexAttribfv, - glGetVertexAttribfvARB, - glGetVertexAttribfvNV, - glGetVertexAttribiv, - glGetVertexAttribivARB, - glGetVertexAttribivNV, - glGetVideoCaptureStreamdvNV, - glGetVideoCaptureStreamfvNV, - glGetVideoCaptureStreamivNV, - glGetVideoCaptureivNV, - glGetVideoi64vNV, - glGetVideoivNV, - glGetVideoui64vNV, - glGetVideouivNV, - glGetVkProcAddrNV, - glGetnColorTable, - glGetnColorTableARB, - glGetnCompressedTexImage, - glGetnCompressedTexImageARB, - glGetnConvolutionFilter, - glGetnConvolutionFilterARB, - glGetnHistogram, - glGetnHistogramARB, - glGetnMapdv, - glGetnMapdvARB, - glGetnMapfv, - glGetnMapfvARB, - glGetnMapiv, - glGetnMapivARB, - glGetnMinmax, - glGetnMinmaxARB, - glGetnPixelMapfv, - glGetnPixelMapfvARB, - glGetnPixelMapuiv, - glGetnPixelMapuivARB, - glGetnPixelMapusv, - glGetnPixelMapusvARB, - glGetnPolygonStipple, - glGetnPolygonStippleARB, - glGetnSeparableFilter, - glGetnSeparableFilterARB, - glGetnTexImage, - glGetnTexImageARB, - glGetnUniformdv, - glGetnUniformdvARB, - glGetnUniformfv, - glGetnUniformfvARB, - glGetnUniformi64vARB, - glGetnUniformiv, - glGetnUniformivARB, - glGetnUniformui64vARB, - glGetnUniformuiv, - glGetnUniformuivARB, - glGlobalAlphaFactorbSUN, - glGlobalAlphaFactordSUN, - glGlobalAlphaFactorfSUN, - glGlobalAlphaFactoriSUN, - glGlobalAlphaFactorsSUN, - glGlobalAlphaFactorubSUN, - glGlobalAlphaFactoruiSUN, - glGlobalAlphaFactorusSUN, - glHintPGI, - glHistogram, - glHistogramEXT, - glIglooInterfaceSGIX, - glImageTransformParameterfHP, - glImageTransformParameterfvHP, - glImageTransformParameteriHP, - glImageTransformParameterivHP, - glImportMemoryWin32HandleEXT, - glImportMemoryWin32NameEXT, - glImportSemaphoreWin32HandleEXT, - glImportSemaphoreWin32NameEXT, - glImportSyncEXT, - glIndexFormatNV, - glIndexFuncEXT, - glIndexMaterialEXT, - glIndexPointerEXT, - glIndexPointerListIBM, - glIndexxOES, - glIndexxvOES, - glInsertComponentEXT, - glInsertEventMarkerEXT, - glInstrumentsBufferSGIX, - glInterpolatePathsNV, - glInvalidateBufferData, - glInvalidateBufferSubData, - glInvalidateFramebuffer, - glInvalidateNamedFramebufferData, - glInvalidateNamedFramebufferSubData, - glInvalidateSubFramebuffer, - glInvalidateTexImage, - glInvalidateTexSubImage, - glIsAsyncMarkerSGIX, - glIsBuffer, - glIsBufferARB, - glIsBufferResidentNV, - glIsCommandListNV, - glIsEnabledIndexedEXT, - glIsEnabledi, - glIsFenceAPPLE, - glIsFenceNV, - glIsFramebuffer, - glIsFramebufferEXT, - glIsImageHandleResidentARB, - glIsImageHandleResidentNV, - glIsMemoryObjectEXT, - glIsNameAMD, - glIsNamedBufferResidentNV, - glIsNamedStringARB, - glIsObjectBufferATI, - glIsOcclusionQueryNV, - glIsPathNV, - glIsPointInFillPathNV, - glIsPointInStrokePathNV, - glIsProgram, - glIsProgramARB, - glIsProgramNV, - glIsProgramPipeline, - glIsQuery, - glIsQueryARB, - glIsRenderbuffer, - glIsRenderbufferEXT, - glIsSampler, - glIsSemaphoreEXT, - glIsShader, - glIsStateNV, - glIsSync, - glIsTextureEXT, - glIsTextureHandleResidentARB, - glIsTextureHandleResidentNV, - glIsTransformFeedback, - glIsTransformFeedbackNV, - glIsVariantEnabledEXT, - glIsVertexArray, - glIsVertexArrayAPPLE, - glIsVertexAttribEnabledAPPLE, - glLGPUCopyImageSubDataNVX, - glLGPUInterlockNVX, - glLGPUNamedBufferSubDataNVX, - glLabelObjectEXT, - glLightEnviSGIX, - glLightModelx, - glLightModelxOES, - glLightModelxv, - glLightModelxvOES, - glLightx, - glLightxOES, - glLightxv, - glLightxvOES, - glLineWidthx, - glLineWidthxOES, - glLinkProgram, - glLinkProgramARB, - glListDrawCommandsStatesClientNV, - glListParameterfSGIX, - glListParameterfvSGIX, - glListParameteriSGIX, - glListParameterivSGIX, - glLoadIdentityDeformationMapSGIX, - glLoadMatrixx, - glLoadMatrixxOES, - glLoadProgramNV, - glLoadTransposeMatrixd, - glLoadTransposeMatrixdARB, - glLoadTransposeMatrixf, - glLoadTransposeMatrixfARB, - glLoadTransposeMatrixxOES, - glLockArraysEXT, - glMTexCoord2fSGIS, - glMTexCoord2fvSGIS, - glMakeBufferNonResidentNV, - glMakeBufferResidentNV, - glMakeImageHandleNonResidentARB, - glMakeImageHandleNonResidentNV, - glMakeImageHandleResidentARB, - glMakeImageHandleResidentNV, - glMakeNamedBufferNonResidentNV, - glMakeNamedBufferResidentNV, - glMakeTextureHandleNonResidentARB, - glMakeTextureHandleNonResidentNV, - glMakeTextureHandleResidentARB, - glMakeTextureHandleResidentNV, - glMap1xOES, - glMap2xOES, - glMapBuffer, - glMapBufferARB, - glMapBufferRange, - glMapControlPointsNV, - glMapGrid1xOES, - glMapGrid2xOES, - glMapNamedBuffer, - glMapNamedBufferEXT, - glMapNamedBufferRange, - glMapNamedBufferRangeEXT, - glMapObjectBufferATI, - glMapParameterfvNV, - glMapParameterivNV, - glMapTexture2DINTEL, - glMapVertexAttrib1dAPPLE, - glMapVertexAttrib1fAPPLE, - glMapVertexAttrib2dAPPLE, - glMapVertexAttrib2fAPPLE, - glMaterialx, - glMaterialxOES, - glMaterialxv, - glMaterialxvOES, - glMatrixFrustumEXT, - glMatrixIndexPointerARB, - glMatrixIndexubvARB, - glMatrixIndexuivARB, - glMatrixIndexusvARB, - glMatrixLoad3x2fNV, - glMatrixLoad3x3fNV, - glMatrixLoadIdentityEXT, - glMatrixLoadTranspose3x3fNV, - glMatrixLoadTransposedEXT, - glMatrixLoadTransposefEXT, - glMatrixLoaddEXT, - glMatrixLoadfEXT, - glMatrixMult3x2fNV, - glMatrixMult3x3fNV, - glMatrixMultTranspose3x3fNV, - glMatrixMultTransposedEXT, - glMatrixMultTransposefEXT, - glMatrixMultdEXT, - glMatrixMultfEXT, - glMatrixOrthoEXT, - glMatrixPopEXT, - glMatrixPushEXT, - glMatrixRotatedEXT, - glMatrixRotatefEXT, - glMatrixScaledEXT, - glMatrixScalefEXT, - glMatrixTranslatedEXT, - glMatrixTranslatefEXT, - glMaxShaderCompilerThreadsARB, - glMaxShaderCompilerThreadsKHR, - glMemoryBarrier, - glMemoryBarrierByRegion, - glMemoryBarrierEXT, - glMemoryObjectParameterivEXT, - glMinSampleShading, - glMinSampleShadingARB, - glMinmax, - glMinmaxEXT, - glMultMatrixx, - glMultMatrixxOES, - glMultTransposeMatrixd, - glMultTransposeMatrixdARB, - glMultTransposeMatrixf, - glMultTransposeMatrixfARB, - glMultTransposeMatrixxOES, - glMultiDrawArrays, - glMultiDrawArraysEXT, - glMultiDrawArraysIndirect, - glMultiDrawArraysIndirectAMD, - glMultiDrawArraysIndirectBindlessCountNV, - glMultiDrawArraysIndirectBindlessNV, - glMultiDrawArraysIndirectCount, - glMultiDrawArraysIndirectCountARB, - glMultiDrawElementArrayAPPLE, - glMultiDrawElements, - glMultiDrawElementsBaseVertex, - glMultiDrawElementsEXT, - glMultiDrawElementsIndirect, - glMultiDrawElementsIndirectAMD, - glMultiDrawElementsIndirectBindlessCountNV, - glMultiDrawElementsIndirectBindlessNV, - glMultiDrawElementsIndirectCount, - glMultiDrawElementsIndirectCountARB, - glMultiDrawMeshTasksIndirectCountEXT, - glMultiDrawMeshTasksIndirectCountNV, - glMultiDrawMeshTasksIndirectEXT, - glMultiDrawMeshTasksIndirectNV, - glMultiDrawRangeElementArrayAPPLE, - glMultiModeDrawArraysIBM, - glMultiModeDrawElementsIBM, - glMultiTexBufferEXT, - glMultiTexCoord1bOES, - glMultiTexCoord1bvOES, - glMultiTexCoord1d, - glMultiTexCoord1dARB, - glMultiTexCoord1dSGIS, - glMultiTexCoord1dv, - glMultiTexCoord1dvARB, - glMultiTexCoord1dvSGIS, - glMultiTexCoord1f, - glMultiTexCoord1fARB, - glMultiTexCoord1fSGIS, - glMultiTexCoord1fv, - glMultiTexCoord1fvARB, - glMultiTexCoord1fvSGIS, - glMultiTexCoord1hNV, - glMultiTexCoord1hvNV, - glMultiTexCoord1i, - glMultiTexCoord1iARB, - glMultiTexCoord1iSGIS, - glMultiTexCoord1iv, - glMultiTexCoord1ivARB, - glMultiTexCoord1ivSGIS, - glMultiTexCoord1s, - glMultiTexCoord1sARB, - glMultiTexCoord1sSGIS, - glMultiTexCoord1sv, - glMultiTexCoord1svARB, - glMultiTexCoord1svSGIS, - glMultiTexCoord1xOES, - glMultiTexCoord1xvOES, - glMultiTexCoord2bOES, - glMultiTexCoord2bvOES, - glMultiTexCoord2d, - glMultiTexCoord2dARB, - glMultiTexCoord2dSGIS, - glMultiTexCoord2dv, - glMultiTexCoord2dvARB, - glMultiTexCoord2dvSGIS, - glMultiTexCoord2f, - glMultiTexCoord2fARB, - glMultiTexCoord2fSGIS, - glMultiTexCoord2fv, - glMultiTexCoord2fvARB, - glMultiTexCoord2fvSGIS, - glMultiTexCoord2hNV, - glMultiTexCoord2hvNV, - glMultiTexCoord2i, - glMultiTexCoord2iARB, - glMultiTexCoord2iSGIS, - glMultiTexCoord2iv, - glMultiTexCoord2ivARB, - glMultiTexCoord2ivSGIS, - glMultiTexCoord2s, - glMultiTexCoord2sARB, - glMultiTexCoord2sSGIS, - glMultiTexCoord2sv, - glMultiTexCoord2svARB, - glMultiTexCoord2svSGIS, - glMultiTexCoord2xOES, - glMultiTexCoord2xvOES, - glMultiTexCoord3bOES, - glMultiTexCoord3bvOES, - glMultiTexCoord3d, - glMultiTexCoord3dARB, - glMultiTexCoord3dSGIS, - glMultiTexCoord3dv, - glMultiTexCoord3dvARB, - glMultiTexCoord3dvSGIS, - glMultiTexCoord3f, - glMultiTexCoord3fARB, - glMultiTexCoord3fSGIS, - glMultiTexCoord3fv, - glMultiTexCoord3fvARB, - glMultiTexCoord3fvSGIS, - glMultiTexCoord3hNV, - glMultiTexCoord3hvNV, - glMultiTexCoord3i, - glMultiTexCoord3iARB, - glMultiTexCoord3iSGIS, - glMultiTexCoord3iv, - glMultiTexCoord3ivARB, - glMultiTexCoord3ivSGIS, - glMultiTexCoord3s, - glMultiTexCoord3sARB, - glMultiTexCoord3sSGIS, - glMultiTexCoord3sv, - glMultiTexCoord3svARB, - glMultiTexCoord3svSGIS, - glMultiTexCoord3xOES, - glMultiTexCoord3xvOES, - glMultiTexCoord4bOES, - glMultiTexCoord4bvOES, - glMultiTexCoord4d, - glMultiTexCoord4dARB, - glMultiTexCoord4dSGIS, - glMultiTexCoord4dv, - glMultiTexCoord4dvARB, - glMultiTexCoord4dvSGIS, - glMultiTexCoord4f, - glMultiTexCoord4fARB, - glMultiTexCoord4fSGIS, - glMultiTexCoord4fv, - glMultiTexCoord4fvARB, - glMultiTexCoord4fvSGIS, - glMultiTexCoord4hNV, - glMultiTexCoord4hvNV, - glMultiTexCoord4i, - glMultiTexCoord4iARB, - glMultiTexCoord4iSGIS, - glMultiTexCoord4iv, - glMultiTexCoord4ivARB, - glMultiTexCoord4ivSGIS, - glMultiTexCoord4s, - glMultiTexCoord4sARB, - glMultiTexCoord4sSGIS, - glMultiTexCoord4sv, - glMultiTexCoord4svARB, - glMultiTexCoord4svSGIS, - glMultiTexCoord4x, - glMultiTexCoord4xOES, - glMultiTexCoord4xvOES, - glMultiTexCoordP1ui, - glMultiTexCoordP1uiv, - glMultiTexCoordP2ui, - glMultiTexCoordP2uiv, - glMultiTexCoordP3ui, - glMultiTexCoordP3uiv, - glMultiTexCoordP4ui, - glMultiTexCoordP4uiv, - glMultiTexCoordPointerEXT, - glMultiTexCoordPointerSGIS, - glMultiTexEnvfEXT, - glMultiTexEnvfvEXT, - glMultiTexEnviEXT, - glMultiTexEnvivEXT, - glMultiTexGendEXT, - glMultiTexGendvEXT, - glMultiTexGenfEXT, - glMultiTexGenfvEXT, - glMultiTexGeniEXT, - glMultiTexGenivEXT, - glMultiTexImage1DEXT, - glMultiTexImage2DEXT, - glMultiTexImage3DEXT, - glMultiTexParameterIivEXT, - glMultiTexParameterIuivEXT, - glMultiTexParameterfEXT, - glMultiTexParameterfvEXT, - glMultiTexParameteriEXT, - glMultiTexParameterivEXT, - glMultiTexRenderbufferEXT, - glMultiTexSubImage1DEXT, - glMultiTexSubImage2DEXT, - glMultiTexSubImage3DEXT, - glMulticastBarrierNV, - glMulticastBlitFramebufferNV, - glMulticastBufferSubDataNV, - glMulticastCopyBufferSubDataNV, - glMulticastCopyImageSubDataNV, - glMulticastFramebufferSampleLocationsfvNV, - glMulticastGetQueryObjecti64vNV, - glMulticastGetQueryObjectivNV, - glMulticastGetQueryObjectui64vNV, - glMulticastGetQueryObjectuivNV, - glMulticastScissorArrayvNVX, - glMulticastViewportArrayvNVX, - glMulticastViewportPositionWScaleNVX, - glMulticastWaitSyncNV, - glNamedBufferAttachMemoryNV, - glNamedBufferData, - glNamedBufferDataEXT, - glNamedBufferPageCommitmentARB, - glNamedBufferPageCommitmentEXT, - glNamedBufferPageCommitmentMemNV, - glNamedBufferStorage, - glNamedBufferStorageEXT, - glNamedBufferStorageExternalEXT, - glNamedBufferStorageMemEXT, - glNamedBufferSubData, - glNamedBufferSubDataEXT, - glNamedCopyBufferSubDataEXT, - glNamedFramebufferDrawBuffer, - glNamedFramebufferDrawBuffers, - glNamedFramebufferParameteri, - glNamedFramebufferParameteriEXT, - glNamedFramebufferReadBuffer, - glNamedFramebufferRenderbuffer, - glNamedFramebufferRenderbufferEXT, - glNamedFramebufferSampleLocationsfvARB, - glNamedFramebufferSampleLocationsfvNV, - glNamedFramebufferSamplePositionsfvAMD, - glNamedFramebufferTexture, - glNamedFramebufferTexture1DEXT, - glNamedFramebufferTexture2DEXT, - glNamedFramebufferTexture3DEXT, - glNamedFramebufferTextureEXT, - glNamedFramebufferTextureFaceEXT, - glNamedFramebufferTextureLayer, - glNamedFramebufferTextureLayerEXT, - glNamedFramebufferTextureMultiviewOVR, - glNamedProgramLocalParameter4dEXT, - glNamedProgramLocalParameter4dvEXT, - glNamedProgramLocalParameter4fEXT, - glNamedProgramLocalParameter4fvEXT, - glNamedProgramLocalParameterI4iEXT, - glNamedProgramLocalParameterI4ivEXT, - glNamedProgramLocalParameterI4uiEXT, - glNamedProgramLocalParameterI4uivEXT, - glNamedProgramLocalParameters4fvEXT, - glNamedProgramLocalParametersI4ivEXT, - glNamedProgramLocalParametersI4uivEXT, - glNamedProgramStringEXT, - glNamedRenderbufferStorage, - glNamedRenderbufferStorageEXT, - glNamedRenderbufferStorageMultisample, - glNamedRenderbufferStorageMultisampleAdvancedAMD, - glNamedRenderbufferStorageMultisampleCoverageEXT, - glNamedRenderbufferStorageMultisampleEXT, - glNamedStringARB, - glNewBufferRegion, - glNewObjectBufferATI, - glNormal3fVertex3fSUN, - glNormal3fVertex3fvSUN, - glNormal3hNV, - glNormal3hvNV, - glNormal3x, - glNormal3xOES, - glNormal3xvOES, - glNormalFormatNV, - glNormalP3ui, - glNormalP3uiv, - glNormalPointerEXT, - glNormalPointerListIBM, - glNormalPointervINTEL, - glNormalStream3bATI, - glNormalStream3bvATI, - glNormalStream3dATI, - glNormalStream3dvATI, - glNormalStream3fATI, - glNormalStream3fvATI, - glNormalStream3iATI, - glNormalStream3ivATI, - glNormalStream3sATI, - glNormalStream3svATI, - glObjectLabel, - glObjectPtrLabel, - glObjectPurgeableAPPLE, - glObjectUnpurgeableAPPLE, - glOrthof, - glOrthofOES, - glOrthox, - glOrthoxOES, - glPNTrianglesfATI, - glPNTrianglesiATI, - glPassTexCoordATI, - glPassThroughxOES, - glPatchParameterfv, - glPatchParameteri, - glPathColorGenNV, - glPathCommandsNV, - glPathCoordsNV, - glPathCoverDepthFuncNV, - glPathDashArrayNV, - glPathFogGenNV, - glPathGlyphIndexArrayNV, - glPathGlyphIndexRangeNV, - glPathGlyphRangeNV, - glPathGlyphsNV, - glPathMemoryGlyphIndexArrayNV, - glPathParameterfNV, - glPathParameterfvNV, - glPathParameteriNV, - glPathParameterivNV, - glPathStencilDepthOffsetNV, - glPathStencilFuncNV, - glPathStringNV, - glPathSubCommandsNV, - glPathSubCoordsNV, - glPathTexGenNV, - glPauseTransformFeedback, - glPauseTransformFeedbackNV, - glPixelDataRangeNV, - glPixelMapx, - glPixelStorex, - glPixelTexGenParameterfSGIS, - glPixelTexGenParameterfvSGIS, - glPixelTexGenParameteriSGIS, - glPixelTexGenParameterivSGIS, - glPixelTexGenSGIX, - glPixelTransferxOES, - glPixelTransformParameterfEXT, - glPixelTransformParameterfvEXT, - glPixelTransformParameteriEXT, - glPixelTransformParameterivEXT, - glPixelZoomxOES, - glPointAlongPathNV, - glPointParameterf, - glPointParameterfARB, - glPointParameterfEXT, - glPointParameterfSGIS, - glPointParameterfv, - glPointParameterfvARB, - glPointParameterfvEXT, - glPointParameterfvSGIS, - glPointParameteri, - glPointParameteriNV, - glPointParameteriv, - glPointParameterivNV, - glPointParameterx, - glPointParameterxv, - glPointParameterxvOES, - glPointSizex, - glPointSizexOES, - glPollAsyncSGIX, - glPollInstrumentsSGIX, - glPolygonOffsetClamp, - glPolygonOffsetClampEXT, - glPolygonOffsetEXT, - glPolygonOffsetx, - glPolygonOffsetxOES, - glPopDebugGroup, - glPopGroupMarkerEXT, - glPresentFrameDualFillNV, - glPresentFrameKeyedNV, - glPrimitiveBoundingBox, - glPrimitiveBoundingBoxARB, - glPrimitiveRestartIndex, - glPrimitiveRestartIndexNV, - glPrimitiveRestartNV, - glPrioritizeTexturesEXT, - glPrioritizeTexturesxOES, - glProgramBinary, - glProgramBufferParametersIivNV, - glProgramBufferParametersIuivNV, - glProgramBufferParametersfvNV, - glProgramEnvParameter4dARB, - glProgramEnvParameter4dvARB, - glProgramEnvParameter4fARB, - glProgramEnvParameter4fvARB, - glProgramEnvParameterI4iNV, - glProgramEnvParameterI4ivNV, - glProgramEnvParameterI4uiNV, - glProgramEnvParameterI4uivNV, - glProgramEnvParameters4fvEXT, - glProgramEnvParametersI4ivNV, - glProgramEnvParametersI4uivNV, - glProgramLocalParameter4dARB, - glProgramLocalParameter4dvARB, - glProgramLocalParameter4fARB, - glProgramLocalParameter4fvARB, - glProgramLocalParameterI4iNV, - glProgramLocalParameterI4ivNV, - glProgramLocalParameterI4uiNV, - glProgramLocalParameterI4uivNV, - glProgramLocalParameters4fvEXT, - glProgramLocalParametersI4ivNV, - glProgramLocalParametersI4uivNV, - glProgramNamedParameter4dNV, - glProgramNamedParameter4dvNV, - glProgramNamedParameter4fNV, - glProgramNamedParameter4fvNV, - glProgramParameter4dNV, - glProgramParameter4dvNV, - glProgramParameter4fNV, - glProgramParameter4fvNV, - glProgramParameteri, - glProgramParameteriARB, - glProgramParameteriEXT, - glProgramParameters4dvNV, - glProgramParameters4fvNV, - glProgramPathFragmentInputGenNV, - glProgramStringARB, - glProgramSubroutineParametersuivNV, - glProgramUniform1d, - glProgramUniform1dEXT, - glProgramUniform1dv, - glProgramUniform1dvEXT, - glProgramUniform1f, - glProgramUniform1fEXT, - glProgramUniform1fv, - glProgramUniform1fvEXT, - glProgramUniform1i, - glProgramUniform1i64ARB, - glProgramUniform1i64NV, - glProgramUniform1i64vARB, - glProgramUniform1i64vNV, - glProgramUniform1iEXT, - glProgramUniform1iv, - glProgramUniform1ivEXT, - glProgramUniform1ui, - glProgramUniform1ui64ARB, - glProgramUniform1ui64NV, - glProgramUniform1ui64vARB, - glProgramUniform1ui64vNV, - glProgramUniform1uiEXT, - glProgramUniform1uiv, - glProgramUniform1uivEXT, - glProgramUniform2d, - glProgramUniform2dEXT, - glProgramUniform2dv, - glProgramUniform2dvEXT, - glProgramUniform2f, - glProgramUniform2fEXT, - glProgramUniform2fv, - glProgramUniform2fvEXT, - glProgramUniform2i, - glProgramUniform2i64ARB, - glProgramUniform2i64NV, - glProgramUniform2i64vARB, - glProgramUniform2i64vNV, - glProgramUniform2iEXT, - glProgramUniform2iv, - glProgramUniform2ivEXT, - glProgramUniform2ui, - glProgramUniform2ui64ARB, - glProgramUniform2ui64NV, - glProgramUniform2ui64vARB, - glProgramUniform2ui64vNV, - glProgramUniform2uiEXT, - glProgramUniform2uiv, - glProgramUniform2uivEXT, - glProgramUniform3d, - glProgramUniform3dEXT, - glProgramUniform3dv, - glProgramUniform3dvEXT, - glProgramUniform3f, - glProgramUniform3fEXT, - glProgramUniform3fv, - glProgramUniform3fvEXT, - glProgramUniform3i, - glProgramUniform3i64ARB, - glProgramUniform3i64NV, - glProgramUniform3i64vARB, - glProgramUniform3i64vNV, - glProgramUniform3iEXT, - glProgramUniform3iv, - glProgramUniform3ivEXT, - glProgramUniform3ui, - glProgramUniform3ui64ARB, - glProgramUniform3ui64NV, - glProgramUniform3ui64vARB, - glProgramUniform3ui64vNV, - glProgramUniform3uiEXT, - glProgramUniform3uiv, - glProgramUniform3uivEXT, - glProgramUniform4d, - glProgramUniform4dEXT, - glProgramUniform4dv, - glProgramUniform4dvEXT, - glProgramUniform4f, - glProgramUniform4fEXT, - glProgramUniform4fv, - glProgramUniform4fvEXT, - glProgramUniform4i, - glProgramUniform4i64ARB, - glProgramUniform4i64NV, - glProgramUniform4i64vARB, - glProgramUniform4i64vNV, - glProgramUniform4iEXT, - glProgramUniform4iv, - glProgramUniform4ivEXT, - glProgramUniform4ui, - glProgramUniform4ui64ARB, - glProgramUniform4ui64NV, - glProgramUniform4ui64vARB, - glProgramUniform4ui64vNV, - glProgramUniform4uiEXT, - glProgramUniform4uiv, - glProgramUniform4uivEXT, - glProgramUniformHandleui64ARB, - glProgramUniformHandleui64NV, - glProgramUniformHandleui64vARB, - glProgramUniformHandleui64vNV, - glProgramUniformMatrix2dv, - glProgramUniformMatrix2dvEXT, - glProgramUniformMatrix2fv, - glProgramUniformMatrix2fvEXT, - glProgramUniformMatrix2x3dv, - glProgramUniformMatrix2x3dvEXT, - glProgramUniformMatrix2x3fv, - glProgramUniformMatrix2x3fvEXT, - glProgramUniformMatrix2x4dv, - glProgramUniformMatrix2x4dvEXT, - glProgramUniformMatrix2x4fv, - glProgramUniformMatrix2x4fvEXT, - glProgramUniformMatrix3dv, - glProgramUniformMatrix3dvEXT, - glProgramUniformMatrix3fv, - glProgramUniformMatrix3fvEXT, - glProgramUniformMatrix3x2dv, - glProgramUniformMatrix3x2dvEXT, - glProgramUniformMatrix3x2fv, - glProgramUniformMatrix3x2fvEXT, - glProgramUniformMatrix3x4dv, - glProgramUniformMatrix3x4dvEXT, - glProgramUniformMatrix3x4fv, - glProgramUniformMatrix3x4fvEXT, - glProgramUniformMatrix4dv, - glProgramUniformMatrix4dvEXT, - glProgramUniformMatrix4fv, - glProgramUniformMatrix4fvEXT, - glProgramUniformMatrix4x2dv, - glProgramUniformMatrix4x2dvEXT, - glProgramUniformMatrix4x2fv, - glProgramUniformMatrix4x2fvEXT, - glProgramUniformMatrix4x3dv, - glProgramUniformMatrix4x3dvEXT, - glProgramUniformMatrix4x3fv, - glProgramUniformMatrix4x3fvEXT, - glProgramUniformui64NV, - glProgramUniformui64vNV, - glProgramVertexLimitNV, - glProvokingVertex, - glProvokingVertexEXT, - glPushClientAttribDefaultEXT, - glPushDebugGroup, - glPushGroupMarkerEXT, - glQueryCounter, - glQueryMatrixxOES, - glQueryObjectParameteruiAMD, - glQueryResourceNV, - glQueryResourceTagNV, - glRasterPos2xOES, - glRasterPos2xvOES, - glRasterPos3xOES, - glRasterPos3xvOES, - glRasterPos4xOES, - glRasterPos4xvOES, - glRasterSamplesEXT, - glReadBufferRegion, - glReadInstrumentsSGIX, - glReadnPixels, - glReadnPixelsARB, - glRectxOES, - glRectxvOES, - glReferencePlaneSGIX, - glReleaseKeyedMutexWin32EXT, - glReleaseShaderCompiler, - glRenderGpuMaskNV, - glRenderbufferStorage, - glRenderbufferStorageEXT, - glRenderbufferStorageMultisample, - glRenderbufferStorageMultisampleAdvancedAMD, - glRenderbufferStorageMultisampleCoverageNV, - glRenderbufferStorageMultisampleEXT, - glReplacementCodePointerSUN, - glReplacementCodeubSUN, - glReplacementCodeubvSUN, - glReplacementCodeuiColor3fVertex3fSUN, - glReplacementCodeuiColor3fVertex3fvSUN, - glReplacementCodeuiColor4fNormal3fVertex3fSUN, - glReplacementCodeuiColor4fNormal3fVertex3fvSUN, - glReplacementCodeuiColor4ubVertex3fSUN, - glReplacementCodeuiColor4ubVertex3fvSUN, - glReplacementCodeuiNormal3fVertex3fSUN, - glReplacementCodeuiNormal3fVertex3fvSUN, - glReplacementCodeuiSUN, - glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, - glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, - glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, - glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, - glReplacementCodeuiTexCoord2fVertex3fSUN, - glReplacementCodeuiTexCoord2fVertex3fvSUN, - glReplacementCodeuiVertex3fSUN, - glReplacementCodeuiVertex3fvSUN, - glReplacementCodeuivSUN, - glReplacementCodeusSUN, - glReplacementCodeusvSUN, - glRequestResidentProgramsNV, - glResetHistogram, - glResetHistogramEXT, - glResetMemoryObjectParameterNV, - glResetMinmax, - glResetMinmaxEXT, - glResizeBuffersMESA, - glResolveDepthValuesNV, - glResumeTransformFeedback, - glResumeTransformFeedbackNV, - glRotatex, - glRotatexOES, - glSampleCoverage, - glSampleCoverageARB, - glSampleCoveragex, - glSampleMapATI, - glSampleMaskEXT, - glSampleMaskIndexedNV, - glSampleMaskSGIS, - glSampleMaski, - glSamplePatternEXT, - glSamplePatternSGIS, - glSamplerParameterIiv, - glSamplerParameterIuiv, - glSamplerParameterf, - glSamplerParameterfv, - glSamplerParameteri, - glSamplerParameteriv, - glScalex, - glScalexOES, - glScissorArrayv, - glScissorExclusiveArrayvNV, - glScissorExclusiveNV, - glScissorIndexed, - glScissorIndexedv, - glSecondaryColor3b, - glSecondaryColor3bEXT, - glSecondaryColor3bv, - glSecondaryColor3bvEXT, - glSecondaryColor3d, - glSecondaryColor3dEXT, - glSecondaryColor3dv, - glSecondaryColor3dvEXT, - glSecondaryColor3f, - glSecondaryColor3fEXT, - glSecondaryColor3fv, - glSecondaryColor3fvEXT, - glSecondaryColor3hNV, - glSecondaryColor3hvNV, - glSecondaryColor3i, - glSecondaryColor3iEXT, - glSecondaryColor3iv, - glSecondaryColor3ivEXT, - glSecondaryColor3s, - glSecondaryColor3sEXT, - glSecondaryColor3sv, - glSecondaryColor3svEXT, - glSecondaryColor3ub, - glSecondaryColor3ubEXT, - glSecondaryColor3ubv, - glSecondaryColor3ubvEXT, - glSecondaryColor3ui, - glSecondaryColor3uiEXT, - glSecondaryColor3uiv, - glSecondaryColor3uivEXT, - glSecondaryColor3us, - glSecondaryColor3usEXT, - glSecondaryColor3usv, - glSecondaryColor3usvEXT, - glSecondaryColorFormatNV, - glSecondaryColorP3ui, - glSecondaryColorP3uiv, - glSecondaryColorPointer, - glSecondaryColorPointerEXT, - glSecondaryColorPointerListIBM, - glSelectPerfMonitorCountersAMD, - glSelectTextureCoordSetSGIS, - glSelectTextureSGIS, - glSemaphoreParameterivNV, - glSemaphoreParameterui64vEXT, - glSeparableFilter2D, - glSeparableFilter2DEXT, - glSetFenceAPPLE, - glSetFenceNV, - glSetFragmentShaderConstantATI, - glSetInvariantEXT, - glSetLocalConstantEXT, - glSetMultisamplefvAMD, - glShaderBinary, - glShaderOp1EXT, - glShaderOp2EXT, - glShaderOp3EXT, - glShaderSource, - glShaderSourceARB, - glShaderStorageBlockBinding, - glShadingRateCombinerOpsEXT, - glShadingRateEXT, - glShadingRateImageBarrierNV, - glShadingRateImagePaletteNV, - glShadingRateSampleOrderCustomNV, - glShadingRateSampleOrderNV, - glSharpenTexFuncSGIS, - glSignalSemaphoreEXT, - glSignalSemaphoreui64NVX, - glSignalVkFenceNV, - glSignalVkSemaphoreNV, - glSpecializeShader, - glSpecializeShaderARB, - glSpriteParameterfSGIX, - glSpriteParameterfvSGIX, - glSpriteParameteriSGIX, - glSpriteParameterivSGIX, - glStartInstrumentsSGIX, - glStateCaptureNV, - glStencilClearTagEXT, - glStencilFillPathInstancedNV, - glStencilFillPathNV, - glStencilFuncSeparate, - glStencilFuncSeparateATI, - glStencilMaskSeparate, - glStencilOpSeparate, - glStencilOpSeparateATI, - glStencilOpValueAMD, - glStencilStrokePathInstancedNV, - glStencilStrokePathNV, - glStencilThenCoverFillPathInstancedNV, - glStencilThenCoverFillPathNV, - glStencilThenCoverStrokePathInstancedNV, - glStencilThenCoverStrokePathNV, - glStopInstrumentsSGIX, - glStringMarkerGREMEDY, - glSubpixelPrecisionBiasNV, - glSwizzleEXT, - glSyncTextureINTEL, - glTagSampleBufferSGIX, - glTangent3bEXT, - glTangent3bvEXT, - glTangent3dEXT, - glTangent3dvEXT, - glTangent3fEXT, - glTangent3fvEXT, - glTangent3iEXT, - glTangent3ivEXT, - glTangent3sEXT, - glTangent3svEXT, - glTangentPointerEXT, - glTbufferMask3DFX, - glTessellationFactorAMD, - glTessellationModeAMD, - glTestFenceAPPLE, - glTestFenceNV, - glTestObjectAPPLE, - glTexAttachMemoryNV, - glTexBuffer, - glTexBufferARB, - glTexBufferEXT, - glTexBufferRange, - glTexBumpParameterfvATI, - glTexBumpParameterivATI, - glTexCoord1bOES, - glTexCoord1bvOES, - glTexCoord1hNV, - glTexCoord1hvNV, - glTexCoord1xOES, - glTexCoord1xvOES, - glTexCoord2bOES, - glTexCoord2bvOES, - glTexCoord2fColor3fVertex3fSUN, - glTexCoord2fColor3fVertex3fvSUN, - glTexCoord2fColor4fNormal3fVertex3fSUN, - glTexCoord2fColor4fNormal3fVertex3fvSUN, - glTexCoord2fColor4ubVertex3fSUN, - glTexCoord2fColor4ubVertex3fvSUN, - glTexCoord2fNormal3fVertex3fSUN, - glTexCoord2fNormal3fVertex3fvSUN, - glTexCoord2fVertex3fSUN, - glTexCoord2fVertex3fvSUN, - glTexCoord2hNV, - glTexCoord2hvNV, - glTexCoord2xOES, - glTexCoord2xvOES, - glTexCoord3bOES, - glTexCoord3bvOES, - glTexCoord3hNV, - glTexCoord3hvNV, - glTexCoord3xOES, - glTexCoord3xvOES, - glTexCoord4bOES, - glTexCoord4bvOES, - glTexCoord4fColor4fNormal3fVertex4fSUN, - glTexCoord4fColor4fNormal3fVertex4fvSUN, - glTexCoord4fVertex4fSUN, - glTexCoord4fVertex4fvSUN, - glTexCoord4hNV, - glTexCoord4hvNV, - glTexCoord4xOES, - glTexCoord4xvOES, - glTexCoordFormatNV, - glTexCoordP1ui, - glTexCoordP1uiv, - glTexCoordP2ui, - glTexCoordP2uiv, - glTexCoordP3ui, - glTexCoordP3uiv, - glTexCoordP4ui, - glTexCoordP4uiv, - glTexCoordPointerEXT, - glTexCoordPointerListIBM, - glTexCoordPointervINTEL, - glTexEnvx, - glTexEnvxOES, - glTexEnvxv, - glTexEnvxvOES, - glTexFilterFuncSGIS, - glTexGenxOES, - glTexGenxvOES, - glTexImage2DMultisample, - glTexImage2DMultisampleCoverageNV, - glTexImage3D, - glTexImage3DEXT, - glTexImage3DMultisample, - glTexImage3DMultisampleCoverageNV, - glTexImage4DSGIS, - glTexPageCommitmentARB, - glTexPageCommitmentMemNV, - glTexParameterIiv, - glTexParameterIivEXT, - glTexParameterIuiv, - glTexParameterIuivEXT, - glTexParameterx, - glTexParameterxOES, - glTexParameterxv, - glTexParameterxvOES, - glTexRenderbufferNV, - glTexStorage1D, - glTexStorage1DEXT, - glTexStorage2D, - glTexStorage2DEXT, - glTexStorage2DMultisample, - glTexStorage3D, - glTexStorage3DEXT, - glTexStorage3DMultisample, - glTexStorageMem1DEXT, - glTexStorageMem2DEXT, - glTexStorageMem2DMultisampleEXT, - glTexStorageMem3DEXT, - glTexStorageMem3DMultisampleEXT, - glTexStorageSparseAMD, - glTexSubImage1DEXT, - glTexSubImage2DEXT, - glTexSubImage3D, - glTexSubImage3DEXT, - glTexSubImage4DSGIS, - glTextureAttachMemoryNV, - glTextureBarrier, - glTextureBarrierNV, - glTextureBuffer, - glTextureBufferEXT, - glTextureBufferRange, - glTextureBufferRangeEXT, - glTextureColorMaskSGIS, - glTextureImage1DEXT, - glTextureImage2DEXT, - glTextureImage2DMultisampleCoverageNV, - glTextureImage2DMultisampleNV, - glTextureImage3DEXT, - glTextureImage3DMultisampleCoverageNV, - glTextureImage3DMultisampleNV, - glTextureLightEXT, - glTextureMaterialEXT, - glTextureNormalEXT, - glTexturePageCommitmentEXT, - glTexturePageCommitmentMemNV, - glTextureParameterIiv, - glTextureParameterIivEXT, - glTextureParameterIuiv, - glTextureParameterIuivEXT, - glTextureParameterf, - glTextureParameterfEXT, - glTextureParameterfv, - glTextureParameterfvEXT, - glTextureParameteri, - glTextureParameteriEXT, - glTextureParameteriv, - glTextureParameterivEXT, - glTextureRangeAPPLE, - glTextureRenderbufferEXT, - glTextureStorage1D, - glTextureStorage1DEXT, - glTextureStorage2D, - glTextureStorage2DEXT, - glTextureStorage2DMultisample, - glTextureStorage2DMultisampleEXT, - glTextureStorage3D, - glTextureStorage3DEXT, - glTextureStorage3DMultisample, - glTextureStorage3DMultisampleEXT, - glTextureStorageMem1DEXT, - glTextureStorageMem2DEXT, - glTextureStorageMem2DMultisampleEXT, - glTextureStorageMem3DEXT, - glTextureStorageMem3DMultisampleEXT, - glTextureStorageSparseAMD, - glTextureSubImage1D, - glTextureSubImage1DEXT, - glTextureSubImage2D, - glTextureSubImage2DEXT, - glTextureSubImage3D, - glTextureSubImage3DEXT, - glTextureView, - glTrackMatrixNV, - glTransformFeedbackAttribsNV, - glTransformFeedbackBufferBase, - glTransformFeedbackBufferRange, - glTransformFeedbackStreamAttribsNV, - glTransformFeedbackVaryings, - glTransformFeedbackVaryingsEXT, - glTransformFeedbackVaryingsNV, - glTransformPathNV, - glTranslatex, - glTranslatexOES, - glUniform1d, - glUniform1dv, - glUniform1f, - glUniform1fARB, - glUniform1fv, - glUniform1fvARB, - glUniform1i, - glUniform1i64ARB, - glUniform1i64NV, - glUniform1i64vARB, - glUniform1i64vNV, - glUniform1iARB, - glUniform1iv, - glUniform1ivARB, - glUniform1ui, - glUniform1ui64ARB, - glUniform1ui64NV, - glUniform1ui64vARB, - glUniform1ui64vNV, - glUniform1uiEXT, - glUniform1uiv, - glUniform1uivEXT, - glUniform2d, - glUniform2dv, - glUniform2f, - glUniform2fARB, - glUniform2fv, - glUniform2fvARB, - glUniform2i, - glUniform2i64ARB, - glUniform2i64NV, - glUniform2i64vARB, - glUniform2i64vNV, - glUniform2iARB, - glUniform2iv, - glUniform2ivARB, - glUniform2ui, - glUniform2ui64ARB, - glUniform2ui64NV, - glUniform2ui64vARB, - glUniform2ui64vNV, - glUniform2uiEXT, - glUniform2uiv, - glUniform2uivEXT, - glUniform3d, - glUniform3dv, - glUniform3f, - glUniform3fARB, - glUniform3fv, - glUniform3fvARB, - glUniform3i, - glUniform3i64ARB, - glUniform3i64NV, - glUniform3i64vARB, - glUniform3i64vNV, - glUniform3iARB, - glUniform3iv, - glUniform3ivARB, - glUniform3ui, - glUniform3ui64ARB, - glUniform3ui64NV, - glUniform3ui64vARB, - glUniform3ui64vNV, - glUniform3uiEXT, - glUniform3uiv, - glUniform3uivEXT, - glUniform4d, - glUniform4dv, - glUniform4f, - glUniform4fARB, - glUniform4fv, - glUniform4fvARB, - glUniform4i, - glUniform4i64ARB, - glUniform4i64NV, - glUniform4i64vARB, - glUniform4i64vNV, - glUniform4iARB, - glUniform4iv, - glUniform4ivARB, - glUniform4ui, - glUniform4ui64ARB, - glUniform4ui64NV, - glUniform4ui64vARB, - glUniform4ui64vNV, - glUniform4uiEXT, - glUniform4uiv, - glUniform4uivEXT, - glUniformBlockBinding, - glUniformBufferEXT, - glUniformHandleui64ARB, - glUniformHandleui64NV, - glUniformHandleui64vARB, - glUniformHandleui64vNV, - glUniformMatrix2dv, - glUniformMatrix2fv, - glUniformMatrix2fvARB, - glUniformMatrix2x3dv, - glUniformMatrix2x3fv, - glUniformMatrix2x4dv, - glUniformMatrix2x4fv, - glUniformMatrix3dv, - glUniformMatrix3fv, - glUniformMatrix3fvARB, - glUniformMatrix3x2dv, - glUniformMatrix3x2fv, - glUniformMatrix3x4dv, - glUniformMatrix3x4fv, - glUniformMatrix4dv, - glUniformMatrix4fv, - glUniformMatrix4fvARB, - glUniformMatrix4x2dv, - glUniformMatrix4x2fv, - glUniformMatrix4x3dv, - glUniformMatrix4x3fv, - glUniformSubroutinesuiv, - glUniformui64NV, - glUniformui64vNV, - glUnlockArraysEXT, - glUnmapBuffer, - glUnmapBufferARB, - glUnmapNamedBuffer, - glUnmapNamedBufferEXT, - glUnmapObjectBufferATI, - glUnmapTexture2DINTEL, - glUpdateObjectBufferATI, - glUploadGpuMaskNVX, - glUseProgram, - glUseProgramObjectARB, - glUseProgramStages, - glUseShaderProgramEXT, - glVDPAUFiniNV, - glVDPAUGetSurfaceivNV, - glVDPAUInitNV, - glVDPAUIsSurfaceNV, - glVDPAUMapSurfacesNV, - glVDPAURegisterOutputSurfaceNV, - glVDPAURegisterVideoSurfaceNV, - glVDPAURegisterVideoSurfaceWithPictureStructureNV, - glVDPAUSurfaceAccessNV, - glVDPAUUnmapSurfacesNV, - glVDPAUUnregisterSurfaceNV, - glValidateProgram, - glValidateProgramARB, - glValidateProgramPipeline, - glVariantArrayObjectATI, - glVariantPointerEXT, - glVariantbvEXT, - glVariantdvEXT, - glVariantfvEXT, - glVariantivEXT, - glVariantsvEXT, - glVariantubvEXT, - glVariantuivEXT, - glVariantusvEXT, - glVertex2bOES, - glVertex2bvOES, - glVertex2hNV, - glVertex2hvNV, - glVertex2xOES, - glVertex2xvOES, - glVertex3bOES, - glVertex3bvOES, - glVertex3hNV, - glVertex3hvNV, - glVertex3xOES, - glVertex3xvOES, - glVertex4bOES, - glVertex4bvOES, - glVertex4hNV, - glVertex4hvNV, - glVertex4xOES, - glVertex4xvOES, - glVertexArrayAttribBinding, - glVertexArrayAttribFormat, - glVertexArrayAttribIFormat, - glVertexArrayAttribLFormat, - glVertexArrayBindVertexBufferEXT, - glVertexArrayBindingDivisor, - glVertexArrayColorOffsetEXT, - glVertexArrayEdgeFlagOffsetEXT, - glVertexArrayElementBuffer, - glVertexArrayFogCoordOffsetEXT, - glVertexArrayIndexOffsetEXT, - glVertexArrayMultiTexCoordOffsetEXT, - glVertexArrayNormalOffsetEXT, - glVertexArrayParameteriAPPLE, - glVertexArrayRangeAPPLE, - glVertexArrayRangeNV, - glVertexArraySecondaryColorOffsetEXT, - glVertexArrayTexCoordOffsetEXT, - glVertexArrayVertexAttribBindingEXT, - glVertexArrayVertexAttribDivisorEXT, - glVertexArrayVertexAttribFormatEXT, - glVertexArrayVertexAttribIFormatEXT, - glVertexArrayVertexAttribIOffsetEXT, - glVertexArrayVertexAttribLFormatEXT, - glVertexArrayVertexAttribLOffsetEXT, - glVertexArrayVertexAttribOffsetEXT, - glVertexArrayVertexBindingDivisorEXT, - glVertexArrayVertexBuffer, - glVertexArrayVertexBuffers, - glVertexArrayVertexOffsetEXT, - glVertexAttrib1d, - glVertexAttrib1dARB, - glVertexAttrib1dNV, - glVertexAttrib1dv, - glVertexAttrib1dvARB, - glVertexAttrib1dvNV, - glVertexAttrib1f, - glVertexAttrib1fARB, - glVertexAttrib1fNV, - glVertexAttrib1fv, - glVertexAttrib1fvARB, - glVertexAttrib1fvNV, - glVertexAttrib1hNV, - glVertexAttrib1hvNV, - glVertexAttrib1s, - glVertexAttrib1sARB, - glVertexAttrib1sNV, - glVertexAttrib1sv, - glVertexAttrib1svARB, - glVertexAttrib1svNV, - glVertexAttrib2d, - glVertexAttrib2dARB, - glVertexAttrib2dNV, - glVertexAttrib2dv, - glVertexAttrib2dvARB, - glVertexAttrib2dvNV, - glVertexAttrib2f, - glVertexAttrib2fARB, - glVertexAttrib2fNV, - glVertexAttrib2fv, - glVertexAttrib2fvARB, - glVertexAttrib2fvNV, - glVertexAttrib2hNV, - glVertexAttrib2hvNV, - glVertexAttrib2s, - glVertexAttrib2sARB, - glVertexAttrib2sNV, - glVertexAttrib2sv, - glVertexAttrib2svARB, - glVertexAttrib2svNV, - glVertexAttrib3d, - glVertexAttrib3dARB, - glVertexAttrib3dNV, - glVertexAttrib3dv, - glVertexAttrib3dvARB, - glVertexAttrib3dvNV, - glVertexAttrib3f, - glVertexAttrib3fARB, - glVertexAttrib3fNV, - glVertexAttrib3fv, - glVertexAttrib3fvARB, - glVertexAttrib3fvNV, - glVertexAttrib3hNV, - glVertexAttrib3hvNV, - glVertexAttrib3s, - glVertexAttrib3sARB, - glVertexAttrib3sNV, - glVertexAttrib3sv, - glVertexAttrib3svARB, - glVertexAttrib3svNV, - glVertexAttrib4Nbv, - glVertexAttrib4NbvARB, - glVertexAttrib4Niv, - glVertexAttrib4NivARB, - glVertexAttrib4Nsv, - glVertexAttrib4NsvARB, - glVertexAttrib4Nub, - glVertexAttrib4NubARB, - glVertexAttrib4Nubv, - glVertexAttrib4NubvARB, - glVertexAttrib4Nuiv, - glVertexAttrib4NuivARB, - glVertexAttrib4Nusv, - glVertexAttrib4NusvARB, - glVertexAttrib4bv, - glVertexAttrib4bvARB, - glVertexAttrib4d, - glVertexAttrib4dARB, - glVertexAttrib4dNV, - glVertexAttrib4dv, - glVertexAttrib4dvARB, - glVertexAttrib4dvNV, - glVertexAttrib4f, - glVertexAttrib4fARB, - glVertexAttrib4fNV, - glVertexAttrib4fv, - glVertexAttrib4fvARB, - glVertexAttrib4fvNV, - glVertexAttrib4hNV, - glVertexAttrib4hvNV, - glVertexAttrib4iv, - glVertexAttrib4ivARB, - glVertexAttrib4s, - glVertexAttrib4sARB, - glVertexAttrib4sNV, - glVertexAttrib4sv, - glVertexAttrib4svARB, - glVertexAttrib4svNV, - glVertexAttrib4ubNV, - glVertexAttrib4ubv, - glVertexAttrib4ubvARB, - glVertexAttrib4ubvNV, - glVertexAttrib4uiv, - glVertexAttrib4uivARB, - glVertexAttrib4usv, - glVertexAttrib4usvARB, - glVertexAttribArrayObjectATI, - glVertexAttribBinding, - glVertexAttribDivisor, - glVertexAttribDivisorARB, - glVertexAttribFormat, - glVertexAttribFormatNV, - glVertexAttribI1i, - glVertexAttribI1iEXT, - glVertexAttribI1iv, - glVertexAttribI1ivEXT, - glVertexAttribI1ui, - glVertexAttribI1uiEXT, - glVertexAttribI1uiv, - glVertexAttribI1uivEXT, - glVertexAttribI2i, - glVertexAttribI2iEXT, - glVertexAttribI2iv, - glVertexAttribI2ivEXT, - glVertexAttribI2ui, - glVertexAttribI2uiEXT, - glVertexAttribI2uiv, - glVertexAttribI2uivEXT, - glVertexAttribI3i, - glVertexAttribI3iEXT, - glVertexAttribI3iv, - glVertexAttribI3ivEXT, - glVertexAttribI3ui, - glVertexAttribI3uiEXT, - glVertexAttribI3uiv, - glVertexAttribI3uivEXT, - glVertexAttribI4bv, - glVertexAttribI4bvEXT, - glVertexAttribI4i, - glVertexAttribI4iEXT, - glVertexAttribI4iv, - glVertexAttribI4ivEXT, - glVertexAttribI4sv, - glVertexAttribI4svEXT, - glVertexAttribI4ubv, - glVertexAttribI4ubvEXT, - glVertexAttribI4ui, - glVertexAttribI4uiEXT, - glVertexAttribI4uiv, - glVertexAttribI4uivEXT, - glVertexAttribI4usv, - glVertexAttribI4usvEXT, - glVertexAttribIFormat, - glVertexAttribIFormatNV, - glVertexAttribIPointer, - glVertexAttribIPointerEXT, - glVertexAttribL1d, - glVertexAttribL1dEXT, - glVertexAttribL1dv, - glVertexAttribL1dvEXT, - glVertexAttribL1i64NV, - glVertexAttribL1i64vNV, - glVertexAttribL1ui64ARB, - glVertexAttribL1ui64NV, - glVertexAttribL1ui64vARB, - glVertexAttribL1ui64vNV, - glVertexAttribL2d, - glVertexAttribL2dEXT, - glVertexAttribL2dv, - glVertexAttribL2dvEXT, - glVertexAttribL2i64NV, - glVertexAttribL2i64vNV, - glVertexAttribL2ui64NV, - glVertexAttribL2ui64vNV, - glVertexAttribL3d, - glVertexAttribL3dEXT, - glVertexAttribL3dv, - glVertexAttribL3dvEXT, - glVertexAttribL3i64NV, - glVertexAttribL3i64vNV, - glVertexAttribL3ui64NV, - glVertexAttribL3ui64vNV, - glVertexAttribL4d, - glVertexAttribL4dEXT, - glVertexAttribL4dv, - glVertexAttribL4dvEXT, - glVertexAttribL4i64NV, - glVertexAttribL4i64vNV, - glVertexAttribL4ui64NV, - glVertexAttribL4ui64vNV, - glVertexAttribLFormat, - glVertexAttribLFormatNV, - glVertexAttribLPointer, - glVertexAttribLPointerEXT, - glVertexAttribP1ui, - glVertexAttribP1uiv, - glVertexAttribP2ui, - glVertexAttribP2uiv, - glVertexAttribP3ui, - glVertexAttribP3uiv, - glVertexAttribP4ui, - glVertexAttribP4uiv, - glVertexAttribParameteriAMD, - glVertexAttribPointer, - glVertexAttribPointerARB, - glVertexAttribPointerNV, - glVertexAttribs1dvNV, - glVertexAttribs1fvNV, - glVertexAttribs1hvNV, - glVertexAttribs1svNV, - glVertexAttribs2dvNV, - glVertexAttribs2fvNV, - glVertexAttribs2hvNV, - glVertexAttribs2svNV, - glVertexAttribs3dvNV, - glVertexAttribs3fvNV, - glVertexAttribs3hvNV, - glVertexAttribs3svNV, - glVertexAttribs4dvNV, - glVertexAttribs4fvNV, - glVertexAttribs4hvNV, - glVertexAttribs4svNV, - glVertexAttribs4ubvNV, - glVertexBindingDivisor, - glVertexBlendARB, - glVertexBlendEnvfATI, - glVertexBlendEnviATI, - glVertexFormatNV, - glVertexP2ui, - glVertexP2uiv, - glVertexP3ui, - glVertexP3uiv, - glVertexP4ui, - glVertexP4uiv, - glVertexPointerEXT, - glVertexPointerListIBM, - glVertexPointervINTEL, - glVertexStream1dATI, - glVertexStream1dvATI, - glVertexStream1fATI, - glVertexStream1fvATI, - glVertexStream1iATI, - glVertexStream1ivATI, - glVertexStream1sATI, - glVertexStream1svATI, - glVertexStream2dATI, - glVertexStream2dvATI, - glVertexStream2fATI, - glVertexStream2fvATI, - glVertexStream2iATI, - glVertexStream2ivATI, - glVertexStream2sATI, - glVertexStream2svATI, - glVertexStream3dATI, - glVertexStream3dvATI, - glVertexStream3fATI, - glVertexStream3fvATI, - glVertexStream3iATI, - glVertexStream3ivATI, - glVertexStream3sATI, - glVertexStream3svATI, - glVertexStream4dATI, - glVertexStream4dvATI, - glVertexStream4fATI, - glVertexStream4fvATI, - glVertexStream4iATI, - glVertexStream4ivATI, - glVertexStream4sATI, - glVertexStream4svATI, - glVertexWeightPointerEXT, - glVertexWeightfEXT, - glVertexWeightfvEXT, - glVertexWeighthNV, - glVertexWeighthvNV, - glVideoCaptureNV, - glVideoCaptureStreamParameterdvNV, - glVideoCaptureStreamParameterfvNV, - glVideoCaptureStreamParameterivNV, - glViewportArrayv, - glViewportIndexedf, - glViewportIndexedfv, - glViewportPositionWScaleNV, - glViewportSwizzleNV, - glWaitSemaphoreEXT, - glWaitSemaphoreui64NVX, - glWaitSync, - glWaitVkSemaphoreNV, - glWeightPathsNV, - glWeightPointerARB, - glWeightbvARB, - glWeightdvARB, - glWeightfvARB, - glWeightivARB, - glWeightsvARB, - glWeightubvARB, - glWeightuivARB, - glWeightusvARB, - glWindowPos2d, - glWindowPos2dARB, - glWindowPos2dMESA, - glWindowPos2dv, - glWindowPos2dvARB, - glWindowPos2dvMESA, - glWindowPos2f, - glWindowPos2fARB, - glWindowPos2fMESA, - glWindowPos2fv, - glWindowPos2fvARB, - glWindowPos2fvMESA, - glWindowPos2i, - glWindowPos2iARB, - glWindowPos2iMESA, - glWindowPos2iv, - glWindowPos2ivARB, - glWindowPos2ivMESA, - glWindowPos2s, - glWindowPos2sARB, - glWindowPos2sMESA, - glWindowPos2sv, - glWindowPos2svARB, - glWindowPos2svMESA, - glWindowPos3d, - glWindowPos3dARB, - glWindowPos3dMESA, - glWindowPos3dv, - glWindowPos3dvARB, - glWindowPos3dvMESA, - glWindowPos3f, - glWindowPos3fARB, - glWindowPos3fMESA, - glWindowPos3fv, - glWindowPos3fvARB, - glWindowPos3fvMESA, - glWindowPos3i, - glWindowPos3iARB, - glWindowPos3iMESA, - glWindowPos3iv, - glWindowPos3ivARB, - glWindowPos3ivMESA, - glWindowPos3s, - glWindowPos3sARB, - glWindowPos3sMESA, - glWindowPos3sv, - glWindowPos3svARB, - glWindowPos3svMESA, - glWindowPos4dMESA, - glWindowPos4dvMESA, - glWindowPos4fMESA, - glWindowPos4fvMESA, - glWindowPos4iMESA, - glWindowPos4ivMESA, - glWindowPos4sMESA, - glWindowPos4svMESA, - glWindowRectanglesEXT, - glWriteMaskEXT, - wglAllocateMemoryNV, - wglBindTexImageARB, - wglChoosePixelFormatARB, - wglCreateContextAttribsARB, - wglCreatePbufferARB, - wglDestroyPbufferARB, - wglFreeMemoryNV, - wglGetCurrentReadDCARB, - wglGetExtensionsStringARB, - wglGetExtensionsStringEXT, - wglGetPbufferDCARB, - wglGetPixelFormatAttribfvARB, - wglGetPixelFormatAttribivARB, - wglGetSwapIntervalEXT, - wglMakeContextCurrentARB, - wglQueryCurrentRendererIntegerWINE, - wglQueryCurrentRendererStringWINE, - wglQueryPbufferARB, - wglQueryRendererIntegerWINE, - wglQueryRendererStringWINE, - wglReleasePbufferDCARB, - wglReleaseTexImageARB, - wglSetPbufferAttribARB, - wglSetPixelFormatWINE, - wglSwapIntervalEXT, +struct function_entry +{ + const char *name; + void *function; + enum opengl_extension supported[4]; +}; + +static int function_entry_cmp( const void *a, const void *b ) +{ + const struct function_entry *entry_a = a, *entry_b = b; + return strcmp( entry_a->name, entry_b->name ); }; + +static BOOL is_function_supported( const struct function_entry *entry, const struct opengl_client_context *ctx ) +{ + for (const enum opengl_extension *ext = entry->supported; *ext != GL_EXTENSION_COUNT; ext++) + { + if (*ext < GL_EXTENSION_COUNT && ctx->extensions[*ext]) return TRUE; + if (*ext > GL_EXTENSION_COUNT && ctx->major_version > HIWORD(*ext)) return TRUE; + if (*ext > GL_EXTENSION_COUNT && ctx->major_version == HIWORD(*ext) && ctx->minor_version >= LOWORD(*ext)) return TRUE; + } + return FALSE; +} + +void *get_proc_address( const char *name, const struct opengl_client_context *ctx ) +{ + static const struct function_entry functions[] = + { + { "glAccumxOES", glAccumxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glAcquireKeyedMutexWin32EXT", glAcquireKeyedMutexWin32EXT, { GL_EXT_win32_keyed_mutex, GL_EXTENSION_COUNT } }, + { "glActiveProgramEXT", glActiveProgramEXT, { GL_EXT_separate_shader_objects, GL_EXTENSION_COUNT } }, + { "glActiveShaderProgram", glActiveShaderProgram, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glActiveStencilFaceEXT", glActiveStencilFaceEXT, { GL_EXT_stencil_two_side, GL_EXTENSION_COUNT } }, + { "glActiveTexture", glActiveTexture, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glActiveTextureARB", glActiveTextureARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glActiveVaryingNV", glActiveVaryingNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glAlphaFragmentOp1ATI", glAlphaFragmentOp1ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glAlphaFragmentOp2ATI", glAlphaFragmentOp2ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glAlphaFragmentOp3ATI", glAlphaFragmentOp3ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glAlphaFuncx", glAlphaFuncx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glAlphaFuncxOES", glAlphaFuncxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glAlphaToCoverageDitherControlNV", glAlphaToCoverageDitherControlNV, { GL_NV_alpha_to_coverage_dither_control, GL_EXTENSION_COUNT } }, + { "glApplyFramebufferAttachmentCMAAINTEL", glApplyFramebufferAttachmentCMAAINTEL, { GL_INTEL_framebuffer_CMAA, GL_EXTENSION_COUNT } }, + { "glApplyTextureEXT", glApplyTextureEXT, { GL_EXT_light_texture, GL_EXTENSION_COUNT } }, + { "glAreProgramsResidentNV", glAreProgramsResidentNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glAreTexturesResidentEXT", glAreTexturesResidentEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glArrayElementEXT", glArrayElementEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glArrayObjectATI", glArrayObjectATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glAsyncCopyBufferSubDataNVX", glAsyncCopyBufferSubDataNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glAsyncCopyImageSubDataNVX", glAsyncCopyImageSubDataNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glAsyncMarkerSGIX", glAsyncMarkerSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glAttachObjectARB", glAttachObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glAttachShader", glAttachShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glBeginConditionalRender", glBeginConditionalRender, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBeginConditionalRenderNV", glBeginConditionalRenderNV, { GL_NV_conditional_render, GL_EXTENSION_COUNT } }, + { "glBeginConditionalRenderNVX", glBeginConditionalRenderNVX, { GL_NVX_conditional_render, GL_EXTENSION_COUNT } }, + { "glBeginFragmentShaderATI", glBeginFragmentShaderATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glBeginOcclusionQueryNV", glBeginOcclusionQueryNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glBeginPerfMonitorAMD", glBeginPerfMonitorAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glBeginPerfQueryINTEL", glBeginPerfQueryINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glBeginQuery", glBeginQuery, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glBeginQueryARB", glBeginQueryARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glBeginQueryIndexed", glBeginQueryIndexed, { GL_ARB_transform_feedback3, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBeginTransformFeedback", glBeginTransformFeedback, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBeginTransformFeedbackEXT", glBeginTransformFeedbackEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBeginTransformFeedbackNV", glBeginTransformFeedbackNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBeginVertexShaderEXT", glBeginVertexShaderEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBeginVideoCaptureNV", glBeginVideoCaptureNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glBindAttribLocation", glBindAttribLocation, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glBindAttribLocationARB", glBindAttribLocationARB, { GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindBuffer", glBindBuffer, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glBindBufferARB", glBindBufferARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glBindBufferBase", glBindBufferBase, { GL_ARB_uniform_buffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindBufferBaseEXT", glBindBufferBaseEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBufferBaseNV", glBindBufferBaseNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBufferOffsetEXT", glBindBufferOffsetEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBufferOffsetNV", glBindBufferOffsetNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBufferRange", glBindBufferRange, { GL_ARB_uniform_buffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindBufferRangeEXT", glBindBufferRangeEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBufferRangeNV", glBindBufferRangeNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glBindBuffersBase", glBindBuffersBase, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindBuffersRange", glBindBuffersRange, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindFragDataLocation", glBindFragDataLocation, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindFragDataLocationEXT", glBindFragDataLocationEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glBindFragDataLocationIndexed", glBindFragDataLocationIndexed, { GL_ARB_blend_func_extended, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glBindFragmentShaderATI", glBindFragmentShaderATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glBindFramebuffer", glBindFramebuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindFramebufferEXT", glBindFramebufferEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glBindImageTexture", glBindImageTexture, { GL_ARB_shader_image_load_store, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glBindImageTextureEXT", glBindImageTextureEXT, { GL_EXT_shader_image_load_store, GL_EXTENSION_COUNT } }, + { "glBindImageTextures", glBindImageTextures, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindLightParameterEXT", glBindLightParameterEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindMaterialParameterEXT", glBindMaterialParameterEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindMultiTextureEXT", glBindMultiTextureEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glBindParameterEXT", glBindParameterEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindProgramARB", glBindProgramARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glBindProgramNV", glBindProgramNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glBindProgramPipeline", glBindProgramPipeline, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glBindRenderbuffer", glBindRenderbuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindRenderbufferEXT", glBindRenderbufferEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glBindSampler", glBindSampler, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glBindSamplers", glBindSamplers, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindShadingRateImageNV", glBindShadingRateImageNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glBindTexGenParameterEXT", glBindTexGenParameterEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindTextureEXT", glBindTextureEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glBindTextureUnit", glBindTextureUnit, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glBindTextureUnitParameterEXT", glBindTextureUnitParameterEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindTextures", glBindTextures, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindTransformFeedback", glBindTransformFeedback, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBindTransformFeedbackNV", glBindTransformFeedbackNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glBindVertexArray", glBindVertexArray, { GL_ARB_vertex_array_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBindVertexArrayAPPLE", glBindVertexArrayAPPLE, { GL_APPLE_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glBindVertexBuffer", glBindVertexBuffer, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glBindVertexBuffers", glBindVertexBuffers, { GL_ARB_multi_bind, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBindVertexShaderEXT", glBindVertexShaderEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glBindVideoCaptureStreamBufferNV", glBindVideoCaptureStreamBufferNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glBindVideoCaptureStreamTextureNV", glBindVideoCaptureStreamTextureNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glBinormal3bEXT", glBinormal3bEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3bvEXT", glBinormal3bvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3dEXT", glBinormal3dEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3dvEXT", glBinormal3dvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3fEXT", glBinormal3fEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3fvEXT", glBinormal3fvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3iEXT", glBinormal3iEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3ivEXT", glBinormal3ivEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3sEXT", glBinormal3sEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormal3svEXT", glBinormal3svEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBinormalPointerEXT", glBinormalPointerEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glBitmapxOES", glBitmapxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glBlendBarrier", glBlendBarrier, { GL_ARB_ES3_2_compatibility, GL_EXTENSION_COUNT } }, + { "glBlendBarrierKHR", glBlendBarrierKHR, { GL_KHR_blend_equation_advanced, GL_EXTENSION_COUNT } }, + { "glBlendBarrierNV", glBlendBarrierNV, { GL_NV_blend_equation_advanced, GL_EXTENSION_COUNT } }, + { "glBlendColor", glBlendColor, { GL_ARB_imaging, MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glBlendColorEXT", glBlendColorEXT, { GL_EXT_blend_color, GL_EXTENSION_COUNT } }, + { "glBlendColorxOES", glBlendColorxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glBlendEquation", glBlendEquation, { GL_ARB_imaging, MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glBlendEquationEXT", glBlendEquationEXT, { GL_EXT_blend_minmax, GL_EXTENSION_COUNT } }, + { "glBlendEquationIndexedAMD", glBlendEquationIndexedAMD, { GL_AMD_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendEquationSeparate", glBlendEquationSeparate, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glBlendEquationSeparateEXT", glBlendEquationSeparateEXT, { GL_ATI_blend_equation_separate, GL_EXT_blend_equation_separate, GL_EXTENSION_COUNT } }, + { "glBlendEquationSeparateIndexedAMD", glBlendEquationSeparateIndexedAMD, { GL_AMD_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendEquationSeparatei", glBlendEquationSeparatei, { MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBlendEquationSeparateiARB", glBlendEquationSeparateiARB, { GL_ARB_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendEquationi", glBlendEquationi, { MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBlendEquationiARB", glBlendEquationiARB, { GL_ARB_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendFuncIndexedAMD", glBlendFuncIndexedAMD, { GL_AMD_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparate", glBlendFuncSeparate, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparateEXT", glBlendFuncSeparateEXT, { GL_EXT_blend_func_separate, GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparateINGR", glBlendFuncSeparateINGR, { GL_INGR_blend_func_separate, GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparateIndexedAMD", glBlendFuncSeparateIndexedAMD, { GL_AMD_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparatei", glBlendFuncSeparatei, { MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBlendFuncSeparateiARB", glBlendFuncSeparateiARB, { GL_ARB_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendFunci", glBlendFunci, { MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glBlendFunciARB", glBlendFunciARB, { GL_ARB_draw_buffers_blend, GL_EXTENSION_COUNT } }, + { "glBlendParameteriNV", glBlendParameteriNV, { GL_NV_blend_equation_advanced, GL_EXTENSION_COUNT } }, + { "glBlitFramebuffer", glBlitFramebuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glBlitFramebufferEXT", glBlitFramebufferEXT, { GL_EXT_framebuffer_blit, GL_EXTENSION_COUNT } }, + { "glBlitFramebufferLayerEXT", glBlitFramebufferLayerEXT, { GL_EXT_framebuffer_blit_layers, GL_EXTENSION_COUNT } }, + { "glBlitFramebufferLayersEXT", glBlitFramebufferLayersEXT, { GL_EXT_framebuffer_blit_layers, GL_EXTENSION_COUNT } }, + { "glBlitNamedFramebuffer", glBlitNamedFramebuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glBufferAddressRangeNV", glBufferAddressRangeNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glBufferAttachMemoryNV", glBufferAttachMemoryNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glBufferData", glBufferData, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glBufferDataARB", glBufferDataARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glBufferPageCommitmentARB", glBufferPageCommitmentARB, { GL_ARB_sparse_buffer, GL_EXTENSION_COUNT } }, + { "glBufferPageCommitmentMemNV", glBufferPageCommitmentMemNV, { GL_NV_memory_object_sparse, GL_EXTENSION_COUNT } }, + { "glBufferParameteriAPPLE", glBufferParameteriAPPLE, { GL_APPLE_flush_buffer_range, GL_EXTENSION_COUNT } }, + { "glBufferRegionEnabled", glBufferRegionEnabled, { GL_KTX_buffer_region, GL_EXTENSION_COUNT } }, + { "glBufferStorage", glBufferStorage, { GL_ARB_buffer_storage, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glBufferStorageExternalEXT", glBufferStorageExternalEXT, { GL_EXT_external_buffer, GL_EXTENSION_COUNT } }, + { "glBufferStorageMemEXT", glBufferStorageMemEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glBufferSubData", glBufferSubData, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glBufferSubDataARB", glBufferSubDataARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glCallCommandListNV", glCallCommandListNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glCheckFramebufferStatus", glCheckFramebufferStatus, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glCheckFramebufferStatusEXT", glCheckFramebufferStatusEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glCheckNamedFramebufferStatus", glCheckNamedFramebufferStatus, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCheckNamedFramebufferStatusEXT", glCheckNamedFramebufferStatusEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glClampColor", glClampColor, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glClampColorARB", glClampColorARB, { GL_ARB_color_buffer_float, GL_EXTENSION_COUNT } }, + { "glClearAccumxOES", glClearAccumxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glClearBufferData", glClearBufferData, { GL_ARB_clear_buffer_object, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glClearBufferSubData", glClearBufferSubData, { GL_ARB_clear_buffer_object, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glClearBufferfi", glClearBufferfi, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glClearBufferfv", glClearBufferfv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glClearBufferiv", glClearBufferiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glClearBufferuiv", glClearBufferuiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glClearColorIiEXT", glClearColorIiEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glClearColorIuiEXT", glClearColorIuiEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glClearColorx", glClearColorx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glClearColorxOES", glClearColorxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glClearDepthdNV", glClearDepthdNV, { GL_NV_depth_buffer_float, GL_EXTENSION_COUNT } }, + { "glClearDepthf", glClearDepthf, { GL_ARB_ES2_compatibility, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glClearDepthfOES", glClearDepthfOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glClearDepthx", glClearDepthx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glClearDepthxOES", glClearDepthxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glClearNamedBufferData", glClearNamedBufferData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearNamedBufferDataEXT", glClearNamedBufferDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glClearNamedBufferSubData", glClearNamedBufferSubData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearNamedBufferSubDataEXT", glClearNamedBufferSubDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glClearNamedFramebufferfi", glClearNamedFramebufferfi, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearNamedFramebufferfv", glClearNamedFramebufferfv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearNamedFramebufferiv", glClearNamedFramebufferiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearNamedFramebufferuiv", glClearNamedFramebufferuiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClearTexImage", glClearTexImage, { GL_ARB_clear_texture, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glClearTexSubImage", glClearTexSubImage, { GL_ARB_clear_texture, MAKELONG(4, 4), GL_EXTENSION_COUNT } }, + { "glClientActiveTexture", glClientActiveTexture, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glClientActiveTextureARB", glClientActiveTextureARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glClientActiveVertexStreamATI", glClientActiveVertexStreamATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glClientAttribDefaultEXT", glClientAttribDefaultEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glClientWaitSemaphoreui64NVX", glClientWaitSemaphoreui64NVX, { GL_NVX_progress_fence, GL_EXTENSION_COUNT } }, + { "glClientWaitSync", glClientWaitSync, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glClipControl", glClipControl, { GL_ARB_clip_control, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glClipPlanef", glClipPlanef, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glClipPlanefOES", glClipPlanefOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glClipPlanex", glClipPlanex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glClipPlanexOES", glClipPlanexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glColor3fVertex3fSUN", glColor3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor3fVertex3fvSUN", glColor3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor3hNV", glColor3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glColor3hvNV", glColor3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glColor3xOES", glColor3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glColor3xvOES", glColor3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glColor4fNormal3fVertex3fSUN", glColor4fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4fNormal3fVertex3fvSUN", glColor4fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4hNV", glColor4hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glColor4hvNV", glColor4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glColor4ubVertex2fSUN", glColor4ubVertex2fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4ubVertex2fvSUN", glColor4ubVertex2fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4ubVertex3fSUN", glColor4ubVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4ubVertex3fvSUN", glColor4ubVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glColor4x", glColor4x, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glColor4xOES", glColor4xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glColor4xvOES", glColor4xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glColorFormatNV", glColorFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glColorFragmentOp1ATI", glColorFragmentOp1ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glColorFragmentOp2ATI", glColorFragmentOp2ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glColorFragmentOp3ATI", glColorFragmentOp3ATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glColorMaskIndexedEXT", glColorMaskIndexedEXT, { GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glColorMaski", glColorMaski, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glColorP3ui", glColorP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glColorP3uiv", glColorP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glColorP4ui", glColorP4ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glColorP4uiv", glColorP4uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glColorPointerEXT", glColorPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glColorPointerListIBM", glColorPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glColorPointervINTEL", glColorPointervINTEL, { GL_INTEL_parallel_arrays, GL_EXTENSION_COUNT } }, + { "glColorSubTable", glColorSubTable, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glColorSubTableEXT", glColorSubTableEXT, { GL_EXT_color_subtable, GL_EXTENSION_COUNT } }, + { "glColorTable", glColorTable, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glColorTableEXT", glColorTableEXT, { GL_EXT_paletted_texture, GL_EXTENSION_COUNT } }, + { "glColorTableParameterfv", glColorTableParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glColorTableParameterfvSGI", glColorTableParameterfvSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glColorTableParameteriv", glColorTableParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glColorTableParameterivSGI", glColorTableParameterivSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glColorTableSGI", glColorTableSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glCombinerInputNV", glCombinerInputNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerOutputNV", glCombinerOutputNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerParameterfNV", glCombinerParameterfNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerParameterfvNV", glCombinerParameterfvNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerParameteriNV", glCombinerParameteriNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerParameterivNV", glCombinerParameterivNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glCombinerStageParameterfvNV", glCombinerStageParameterfvNV, { GL_NV_register_combiners2, GL_EXTENSION_COUNT } }, + { "glCommandListSegmentsNV", glCommandListSegmentsNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glCompileCommandListNV", glCompileCommandListNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glCompileShader", glCompileShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glCompileShaderARB", glCompileShaderARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glCompileShaderIncludeARB", glCompileShaderIncludeARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexImage1DEXT", glCompressedMultiTexImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexImage2DEXT", glCompressedMultiTexImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexImage3DEXT", glCompressedMultiTexImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexSubImage1DEXT", glCompressedMultiTexSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexSubImage2DEXT", glCompressedMultiTexSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedMultiTexSubImage3DEXT", glCompressedMultiTexSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTexImage1D", glCompressedTexImage1D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexImage1DARB", glCompressedTexImage1DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexImage2D", glCompressedTexImage2D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexImage2DARB", glCompressedTexImage2DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexImage3D", glCompressedTexImage3D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexImage3DARB", glCompressedTexImage3DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage1D", glCompressedTexSubImage1D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage1DARB", glCompressedTexSubImage1DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage2D", glCompressedTexSubImage2D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage2DARB", glCompressedTexSubImage2DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage3D", glCompressedTexSubImage3D, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTexSubImage3DARB", glCompressedTexSubImage3DARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glCompressedTextureImage1DEXT", glCompressedTextureImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTextureImage2DEXT", glCompressedTextureImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTextureImage3DEXT", glCompressedTextureImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage1D", glCompressedTextureSubImage1D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage1DEXT", glCompressedTextureSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage2D", glCompressedTextureSubImage2D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage2DEXT", glCompressedTextureSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage3D", glCompressedTextureSubImage3D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCompressedTextureSubImage3DEXT", glCompressedTextureSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glConservativeRasterParameterfNV", glConservativeRasterParameterfNV, { GL_NV_conservative_raster_dilate, GL_EXTENSION_COUNT } }, + { "glConservativeRasterParameteriNV", glConservativeRasterParameteriNV, { GL_NV_conservative_raster_pre_snap_triangles, GL_EXTENSION_COUNT } }, + { "glConvolutionFilter1D", glConvolutionFilter1D, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionFilter1DEXT", glConvolutionFilter1DEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionFilter2D", glConvolutionFilter2D, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionFilter2DEXT", glConvolutionFilter2DEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterf", glConvolutionParameterf, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterfEXT", glConvolutionParameterfEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterfv", glConvolutionParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterfvEXT", glConvolutionParameterfvEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionParameteri", glConvolutionParameteri, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionParameteriEXT", glConvolutionParameteriEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionParameteriv", glConvolutionParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterivEXT", glConvolutionParameterivEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterxOES", glConvolutionParameterxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glConvolutionParameterxvOES", glConvolutionParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glCopyBufferSubData", glCopyBufferSubData, { GL_ARB_copy_buffer, GL_EXT_copy_buffer, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glCopyColorSubTable", glCopyColorSubTable, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glCopyColorSubTableEXT", glCopyColorSubTableEXT, { GL_EXT_color_subtable, GL_EXTENSION_COUNT } }, + { "glCopyColorTable", glCopyColorTable, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glCopyColorTableSGI", glCopyColorTableSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glCopyConvolutionFilter1D", glCopyConvolutionFilter1D, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glCopyConvolutionFilter1DEXT", glCopyConvolutionFilter1DEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glCopyConvolutionFilter2D", glCopyConvolutionFilter2D, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glCopyConvolutionFilter2DEXT", glCopyConvolutionFilter2DEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glCopyImageSubData", glCopyImageSubData, { GL_ARB_copy_image, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glCopyImageSubDataNV", glCopyImageSubDataNV, { GL_NV_copy_image, GL_EXTENSION_COUNT } }, + { "glCopyMultiTexImage1DEXT", glCopyMultiTexImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyMultiTexImage2DEXT", glCopyMultiTexImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyMultiTexSubImage1DEXT", glCopyMultiTexSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyMultiTexSubImage2DEXT", glCopyMultiTexSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyMultiTexSubImage3DEXT", glCopyMultiTexSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyNamedBufferSubData", glCopyNamedBufferSubData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCopyPathNV", glCopyPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glCopyTexImage1DEXT", glCopyTexImage1DEXT, { GL_EXT_copy_texture, MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTexImage2DEXT", glCopyTexImage2DEXT, { GL_EXT_copy_texture, MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTexSubImage1DEXT", glCopyTexSubImage1DEXT, { GL_EXT_copy_texture, MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTexSubImage2DEXT", glCopyTexSubImage2DEXT, { GL_EXT_copy_texture, MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTexSubImage3D", glCopyTexSubImage3D, { MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTexSubImage3DEXT", glCopyTexSubImage3DEXT, { GL_EXT_copy_texture, MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glCopyTextureImage1DEXT", glCopyTextureImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyTextureImage2DEXT", glCopyTextureImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage1D", glCopyTextureSubImage1D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage1DEXT", glCopyTextureSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage2D", glCopyTextureSubImage2D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage2DEXT", glCopyTextureSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage3D", glCopyTextureSubImage3D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCopyTextureSubImage3DEXT", glCopyTextureSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glCoverFillPathInstancedNV", glCoverFillPathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glCoverFillPathNV", glCoverFillPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glCoverStrokePathInstancedNV", glCoverStrokePathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glCoverStrokePathNV", glCoverStrokePathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glCoverageModulationNV", glCoverageModulationNV, { GL_NV_framebuffer_mixed_samples, GL_EXTENSION_COUNT } }, + { "glCoverageModulationTableNV", glCoverageModulationTableNV, { GL_NV_framebuffer_mixed_samples, GL_EXTENSION_COUNT } }, + { "glCreateBuffers", glCreateBuffers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateCommandListsNV", glCreateCommandListsNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glCreateFramebuffers", glCreateFramebuffers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateMemoryObjectsEXT", glCreateMemoryObjectsEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glCreatePerfQueryINTEL", glCreatePerfQueryINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glCreateProgram", glCreateProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glCreateProgramObjectARB", glCreateProgramObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glCreateProgramPipelines", glCreateProgramPipelines, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateProgressFenceNVX", glCreateProgressFenceNVX, { GL_NVX_progress_fence, GL_EXTENSION_COUNT } }, + { "glCreateQueries", glCreateQueries, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateRenderbuffers", glCreateRenderbuffers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateSamplers", glCreateSamplers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateSemaphoresNV", glCreateSemaphoresNV, { GL_NV_timeline_semaphore, GL_EXTENSION_COUNT } }, + { "glCreateShader", glCreateShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glCreateShaderObjectARB", glCreateShaderObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glCreateShaderProgramEXT", glCreateShaderProgramEXT, { GL_EXT_separate_shader_objects, GL_EXTENSION_COUNT } }, + { "glCreateShaderProgramv", glCreateShaderProgramv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glCreateStatesNV", glCreateStatesNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glCreateSyncFromCLeventARB", glCreateSyncFromCLeventARB, { GL_ARB_cl_event, GL_EXTENSION_COUNT } }, + { "glCreateTextures", glCreateTextures, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateTransformFeedbacks", glCreateTransformFeedbacks, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCreateVertexArrays", glCreateVertexArrays, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glCullParameterdvEXT", glCullParameterdvEXT, { GL_EXT_cull_vertex, GL_EXTENSION_COUNT } }, + { "glCullParameterfvEXT", glCullParameterfvEXT, { GL_EXT_cull_vertex, GL_EXTENSION_COUNT } }, + { "glCurrentPaletteMatrixARB", glCurrentPaletteMatrixARB, { GL_ARB_matrix_palette, GL_EXTENSION_COUNT } }, + { "glDebugMessageCallback", glDebugMessageCallback, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glDebugMessageCallbackAMD", glDebugMessageCallbackAMD, { GL_AMDX_debug_output, GL_AMD_debug_output, GL_EXTENSION_COUNT } }, + { "glDebugMessageCallbackARB", glDebugMessageCallbackARB, { GL_ARB_debug_output, GL_EXTENSION_COUNT } }, + { "glDebugMessageControl", glDebugMessageControl, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glDebugMessageControlARB", glDebugMessageControlARB, { GL_ARB_debug_output, GL_EXTENSION_COUNT } }, + { "glDebugMessageEnableAMD", glDebugMessageEnableAMD, { GL_AMDX_debug_output, GL_AMD_debug_output, GL_EXTENSION_COUNT } }, + { "glDebugMessageInsert", glDebugMessageInsert, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glDebugMessageInsertAMD", glDebugMessageInsertAMD, { GL_AMDX_debug_output, GL_AMD_debug_output, GL_EXTENSION_COUNT } }, + { "glDebugMessageInsertARB", glDebugMessageInsertARB, { GL_ARB_debug_output, GL_EXTENSION_COUNT } }, + { "glDeformSGIX", glDeformSGIX, { GL_SGIX_polynomial_ffd, GL_EXTENSION_COUNT } }, + { "glDeformationMap3dSGIX", glDeformationMap3dSGIX, { GL_SGIX_polynomial_ffd, GL_EXTENSION_COUNT } }, + { "glDeformationMap3fSGIX", glDeformationMap3fSGIX, { GL_SGIX_polynomial_ffd, GL_EXTENSION_COUNT } }, + { "glDeleteAsyncMarkersSGIX", glDeleteAsyncMarkersSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glDeleteBufferRegion", glDeleteBufferRegion, { GL_KTX_buffer_region, GL_EXTENSION_COUNT } }, + { "glDeleteBuffers", glDeleteBuffers, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glDeleteBuffersARB", glDeleteBuffersARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glDeleteCommandListsNV", glDeleteCommandListsNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDeleteFencesAPPLE", glDeleteFencesAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glDeleteFencesNV", glDeleteFencesNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glDeleteFragmentShaderATI", glDeleteFragmentShaderATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glDeleteFramebuffers", glDeleteFramebuffers, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glDeleteFramebuffersEXT", glDeleteFramebuffersEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glDeleteMemoryObjectsEXT", glDeleteMemoryObjectsEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glDeleteNamedStringARB", glDeleteNamedStringARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glDeleteNamesAMD", glDeleteNamesAMD, { GL_AMD_name_gen_delete, GL_EXTENSION_COUNT } }, + { "glDeleteObjectARB", glDeleteObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glDeleteObjectBufferATI", glDeleteObjectBufferATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glDeleteOcclusionQueriesNV", glDeleteOcclusionQueriesNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glDeletePathsNV", glDeletePathsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glDeletePerfMonitorsAMD", glDeletePerfMonitorsAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glDeletePerfQueryINTEL", glDeletePerfQueryINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glDeleteProgram", glDeleteProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glDeleteProgramPipelines", glDeleteProgramPipelines, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glDeleteProgramsARB", glDeleteProgramsARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glDeleteProgramsNV", glDeleteProgramsNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glDeleteQueries", glDeleteQueries, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glDeleteQueriesARB", glDeleteQueriesARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glDeleteQueryResourceTagNV", glDeleteQueryResourceTagNV, { GL_NV_query_resource_tag, GL_EXTENSION_COUNT } }, + { "glDeleteRenderbuffers", glDeleteRenderbuffers, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glDeleteRenderbuffersEXT", glDeleteRenderbuffersEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glDeleteSamplers", glDeleteSamplers, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glDeleteSemaphoresEXT", glDeleteSemaphoresEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glDeleteShader", glDeleteShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glDeleteStatesNV", glDeleteStatesNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDeleteSync", glDeleteSync, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glDeleteTexturesEXT", glDeleteTexturesEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glDeleteTransformFeedbacks", glDeleteTransformFeedbacks, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glDeleteTransformFeedbacksNV", glDeleteTransformFeedbacksNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glDeleteVertexArrays", glDeleteVertexArrays, { GL_ARB_vertex_array_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glDeleteVertexArraysAPPLE", glDeleteVertexArraysAPPLE, { GL_APPLE_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glDeleteVertexShaderEXT", glDeleteVertexShaderEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glDepthBoundsEXT", glDepthBoundsEXT, { GL_EXT_depth_bounds_test, GL_EXTENSION_COUNT } }, + { "glDepthBoundsdNV", glDepthBoundsdNV, { GL_NV_depth_buffer_float, GL_EXTENSION_COUNT } }, + { "glDepthRangeArraydvNV", glDepthRangeArraydvNV, { GL_ARB_viewport_array, GL_EXTENSION_COUNT } }, + { "glDepthRangeArrayv", glDepthRangeArrayv, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glDepthRangeIndexed", glDepthRangeIndexed, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glDepthRangeIndexeddNV", glDepthRangeIndexeddNV, { GL_ARB_viewport_array, GL_EXTENSION_COUNT } }, + { "glDepthRangedNV", glDepthRangedNV, { GL_NV_depth_buffer_float, GL_EXTENSION_COUNT } }, + { "glDepthRangef", glDepthRangef, { GL_ARB_ES2_compatibility, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glDepthRangefOES", glDepthRangefOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glDepthRangex", glDepthRangex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glDepthRangexOES", glDepthRangexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glDetachObjectARB", glDetachObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glDetachShader", glDetachShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glDetailTexFuncSGIS", glDetailTexFuncSGIS, { GL_SGIS_detail_texture, GL_EXTENSION_COUNT } }, + { "glDisableClientStateIndexedEXT", glDisableClientStateIndexedEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glDisableClientStateiEXT", glDisableClientStateiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glDisableIndexedEXT", glDisableIndexedEXT, { GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glDisableVariantClientStateEXT", glDisableVariantClientStateEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glDisableVertexArrayAttrib", glDisableVertexArrayAttrib, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glDisableVertexArrayAttribEXT", glDisableVertexArrayAttribEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glDisableVertexArrayEXT", glDisableVertexArrayEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glDisableVertexAttribAPPLE", glDisableVertexAttribAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glDisableVertexAttribArray", glDisableVertexAttribArray, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glDisableVertexAttribArrayARB", glDisableVertexAttribArrayARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glDisablei", glDisablei, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glDispatchCompute", glDispatchCompute, { GL_ARB_compute_shader, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glDispatchComputeGroupSizeARB", glDispatchComputeGroupSizeARB, { GL_ARB_compute_variable_group_size, GL_EXTENSION_COUNT } }, + { "glDispatchComputeIndirect", glDispatchComputeIndirect, { GL_ARB_compute_shader, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glDrawArraysEXT", glDrawArraysEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glDrawArraysIndirect", glDrawArraysIndirect, { GL_ARB_draw_indirect, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glDrawArraysInstanced", glDrawArraysInstanced, { MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glDrawArraysInstancedARB", glDrawArraysInstancedARB, { GL_ARB_draw_instanced, GL_EXTENSION_COUNT } }, + { "glDrawArraysInstancedBaseInstance", glDrawArraysInstancedBaseInstance, { GL_ARB_base_instance, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glDrawArraysInstancedEXT", glDrawArraysInstancedEXT, { GL_EXT_draw_instanced, GL_EXTENSION_COUNT } }, + { "glDrawBufferRegion", glDrawBufferRegion, { GL_KTX_buffer_region, GL_EXTENSION_COUNT } }, + { "glDrawBuffers", glDrawBuffers, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glDrawBuffersARB", glDrawBuffersARB, { GL_ARB_draw_buffers, GL_EXTENSION_COUNT } }, + { "glDrawBuffersATI", glDrawBuffersATI, { GL_ATI_draw_buffers, GL_EXTENSION_COUNT } }, + { "glDrawCommandsAddressNV", glDrawCommandsAddressNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDrawCommandsNV", glDrawCommandsNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDrawCommandsStatesAddressNV", glDrawCommandsStatesAddressNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDrawCommandsStatesNV", glDrawCommandsStatesNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glDrawElementArrayAPPLE", glDrawElementArrayAPPLE, { GL_APPLE_element_array, GL_EXTENSION_COUNT } }, + { "glDrawElementArrayATI", glDrawElementArrayATI, { GL_ATI_element_array, GL_EXTENSION_COUNT } }, + { "glDrawElementsBaseVertex", glDrawElementsBaseVertex, { GL_ARB_draw_elements_base_vertex, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glDrawElementsIndirect", glDrawElementsIndirect, { GL_ARB_draw_indirect, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glDrawElementsInstanced", glDrawElementsInstanced, { MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glDrawElementsInstancedARB", glDrawElementsInstancedARB, { GL_ARB_draw_instanced, GL_EXTENSION_COUNT } }, + { "glDrawElementsInstancedBaseInstance", glDrawElementsInstancedBaseInstance, { GL_ARB_base_instance, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glDrawElementsInstancedBaseVertex", glDrawElementsInstancedBaseVertex, { GL_ARB_draw_elements_base_vertex, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glDrawElementsInstancedBaseVertexBaseInstance", glDrawElementsInstancedBaseVertexBaseInstance, { GL_ARB_base_instance, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glDrawElementsInstancedEXT", glDrawElementsInstancedEXT, { GL_EXT_draw_instanced, GL_EXTENSION_COUNT } }, + { "glDrawMeshArraysSUN", glDrawMeshArraysSUN, { GL_SUN_mesh_array, GL_EXTENSION_COUNT } }, + { "glDrawMeshTasksEXT", glDrawMeshTasksEXT, { GL_EXT_mesh_shader, GL_EXTENSION_COUNT } }, + { "glDrawMeshTasksIndirectEXT", glDrawMeshTasksIndirectEXT, { GL_EXT_mesh_shader, GL_EXTENSION_COUNT } }, + { "glDrawMeshTasksIndirectNV", glDrawMeshTasksIndirectNV, { GL_NV_mesh_shader, GL_EXTENSION_COUNT } }, + { "glDrawMeshTasksNV", glDrawMeshTasksNV, { GL_NV_mesh_shader, GL_EXTENSION_COUNT } }, + { "glDrawRangeElementArrayAPPLE", glDrawRangeElementArrayAPPLE, { GL_APPLE_element_array, GL_EXTENSION_COUNT } }, + { "glDrawRangeElementArrayATI", glDrawRangeElementArrayATI, { GL_ATI_element_array, GL_EXTENSION_COUNT } }, + { "glDrawRangeElements", glDrawRangeElements, { MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glDrawRangeElementsBaseVertex", glDrawRangeElementsBaseVertex, { GL_ARB_draw_elements_base_vertex, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glDrawRangeElementsEXT", glDrawRangeElementsEXT, { GL_EXT_draw_range_elements, GL_EXTENSION_COUNT } }, + { "glDrawTextureNV", glDrawTextureNV, { GL_NV_draw_texture, GL_EXTENSION_COUNT } }, + { "glDrawTransformFeedback", glDrawTransformFeedback, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glDrawTransformFeedbackInstanced", glDrawTransformFeedbackInstanced, { GL_ARB_transform_feedback_instanced, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glDrawTransformFeedbackNV", glDrawTransformFeedbackNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glDrawTransformFeedbackStream", glDrawTransformFeedbackStream, { GL_ARB_transform_feedback3, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glDrawTransformFeedbackStreamInstanced", glDrawTransformFeedbackStreamInstanced, { GL_ARB_transform_feedback_instanced, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glDrawVkImageNV", glDrawVkImageNV, { GL_NV_draw_vulkan_image, GL_EXTENSION_COUNT } }, + { "glEGLImageTargetTexStorageEXT", glEGLImageTargetTexStorageEXT, { GL_EXT_EGL_image_storage, GL_EXTENSION_COUNT } }, + { "glEGLImageTargetTextureStorageEXT", glEGLImageTargetTextureStorageEXT, { GL_EXT_EGL_image_storage, GL_EXTENSION_COUNT } }, + { "glEdgeFlagFormatNV", glEdgeFlagFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glEdgeFlagPointerEXT", glEdgeFlagPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glEdgeFlagPointerListIBM", glEdgeFlagPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glElementPointerAPPLE", glElementPointerAPPLE, { GL_APPLE_element_array, GL_EXTENSION_COUNT } }, + { "glElementPointerATI", glElementPointerATI, { GL_ATI_element_array, GL_EXTENSION_COUNT } }, + { "glEnableClientStateIndexedEXT", glEnableClientStateIndexedEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glEnableClientStateiEXT", glEnableClientStateiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glEnableIndexedEXT", glEnableIndexedEXT, { GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glEnableVariantClientStateEXT", glEnableVariantClientStateEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glEnableVertexArrayAttrib", glEnableVertexArrayAttrib, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glEnableVertexArrayAttribEXT", glEnableVertexArrayAttribEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glEnableVertexArrayEXT", glEnableVertexArrayEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glEnableVertexAttribAPPLE", glEnableVertexAttribAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glEnableVertexAttribArray", glEnableVertexAttribArray, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glEnableVertexAttribArrayARB", glEnableVertexAttribArrayARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glEnablei", glEnablei, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glEndConditionalRender", glEndConditionalRender, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glEndConditionalRenderNV", glEndConditionalRenderNV, { GL_NV_conditional_render, GL_EXTENSION_COUNT } }, + { "glEndConditionalRenderNVX", glEndConditionalRenderNVX, { GL_NVX_conditional_render, GL_EXTENSION_COUNT } }, + { "glEndFragmentShaderATI", glEndFragmentShaderATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glEndOcclusionQueryNV", glEndOcclusionQueryNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glEndPerfMonitorAMD", glEndPerfMonitorAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glEndPerfQueryINTEL", glEndPerfQueryINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glEndQuery", glEndQuery, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glEndQueryARB", glEndQueryARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glEndQueryIndexed", glEndQueryIndexed, { GL_ARB_transform_feedback3, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glEndTransformFeedback", glEndTransformFeedback, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glEndTransformFeedbackEXT", glEndTransformFeedbackEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glEndTransformFeedbackNV", glEndTransformFeedbackNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glEndVertexShaderEXT", glEndVertexShaderEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glEndVideoCaptureNV", glEndVideoCaptureNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glEvalCoord1xOES", glEvalCoord1xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glEvalCoord1xvOES", glEvalCoord1xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glEvalCoord2xOES", glEvalCoord2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glEvalCoord2xvOES", glEvalCoord2xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glEvalMapsNV", glEvalMapsNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glEvaluateDepthValuesARB", glEvaluateDepthValuesARB, { GL_ARB_sample_locations, GL_EXTENSION_COUNT } }, + { "glExecuteProgramNV", glExecuteProgramNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glExtractComponentEXT", glExtractComponentEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glFeedbackBufferxOES", glFeedbackBufferxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glFenceSync", glFenceSync, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glFinalCombinerInputNV", glFinalCombinerInputNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glFinishAsyncSGIX", glFinishAsyncSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glFinishFenceAPPLE", glFinishFenceAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glFinishFenceNV", glFinishFenceNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glFinishObjectAPPLE", glFinishObjectAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glFinishTextureSUNX", glFinishTextureSUNX, { GL_SUNX_constant_data, GL_EXTENSION_COUNT } }, + { "glFlushMappedBufferRange", glFlushMappedBufferRange, { GL_ARB_map_buffer_range, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFlushMappedBufferRangeAPPLE", glFlushMappedBufferRangeAPPLE, { GL_APPLE_flush_buffer_range, GL_EXTENSION_COUNT } }, + { "glFlushMappedNamedBufferRange", glFlushMappedNamedBufferRange, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glFlushMappedNamedBufferRangeEXT", glFlushMappedNamedBufferRangeEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glFlushPixelDataRangeNV", glFlushPixelDataRangeNV, { GL_NV_pixel_data_range, GL_EXTENSION_COUNT } }, + { "glFlushRasterSGIX", glFlushRasterSGIX, { GL_SGIX_flush_raster, GL_EXTENSION_COUNT } }, + { "glFlushStaticDataIBM", glFlushStaticDataIBM, { GL_IBM_static_data, GL_EXTENSION_COUNT } }, + { "glFlushVertexArrayRangeAPPLE", glFlushVertexArrayRangeAPPLE, { GL_APPLE_vertex_array_range, GL_EXTENSION_COUNT } }, + { "glFlushVertexArrayRangeNV", glFlushVertexArrayRangeNV, { GL_NV_vertex_array_range, GL_EXTENSION_COUNT } }, + { "glFogCoordFormatNV", glFogCoordFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glFogCoordPointer", glFogCoordPointer, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glFogCoordPointerEXT", glFogCoordPointerEXT, { GL_EXT_fog_coord, GL_EXTENSION_COUNT } }, + { "glFogCoordPointerListIBM", glFogCoordPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glFogCoordd", glFogCoordd, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glFogCoorddEXT", glFogCoorddEXT, { GL_EXT_fog_coord, GL_EXTENSION_COUNT } }, + { "glFogCoorddv", glFogCoorddv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glFogCoorddvEXT", glFogCoorddvEXT, { GL_EXT_fog_coord, GL_EXTENSION_COUNT } }, + { "glFogCoordf", glFogCoordf, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glFogCoordfEXT", glFogCoordfEXT, { GL_EXT_fog_coord, GL_EXTENSION_COUNT } }, + { "glFogCoordfv", glFogCoordfv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glFogCoordfvEXT", glFogCoordfvEXT, { GL_EXT_fog_coord, GL_EXTENSION_COUNT } }, + { "glFogCoordhNV", glFogCoordhNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glFogCoordhvNV", glFogCoordhvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glFogFuncSGIS", glFogFuncSGIS, { GL_SGIS_fog_function, GL_EXTENSION_COUNT } }, + { "glFogx", glFogx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glFogxOES", glFogxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glFogxv", glFogxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glFogxvOES", glFogxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glFragmentColorMaterialSGIX", glFragmentColorMaterialSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentCoverageColorNV", glFragmentCoverageColorNV, { GL_NV_fragment_coverage_to_color, GL_EXTENSION_COUNT } }, + { "glFragmentLightModelfSGIX", glFragmentLightModelfSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightModelfvSGIX", glFragmentLightModelfvSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightModeliSGIX", glFragmentLightModeliSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightModelivSGIX", glFragmentLightModelivSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightfSGIX", glFragmentLightfSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightfvSGIX", glFragmentLightfvSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightiSGIX", glFragmentLightiSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentLightivSGIX", glFragmentLightivSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentMaterialfSGIX", glFragmentMaterialfSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentMaterialfvSGIX", glFragmentMaterialfvSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentMaterialiSGIX", glFragmentMaterialiSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFragmentMaterialivSGIX", glFragmentMaterialivSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glFrameTerminatorGREMEDY", glFrameTerminatorGREMEDY, { GL_GREMEDY_frame_terminator, GL_EXTENSION_COUNT } }, + { "glFrameZoomSGIX", glFrameZoomSGIX, { GL_SGIX_framezoom, GL_EXTENSION_COUNT } }, + { "glFramebufferDrawBufferEXT", glFramebufferDrawBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glFramebufferDrawBuffersEXT", glFramebufferDrawBuffersEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glFramebufferFetchBarrierEXT", glFramebufferFetchBarrierEXT, { GL_EXT_shader_framebuffer_fetch_non_coherent, GL_EXTENSION_COUNT } }, + { "glFramebufferParameteri", glFramebufferParameteri, { GL_ARB_framebuffer_no_attachments, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glFramebufferParameteriMESA", glFramebufferParameteriMESA, { GL_MESA_framebuffer_flip_y, GL_EXTENSION_COUNT } }, + { "glFramebufferReadBufferEXT", glFramebufferReadBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glFramebufferRenderbuffer", glFramebufferRenderbuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferRenderbufferEXT", glFramebufferRenderbufferEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glFramebufferSampleLocationsfvARB", glFramebufferSampleLocationsfvARB, { GL_ARB_sample_locations, GL_EXTENSION_COUNT } }, + { "glFramebufferSampleLocationsfvNV", glFramebufferSampleLocationsfvNV, { GL_NV_sample_locations, GL_EXTENSION_COUNT } }, + { "glFramebufferSamplePositionsfvAMD", glFramebufferSamplePositionsfvAMD, { GL_AMD_framebuffer_sample_positions, GL_EXTENSION_COUNT } }, + { "glFramebufferShadingRateEXT", glFramebufferShadingRateEXT, { GL_EXT_fragment_shading_rate, GL_EXT_fragment_shading_rate_attachment, GL_EXT_fragment_shading_rate_primitive, GL_EXTENSION_COUNT } }, + { "glFramebufferTexture", glFramebufferTexture, { MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferTexture1D", glFramebufferTexture1D, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferTexture1DEXT", glFramebufferTexture1DEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glFramebufferTexture2D", glFramebufferTexture2D, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferTexture2DEXT", glFramebufferTexture2DEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glFramebufferTexture3D", glFramebufferTexture3D, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferTexture3DEXT", glFramebufferTexture3DEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureARB", glFramebufferTextureARB, { GL_ARB_geometry_shader4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureEXT", glFramebufferTextureEXT, { GL_NV_geometry_program4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureFaceARB", glFramebufferTextureFaceARB, { GL_ARB_geometry_shader4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureFaceEXT", glFramebufferTextureFaceEXT, { GL_NV_geometry_program4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureLayer", glFramebufferTextureLayer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glFramebufferTextureLayerARB", glFramebufferTextureLayerARB, { GL_ARB_geometry_shader4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureLayerEXT", glFramebufferTextureLayerEXT, { GL_EXT_texture_array, GL_NV_geometry_program4, GL_EXTENSION_COUNT } }, + { "glFramebufferTextureMultiviewOVR", glFramebufferTextureMultiviewOVR, { GL_OVR_multiview, GL_EXTENSION_COUNT } }, + { "glFreeObjectBufferATI", glFreeObjectBufferATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glFrustumf", glFrustumf, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glFrustumfOES", glFrustumfOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glFrustumx", glFrustumx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glFrustumxOES", glFrustumxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGenAsyncMarkersSGIX", glGenAsyncMarkersSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glGenBuffers", glGenBuffers, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGenBuffersARB", glGenBuffersARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glGenFencesAPPLE", glGenFencesAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glGenFencesNV", glGenFencesNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glGenFragmentShadersATI", glGenFragmentShadersATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glGenFramebuffers", glGenFramebuffers, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGenFramebuffersEXT", glGenFramebuffersEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glGenNamesAMD", glGenNamesAMD, { GL_AMD_name_gen_delete, GL_EXTENSION_COUNT } }, + { "glGenOcclusionQueriesNV", glGenOcclusionQueriesNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGenPathsNV", glGenPathsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGenPerfMonitorsAMD", glGenPerfMonitorsAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGenProgramPipelines", glGenProgramPipelines, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGenProgramsARB", glGenProgramsARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGenProgramsNV", glGenProgramsNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGenQueries", glGenQueries, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGenQueriesARB", glGenQueriesARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGenQueryResourceTagNV", glGenQueryResourceTagNV, { GL_NV_query_resource_tag, GL_EXTENSION_COUNT } }, + { "glGenRenderbuffers", glGenRenderbuffers, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGenRenderbuffersEXT", glGenRenderbuffersEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glGenSamplers", glGenSamplers, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGenSemaphoresEXT", glGenSemaphoresEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glGenSymbolsEXT", glGenSymbolsEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGenTexturesEXT", glGenTexturesEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glGenTransformFeedbacks", glGenTransformFeedbacks, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGenTransformFeedbacksNV", glGenTransformFeedbacksNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glGenVertexArrays", glGenVertexArrays, { GL_ARB_vertex_array_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGenVertexArraysAPPLE", glGenVertexArraysAPPLE, { GL_APPLE_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGenVertexShadersEXT", glGenVertexShadersEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGenerateMipmap", glGenerateMipmap, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGenerateMipmapEXT", glGenerateMipmapEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glGenerateMultiTexMipmapEXT", glGenerateMultiTexMipmapEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGenerateTextureMipmap", glGenerateTextureMipmap, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGenerateTextureMipmapEXT", glGenerateTextureMipmapEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetActiveAtomicCounterBufferiv", glGetActiveAtomicCounterBufferiv, { GL_ARB_shader_atomic_counters, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glGetActiveAttrib", glGetActiveAttrib, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetActiveAttribARB", glGetActiveAttribARB, { GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetActiveSubroutineName", glGetActiveSubroutineName, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetActiveSubroutineUniformName", glGetActiveSubroutineUniformName, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetActiveSubroutineUniformiv", glGetActiveSubroutineUniformiv, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetActiveUniform", glGetActiveUniform, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetActiveUniformARB", glGetActiveUniformARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetActiveUniformBlockName", glGetActiveUniformBlockName, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetActiveUniformBlockiv", glGetActiveUniformBlockiv, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetActiveUniformName", glGetActiveUniformName, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetActiveUniformsiv", glGetActiveUniformsiv, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetActiveVaryingNV", glGetActiveVaryingNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glGetArrayObjectfvATI", glGetArrayObjectfvATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetArrayObjectivATI", glGetArrayObjectivATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetAttachedObjectsARB", glGetAttachedObjectsARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetAttachedShaders", glGetAttachedShaders, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetAttribLocation", glGetAttribLocation, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetAttribLocationARB", glGetAttribLocationARB, { GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetBooleanIndexedvEXT", glGetBooleanIndexedvEXT, { GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glGetBooleani_v", glGetBooleani_v, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetBufferParameteri64v", glGetBufferParameteri64v, { MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glGetBufferParameteriv", glGetBufferParameteriv, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetBufferParameterivARB", glGetBufferParameterivARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glGetBufferParameterui64vNV", glGetBufferParameterui64vNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glGetBufferPointerv", glGetBufferPointerv, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetBufferPointervARB", glGetBufferPointervARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glGetBufferSubData", glGetBufferSubData, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetBufferSubDataARB", glGetBufferSubDataARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glGetClipPlanef", glGetClipPlanef, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetClipPlanefOES", glGetClipPlanefOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glGetClipPlanex", glGetClipPlanex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetClipPlanexOES", glGetClipPlanexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetColorTable", glGetColorTable, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetColorTableEXT", glGetColorTableEXT, { GL_EXT_paletted_texture, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameterfv", glGetColorTableParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameterfvEXT", glGetColorTableParameterfvEXT, { GL_EXT_paletted_texture, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameterfvSGI", glGetColorTableParameterfvSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameteriv", glGetColorTableParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameterivEXT", glGetColorTableParameterivEXT, { GL_EXT_paletted_texture, GL_EXTENSION_COUNT } }, + { "glGetColorTableParameterivSGI", glGetColorTableParameterivSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glGetColorTableSGI", glGetColorTableSGI, { GL_SGI_color_table, GL_EXTENSION_COUNT } }, + { "glGetCombinerInputParameterfvNV", glGetCombinerInputParameterfvNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetCombinerInputParameterivNV", glGetCombinerInputParameterivNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetCombinerOutputParameterfvNV", glGetCombinerOutputParameterfvNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetCombinerOutputParameterivNV", glGetCombinerOutputParameterivNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetCombinerStageParameterfvNV", glGetCombinerStageParameterfvNV, { GL_NV_register_combiners2, GL_EXTENSION_COUNT } }, + { "glGetCommandHeaderNV", glGetCommandHeaderNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glGetCompressedMultiTexImageEXT", glGetCompressedMultiTexImageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetCompressedTexImage", glGetCompressedTexImage, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glGetCompressedTexImageARB", glGetCompressedTexImageARB, { GL_ARB_texture_compression, MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glGetCompressedTextureImage", glGetCompressedTextureImage, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetCompressedTextureImageEXT", glGetCompressedTextureImageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetCompressedTextureSubImage", glGetCompressedTextureSubImage, { GL_ARB_get_texture_sub_image, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetConvolutionFilter", glGetConvolutionFilter, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetConvolutionFilterEXT", glGetConvolutionFilterEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glGetConvolutionParameterfv", glGetConvolutionParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetConvolutionParameterfvEXT", glGetConvolutionParameterfvEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glGetConvolutionParameteriv", glGetConvolutionParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetConvolutionParameterivEXT", glGetConvolutionParameterivEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glGetConvolutionParameterxvOES", glGetConvolutionParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetCoverageModulationTableNV", glGetCoverageModulationTableNV, { GL_NV_framebuffer_mixed_samples, GL_EXTENSION_COUNT } }, + { "glGetDebugMessageLog", glGetDebugMessageLog, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetDebugMessageLogAMD", glGetDebugMessageLogAMD, { GL_AMDX_debug_output, GL_AMD_debug_output, GL_EXTENSION_COUNT } }, + { "glGetDebugMessageLogARB", glGetDebugMessageLogARB, { GL_ARB_debug_output, GL_EXTENSION_COUNT } }, + { "glGetDetailTexFuncSGIS", glGetDetailTexFuncSGIS, { GL_SGIS_detail_texture, GL_EXTENSION_COUNT } }, + { "glGetDoubleIndexedvEXT", glGetDoubleIndexedvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetDoublei_v", glGetDoublei_v, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetDoublei_vEXT", glGetDoublei_vEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetFenceivNV", glGetFenceivNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glGetFinalCombinerInputParameterfvNV", glGetFinalCombinerInputParameterfvNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetFinalCombinerInputParameterivNV", glGetFinalCombinerInputParameterivNV, { GL_NV_register_combiners, GL_EXTENSION_COUNT } }, + { "glGetFirstPerfQueryIdINTEL", glGetFirstPerfQueryIdINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetFixedv", glGetFixedv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetFixedvOES", glGetFixedvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetFloatIndexedvEXT", glGetFloatIndexedvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetFloati_v", glGetFloati_v, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetFloati_vEXT", glGetFloati_vEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetFogFuncSGIS", glGetFogFuncSGIS, { GL_SGIS_fog_function, GL_EXTENSION_COUNT } }, + { "glGetFragDataIndex", glGetFragDataIndex, { GL_ARB_blend_func_extended, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetFragDataLocation", glGetFragDataLocation, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetFragDataLocationEXT", glGetFragDataLocationEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glGetFragmentLightfvSGIX", glGetFragmentLightfvSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glGetFragmentLightivSGIX", glGetFragmentLightivSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glGetFragmentMaterialfvSGIX", glGetFragmentMaterialfvSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glGetFragmentMaterialivSGIX", glGetFragmentMaterialivSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glGetFragmentShadingRatesEXT", glGetFragmentShadingRatesEXT, { GL_EXT_fragment_shading_rate, GL_EXT_fragment_shading_rate_attachment, GL_EXT_fragment_shading_rate_primitive, GL_EXTENSION_COUNT } }, + { "glGetFramebufferAttachmentParameteriv", glGetFramebufferAttachmentParameteriv, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetFramebufferAttachmentParameterivEXT", glGetFramebufferAttachmentParameterivEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glGetFramebufferParameterfvAMD", glGetFramebufferParameterfvAMD, { GL_AMD_framebuffer_sample_positions, GL_EXTENSION_COUNT } }, + { "glGetFramebufferParameteriv", glGetFramebufferParameteriv, { GL_ARB_framebuffer_no_attachments, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetFramebufferParameterivEXT", glGetFramebufferParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetFramebufferParameterivMESA", glGetFramebufferParameterivMESA, { GL_MESA_framebuffer_flip_y, GL_EXTENSION_COUNT } }, + { "glGetGraphicsResetStatus", glGetGraphicsResetStatus, { GL_KHR_robustness, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetGraphicsResetStatusARB", glGetGraphicsResetStatusARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetHandleARB", glGetHandleARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetHistogram", glGetHistogram, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetHistogramEXT", glGetHistogramEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetHistogramParameterfv", glGetHistogramParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetHistogramParameterfvEXT", glGetHistogramParameterfvEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetHistogramParameteriv", glGetHistogramParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetHistogramParameterivEXT", glGetHistogramParameterivEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetHistogramParameterxvOES", glGetHistogramParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetImageHandleARB", glGetImageHandleARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetImageHandleNV", glGetImageHandleNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetImageTransformParameterfvHP", glGetImageTransformParameterfvHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glGetImageTransformParameterivHP", glGetImageTransformParameterivHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glGetInfoLogARB", glGetInfoLogARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetInstrumentsSGIX", glGetInstrumentsSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glGetInteger64i_v", glGetInteger64i_v, { MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glGetInteger64v", glGetInteger64v, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glGetIntegerIndexedvEXT", glGetIntegerIndexedvEXT, { GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glGetIntegeri_v", glGetIntegeri_v, { GL_ARB_uniform_buffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetIntegerui64i_vNV", glGetIntegerui64i_vNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glGetIntegerui64vNV", glGetIntegerui64vNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glGetInternalformatSampleivNV", glGetInternalformatSampleivNV, { GL_NV_internalformat_sample_query, GL_EXTENSION_COUNT } }, + { "glGetInternalformati64v", glGetInternalformati64v, { GL_ARB_internalformat_query2, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetInternalformativ", glGetInternalformativ, { GL_ARB_internalformat_query, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glGetInvariantBooleanvEXT", glGetInvariantBooleanvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetInvariantFloatvEXT", glGetInvariantFloatvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetInvariantIntegervEXT", glGetInvariantIntegervEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetLightxOES", glGetLightxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetLightxv", glGetLightxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetListParameterfvSGIX", glGetListParameterfvSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glGetListParameterivSGIX", glGetListParameterivSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glGetLocalConstantBooleanvEXT", glGetLocalConstantBooleanvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetLocalConstantFloatvEXT", glGetLocalConstantFloatvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetLocalConstantIntegervEXT", glGetLocalConstantIntegervEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetMapAttribParameterfvNV", glGetMapAttribParameterfvNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glGetMapAttribParameterivNV", glGetMapAttribParameterivNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glGetMapControlPointsNV", glGetMapControlPointsNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glGetMapParameterfvNV", glGetMapParameterfvNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glGetMapParameterivNV", glGetMapParameterivNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glGetMapxvOES", glGetMapxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetMaterialxOES", glGetMaterialxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetMaterialxv", glGetMaterialxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetMemoryObjectDetachedResourcesuivNV", glGetMemoryObjectDetachedResourcesuivNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glGetMemoryObjectParameterivEXT", glGetMemoryObjectParameterivEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glGetMinmax", glGetMinmax, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetMinmaxEXT", glGetMinmaxEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetMinmaxParameterfv", glGetMinmaxParameterfv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetMinmaxParameterfvEXT", glGetMinmaxParameterfvEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetMinmaxParameteriv", glGetMinmaxParameteriv, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetMinmaxParameterivEXT", glGetMinmaxParameterivEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glGetMultiTexEnvfvEXT", glGetMultiTexEnvfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexEnvivEXT", glGetMultiTexEnvivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexGendvEXT", glGetMultiTexGendvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexGenfvEXT", glGetMultiTexGenfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexGenivEXT", glGetMultiTexGenivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexImageEXT", glGetMultiTexImageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexLevelParameterfvEXT", glGetMultiTexLevelParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexLevelParameterivEXT", glGetMultiTexLevelParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexParameterIivEXT", glGetMultiTexParameterIivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexParameterIuivEXT", glGetMultiTexParameterIuivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexParameterfvEXT", glGetMultiTexParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultiTexParameterivEXT", glGetMultiTexParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetMultisamplefv", glGetMultisamplefv, { GL_ARB_texture_multisample, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glGetMultisamplefvNV", glGetMultisamplefvNV, { GL_NV_explicit_multisample, GL_EXTENSION_COUNT } }, + { "glGetNamedBufferParameteri64v", glGetNamedBufferParameteri64v, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedBufferParameteriv", glGetNamedBufferParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedBufferParameterivEXT", glGetNamedBufferParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedBufferParameterui64vNV", glGetNamedBufferParameterui64vNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glGetNamedBufferPointerv", glGetNamedBufferPointerv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedBufferPointervEXT", glGetNamedBufferPointervEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedBufferSubData", glGetNamedBufferSubData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedBufferSubDataEXT", glGetNamedBufferSubDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedFramebufferAttachmentParameteriv", glGetNamedFramebufferAttachmentParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedFramebufferAttachmentParameterivEXT", glGetNamedFramebufferAttachmentParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedFramebufferParameterfvAMD", glGetNamedFramebufferParameterfvAMD, { GL_AMD_framebuffer_sample_positions, GL_EXTENSION_COUNT } }, + { "glGetNamedFramebufferParameteriv", glGetNamedFramebufferParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedFramebufferParameterivEXT", glGetNamedFramebufferParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramLocalParameterIivEXT", glGetNamedProgramLocalParameterIivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramLocalParameterIuivEXT", glGetNamedProgramLocalParameterIuivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramLocalParameterdvEXT", glGetNamedProgramLocalParameterdvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramLocalParameterfvEXT", glGetNamedProgramLocalParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramStringEXT", glGetNamedProgramStringEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedProgramivEXT", glGetNamedProgramivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedRenderbufferParameteriv", glGetNamedRenderbufferParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetNamedRenderbufferParameterivEXT", glGetNamedRenderbufferParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetNamedStringARB", glGetNamedStringARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glGetNamedStringivARB", glGetNamedStringivARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glGetNextPerfQueryIdINTEL", glGetNextPerfQueryIdINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetObjectBufferfvATI", glGetObjectBufferfvATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetObjectBufferivATI", glGetObjectBufferivATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetObjectLabel", glGetObjectLabel, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetObjectLabelEXT", glGetObjectLabelEXT, { GL_EXT_debug_label, GL_EXTENSION_COUNT } }, + { "glGetObjectParameterfvARB", glGetObjectParameterfvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetObjectParameterivAPPLE", glGetObjectParameterivAPPLE, { GL_APPLE_object_purgeable, GL_EXTENSION_COUNT } }, + { "glGetObjectParameterivARB", glGetObjectParameterivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetObjectPtrLabel", glGetObjectPtrLabel, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetOcclusionQueryivNV", glGetOcclusionQueryivNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGetOcclusionQueryuivNV", glGetOcclusionQueryuivNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGetPathColorGenfvNV", glGetPathColorGenfvNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathColorGenivNV", glGetPathColorGenivNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathCommandsNV", glGetPathCommandsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathCoordsNV", glGetPathCoordsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathDashArrayNV", glGetPathDashArrayNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathLengthNV", glGetPathLengthNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathMetricRangeNV", glGetPathMetricRangeNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathMetricsNV", glGetPathMetricsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathParameterfvNV", glGetPathParameterfvNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathParameterivNV", glGetPathParameterivNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathSpacingNV", glGetPathSpacingNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathTexGenfvNV", glGetPathTexGenfvNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPathTexGenivNV", glGetPathTexGenivNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetPerfCounterInfoINTEL", glGetPerfCounterInfoINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorCounterDataAMD", glGetPerfMonitorCounterDataAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorCounterInfoAMD", glGetPerfMonitorCounterInfoAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorCounterStringAMD", glGetPerfMonitorCounterStringAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorCountersAMD", glGetPerfMonitorCountersAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorGroupStringAMD", glGetPerfMonitorGroupStringAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfMonitorGroupsAMD", glGetPerfMonitorGroupsAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glGetPerfQueryDataINTEL", glGetPerfQueryDataINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetPerfQueryIdByNameINTEL", glGetPerfQueryIdByNameINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetPerfQueryInfoINTEL", glGetPerfQueryInfoINTEL, { GL_INTEL_performance_query, GL_EXTENSION_COUNT } }, + { "glGetPixelMapxv", glGetPixelMapxv, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetPixelTexGenParameterfvSGIS", glGetPixelTexGenParameterfvSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glGetPixelTexGenParameterivSGIS", glGetPixelTexGenParameterivSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glGetPixelTransformParameterfvEXT", glGetPixelTransformParameterfvEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glGetPixelTransformParameterivEXT", glGetPixelTransformParameterivEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glGetPointerIndexedvEXT", glGetPointerIndexedvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetPointeri_vEXT", glGetPointeri_vEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetPointervEXT", glGetPointervEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glGetProgramBinary", glGetProgramBinary, { GL_ARB_get_program_binary, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramEnvParameterIivNV", glGetProgramEnvParameterIivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glGetProgramEnvParameterIuivNV", glGetProgramEnvParameterIuivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glGetProgramEnvParameterdvARB", glGetProgramEnvParameterdvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramEnvParameterfvARB", glGetProgramEnvParameterfvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramInfoLog", glGetProgramInfoLog, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetProgramInterfaceiv", glGetProgramInterfaceiv, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramLocalParameterIivNV", glGetProgramLocalParameterIivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glGetProgramLocalParameterIuivNV", glGetProgramLocalParameterIuivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glGetProgramLocalParameterdvARB", glGetProgramLocalParameterdvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramLocalParameterfvARB", glGetProgramLocalParameterfvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramNamedParameterdvNV", glGetProgramNamedParameterdvNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glGetProgramNamedParameterfvNV", glGetProgramNamedParameterfvNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glGetProgramParameterdvNV", glGetProgramParameterdvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramParameterfvNV", glGetProgramParameterfvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramPipelineInfoLog", glGetProgramPipelineInfoLog, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramPipelineiv", glGetProgramPipelineiv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramResourceIndex", glGetProgramResourceIndex, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramResourceLocation", glGetProgramResourceLocation, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramResourceLocationIndex", glGetProgramResourceLocationIndex, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramResourceName", glGetProgramResourceName, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramResourcefvNV", glGetProgramResourcefvNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glGetProgramResourceiv", glGetProgramResourceiv, { GL_ARB_program_interface_query, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramStageiv", glGetProgramStageiv, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetProgramStringARB", glGetProgramStringARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramStringNV", glGetProgramStringNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramSubroutineParameteruivNV", glGetProgramSubroutineParameteruivNV, { GL_NV_gpu_program5, GL_NV_gpu_program_fp64, GL_EXTENSION_COUNT } }, + { "glGetProgramiv", glGetProgramiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetProgramivARB", glGetProgramivARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetProgramivNV", glGetProgramivNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetQueryBufferObjecti64v", glGetQueryBufferObjecti64v, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetQueryBufferObjectiv", glGetQueryBufferObjectiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetQueryBufferObjectui64v", glGetQueryBufferObjectui64v, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetQueryBufferObjectuiv", glGetQueryBufferObjectuiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetQueryIndexediv", glGetQueryIndexediv, { GL_ARB_transform_feedback3, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetQueryObjecti64v", glGetQueryObjecti64v, { GL_ARB_timer_query, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetQueryObjecti64vEXT", glGetQueryObjecti64vEXT, { GL_EXT_timer_query, GL_EXTENSION_COUNT } }, + { "glGetQueryObjectiv", glGetQueryObjectiv, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetQueryObjectivARB", glGetQueryObjectivARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGetQueryObjectui64v", glGetQueryObjectui64v, { GL_ARB_timer_query, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetQueryObjectui64vEXT", glGetQueryObjectui64vEXT, { GL_EXT_timer_query, GL_EXTENSION_COUNT } }, + { "glGetQueryObjectuiv", glGetQueryObjectuiv, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetQueryObjectuivARB", glGetQueryObjectuivARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGetQueryiv", glGetQueryiv, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glGetQueryivARB", glGetQueryivARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glGetRenderbufferParameteriv", glGetRenderbufferParameteriv, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetRenderbufferParameterivEXT", glGetRenderbufferParameterivEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glGetSamplerParameterIiv", glGetSamplerParameterIiv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetSamplerParameterIuiv", glGetSamplerParameterIuiv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetSamplerParameterfv", glGetSamplerParameterfv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetSamplerParameteriv", glGetSamplerParameteriv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glGetSemaphoreParameterivNV", glGetSemaphoreParameterivNV, { GL_NV_timeline_semaphore, GL_EXTENSION_COUNT } }, + { "glGetSemaphoreParameterui64vEXT", glGetSemaphoreParameterui64vEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glGetSeparableFilter", glGetSeparableFilter, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glGetSeparableFilterEXT", glGetSeparableFilterEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glGetShaderInfoLog", glGetShaderInfoLog, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetShaderPrecisionFormat", glGetShaderPrecisionFormat, { GL_ARB_ES2_compatibility, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetShaderSource", glGetShaderSource, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetShaderSourceARB", glGetShaderSourceARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetShaderiv", glGetShaderiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetShadingRateImagePaletteNV", glGetShadingRateImagePaletteNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glGetShadingRateSampleLocationivNV", glGetShadingRateSampleLocationivNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glGetSharpenTexFuncSGIS", glGetSharpenTexFuncSGIS, { GL_SGIS_sharpen_texture, GL_EXTENSION_COUNT } }, + { "glGetStageIndexNV", glGetStageIndexNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glGetStringi", glGetStringi, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetSubroutineIndex", glGetSubroutineIndex, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetSubroutineUniformLocation", glGetSubroutineUniformLocation, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetSynciv", glGetSynciv, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glGetTexBumpParameterfvATI", glGetTexBumpParameterfvATI, { GL_ATI_envmap_bumpmap, GL_EXTENSION_COUNT } }, + { "glGetTexBumpParameterivATI", glGetTexBumpParameterivATI, { GL_ATI_envmap_bumpmap, GL_EXTENSION_COUNT } }, + { "glGetTexEnvxv", glGetTexEnvxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetTexEnvxvOES", glGetTexEnvxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetTexFilterFuncSGIS", glGetTexFilterFuncSGIS, { GL_SGIS_texture_filter4, GL_EXTENSION_COUNT } }, + { "glGetTexGenxvOES", glGetTexGenxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetTexLevelParameterxvOES", glGetTexLevelParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetTexParameterIiv", glGetTexParameterIiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetTexParameterIivEXT", glGetTexParameterIivEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glGetTexParameterIuiv", glGetTexParameterIuiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetTexParameterIuivEXT", glGetTexParameterIuivEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glGetTexParameterPointervAPPLE", glGetTexParameterPointervAPPLE, { GL_APPLE_texture_range, GL_EXTENSION_COUNT } }, + { "glGetTexParameterxv", glGetTexParameterxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glGetTexParameterxvOES", glGetTexParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glGetTextureHandleARB", glGetTextureHandleARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetTextureHandleNV", glGetTextureHandleNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetTextureImage", glGetTextureImage, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureImageEXT", glGetTextureImageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureLevelParameterfv", glGetTextureLevelParameterfv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureLevelParameterfvEXT", glGetTextureLevelParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureLevelParameteriv", glGetTextureLevelParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureLevelParameterivEXT", glGetTextureLevelParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureParameterIiv", glGetTextureParameterIiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureParameterIivEXT", glGetTextureParameterIivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureParameterIuiv", glGetTextureParameterIuiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureParameterIuivEXT", glGetTextureParameterIuivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureParameterfv", glGetTextureParameterfv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureParameterfvEXT", glGetTextureParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureParameteriv", glGetTextureParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTextureParameterivEXT", glGetTextureParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetTextureSamplerHandleARB", glGetTextureSamplerHandleARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetTextureSamplerHandleNV", glGetTextureSamplerHandleNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetTextureSubImage", glGetTextureSubImage, { GL_ARB_get_texture_sub_image, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTrackMatrixivNV", glGetTrackMatrixivNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbackVarying", glGetTransformFeedbackVarying, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbackVaryingEXT", glGetTransformFeedbackVaryingEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbackVaryingNV", glGetTransformFeedbackVaryingNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbacki64_v", glGetTransformFeedbacki64_v, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbacki_v", glGetTransformFeedbacki_v, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetTransformFeedbackiv", glGetTransformFeedbackiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetUniformBlockIndex", glGetUniformBlockIndex, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetUniformBufferSizeEXT", glGetUniformBufferSizeEXT, { GL_EXT_bindable_uniform, GL_EXTENSION_COUNT } }, + { "glGetUniformIndices", glGetUniformIndices, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glGetUniformLocation", glGetUniformLocation, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetUniformLocationARB", glGetUniformLocationARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetUniformOffsetEXT", glGetUniformOffsetEXT, { GL_EXT_bindable_uniform, GL_EXTENSION_COUNT } }, + { "glGetUniformSubroutineuiv", glGetUniformSubroutineuiv, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetUniformdv", glGetUniformdv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glGetUniformfv", glGetUniformfv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetUniformfvARB", glGetUniformfvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetUniformi64vARB", glGetUniformi64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glGetUniformi64vNV", glGetUniformi64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glGetUniformiv", glGetUniformiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetUniformivARB", glGetUniformivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glGetUniformui64vARB", glGetUniformui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glGetUniformui64vNV", glGetUniformui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glGetUniformuiv", glGetUniformuiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetUniformuivEXT", glGetUniformuivEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glGetUnsignedBytei_vEXT", glGetUnsignedBytei_vEXT, { GL_EXT_memory_object, GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glGetUnsignedBytevEXT", glGetUnsignedBytevEXT, { GL_EXT_memory_object, GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glGetVariantArrayObjectfvATI", glGetVariantArrayObjectfvATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetVariantArrayObjectivATI", glGetVariantArrayObjectivATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glGetVariantBooleanvEXT", glGetVariantBooleanvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVariantFloatvEXT", glGetVariantFloatvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVariantIntegervEXT", glGetVariantIntegervEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVariantPointervEXT", glGetVariantPointervEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVaryingLocationNV", glGetVaryingLocationNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glGetVertexArrayIndexed64iv", glGetVertexArrayIndexed64iv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetVertexArrayIndexediv", glGetVertexArrayIndexediv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetVertexArrayIntegeri_vEXT", glGetVertexArrayIntegeri_vEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetVertexArrayIntegervEXT", glGetVertexArrayIntegervEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetVertexArrayPointeri_vEXT", glGetVertexArrayPointeri_vEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetVertexArrayPointervEXT", glGetVertexArrayPointervEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glGetVertexArrayiv", glGetVertexArrayiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribArrayObjectfvATI", glGetVertexAttribArrayObjectfvATI, { GL_ATI_vertex_attrib_array_object, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribArrayObjectivATI", glGetVertexAttribArrayObjectivATI, { GL_ATI_vertex_attrib_array_object, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribIiv", glGetVertexAttribIiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribIivEXT", glGetVertexAttribIivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribIuiv", glGetVertexAttribIuiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribIuivEXT", glGetVertexAttribIuivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribLdv", glGetVertexAttribLdv, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribLdvEXT", glGetVertexAttribLdvEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribLi64vNV", glGetVertexAttribLi64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribLui64vARB", glGetVertexAttribLui64vARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribLui64vNV", glGetVertexAttribLui64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribPointerv", glGetVertexAttribPointerv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribPointervARB", glGetVertexAttribPointervARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribPointervNV", glGetVertexAttribPointervNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribdv", glGetVertexAttribdv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribdvARB", glGetVertexAttribdvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribdvNV", glGetVertexAttribdvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribfv", glGetVertexAttribfv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribfvARB", glGetVertexAttribfvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribfvNV", glGetVertexAttribfvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribiv", glGetVertexAttribiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glGetVertexAttribivARB", glGetVertexAttribivARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glGetVertexAttribivNV", glGetVertexAttribivNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glGetVideoCaptureStreamdvNV", glGetVideoCaptureStreamdvNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glGetVideoCaptureStreamfvNV", glGetVideoCaptureStreamfvNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glGetVideoCaptureStreamivNV", glGetVideoCaptureStreamivNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glGetVideoCaptureivNV", glGetVideoCaptureivNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glGetVideoi64vNV", glGetVideoi64vNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glGetVideoivNV", glGetVideoivNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glGetVideoui64vNV", glGetVideoui64vNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glGetVideouivNV", glGetVideouivNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glGetVkProcAddrNV", glGetVkProcAddrNV, { GL_NV_draw_vulkan_image, GL_EXTENSION_COUNT } }, + { "glGetnColorTable", glGetnColorTable, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnColorTableARB", glGetnColorTableARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnCompressedTexImage", glGetnCompressedTexImage, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnCompressedTexImageARB", glGetnCompressedTexImageARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnConvolutionFilter", glGetnConvolutionFilter, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnConvolutionFilterARB", glGetnConvolutionFilterARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnHistogram", glGetnHistogram, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnHistogramARB", glGetnHistogramARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnMapdv", glGetnMapdv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnMapdvARB", glGetnMapdvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnMapfv", glGetnMapfv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnMapfvARB", glGetnMapfvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnMapiv", glGetnMapiv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnMapivARB", glGetnMapivARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnMinmax", glGetnMinmax, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnMinmaxARB", glGetnMinmaxARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnPixelMapfv", glGetnPixelMapfv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnPixelMapfvARB", glGetnPixelMapfvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnPixelMapuiv", glGetnPixelMapuiv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnPixelMapuivARB", glGetnPixelMapuivARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnPixelMapusv", glGetnPixelMapusv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnPixelMapusvARB", glGetnPixelMapusvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnPolygonStipple", glGetnPolygonStipple, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnPolygonStippleARB", glGetnPolygonStippleARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnSeparableFilter", glGetnSeparableFilter, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnSeparableFilterARB", glGetnSeparableFilterARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnTexImage", glGetnTexImage, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnTexImageARB", glGetnTexImageARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnUniformdv", glGetnUniformdv, { MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnUniformdvARB", glGetnUniformdvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnUniformfv", glGetnUniformfv, { GL_KHR_robustness, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnUniformfvARB", glGetnUniformfvARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnUniformi64vARB", glGetnUniformi64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glGetnUniformiv", glGetnUniformiv, { GL_KHR_robustness, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnUniformivARB", glGetnUniformivARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGetnUniformui64vARB", glGetnUniformui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glGetnUniformuiv", glGetnUniformuiv, { GL_KHR_robustness, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glGetnUniformuivARB", glGetnUniformuivARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactorbSUN", glGlobalAlphaFactorbSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactordSUN", glGlobalAlphaFactordSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactorfSUN", glGlobalAlphaFactorfSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactoriSUN", glGlobalAlphaFactoriSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactorsSUN", glGlobalAlphaFactorsSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactorubSUN", glGlobalAlphaFactorubSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactoruiSUN", glGlobalAlphaFactoruiSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glGlobalAlphaFactorusSUN", glGlobalAlphaFactorusSUN, { GL_SUN_global_alpha, GL_EXTENSION_COUNT } }, + { "glHintPGI", glHintPGI, { GL_PGI_misc_hints, GL_EXTENSION_COUNT } }, + { "glHistogram", glHistogram, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glHistogramEXT", glHistogramEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glIglooInterfaceSGIX", glIglooInterfaceSGIX, { GL_SGIX_igloo_interface, GL_EXTENSION_COUNT } }, + { "glImageTransformParameterfHP", glImageTransformParameterfHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glImageTransformParameterfvHP", glImageTransformParameterfvHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glImageTransformParameteriHP", glImageTransformParameteriHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glImageTransformParameterivHP", glImageTransformParameterivHP, { GL_HP_image_transform, GL_EXTENSION_COUNT } }, + { "glImportMemoryWin32HandleEXT", glImportMemoryWin32HandleEXT, { GL_EXT_memory_object_win32, GL_EXTENSION_COUNT } }, + { "glImportMemoryWin32NameEXT", glImportMemoryWin32NameEXT, { GL_EXT_memory_object_win32, GL_EXTENSION_COUNT } }, + { "glImportSemaphoreWin32HandleEXT", glImportSemaphoreWin32HandleEXT, { GL_EXT_semaphore_win32, GL_EXTENSION_COUNT } }, + { "glImportSemaphoreWin32NameEXT", glImportSemaphoreWin32NameEXT, { GL_EXT_semaphore_win32, GL_EXTENSION_COUNT } }, + { "glImportSyncEXT", glImportSyncEXT, { GL_EXT_x11_sync_object, GL_EXTENSION_COUNT } }, + { "glIndexFormatNV", glIndexFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glIndexFuncEXT", glIndexFuncEXT, { GL_EXT_index_func, GL_EXTENSION_COUNT } }, + { "glIndexMaterialEXT", glIndexMaterialEXT, { GL_EXT_index_material, GL_EXTENSION_COUNT } }, + { "glIndexPointerEXT", glIndexPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glIndexPointerListIBM", glIndexPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glIndexxOES", glIndexxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glIndexxvOES", glIndexxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glInsertComponentEXT", glInsertComponentEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glInsertEventMarkerEXT", glInsertEventMarkerEXT, { GL_EXT_debug_marker, GL_EXTENSION_COUNT } }, + { "glInstrumentsBufferSGIX", glInstrumentsBufferSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glInterpolatePathsNV", glInterpolatePathsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glInvalidateBufferData", glInvalidateBufferData, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateBufferSubData", glInvalidateBufferSubData, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateFramebuffer", glInvalidateFramebuffer, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateNamedFramebufferData", glInvalidateNamedFramebufferData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateNamedFramebufferSubData", glInvalidateNamedFramebufferSubData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateSubFramebuffer", glInvalidateSubFramebuffer, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateTexImage", glInvalidateTexImage, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glInvalidateTexSubImage", glInvalidateTexSubImage, { GL_ARB_invalidate_subdata, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glIsAsyncMarkerSGIX", glIsAsyncMarkerSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glIsBuffer", glIsBuffer, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glIsBufferARB", glIsBufferARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glIsBufferResidentNV", glIsBufferResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glIsCommandListNV", glIsCommandListNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glIsEnabledIndexedEXT", glIsEnabledIndexedEXT, { GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXTENSION_COUNT } }, + { "glIsEnabledi", glIsEnabledi, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glIsFenceAPPLE", glIsFenceAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glIsFenceNV", glIsFenceNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glIsFramebuffer", glIsFramebuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glIsFramebufferEXT", glIsFramebufferEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glIsImageHandleResidentARB", glIsImageHandleResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glIsImageHandleResidentNV", glIsImageHandleResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glIsMemoryObjectEXT", glIsMemoryObjectEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glIsNameAMD", glIsNameAMD, { GL_AMD_name_gen_delete, GL_EXTENSION_COUNT } }, + { "glIsNamedBufferResidentNV", glIsNamedBufferResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glIsNamedStringARB", glIsNamedStringARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glIsObjectBufferATI", glIsObjectBufferATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glIsOcclusionQueryNV", glIsOcclusionQueryNV, { GL_NV_occlusion_query, GL_EXTENSION_COUNT } }, + { "glIsPathNV", glIsPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glIsPointInFillPathNV", glIsPointInFillPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glIsPointInStrokePathNV", glIsPointInStrokePathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glIsProgram", glIsProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glIsProgramARB", glIsProgramARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glIsProgramNV", glIsProgramNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glIsProgramPipeline", glIsProgramPipeline, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glIsQuery", glIsQuery, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glIsQueryARB", glIsQueryARB, { GL_ARB_occlusion_query, GL_EXTENSION_COUNT } }, + { "glIsRenderbuffer", glIsRenderbuffer, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glIsRenderbufferEXT", glIsRenderbufferEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glIsSampler", glIsSampler, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glIsSemaphoreEXT", glIsSemaphoreEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glIsShader", glIsShader, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glIsStateNV", glIsStateNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glIsSync", glIsSync, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glIsTextureEXT", glIsTextureEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glIsTextureHandleResidentARB", glIsTextureHandleResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glIsTextureHandleResidentNV", glIsTextureHandleResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glIsTransformFeedback", glIsTransformFeedback, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glIsTransformFeedbackNV", glIsTransformFeedbackNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glIsVariantEnabledEXT", glIsVariantEnabledEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glIsVertexArray", glIsVertexArray, { GL_ARB_vertex_array_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glIsVertexArrayAPPLE", glIsVertexArrayAPPLE, { GL_APPLE_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glIsVertexAttribEnabledAPPLE", glIsVertexAttribEnabledAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glLGPUCopyImageSubDataNVX", glLGPUCopyImageSubDataNVX, { GL_NVX_linked_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glLGPUInterlockNVX", glLGPUInterlockNVX, { GL_NVX_linked_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glLGPUNamedBufferSubDataNVX", glLGPUNamedBufferSubDataNVX, { GL_NVX_linked_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glLabelObjectEXT", glLabelObjectEXT, { GL_EXT_debug_label, GL_EXTENSION_COUNT } }, + { "glLightEnviSGIX", glLightEnviSGIX, { GL_SGIX_fragment_lighting, GL_EXTENSION_COUNT } }, + { "glLightModelx", glLightModelx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLightModelxOES", glLightModelxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLightModelxv", glLightModelxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLightModelxvOES", glLightModelxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLightx", glLightx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLightxOES", glLightxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLightxv", glLightxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLightxvOES", glLightxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLineWidthx", glLineWidthx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLineWidthxOES", glLineWidthxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLinkProgram", glLinkProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glLinkProgramARB", glLinkProgramARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glListDrawCommandsStatesClientNV", glListDrawCommandsStatesClientNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glListParameterfSGIX", glListParameterfSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glListParameterfvSGIX", glListParameterfvSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glListParameteriSGIX", glListParameteriSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glListParameterivSGIX", glListParameterivSGIX, { GL_SGIX_list_priority, GL_EXTENSION_COUNT } }, + { "glLoadIdentityDeformationMapSGIX", glLoadIdentityDeformationMapSGIX, { GL_SGIX_polynomial_ffd, GL_EXTENSION_COUNT } }, + { "glLoadMatrixx", glLoadMatrixx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glLoadMatrixxOES", glLoadMatrixxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLoadProgramNV", glLoadProgramNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glLoadTransposeMatrixd", glLoadTransposeMatrixd, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glLoadTransposeMatrixdARB", glLoadTransposeMatrixdARB, { GL_ARB_transpose_matrix, GL_EXTENSION_COUNT } }, + { "glLoadTransposeMatrixf", glLoadTransposeMatrixf, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glLoadTransposeMatrixfARB", glLoadTransposeMatrixfARB, { GL_ARB_transpose_matrix, GL_EXTENSION_COUNT } }, + { "glLoadTransposeMatrixxOES", glLoadTransposeMatrixxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glLockArraysEXT", glLockArraysEXT, { GL_EXT_compiled_vertex_array, GL_EXTENSION_COUNT } }, + { "glMTexCoord2fSGIS", glMTexCoord2fSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMTexCoord2fvSGIS", glMTexCoord2fvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMakeBufferNonResidentNV", glMakeBufferNonResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glMakeBufferResidentNV", glMakeBufferResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glMakeImageHandleNonResidentARB", glMakeImageHandleNonResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeImageHandleNonResidentNV", glMakeImageHandleNonResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeImageHandleResidentARB", glMakeImageHandleResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeImageHandleResidentNV", glMakeImageHandleResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeNamedBufferNonResidentNV", glMakeNamedBufferNonResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glMakeNamedBufferResidentNV", glMakeNamedBufferResidentNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glMakeTextureHandleNonResidentARB", glMakeTextureHandleNonResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeTextureHandleNonResidentNV", glMakeTextureHandleNonResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeTextureHandleResidentARB", glMakeTextureHandleResidentARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMakeTextureHandleResidentNV", glMakeTextureHandleResidentNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glMap1xOES", glMap1xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMap2xOES", glMap2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMapBuffer", glMapBuffer, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glMapBufferARB", glMapBufferARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glMapBufferRange", glMapBufferRange, { GL_ARB_map_buffer_range, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glMapControlPointsNV", glMapControlPointsNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glMapGrid1xOES", glMapGrid1xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMapGrid2xOES", glMapGrid2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMapNamedBuffer", glMapNamedBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glMapNamedBufferEXT", glMapNamedBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMapNamedBufferRange", glMapNamedBufferRange, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glMapNamedBufferRangeEXT", glMapNamedBufferRangeEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMapObjectBufferATI", glMapObjectBufferATI, { GL_ATI_map_object_buffer, GL_EXTENSION_COUNT } }, + { "glMapParameterfvNV", glMapParameterfvNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glMapParameterivNV", glMapParameterivNV, { GL_NV_evaluators, GL_EXTENSION_COUNT } }, + { "glMapTexture2DINTEL", glMapTexture2DINTEL, { GL_INTEL_map_texture, GL_EXTENSION_COUNT } }, + { "glMapVertexAttrib1dAPPLE", glMapVertexAttrib1dAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glMapVertexAttrib1fAPPLE", glMapVertexAttrib1fAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glMapVertexAttrib2dAPPLE", glMapVertexAttrib2dAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glMapVertexAttrib2fAPPLE", glMapVertexAttrib2fAPPLE, { GL_APPLE_vertex_program_evaluators, GL_EXTENSION_COUNT } }, + { "glMaterialx", glMaterialx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glMaterialxOES", glMaterialxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMaterialxv", glMaterialxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glMaterialxvOES", glMaterialxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMatrixFrustumEXT", glMatrixFrustumEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixIndexPointerARB", glMatrixIndexPointerARB, { GL_ARB_matrix_palette, GL_EXTENSION_COUNT } }, + { "glMatrixIndexubvARB", glMatrixIndexubvARB, { GL_ARB_matrix_palette, GL_EXTENSION_COUNT } }, + { "glMatrixIndexuivARB", glMatrixIndexuivARB, { GL_ARB_matrix_palette, GL_EXTENSION_COUNT } }, + { "glMatrixIndexusvARB", glMatrixIndexusvARB, { GL_ARB_matrix_palette, GL_EXTENSION_COUNT } }, + { "glMatrixLoad3x2fNV", glMatrixLoad3x2fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoad3x3fNV", glMatrixLoad3x3fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoadIdentityEXT", glMatrixLoadIdentityEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoadTranspose3x3fNV", glMatrixLoadTranspose3x3fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoadTransposedEXT", glMatrixLoadTransposedEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoadTransposefEXT", glMatrixLoadTransposefEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoaddEXT", glMatrixLoaddEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixLoadfEXT", glMatrixLoadfEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMult3x2fNV", glMatrixMult3x2fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMult3x3fNV", glMatrixMult3x3fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMultTranspose3x3fNV", glMatrixMultTranspose3x3fNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMultTransposedEXT", glMatrixMultTransposedEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMultTransposefEXT", glMatrixMultTransposefEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMultdEXT", glMatrixMultdEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixMultfEXT", glMatrixMultfEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixOrthoEXT", glMatrixOrthoEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixPopEXT", glMatrixPopEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixPushEXT", glMatrixPushEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixRotatedEXT", glMatrixRotatedEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixRotatefEXT", glMatrixRotatefEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixScaledEXT", glMatrixScaledEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixScalefEXT", glMatrixScalefEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixTranslatedEXT", glMatrixTranslatedEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMatrixTranslatefEXT", glMatrixTranslatefEXT, { GL_EXT_direct_state_access, GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glMaxShaderCompilerThreadsARB", glMaxShaderCompilerThreadsARB, { GL_ARB_parallel_shader_compile, GL_EXTENSION_COUNT } }, + { "glMaxShaderCompilerThreadsKHR", glMaxShaderCompilerThreadsKHR, { GL_KHR_parallel_shader_compile, GL_EXTENSION_COUNT } }, + { "glMemoryBarrier", glMemoryBarrier, { GL_ARB_shader_image_load_store, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glMemoryBarrierByRegion", glMemoryBarrierByRegion, { GL_ARB_ES3_1_compatibility, GL_NV_ES3_1_compatibility, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glMemoryBarrierEXT", glMemoryBarrierEXT, { GL_EXT_shader_image_load_store, GL_EXTENSION_COUNT } }, + { "glMemoryObjectParameterivEXT", glMemoryObjectParameterivEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glMinSampleShading", glMinSampleShading, { MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glMinSampleShadingARB", glMinSampleShadingARB, { GL_ARB_sample_shading, GL_EXTENSION_COUNT } }, + { "glMinmax", glMinmax, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glMinmaxEXT", glMinmaxEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glMultMatrixx", glMultMatrixx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glMultMatrixxOES", glMultMatrixxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultTransposeMatrixd", glMultTransposeMatrixd, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultTransposeMatrixdARB", glMultTransposeMatrixdARB, { GL_ARB_transpose_matrix, GL_EXTENSION_COUNT } }, + { "glMultTransposeMatrixf", glMultTransposeMatrixf, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultTransposeMatrixfARB", glMultTransposeMatrixfARB, { GL_ARB_transpose_matrix, GL_EXTENSION_COUNT } }, + { "glMultTransposeMatrixxOES", glMultTransposeMatrixxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiDrawArrays", glMultiDrawArrays, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysEXT", glMultiDrawArraysEXT, { GL_EXT_multi_draw_arrays, GL_SUN_multi_draw_arrays, GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirect", glMultiDrawArraysIndirect, { GL_ARB_multi_draw_indirect, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirectAMD", glMultiDrawArraysIndirectAMD, { GL_AMD_multi_draw_indirect, GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirectBindlessCountNV", glMultiDrawArraysIndirectBindlessCountNV, { GL_NV_bindless_multi_draw_indirect_count, GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirectBindlessNV", glMultiDrawArraysIndirectBindlessNV, { GL_NV_bindless_multi_draw_indirect, GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirectCount", glMultiDrawArraysIndirectCount, { MAKELONG(6, 4), GL_EXTENSION_COUNT } }, + { "glMultiDrawArraysIndirectCountARB", glMultiDrawArraysIndirectCountARB, { GL_ARB_indirect_parameters, GL_EXTENSION_COUNT } }, + { "glMultiDrawElementArrayAPPLE", glMultiDrawElementArrayAPPLE, { GL_APPLE_element_array, GL_EXTENSION_COUNT } }, + { "glMultiDrawElements", glMultiDrawElements, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsBaseVertex", glMultiDrawElementsBaseVertex, { GL_ARB_draw_elements_base_vertex, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsEXT", glMultiDrawElementsEXT, { GL_EXT_multi_draw_arrays, GL_SUN_multi_draw_arrays, GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirect", glMultiDrawElementsIndirect, { GL_ARB_multi_draw_indirect, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirectAMD", glMultiDrawElementsIndirectAMD, { GL_AMD_multi_draw_indirect, GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirectBindlessCountNV", glMultiDrawElementsIndirectBindlessCountNV, { GL_NV_bindless_multi_draw_indirect_count, GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirectBindlessNV", glMultiDrawElementsIndirectBindlessNV, { GL_NV_bindless_multi_draw_indirect, GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirectCount", glMultiDrawElementsIndirectCount, { MAKELONG(6, 4), GL_EXTENSION_COUNT } }, + { "glMultiDrawElementsIndirectCountARB", glMultiDrawElementsIndirectCountARB, { GL_ARB_indirect_parameters, GL_EXTENSION_COUNT } }, + { "glMultiDrawMeshTasksIndirectCountEXT", glMultiDrawMeshTasksIndirectCountEXT, { GL_EXT_mesh_shader, GL_EXTENSION_COUNT } }, + { "glMultiDrawMeshTasksIndirectCountNV", glMultiDrawMeshTasksIndirectCountNV, { GL_NV_mesh_shader, GL_EXTENSION_COUNT } }, + { "glMultiDrawMeshTasksIndirectEXT", glMultiDrawMeshTasksIndirectEXT, { GL_EXT_mesh_shader, GL_EXTENSION_COUNT } }, + { "glMultiDrawMeshTasksIndirectNV", glMultiDrawMeshTasksIndirectNV, { GL_NV_mesh_shader, GL_EXTENSION_COUNT } }, + { "glMultiDrawRangeElementArrayAPPLE", glMultiDrawRangeElementArrayAPPLE, { GL_APPLE_element_array, GL_EXTENSION_COUNT } }, + { "glMultiModeDrawArraysIBM", glMultiModeDrawArraysIBM, { GL_IBM_multimode_draw_arrays, GL_EXTENSION_COUNT } }, + { "glMultiModeDrawElementsIBM", glMultiModeDrawElementsIBM, { GL_IBM_multimode_draw_arrays, GL_EXTENSION_COUNT } }, + { "glMultiTexBufferEXT", glMultiTexBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1bOES", glMultiTexCoord1bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1bvOES", glMultiTexCoord1bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1d", glMultiTexCoord1d, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1dARB", glMultiTexCoord1dARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1dSGIS", glMultiTexCoord1dSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1dv", glMultiTexCoord1dv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1dvARB", glMultiTexCoord1dvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1dvSGIS", glMultiTexCoord1dvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1f", glMultiTexCoord1f, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1fARB", glMultiTexCoord1fARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1fSGIS", glMultiTexCoord1fSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1fv", glMultiTexCoord1fv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1fvARB", glMultiTexCoord1fvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1fvSGIS", glMultiTexCoord1fvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1hNV", glMultiTexCoord1hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1hvNV", glMultiTexCoord1hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1i", glMultiTexCoord1i, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1iARB", glMultiTexCoord1iARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1iSGIS", glMultiTexCoord1iSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1iv", glMultiTexCoord1iv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1ivARB", glMultiTexCoord1ivARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1ivSGIS", glMultiTexCoord1ivSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1s", glMultiTexCoord1s, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1sARB", glMultiTexCoord1sARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1sSGIS", glMultiTexCoord1sSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1sv", glMultiTexCoord1sv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1svARB", glMultiTexCoord1svARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1svSGIS", glMultiTexCoord1svSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1xOES", glMultiTexCoord1xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord1xvOES", glMultiTexCoord1xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2bOES", glMultiTexCoord2bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2bvOES", glMultiTexCoord2bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2d", glMultiTexCoord2d, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2dARB", glMultiTexCoord2dARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2dSGIS", glMultiTexCoord2dSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2dv", glMultiTexCoord2dv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2dvARB", glMultiTexCoord2dvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2dvSGIS", glMultiTexCoord2dvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2f", glMultiTexCoord2f, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2fARB", glMultiTexCoord2fARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2fSGIS", glMultiTexCoord2fSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2fv", glMultiTexCoord2fv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2fvARB", glMultiTexCoord2fvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2fvSGIS", glMultiTexCoord2fvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2hNV", glMultiTexCoord2hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2hvNV", glMultiTexCoord2hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2i", glMultiTexCoord2i, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2iARB", glMultiTexCoord2iARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2iSGIS", glMultiTexCoord2iSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2iv", glMultiTexCoord2iv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2ivARB", glMultiTexCoord2ivARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2ivSGIS", glMultiTexCoord2ivSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2s", glMultiTexCoord2s, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2sARB", glMultiTexCoord2sARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2sSGIS", glMultiTexCoord2sSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2sv", glMultiTexCoord2sv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2svARB", glMultiTexCoord2svARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2svSGIS", glMultiTexCoord2svSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2xOES", glMultiTexCoord2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord2xvOES", glMultiTexCoord2xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3bOES", glMultiTexCoord3bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3bvOES", glMultiTexCoord3bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3d", glMultiTexCoord3d, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3dARB", glMultiTexCoord3dARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3dSGIS", glMultiTexCoord3dSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3dv", glMultiTexCoord3dv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3dvARB", glMultiTexCoord3dvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3dvSGIS", glMultiTexCoord3dvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3f", glMultiTexCoord3f, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3fARB", glMultiTexCoord3fARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3fSGIS", glMultiTexCoord3fSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3fv", glMultiTexCoord3fv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3fvARB", glMultiTexCoord3fvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3fvSGIS", glMultiTexCoord3fvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3hNV", glMultiTexCoord3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3hvNV", glMultiTexCoord3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3i", glMultiTexCoord3i, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3iARB", glMultiTexCoord3iARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3iSGIS", glMultiTexCoord3iSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3iv", glMultiTexCoord3iv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3ivARB", glMultiTexCoord3ivARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3ivSGIS", glMultiTexCoord3ivSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3s", glMultiTexCoord3s, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3sARB", glMultiTexCoord3sARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3sSGIS", glMultiTexCoord3sSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3sv", glMultiTexCoord3sv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3svARB", glMultiTexCoord3svARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3svSGIS", glMultiTexCoord3svSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3xOES", glMultiTexCoord3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord3xvOES", glMultiTexCoord3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4bOES", glMultiTexCoord4bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4bvOES", glMultiTexCoord4bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4d", glMultiTexCoord4d, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4dARB", glMultiTexCoord4dARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4dSGIS", glMultiTexCoord4dSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4dv", glMultiTexCoord4dv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4dvARB", glMultiTexCoord4dvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4dvSGIS", glMultiTexCoord4dvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4f", glMultiTexCoord4f, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4fARB", glMultiTexCoord4fARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4fSGIS", glMultiTexCoord4fSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4fv", glMultiTexCoord4fv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4fvARB", glMultiTexCoord4fvARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4fvSGIS", glMultiTexCoord4fvSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4hNV", glMultiTexCoord4hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4hvNV", glMultiTexCoord4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4i", glMultiTexCoord4i, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4iARB", glMultiTexCoord4iARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4iSGIS", glMultiTexCoord4iSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4iv", glMultiTexCoord4iv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4ivARB", glMultiTexCoord4ivARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4ivSGIS", glMultiTexCoord4ivSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4s", glMultiTexCoord4s, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4sARB", glMultiTexCoord4sARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4sSGIS", glMultiTexCoord4sSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4sv", glMultiTexCoord4sv, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4svARB", glMultiTexCoord4svARB, { GL_ARB_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4svSGIS", glMultiTexCoord4svSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4x", glMultiTexCoord4x, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4xOES", glMultiTexCoord4xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoord4xvOES", glMultiTexCoord4xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP1ui", glMultiTexCoordP1ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP1uiv", glMultiTexCoordP1uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP2ui", glMultiTexCoordP2ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP2uiv", glMultiTexCoordP2uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP3ui", glMultiTexCoordP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP3uiv", glMultiTexCoordP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP4ui", glMultiTexCoordP4ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordP4uiv", glMultiTexCoordP4uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glMultiTexCoordPointerEXT", glMultiTexCoordPointerEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexCoordPointerSGIS", glMultiTexCoordPointerSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glMultiTexEnvfEXT", glMultiTexEnvfEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexEnvfvEXT", glMultiTexEnvfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexEnviEXT", glMultiTexEnviEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexEnvivEXT", glMultiTexEnvivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGendEXT", glMultiTexGendEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGendvEXT", glMultiTexGendvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGenfEXT", glMultiTexGenfEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGenfvEXT", glMultiTexGenfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGeniEXT", glMultiTexGeniEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexGenivEXT", glMultiTexGenivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexImage1DEXT", glMultiTexImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexImage2DEXT", glMultiTexImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexImage3DEXT", glMultiTexImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameterIivEXT", glMultiTexParameterIivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameterIuivEXT", glMultiTexParameterIuivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameterfEXT", glMultiTexParameterfEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameterfvEXT", glMultiTexParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameteriEXT", glMultiTexParameteriEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexParameterivEXT", glMultiTexParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexRenderbufferEXT", glMultiTexRenderbufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexSubImage1DEXT", glMultiTexSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexSubImage2DEXT", glMultiTexSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMultiTexSubImage3DEXT", glMultiTexSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glMulticastBarrierNV", glMulticastBarrierNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastBlitFramebufferNV", glMulticastBlitFramebufferNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastBufferSubDataNV", glMulticastBufferSubDataNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastCopyBufferSubDataNV", glMulticastCopyBufferSubDataNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastCopyImageSubDataNV", glMulticastCopyImageSubDataNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastFramebufferSampleLocationsfvNV", glMulticastFramebufferSampleLocationsfvNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastGetQueryObjecti64vNV", glMulticastGetQueryObjecti64vNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastGetQueryObjectivNV", glMulticastGetQueryObjectivNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastGetQueryObjectui64vNV", glMulticastGetQueryObjectui64vNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastGetQueryObjectuivNV", glMulticastGetQueryObjectuivNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glMulticastScissorArrayvNVX", glMulticastScissorArrayvNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glMulticastViewportArrayvNVX", glMulticastViewportArrayvNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glMulticastViewportPositionWScaleNVX", glMulticastViewportPositionWScaleNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glMulticastWaitSyncNV", glMulticastWaitSyncNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glNamedBufferAttachMemoryNV", glNamedBufferAttachMemoryNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glNamedBufferData", glNamedBufferData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedBufferDataEXT", glNamedBufferDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedBufferPageCommitmentARB", glNamedBufferPageCommitmentARB, { GL_ARB_sparse_buffer, GL_EXTENSION_COUNT } }, + { "glNamedBufferPageCommitmentEXT", glNamedBufferPageCommitmentEXT, { GL_ARB_sparse_buffer, GL_EXTENSION_COUNT } }, + { "glNamedBufferPageCommitmentMemNV", glNamedBufferPageCommitmentMemNV, { GL_NV_memory_object_sparse, GL_EXTENSION_COUNT } }, + { "glNamedBufferStorage", glNamedBufferStorage, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedBufferStorageEXT", glNamedBufferStorageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedBufferStorageExternalEXT", glNamedBufferStorageExternalEXT, { GL_EXT_external_buffer, GL_EXTENSION_COUNT } }, + { "glNamedBufferStorageMemEXT", glNamedBufferStorageMemEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glNamedBufferSubData", glNamedBufferSubData, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedBufferSubDataEXT", glNamedBufferSubDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedCopyBufferSubDataEXT", glNamedCopyBufferSubDataEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferDrawBuffer", glNamedFramebufferDrawBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferDrawBuffers", glNamedFramebufferDrawBuffers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferParameteri", glNamedFramebufferParameteri, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferParameteriEXT", glNamedFramebufferParameteriEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferReadBuffer", glNamedFramebufferReadBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferRenderbuffer", glNamedFramebufferRenderbuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferRenderbufferEXT", glNamedFramebufferRenderbufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferSampleLocationsfvARB", glNamedFramebufferSampleLocationsfvARB, { GL_ARB_sample_locations, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferSampleLocationsfvNV", glNamedFramebufferSampleLocationsfvNV, { GL_NV_sample_locations, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferSamplePositionsfvAMD", glNamedFramebufferSamplePositionsfvAMD, { GL_AMD_framebuffer_sample_positions, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTexture", glNamedFramebufferTexture, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTexture1DEXT", glNamedFramebufferTexture1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTexture2DEXT", glNamedFramebufferTexture2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTexture3DEXT", glNamedFramebufferTexture3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTextureEXT", glNamedFramebufferTextureEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTextureFaceEXT", glNamedFramebufferTextureFaceEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTextureLayer", glNamedFramebufferTextureLayer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTextureLayerEXT", glNamedFramebufferTextureLayerEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedFramebufferTextureMultiviewOVR", glNamedFramebufferTextureMultiviewOVR, { GL_OVR_multiview, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameter4dEXT", glNamedProgramLocalParameter4dEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameter4dvEXT", glNamedProgramLocalParameter4dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameter4fEXT", glNamedProgramLocalParameter4fEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameter4fvEXT", glNamedProgramLocalParameter4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameterI4iEXT", glNamedProgramLocalParameterI4iEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameterI4ivEXT", glNamedProgramLocalParameterI4ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameterI4uiEXT", glNamedProgramLocalParameterI4uiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameterI4uivEXT", glNamedProgramLocalParameterI4uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParameters4fvEXT", glNamedProgramLocalParameters4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParametersI4ivEXT", glNamedProgramLocalParametersI4ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramLocalParametersI4uivEXT", glNamedProgramLocalParametersI4uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedProgramStringEXT", glNamedProgramStringEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorage", glNamedRenderbufferStorage, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorageEXT", glNamedRenderbufferStorageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorageMultisample", glNamedRenderbufferStorageMultisample, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorageMultisampleAdvancedAMD", glNamedRenderbufferStorageMultisampleAdvancedAMD, { GL_AMD_framebuffer_multisample_advanced, GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorageMultisampleCoverageEXT", glNamedRenderbufferStorageMultisampleCoverageEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedRenderbufferStorageMultisampleEXT", glNamedRenderbufferStorageMultisampleEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glNamedStringARB", glNamedStringARB, { GL_ARB_shading_language_include, GL_EXTENSION_COUNT } }, + { "glNewBufferRegion", glNewBufferRegion, { GL_KTX_buffer_region, GL_EXTENSION_COUNT } }, + { "glNewObjectBufferATI", glNewObjectBufferATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glNormal3fVertex3fSUN", glNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glNormal3fVertex3fvSUN", glNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glNormal3hNV", glNormal3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glNormal3hvNV", glNormal3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glNormal3x", glNormal3x, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glNormal3xOES", glNormal3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glNormal3xvOES", glNormal3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glNormalFormatNV", glNormalFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glNormalP3ui", glNormalP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glNormalP3uiv", glNormalP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glNormalPointerEXT", glNormalPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glNormalPointerListIBM", glNormalPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glNormalPointervINTEL", glNormalPointervINTEL, { GL_INTEL_parallel_arrays, GL_EXTENSION_COUNT } }, + { "glNormalStream3bATI", glNormalStream3bATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3bvATI", glNormalStream3bvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3dATI", glNormalStream3dATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3dvATI", glNormalStream3dvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3fATI", glNormalStream3fATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3fvATI", glNormalStream3fvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3iATI", glNormalStream3iATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3ivATI", glNormalStream3ivATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3sATI", glNormalStream3sATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glNormalStream3svATI", glNormalStream3svATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glObjectLabel", glObjectLabel, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glObjectPtrLabel", glObjectPtrLabel, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glObjectPurgeableAPPLE", glObjectPurgeableAPPLE, { GL_APPLE_object_purgeable, GL_EXTENSION_COUNT } }, + { "glObjectUnpurgeableAPPLE", glObjectUnpurgeableAPPLE, { GL_APPLE_object_purgeable, GL_EXTENSION_COUNT } }, + { "glOrthof", glOrthof, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glOrthofOES", glOrthofOES, { GL_OES_single_precision, GL_EXTENSION_COUNT } }, + { "glOrthox", glOrthox, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glOrthoxOES", glOrthoxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPNTrianglesfATI", glPNTrianglesfATI, { GL_ATI_pn_triangles, GL_EXTENSION_COUNT } }, + { "glPNTrianglesiATI", glPNTrianglesiATI, { GL_ATI_pn_triangles, GL_EXTENSION_COUNT } }, + { "glPassTexCoordATI", glPassTexCoordATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glPassThroughxOES", glPassThroughxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPatchParameterfv", glPatchParameterfv, { GL_ARB_tessellation_shader, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glPatchParameteri", glPatchParameteri, { GL_ARB_tessellation_shader, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glPathColorGenNV", glPathColorGenNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathCommandsNV", glPathCommandsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathCoordsNV", glPathCoordsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathCoverDepthFuncNV", glPathCoverDepthFuncNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathDashArrayNV", glPathDashArrayNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathFogGenNV", glPathFogGenNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathGlyphIndexArrayNV", glPathGlyphIndexArrayNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathGlyphIndexRangeNV", glPathGlyphIndexRangeNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathGlyphRangeNV", glPathGlyphRangeNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathGlyphsNV", glPathGlyphsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathMemoryGlyphIndexArrayNV", glPathMemoryGlyphIndexArrayNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathParameterfNV", glPathParameterfNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathParameterfvNV", glPathParameterfvNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathParameteriNV", glPathParameteriNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathParameterivNV", glPathParameterivNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathStencilDepthOffsetNV", glPathStencilDepthOffsetNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathStencilFuncNV", glPathStencilFuncNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathStringNV", glPathStringNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathSubCommandsNV", glPathSubCommandsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathSubCoordsNV", glPathSubCoordsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPathTexGenNV", glPathTexGenNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPauseTransformFeedback", glPauseTransformFeedback, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glPauseTransformFeedbackNV", glPauseTransformFeedbackNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glPixelDataRangeNV", glPixelDataRangeNV, { GL_NV_pixel_data_range, GL_EXTENSION_COUNT } }, + { "glPixelMapx", glPixelMapx, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPixelStorex", glPixelStorex, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPixelTexGenParameterfSGIS", glPixelTexGenParameterfSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glPixelTexGenParameterfvSGIS", glPixelTexGenParameterfvSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glPixelTexGenParameteriSGIS", glPixelTexGenParameteriSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glPixelTexGenParameterivSGIS", glPixelTexGenParameterivSGIS, { GL_SGIS_pixel_texture, GL_EXTENSION_COUNT } }, + { "glPixelTexGenSGIX", glPixelTexGenSGIX, { GL_SGIX_pixel_texture, GL_EXTENSION_COUNT } }, + { "glPixelTransferxOES", glPixelTransferxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPixelTransformParameterfEXT", glPixelTransformParameterfEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glPixelTransformParameterfvEXT", glPixelTransformParameterfvEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glPixelTransformParameteriEXT", glPixelTransformParameteriEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glPixelTransformParameterivEXT", glPixelTransformParameterivEXT, { GL_EXT_pixel_transform, GL_EXTENSION_COUNT } }, + { "glPixelZoomxOES", glPixelZoomxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPointAlongPathNV", glPointAlongPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glPointParameterf", glPointParameterf, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glPointParameterfARB", glPointParameterfARB, { GL_ARB_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameterfEXT", glPointParameterfEXT, { GL_EXT_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameterfSGIS", glPointParameterfSGIS, { GL_SGIS_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameterfv", glPointParameterfv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glPointParameterfvARB", glPointParameterfvARB, { GL_ARB_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameterfvEXT", glPointParameterfvEXT, { GL_EXT_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameterfvSGIS", glPointParameterfvSGIS, { GL_SGIS_point_parameters, GL_EXTENSION_COUNT } }, + { "glPointParameteri", glPointParameteri, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glPointParameteriNV", glPointParameteriNV, { GL_NV_point_sprite, GL_EXTENSION_COUNT } }, + { "glPointParameteriv", glPointParameteriv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glPointParameterivNV", glPointParameterivNV, { GL_NV_point_sprite, GL_EXTENSION_COUNT } }, + { "glPointParameterx", glPointParameterx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glPointParameterxv", glPointParameterxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glPointParameterxvOES", glPointParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPointSizex", glPointSizex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glPointSizexOES", glPointSizexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPollAsyncSGIX", glPollAsyncSGIX, { GL_SGIX_async, GL_EXTENSION_COUNT } }, + { "glPollInstrumentsSGIX", glPollInstrumentsSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glPolygonOffsetClamp", glPolygonOffsetClamp, { GL_ARB_polygon_offset_clamp, MAKELONG(6, 4), GL_EXTENSION_COUNT } }, + { "glPolygonOffsetClampEXT", glPolygonOffsetClampEXT, { GL_EXT_polygon_offset_clamp, GL_EXTENSION_COUNT } }, + { "glPolygonOffsetEXT", glPolygonOffsetEXT, { GL_EXT_polygon_offset, GL_EXTENSION_COUNT } }, + { "glPolygonOffsetx", glPolygonOffsetx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glPolygonOffsetxOES", glPolygonOffsetxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glPopDebugGroup", glPopDebugGroup, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glPopGroupMarkerEXT", glPopGroupMarkerEXT, { GL_EXT_debug_marker, GL_EXTENSION_COUNT } }, + { "glPresentFrameDualFillNV", glPresentFrameDualFillNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glPresentFrameKeyedNV", glPresentFrameKeyedNV, { GL_NV_present_video, GL_EXTENSION_COUNT } }, + { "glPrimitiveBoundingBox", glPrimitiveBoundingBox, { GL_ARB_ES3_2_compatibility, GL_EXTENSION_COUNT } }, + { "glPrimitiveBoundingBoxARB", glPrimitiveBoundingBoxARB, { GL_ARB_ES3_2_compatibility, GL_EXTENSION_COUNT } }, + { "glPrimitiveRestartIndex", glPrimitiveRestartIndex, { MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glPrimitiveRestartIndexNV", glPrimitiveRestartIndexNV, { GL_NV_primitive_restart, GL_EXTENSION_COUNT } }, + { "glPrimitiveRestartNV", glPrimitiveRestartNV, { GL_NV_primitive_restart, GL_EXTENSION_COUNT } }, + { "glPrioritizeTexturesEXT", glPrioritizeTexturesEXT, { GL_EXT_texture_object, GL_EXTENSION_COUNT } }, + { "glPrioritizeTexturesxOES", glPrioritizeTexturesxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glProgramBinary", glProgramBinary, { GL_ARB_get_program_binary, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramBufferParametersIivNV", glProgramBufferParametersIivNV, { GL_NV_parameter_buffer_object, GL_EXTENSION_COUNT } }, + { "glProgramBufferParametersIuivNV", glProgramBufferParametersIuivNV, { GL_NV_parameter_buffer_object, GL_EXTENSION_COUNT } }, + { "glProgramBufferParametersfvNV", glProgramBufferParametersfvNV, { GL_NV_parameter_buffer_object, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameter4dARB", glProgramEnvParameter4dARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameter4dvARB", glProgramEnvParameter4dvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameter4fARB", glProgramEnvParameter4fARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameter4fvARB", glProgramEnvParameter4fvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameterI4iNV", glProgramEnvParameterI4iNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameterI4ivNV", glProgramEnvParameterI4ivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameterI4uiNV", glProgramEnvParameterI4uiNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameterI4uivNV", glProgramEnvParameterI4uivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramEnvParameters4fvEXT", glProgramEnvParameters4fvEXT, { GL_EXT_gpu_program_parameters, GL_EXTENSION_COUNT } }, + { "glProgramEnvParametersI4ivNV", glProgramEnvParametersI4ivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramEnvParametersI4uivNV", glProgramEnvParametersI4uivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameter4dARB", glProgramLocalParameter4dARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameter4dvARB", glProgramLocalParameter4dvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameter4fARB", glProgramLocalParameter4fARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameter4fvARB", glProgramLocalParameter4fvARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameterI4iNV", glProgramLocalParameterI4iNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameterI4ivNV", glProgramLocalParameterI4ivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameterI4uiNV", glProgramLocalParameterI4uiNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameterI4uivNV", glProgramLocalParameterI4uivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParameters4fvEXT", glProgramLocalParameters4fvEXT, { GL_EXT_gpu_program_parameters, GL_EXTENSION_COUNT } }, + { "glProgramLocalParametersI4ivNV", glProgramLocalParametersI4ivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramLocalParametersI4uivNV", glProgramLocalParametersI4uivNV, { GL_NV_gpu_program4, GL_EXTENSION_COUNT } }, + { "glProgramNamedParameter4dNV", glProgramNamedParameter4dNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glProgramNamedParameter4dvNV", glProgramNamedParameter4dvNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glProgramNamedParameter4fNV", glProgramNamedParameter4fNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glProgramNamedParameter4fvNV", glProgramNamedParameter4fvNV, { GL_NV_fragment_program, GL_EXTENSION_COUNT } }, + { "glProgramParameter4dNV", glProgramParameter4dNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramParameter4dvNV", glProgramParameter4dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramParameter4fNV", glProgramParameter4fNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramParameter4fvNV", glProgramParameter4fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramParameteri", glProgramParameteri, { GL_ARB_get_program_binary, GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramParameteriARB", glProgramParameteriARB, { GL_ARB_geometry_shader4, GL_EXTENSION_COUNT } }, + { "glProgramParameteriEXT", glProgramParameteriEXT, { GL_EXT_geometry_shader4, GL_EXTENSION_COUNT } }, + { "glProgramParameters4dvNV", glProgramParameters4dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramParameters4fvNV", glProgramParameters4fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramPathFragmentInputGenNV", glProgramPathFragmentInputGenNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glProgramStringARB", glProgramStringARB, { GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXTENSION_COUNT } }, + { "glProgramSubroutineParametersuivNV", glProgramSubroutineParametersuivNV, { GL_NV_gpu_program5, GL_NV_gpu_program_fp64, GL_EXTENSION_COUNT } }, + { "glProgramUniform1d", glProgramUniform1d, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1dEXT", glProgramUniform1dEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1dv", glProgramUniform1dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1dvEXT", glProgramUniform1dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1f", glProgramUniform1f, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1fEXT", glProgramUniform1fEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1fv", glProgramUniform1fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1fvEXT", glProgramUniform1fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1i", glProgramUniform1i, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1i64ARB", glProgramUniform1i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform1i64NV", glProgramUniform1i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform1i64vARB", glProgramUniform1i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform1i64vNV", glProgramUniform1i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform1iEXT", glProgramUniform1iEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1iv", glProgramUniform1iv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1ivEXT", glProgramUniform1ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1ui", glProgramUniform1ui, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1ui64ARB", glProgramUniform1ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform1ui64NV", glProgramUniform1ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform1ui64vARB", glProgramUniform1ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform1ui64vNV", glProgramUniform1ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform1uiEXT", glProgramUniform1uiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform1uiv", glProgramUniform1uiv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform1uivEXT", glProgramUniform1uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2d", glProgramUniform2d, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2dEXT", glProgramUniform2dEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2dv", glProgramUniform2dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2dvEXT", glProgramUniform2dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2f", glProgramUniform2f, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2fEXT", glProgramUniform2fEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2fv", glProgramUniform2fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2fvEXT", glProgramUniform2fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2i", glProgramUniform2i, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2i64ARB", glProgramUniform2i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform2i64NV", glProgramUniform2i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform2i64vARB", glProgramUniform2i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform2i64vNV", glProgramUniform2i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform2iEXT", glProgramUniform2iEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2iv", glProgramUniform2iv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2ivEXT", glProgramUniform2ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2ui", glProgramUniform2ui, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2ui64ARB", glProgramUniform2ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform2ui64NV", glProgramUniform2ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform2ui64vARB", glProgramUniform2ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform2ui64vNV", glProgramUniform2ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform2uiEXT", glProgramUniform2uiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform2uiv", glProgramUniform2uiv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform2uivEXT", glProgramUniform2uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3d", glProgramUniform3d, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3dEXT", glProgramUniform3dEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3dv", glProgramUniform3dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3dvEXT", glProgramUniform3dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3f", glProgramUniform3f, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3fEXT", glProgramUniform3fEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3fv", glProgramUniform3fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3fvEXT", glProgramUniform3fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3i", glProgramUniform3i, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3i64ARB", glProgramUniform3i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform3i64NV", glProgramUniform3i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform3i64vARB", glProgramUniform3i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform3i64vNV", glProgramUniform3i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform3iEXT", glProgramUniform3iEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3iv", glProgramUniform3iv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3ivEXT", glProgramUniform3ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3ui", glProgramUniform3ui, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3ui64ARB", glProgramUniform3ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform3ui64NV", glProgramUniform3ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform3ui64vARB", glProgramUniform3ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform3ui64vNV", glProgramUniform3ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform3uiEXT", glProgramUniform3uiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform3uiv", glProgramUniform3uiv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform3uivEXT", glProgramUniform3uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4d", glProgramUniform4d, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4dEXT", glProgramUniform4dEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4dv", glProgramUniform4dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4dvEXT", glProgramUniform4dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4f", glProgramUniform4f, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4fEXT", glProgramUniform4fEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4fv", glProgramUniform4fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4fvEXT", glProgramUniform4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4i", glProgramUniform4i, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4i64ARB", glProgramUniform4i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform4i64NV", glProgramUniform4i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform4i64vARB", glProgramUniform4i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform4i64vNV", glProgramUniform4i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform4iEXT", glProgramUniform4iEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4iv", glProgramUniform4iv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4ivEXT", glProgramUniform4ivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4ui", glProgramUniform4ui, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4ui64ARB", glProgramUniform4ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform4ui64NV", glProgramUniform4ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform4ui64vARB", glProgramUniform4ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glProgramUniform4ui64vNV", glProgramUniform4ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glProgramUniform4uiEXT", glProgramUniform4uiEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniform4uiv", glProgramUniform4uiv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniform4uivEXT", glProgramUniform4uivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformHandleui64ARB", glProgramUniformHandleui64ARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glProgramUniformHandleui64NV", glProgramUniformHandleui64NV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glProgramUniformHandleui64vARB", glProgramUniformHandleui64vARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glProgramUniformHandleui64vNV", glProgramUniformHandleui64vNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2dv", glProgramUniformMatrix2dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2dvEXT", glProgramUniformMatrix2dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2fv", glProgramUniformMatrix2fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2fvEXT", glProgramUniformMatrix2fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x3dv", glProgramUniformMatrix2x3dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x3dvEXT", glProgramUniformMatrix2x3dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x3fv", glProgramUniformMatrix2x3fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x3fvEXT", glProgramUniformMatrix2x3fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x4dv", glProgramUniformMatrix2x4dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x4dvEXT", glProgramUniformMatrix2x4dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x4fv", glProgramUniformMatrix2x4fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix2x4fvEXT", glProgramUniformMatrix2x4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3dv", glProgramUniformMatrix3dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3dvEXT", glProgramUniformMatrix3dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3fv", glProgramUniformMatrix3fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3fvEXT", glProgramUniformMatrix3fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x2dv", glProgramUniformMatrix3x2dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x2dvEXT", glProgramUniformMatrix3x2dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x2fv", glProgramUniformMatrix3x2fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x2fvEXT", glProgramUniformMatrix3x2fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x4dv", glProgramUniformMatrix3x4dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x4dvEXT", glProgramUniformMatrix3x4dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x4fv", glProgramUniformMatrix3x4fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix3x4fvEXT", glProgramUniformMatrix3x4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4dv", glProgramUniformMatrix4dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4dvEXT", glProgramUniformMatrix4dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4fv", glProgramUniformMatrix4fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4fvEXT", glProgramUniformMatrix4fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x2dv", glProgramUniformMatrix4x2dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x2dvEXT", glProgramUniformMatrix4x2dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x2fv", glProgramUniformMatrix4x2fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x2fvEXT", glProgramUniformMatrix4x2fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x3dv", glProgramUniformMatrix4x3dv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x3dvEXT", glProgramUniformMatrix4x3dvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x3fv", glProgramUniformMatrix4x3fv, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glProgramUniformMatrix4x3fvEXT", glProgramUniformMatrix4x3fvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glProgramUniformui64NV", glProgramUniformui64NV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glProgramUniformui64vNV", glProgramUniformui64vNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glProgramVertexLimitNV", glProgramVertexLimitNV, { GL_NV_geometry_program4, GL_EXTENSION_COUNT } }, + { "glProvokingVertex", glProvokingVertex, { GL_ARB_provoking_vertex, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glProvokingVertexEXT", glProvokingVertexEXT, { GL_EXT_provoking_vertex, GL_EXTENSION_COUNT } }, + { "glPushClientAttribDefaultEXT", glPushClientAttribDefaultEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glPushDebugGroup", glPushDebugGroup, { GL_KHR_debug, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glPushGroupMarkerEXT", glPushGroupMarkerEXT, { GL_EXT_debug_marker, GL_EXTENSION_COUNT } }, + { "glQueryCounter", glQueryCounter, { GL_ARB_timer_query, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glQueryMatrixxOES", glQueryMatrixxOES, { GL_OES_query_matrix, GL_EXTENSION_COUNT } }, + { "glQueryObjectParameteruiAMD", glQueryObjectParameteruiAMD, { GL_AMD_occlusion_query_event, GL_EXTENSION_COUNT } }, + { "glQueryResourceNV", glQueryResourceNV, { GL_NV_query_resource, GL_EXTENSION_COUNT } }, + { "glQueryResourceTagNV", glQueryResourceTagNV, { GL_NV_query_resource_tag, GL_EXTENSION_COUNT } }, + { "glRasterPos2xOES", glRasterPos2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterPos2xvOES", glRasterPos2xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterPos3xOES", glRasterPos3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterPos3xvOES", glRasterPos3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterPos4xOES", glRasterPos4xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterPos4xvOES", glRasterPos4xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRasterSamplesEXT", glRasterSamplesEXT, { GL_EXT_raster_multisample, GL_NV_framebuffer_mixed_samples, GL_EXTENSION_COUNT } }, + { "glReadBufferRegion", glReadBufferRegion, { GL_KTX_buffer_region, GL_EXTENSION_COUNT } }, + { "glReadInstrumentsSGIX", glReadInstrumentsSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glReadnPixels", glReadnPixels, { GL_KHR_robustness, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glReadnPixelsARB", glReadnPixelsARB, { GL_ARB_robustness, GL_EXTENSION_COUNT } }, + { "glRectxOES", glRectxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glRectxvOES", glRectxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glReferencePlaneSGIX", glReferencePlaneSGIX, { GL_SGIX_reference_plane, GL_EXTENSION_COUNT } }, + { "glReleaseKeyedMutexWin32EXT", glReleaseKeyedMutexWin32EXT, { GL_EXT_win32_keyed_mutex, GL_EXTENSION_COUNT } }, + { "glReleaseShaderCompiler", glReleaseShaderCompiler, { GL_ARB_ES2_compatibility, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glRenderGpuMaskNV", glRenderGpuMaskNV, { GL_NV_gpu_multicast, GL_EXTENSION_COUNT } }, + { "glRenderbufferStorage", glRenderbufferStorage, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glRenderbufferStorageEXT", glRenderbufferStorageEXT, { GL_EXT_framebuffer_object, GL_EXTENSION_COUNT } }, + { "glRenderbufferStorageMultisample", glRenderbufferStorageMultisample, { GL_ARB_framebuffer_object, MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glRenderbufferStorageMultisampleAdvancedAMD", glRenderbufferStorageMultisampleAdvancedAMD, { GL_AMD_framebuffer_multisample_advanced, GL_EXTENSION_COUNT } }, + { "glRenderbufferStorageMultisampleCoverageNV", glRenderbufferStorageMultisampleCoverageNV, { GL_NV_framebuffer_multisample_coverage, GL_EXTENSION_COUNT } }, + { "glRenderbufferStorageMultisampleEXT", glRenderbufferStorageMultisampleEXT, { GL_EXT_framebuffer_multisample, GL_EXTENSION_COUNT } }, + { "glReplacementCodePointerSUN", glReplacementCodePointerSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeubSUN", glReplacementCodeubSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeubvSUN", glReplacementCodeubvSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor3fVertex3fSUN", glReplacementCodeuiColor3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor3fVertex3fvSUN", glReplacementCodeuiColor3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor4fNormal3fVertex3fSUN", glReplacementCodeuiColor4fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", glReplacementCodeuiColor4fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor4ubVertex3fSUN", glReplacementCodeuiColor4ubVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiColor4ubVertex3fvSUN", glReplacementCodeuiColor4ubVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiNormal3fVertex3fSUN", glReplacementCodeuiNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiNormal3fVertex3fvSUN", glReplacementCodeuiNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiSUN", glReplacementCodeuiSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fVertex3fSUN", glReplacementCodeuiTexCoord2fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiTexCoord2fVertex3fvSUN", glReplacementCodeuiTexCoord2fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiVertex3fSUN", glReplacementCodeuiVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuiVertex3fvSUN", glReplacementCodeuiVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glReplacementCodeuivSUN", glReplacementCodeuivSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeusSUN", glReplacementCodeusSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glReplacementCodeusvSUN", glReplacementCodeusvSUN, { GL_SUN_triangle_list, GL_EXTENSION_COUNT } }, + { "glRequestResidentProgramsNV", glRequestResidentProgramsNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glResetHistogram", glResetHistogram, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glResetHistogramEXT", glResetHistogramEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glResetMemoryObjectParameterNV", glResetMemoryObjectParameterNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glResetMinmax", glResetMinmax, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glResetMinmaxEXT", glResetMinmaxEXT, { GL_EXT_histogram, GL_EXTENSION_COUNT } }, + { "glResizeBuffersMESA", glResizeBuffersMESA, { GL_MESA_resize_buffers, GL_EXTENSION_COUNT } }, + { "glResolveDepthValuesNV", glResolveDepthValuesNV, { GL_NV_sample_locations, GL_EXTENSION_COUNT } }, + { "glResumeTransformFeedback", glResumeTransformFeedback, { GL_ARB_transform_feedback2, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glResumeTransformFeedbackNV", glResumeTransformFeedbackNV, { GL_NV_transform_feedback2, GL_EXTENSION_COUNT } }, + { "glRotatex", glRotatex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glRotatexOES", glRotatexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glSampleCoverage", glSampleCoverage, { MAKELONG(3, 1), GL_EXTENSION_COUNT } }, + { "glSampleCoverageARB", glSampleCoverageARB, { GL_ARB_multisample, GL_EXTENSION_COUNT } }, + { "glSampleCoveragex", glSampleCoveragex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glSampleMapATI", glSampleMapATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glSampleMaskEXT", glSampleMaskEXT, { GL_EXT_multisample, GL_EXTENSION_COUNT } }, + { "glSampleMaskIndexedNV", glSampleMaskIndexedNV, { GL_NV_explicit_multisample, GL_EXTENSION_COUNT } }, + { "glSampleMaskSGIS", glSampleMaskSGIS, { GL_SGIS_multisample, GL_EXTENSION_COUNT } }, + { "glSampleMaski", glSampleMaski, { GL_ARB_texture_multisample, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glSamplePatternEXT", glSamplePatternEXT, { GL_EXT_multisample, GL_EXTENSION_COUNT } }, + { "glSamplePatternSGIS", glSamplePatternSGIS, { GL_SGIS_multisample, GL_EXTENSION_COUNT } }, + { "glSamplerParameterIiv", glSamplerParameterIiv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSamplerParameterIuiv", glSamplerParameterIuiv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSamplerParameterf", glSamplerParameterf, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSamplerParameterfv", glSamplerParameterfv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSamplerParameteri", glSamplerParameteri, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSamplerParameteriv", glSamplerParameteriv, { GL_ARB_sampler_objects, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glScalex", glScalex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glScalexOES", glScalexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glScissorArrayv", glScissorArrayv, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glScissorExclusiveArrayvNV", glScissorExclusiveArrayvNV, { GL_NV_scissor_exclusive, GL_EXTENSION_COUNT } }, + { "glScissorExclusiveNV", glScissorExclusiveNV, { GL_NV_scissor_exclusive, GL_EXTENSION_COUNT } }, + { "glScissorIndexed", glScissorIndexed, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glScissorIndexedv", glScissorIndexedv, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3b", glSecondaryColor3b, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3bEXT", glSecondaryColor3bEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3bv", glSecondaryColor3bv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3bvEXT", glSecondaryColor3bvEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3d", glSecondaryColor3d, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3dEXT", glSecondaryColor3dEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3dv", glSecondaryColor3dv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3dvEXT", glSecondaryColor3dvEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3f", glSecondaryColor3f, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3fEXT", glSecondaryColor3fEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3fv", glSecondaryColor3fv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3fvEXT", glSecondaryColor3fvEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3hNV", glSecondaryColor3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3hvNV", glSecondaryColor3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3i", glSecondaryColor3i, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3iEXT", glSecondaryColor3iEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3iv", glSecondaryColor3iv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ivEXT", glSecondaryColor3ivEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3s", glSecondaryColor3s, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3sEXT", glSecondaryColor3sEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3sv", glSecondaryColor3sv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3svEXT", glSecondaryColor3svEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ub", glSecondaryColor3ub, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ubEXT", glSecondaryColor3ubEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ubv", glSecondaryColor3ubv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ubvEXT", glSecondaryColor3ubvEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3ui", glSecondaryColor3ui, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3uiEXT", glSecondaryColor3uiEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3uiv", glSecondaryColor3uiv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3uivEXT", glSecondaryColor3uivEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3us", glSecondaryColor3us, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3usEXT", glSecondaryColor3usEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColor3usv", glSecondaryColor3usv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColor3usvEXT", glSecondaryColor3usvEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColorFormatNV", glSecondaryColorFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glSecondaryColorP3ui", glSecondaryColorP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSecondaryColorP3uiv", glSecondaryColorP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glSecondaryColorPointer", glSecondaryColorPointer, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glSecondaryColorPointerEXT", glSecondaryColorPointerEXT, { GL_EXT_secondary_color, GL_EXTENSION_COUNT } }, + { "glSecondaryColorPointerListIBM", glSecondaryColorPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glSelectPerfMonitorCountersAMD", glSelectPerfMonitorCountersAMD, { GL_AMD_performance_monitor, GL_EXTENSION_COUNT } }, + { "glSelectTextureCoordSetSGIS", glSelectTextureCoordSetSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glSelectTextureSGIS", glSelectTextureSGIS, { GL_SGIS_multitexture, GL_EXTENSION_COUNT } }, + { "glSemaphoreParameterivNV", glSemaphoreParameterivNV, { GL_NV_timeline_semaphore, GL_EXTENSION_COUNT } }, + { "glSemaphoreParameterui64vEXT", glSemaphoreParameterui64vEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glSeparableFilter2D", glSeparableFilter2D, { GL_ARB_imaging, GL_EXTENSION_COUNT } }, + { "glSeparableFilter2DEXT", glSeparableFilter2DEXT, { GL_EXT_convolution, GL_EXTENSION_COUNT } }, + { "glSetFenceAPPLE", glSetFenceAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glSetFenceNV", glSetFenceNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glSetFragmentShaderConstantATI", glSetFragmentShaderConstantATI, { GL_ATI_fragment_shader, GL_EXTENSION_COUNT } }, + { "glSetInvariantEXT", glSetInvariantEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glSetLocalConstantEXT", glSetLocalConstantEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glSetMultisamplefvAMD", glSetMultisamplefvAMD, { GL_AMD_sample_positions, GL_EXTENSION_COUNT } }, + { "glShaderBinary", glShaderBinary, { GL_ARB_ES2_compatibility, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glShaderOp1EXT", glShaderOp1EXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glShaderOp2EXT", glShaderOp2EXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glShaderOp3EXT", glShaderOp3EXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glShaderSource", glShaderSource, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glShaderSourceARB", glShaderSourceARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glShaderStorageBlockBinding", glShaderStorageBlockBinding, { GL_ARB_shader_storage_buffer_object, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glShadingRateCombinerOpsEXT", glShadingRateCombinerOpsEXT, { GL_EXT_fragment_shading_rate, GL_EXT_fragment_shading_rate_attachment, GL_EXT_fragment_shading_rate_primitive, GL_EXTENSION_COUNT } }, + { "glShadingRateEXT", glShadingRateEXT, { GL_EXT_fragment_shading_rate, GL_EXT_fragment_shading_rate_attachment, GL_EXT_fragment_shading_rate_primitive, GL_EXTENSION_COUNT } }, + { "glShadingRateImageBarrierNV", glShadingRateImageBarrierNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glShadingRateImagePaletteNV", glShadingRateImagePaletteNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glShadingRateSampleOrderCustomNV", glShadingRateSampleOrderCustomNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glShadingRateSampleOrderNV", glShadingRateSampleOrderNV, { GL_NV_shading_rate_image, GL_EXTENSION_COUNT } }, + { "glSharpenTexFuncSGIS", glSharpenTexFuncSGIS, { GL_SGIS_sharpen_texture, GL_EXTENSION_COUNT } }, + { "glSignalSemaphoreEXT", glSignalSemaphoreEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glSignalSemaphoreui64NVX", glSignalSemaphoreui64NVX, { GL_NVX_progress_fence, GL_EXTENSION_COUNT } }, + { "glSignalVkFenceNV", glSignalVkFenceNV, { GL_NV_draw_vulkan_image, GL_EXTENSION_COUNT } }, + { "glSignalVkSemaphoreNV", glSignalVkSemaphoreNV, { GL_NV_draw_vulkan_image, GL_EXTENSION_COUNT } }, + { "glSpecializeShader", glSpecializeShader, { MAKELONG(6, 4), GL_EXTENSION_COUNT } }, + { "glSpecializeShaderARB", glSpecializeShaderARB, { GL_ARB_gl_spirv, GL_EXTENSION_COUNT } }, + { "glSpriteParameterfSGIX", glSpriteParameterfSGIX, { GL_SGIX_sprite, GL_EXTENSION_COUNT } }, + { "glSpriteParameterfvSGIX", glSpriteParameterfvSGIX, { GL_SGIX_sprite, GL_EXTENSION_COUNT } }, + { "glSpriteParameteriSGIX", glSpriteParameteriSGIX, { GL_SGIX_sprite, GL_EXTENSION_COUNT } }, + { "glSpriteParameterivSGIX", glSpriteParameterivSGIX, { GL_SGIX_sprite, GL_EXTENSION_COUNT } }, + { "glStartInstrumentsSGIX", glStartInstrumentsSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glStateCaptureNV", glStateCaptureNV, { GL_NV_command_list, GL_EXTENSION_COUNT } }, + { "glStencilClearTagEXT", glStencilClearTagEXT, { GL_EXT_stencil_clear_tag, GL_EXTENSION_COUNT } }, + { "glStencilFillPathInstancedNV", glStencilFillPathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilFillPathNV", glStencilFillPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilFuncSeparate", glStencilFuncSeparate, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glStencilFuncSeparateATI", glStencilFuncSeparateATI, { GL_ATI_separate_stencil, GL_EXTENSION_COUNT } }, + { "glStencilMaskSeparate", glStencilMaskSeparate, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glStencilOpSeparate", glStencilOpSeparate, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glStencilOpSeparateATI", glStencilOpSeparateATI, { GL_ATI_separate_stencil, GL_EXTENSION_COUNT } }, + { "glStencilOpValueAMD", glStencilOpValueAMD, { GL_AMD_stencil_operation_extended, GL_EXTENSION_COUNT } }, + { "glStencilStrokePathInstancedNV", glStencilStrokePathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilStrokePathNV", glStencilStrokePathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilThenCoverFillPathInstancedNV", glStencilThenCoverFillPathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilThenCoverFillPathNV", glStencilThenCoverFillPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilThenCoverStrokePathInstancedNV", glStencilThenCoverStrokePathInstancedNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStencilThenCoverStrokePathNV", glStencilThenCoverStrokePathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glStopInstrumentsSGIX", glStopInstrumentsSGIX, { GL_SGIX_instruments, GL_EXTENSION_COUNT } }, + { "glStringMarkerGREMEDY", glStringMarkerGREMEDY, { GL_GREMEDY_string_marker, GL_EXTENSION_COUNT } }, + { "glSubpixelPrecisionBiasNV", glSubpixelPrecisionBiasNV, { GL_NV_conservative_raster, GL_EXTENSION_COUNT } }, + { "glSwizzleEXT", glSwizzleEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glSyncTextureINTEL", glSyncTextureINTEL, { GL_INTEL_map_texture, GL_EXTENSION_COUNT } }, + { "glTagSampleBufferSGIX", glTagSampleBufferSGIX, { GL_SGIX_tag_sample_buffer, GL_EXTENSION_COUNT } }, + { "glTangent3bEXT", glTangent3bEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3bvEXT", glTangent3bvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3dEXT", glTangent3dEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3dvEXT", glTangent3dvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3fEXT", glTangent3fEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3fvEXT", glTangent3fvEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3iEXT", glTangent3iEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3ivEXT", glTangent3ivEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3sEXT", glTangent3sEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangent3svEXT", glTangent3svEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTangentPointerEXT", glTangentPointerEXT, { GL_EXT_coordinate_frame, GL_EXTENSION_COUNT } }, + { "glTbufferMask3DFX", glTbufferMask3DFX, { GL_3DFX_tbuffer, GL_EXTENSION_COUNT } }, + { "glTessellationFactorAMD", glTessellationFactorAMD, { GL_AMD_vertex_shader_tessellator, GL_EXTENSION_COUNT } }, + { "glTessellationModeAMD", glTessellationModeAMD, { GL_AMD_vertex_shader_tessellator, GL_EXTENSION_COUNT } }, + { "glTestFenceAPPLE", glTestFenceAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glTestFenceNV", glTestFenceNV, { GL_NV_fence, GL_EXTENSION_COUNT } }, + { "glTestObjectAPPLE", glTestObjectAPPLE, { GL_APPLE_fence, GL_EXTENSION_COUNT } }, + { "glTexAttachMemoryNV", glTexAttachMemoryNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glTexBuffer", glTexBuffer, { MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glTexBufferARB", glTexBufferARB, { GL_ARB_texture_buffer_object, GL_EXTENSION_COUNT } }, + { "glTexBufferEXT", glTexBufferEXT, { GL_EXT_texture_buffer_object, GL_EXTENSION_COUNT } }, + { "glTexBufferRange", glTexBufferRange, { GL_ARB_texture_buffer_range, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glTexBumpParameterfvATI", glTexBumpParameterfvATI, { GL_ATI_envmap_bumpmap, GL_EXTENSION_COUNT } }, + { "glTexBumpParameterivATI", glTexBumpParameterivATI, { GL_ATI_envmap_bumpmap, GL_EXTENSION_COUNT } }, + { "glTexCoord1bOES", glTexCoord1bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord1bvOES", glTexCoord1bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord1hNV", glTexCoord1hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord1hvNV", glTexCoord1hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord1xOES", glTexCoord1xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord1xvOES", glTexCoord1xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord2bOES", glTexCoord2bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord2bvOES", glTexCoord2bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor3fVertex3fSUN", glTexCoord2fColor3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor3fVertex3fvSUN", glTexCoord2fColor3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor4fNormal3fVertex3fSUN", glTexCoord2fColor4fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor4fNormal3fVertex3fvSUN", glTexCoord2fColor4fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor4ubVertex3fSUN", glTexCoord2fColor4ubVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fColor4ubVertex3fvSUN", glTexCoord2fColor4ubVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fNormal3fVertex3fSUN", glTexCoord2fNormal3fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fNormal3fVertex3fvSUN", glTexCoord2fNormal3fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fVertex3fSUN", glTexCoord2fVertex3fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2fVertex3fvSUN", glTexCoord2fVertex3fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord2hNV", glTexCoord2hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord2hvNV", glTexCoord2hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord2xOES", glTexCoord2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord2xvOES", glTexCoord2xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord3bOES", glTexCoord3bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord3bvOES", glTexCoord3bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord3hNV", glTexCoord3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord3hvNV", glTexCoord3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord3xOES", glTexCoord3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord3xvOES", glTexCoord3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord4bOES", glTexCoord4bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord4bvOES", glTexCoord4bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glTexCoord4fColor4fNormal3fVertex4fSUN", glTexCoord4fColor4fNormal3fVertex4fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord4fColor4fNormal3fVertex4fvSUN", glTexCoord4fColor4fNormal3fVertex4fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord4fVertex4fSUN", glTexCoord4fVertex4fSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord4fVertex4fvSUN", glTexCoord4fVertex4fvSUN, { GL_SUN_vertex, GL_EXTENSION_COUNT } }, + { "glTexCoord4hNV", glTexCoord4hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord4hvNV", glTexCoord4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glTexCoord4xOES", glTexCoord4xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoord4xvOES", glTexCoord4xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexCoordFormatNV", glTexCoordFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glTexCoordP1ui", glTexCoordP1ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP1uiv", glTexCoordP1uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP2ui", glTexCoordP2ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP2uiv", glTexCoordP2uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP3ui", glTexCoordP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP3uiv", glTexCoordP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP4ui", glTexCoordP4ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordP4uiv", glTexCoordP4uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glTexCoordPointerEXT", glTexCoordPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glTexCoordPointerListIBM", glTexCoordPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glTexCoordPointervINTEL", glTexCoordPointervINTEL, { GL_INTEL_parallel_arrays, GL_EXTENSION_COUNT } }, + { "glTexEnvx", glTexEnvx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glTexEnvxOES", glTexEnvxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexEnvxv", glTexEnvxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glTexEnvxvOES", glTexEnvxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexFilterFuncSGIS", glTexFilterFuncSGIS, { GL_SGIS_texture_filter4, GL_EXTENSION_COUNT } }, + { "glTexGenxOES", glTexGenxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexGenxvOES", glTexGenxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexImage2DMultisample", glTexImage2DMultisample, { GL_ARB_texture_multisample, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glTexImage2DMultisampleCoverageNV", glTexImage2DMultisampleCoverageNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTexImage3D", glTexImage3D, { MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glTexImage3DEXT", glTexImage3DEXT, { GL_EXT_texture3D, GL_EXTENSION_COUNT } }, + { "glTexImage3DMultisample", glTexImage3DMultisample, { GL_ARB_texture_multisample, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glTexImage3DMultisampleCoverageNV", glTexImage3DMultisampleCoverageNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTexImage4DSGIS", glTexImage4DSGIS, { GL_SGIS_texture4D, GL_EXTENSION_COUNT } }, + { "glTexPageCommitmentARB", glTexPageCommitmentARB, { GL_ARB_sparse_texture, GL_EXTENSION_COUNT } }, + { "glTexPageCommitmentMemNV", glTexPageCommitmentMemNV, { GL_NV_memory_object_sparse, GL_EXTENSION_COUNT } }, + { "glTexParameterIiv", glTexParameterIiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glTexParameterIivEXT", glTexParameterIivEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glTexParameterIuiv", glTexParameterIuiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glTexParameterIuivEXT", glTexParameterIuivEXT, { GL_EXT_texture_integer, GL_EXTENSION_COUNT } }, + { "glTexParameterx", glTexParameterx, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glTexParameterxOES", glTexParameterxOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexParameterxv", glTexParameterxv, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glTexParameterxvOES", glTexParameterxvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glTexRenderbufferNV", glTexRenderbufferNV, { GL_NV_explicit_multisample, GL_EXTENSION_COUNT } }, + { "glTexStorage1D", glTexStorage1D, { GL_ARB_texture_storage, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glTexStorage1DEXT", glTexStorage1DEXT, { GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTexStorage2D", glTexStorage2D, { GL_ARB_texture_storage, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glTexStorage2DEXT", glTexStorage2DEXT, { GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTexStorage2DMultisample", glTexStorage2DMultisample, { GL_ARB_texture_storage_multisample, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glTexStorage3D", glTexStorage3D, { GL_ARB_texture_storage, MAKELONG(2, 4), GL_EXTENSION_COUNT } }, + { "glTexStorage3DEXT", glTexStorage3DEXT, { GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTexStorage3DMultisample", glTexStorage3DMultisample, { GL_ARB_texture_storage_multisample, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glTexStorageMem1DEXT", glTexStorageMem1DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTexStorageMem2DEXT", glTexStorageMem2DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTexStorageMem2DMultisampleEXT", glTexStorageMem2DMultisampleEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTexStorageMem3DEXT", glTexStorageMem3DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTexStorageMem3DMultisampleEXT", glTexStorageMem3DMultisampleEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTexStorageSparseAMD", glTexStorageSparseAMD, { GL_AMD_sparse_texture, GL_EXTENSION_COUNT } }, + { "glTexSubImage1DEXT", glTexSubImage1DEXT, { GL_EXT_subtexture, GL_EXTENSION_COUNT } }, + { "glTexSubImage2DEXT", glTexSubImage2DEXT, { GL_EXT_subtexture, GL_EXTENSION_COUNT } }, + { "glTexSubImage3D", glTexSubImage3D, { MAKELONG(2, 1), GL_EXTENSION_COUNT } }, + { "glTexSubImage3DEXT", glTexSubImage3DEXT, { GL_EXT_texture3D, GL_EXTENSION_COUNT } }, + { "glTexSubImage4DSGIS", glTexSubImage4DSGIS, { GL_SGIS_texture4D, GL_EXTENSION_COUNT } }, + { "glTextureAttachMemoryNV", glTextureAttachMemoryNV, { GL_NV_memory_attachment, GL_EXTENSION_COUNT } }, + { "glTextureBarrier", glTextureBarrier, { GL_ARB_texture_barrier, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureBarrierNV", glTextureBarrierNV, { GL_NV_texture_barrier, GL_EXTENSION_COUNT } }, + { "glTextureBuffer", glTextureBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureBufferEXT", glTextureBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureBufferRange", glTextureBufferRange, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureBufferRangeEXT", glTextureBufferRangeEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureColorMaskSGIS", glTextureColorMaskSGIS, { GL_SGIS_texture_color_mask, GL_EXTENSION_COUNT } }, + { "glTextureImage1DEXT", glTextureImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureImage2DEXT", glTextureImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureImage2DMultisampleCoverageNV", glTextureImage2DMultisampleCoverageNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTextureImage2DMultisampleNV", glTextureImage2DMultisampleNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTextureImage3DEXT", glTextureImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureImage3DMultisampleCoverageNV", glTextureImage3DMultisampleCoverageNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTextureImage3DMultisampleNV", glTextureImage3DMultisampleNV, { GL_NV_texture_multisample, GL_EXTENSION_COUNT } }, + { "glTextureLightEXT", glTextureLightEXT, { GL_EXT_light_texture, GL_EXTENSION_COUNT } }, + { "glTextureMaterialEXT", glTextureMaterialEXT, { GL_EXT_light_texture, GL_EXTENSION_COUNT } }, + { "glTextureNormalEXT", glTextureNormalEXT, { GL_EXT_texture_perturb_normal, GL_EXTENSION_COUNT } }, + { "glTexturePageCommitmentEXT", glTexturePageCommitmentEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTexturePageCommitmentMemNV", glTexturePageCommitmentMemNV, { GL_NV_memory_object_sparse, GL_EXTENSION_COUNT } }, + { "glTextureParameterIiv", glTextureParameterIiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameterIivEXT", glTextureParameterIivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureParameterIuiv", glTextureParameterIuiv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameterIuivEXT", glTextureParameterIuivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureParameterf", glTextureParameterf, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameterfEXT", glTextureParameterfEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureParameterfv", glTextureParameterfv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameterfvEXT", glTextureParameterfvEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureParameteri", glTextureParameteri, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameteriEXT", glTextureParameteriEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureParameteriv", glTextureParameteriv, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureParameterivEXT", glTextureParameterivEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureRangeAPPLE", glTextureRangeAPPLE, { GL_APPLE_texture_range, GL_EXTENSION_COUNT } }, + { "glTextureRenderbufferEXT", glTextureRenderbufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureStorage1D", glTextureStorage1D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureStorage1DEXT", glTextureStorage1DEXT, { GL_EXT_direct_state_access, GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTextureStorage2D", glTextureStorage2D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureStorage2DEXT", glTextureStorage2DEXT, { GL_EXT_direct_state_access, GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTextureStorage2DMultisample", glTextureStorage2DMultisample, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureStorage2DMultisampleEXT", glTextureStorage2DMultisampleEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureStorage3D", glTextureStorage3D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureStorage3DEXT", glTextureStorage3DEXT, { GL_EXT_direct_state_access, GL_EXT_texture_storage, GL_EXTENSION_COUNT } }, + { "glTextureStorage3DMultisample", glTextureStorage3DMultisample, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureStorage3DMultisampleEXT", glTextureStorage3DMultisampleEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureStorageMem1DEXT", glTextureStorageMem1DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTextureStorageMem2DEXT", glTextureStorageMem2DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTextureStorageMem2DMultisampleEXT", glTextureStorageMem2DMultisampleEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTextureStorageMem3DEXT", glTextureStorageMem3DEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTextureStorageMem3DMultisampleEXT", glTextureStorageMem3DMultisampleEXT, { GL_EXT_memory_object, GL_EXTENSION_COUNT } }, + { "glTextureStorageSparseAMD", glTextureStorageSparseAMD, { GL_AMD_sparse_texture, GL_EXTENSION_COUNT } }, + { "glTextureSubImage1D", glTextureSubImage1D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureSubImage1DEXT", glTextureSubImage1DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureSubImage2D", glTextureSubImage2D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureSubImage2DEXT", glTextureSubImage2DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureSubImage3D", glTextureSubImage3D, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTextureSubImage3DEXT", glTextureSubImage3DEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glTextureView", glTextureView, { GL_ARB_texture_view, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glTrackMatrixNV", glTrackMatrixNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glTransformFeedbackAttribsNV", glTransformFeedbackAttribsNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glTransformFeedbackBufferBase", glTransformFeedbackBufferBase, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTransformFeedbackBufferRange", glTransformFeedbackBufferRange, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glTransformFeedbackStreamAttribsNV", glTransformFeedbackStreamAttribsNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glTransformFeedbackVaryings", glTransformFeedbackVaryings, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glTransformFeedbackVaryingsEXT", glTransformFeedbackVaryingsEXT, { GL_EXT_transform_feedback, GL_EXTENSION_COUNT } }, + { "glTransformFeedbackVaryingsNV", glTransformFeedbackVaryingsNV, { GL_NV_transform_feedback, GL_EXTENSION_COUNT } }, + { "glTransformPathNV", glTransformPathNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glTranslatex", glTranslatex, { GL_NV_ES1_1_compatibility, GL_EXTENSION_COUNT } }, + { "glTranslatexOES", glTranslatexOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glUniform1d", glUniform1d, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform1dv", glUniform1dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform1f", glUniform1f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform1fARB", glUniform1fARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform1fv", glUniform1fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform1fvARB", glUniform1fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform1i", glUniform1i, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform1i64ARB", glUniform1i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform1i64NV", glUniform1i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform1i64vARB", glUniform1i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform1i64vNV", glUniform1i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform1iARB", glUniform1iARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform1iv", glUniform1iv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform1ivARB", glUniform1ivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform1ui", glUniform1ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform1ui64ARB", glUniform1ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform1ui64NV", glUniform1ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform1ui64vARB", glUniform1ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform1ui64vNV", glUniform1ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform1uiEXT", glUniform1uiEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform1uiv", glUniform1uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform1uivEXT", glUniform1uivEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform2d", glUniform2d, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform2dv", glUniform2dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform2f", glUniform2f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform2fARB", glUniform2fARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform2fv", glUniform2fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform2fvARB", glUniform2fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform2i", glUniform2i, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform2i64ARB", glUniform2i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform2i64NV", glUniform2i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform2i64vARB", glUniform2i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform2i64vNV", glUniform2i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform2iARB", glUniform2iARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform2iv", glUniform2iv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform2ivARB", glUniform2ivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform2ui", glUniform2ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform2ui64ARB", glUniform2ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform2ui64NV", glUniform2ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform2ui64vARB", glUniform2ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform2ui64vNV", glUniform2ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform2uiEXT", glUniform2uiEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform2uiv", glUniform2uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform2uivEXT", glUniform2uivEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform3d", glUniform3d, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform3dv", glUniform3dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform3f", glUniform3f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform3fARB", glUniform3fARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform3fv", glUniform3fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform3fvARB", glUniform3fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform3i", glUniform3i, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform3i64ARB", glUniform3i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform3i64NV", glUniform3i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform3i64vARB", glUniform3i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform3i64vNV", glUniform3i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform3iARB", glUniform3iARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform3iv", glUniform3iv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform3ivARB", glUniform3ivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform3ui", glUniform3ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform3ui64ARB", glUniform3ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform3ui64NV", glUniform3ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform3ui64vARB", glUniform3ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform3ui64vNV", glUniform3ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform3uiEXT", glUniform3uiEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform3uiv", glUniform3uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform3uivEXT", glUniform3uivEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform4d", glUniform4d, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform4dv", glUniform4dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniform4f", glUniform4f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform4fARB", glUniform4fARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform4fv", glUniform4fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform4fvARB", glUniform4fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform4i", glUniform4i, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform4i64ARB", glUniform4i64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform4i64NV", glUniform4i64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform4i64vARB", glUniform4i64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform4i64vNV", glUniform4i64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform4iARB", glUniform4iARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform4iv", glUniform4iv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniform4ivARB", glUniform4ivARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniform4ui", glUniform4ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform4ui64ARB", glUniform4ui64ARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform4ui64NV", glUniform4ui64NV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform4ui64vARB", glUniform4ui64vARB, { GL_ARB_gpu_shader_int64, GL_EXTENSION_COUNT } }, + { "glUniform4ui64vNV", glUniform4ui64vNV, { GL_AMD_gpu_shader_int64, GL_NV_gpu_shader5, GL_EXTENSION_COUNT } }, + { "glUniform4uiEXT", glUniform4uiEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniform4uiv", glUniform4uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glUniform4uivEXT", glUniform4uivEXT, { GL_EXT_gpu_shader4, GL_EXTENSION_COUNT } }, + { "glUniformBlockBinding", glUniformBlockBinding, { GL_ARB_uniform_buffer_object, MAKELONG(1, 3), GL_EXTENSION_COUNT } }, + { "glUniformBufferEXT", glUniformBufferEXT, { GL_EXT_bindable_uniform, GL_EXTENSION_COUNT } }, + { "glUniformHandleui64ARB", glUniformHandleui64ARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glUniformHandleui64NV", glUniformHandleui64NV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glUniformHandleui64vARB", glUniformHandleui64vARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glUniformHandleui64vNV", glUniformHandleui64vNV, { GL_NV_bindless_texture, GL_EXTENSION_COUNT } }, + { "glUniformMatrix2dv", glUniformMatrix2dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix2fv", glUniformMatrix2fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix2fvARB", glUniformMatrix2fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniformMatrix2x3dv", glUniformMatrix2x3dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix2x3fv", glUniformMatrix2x3fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix2x4dv", glUniformMatrix2x4dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix2x4fv", glUniformMatrix2x4fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3dv", glUniformMatrix3dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3fv", glUniformMatrix3fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3fvARB", glUniformMatrix3fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniformMatrix3x2dv", glUniformMatrix3x2dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3x2fv", glUniformMatrix3x2fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3x4dv", glUniformMatrix3x4dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix3x4fv", glUniformMatrix3x4fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4dv", glUniformMatrix4dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4fv", glUniformMatrix4fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4fvARB", glUniformMatrix4fvARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUniformMatrix4x2dv", glUniformMatrix4x2dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4x2fv", glUniformMatrix4x2fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4x3dv", glUniformMatrix4x3dv, { GL_ARB_gpu_shader_fp64, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformMatrix4x3fv", glUniformMatrix4x3fv, { MAKELONG(1, 2), GL_EXTENSION_COUNT } }, + { "glUniformSubroutinesuiv", glUniformSubroutinesuiv, { GL_ARB_shader_subroutine, MAKELONG(0, 4), GL_EXTENSION_COUNT } }, + { "glUniformui64NV", glUniformui64NV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glUniformui64vNV", glUniformui64vNV, { GL_NV_shader_buffer_load, GL_EXTENSION_COUNT } }, + { "glUnlockArraysEXT", glUnlockArraysEXT, { GL_EXT_compiled_vertex_array, GL_EXTENSION_COUNT } }, + { "glUnmapBuffer", glUnmapBuffer, { MAKELONG(5, 1), GL_EXTENSION_COUNT } }, + { "glUnmapBufferARB", glUnmapBufferARB, { GL_ARB_vertex_buffer_object, GL_EXTENSION_COUNT } }, + { "glUnmapNamedBuffer", glUnmapNamedBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glUnmapNamedBufferEXT", glUnmapNamedBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glUnmapObjectBufferATI", glUnmapObjectBufferATI, { GL_ATI_map_object_buffer, GL_EXTENSION_COUNT } }, + { "glUnmapTexture2DINTEL", glUnmapTexture2DINTEL, { GL_INTEL_map_texture, GL_EXTENSION_COUNT } }, + { "glUpdateObjectBufferATI", glUpdateObjectBufferATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glUploadGpuMaskNVX", glUploadGpuMaskNVX, { GL_NVX_gpu_multicast2, GL_EXTENSION_COUNT } }, + { "glUseProgram", glUseProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glUseProgramObjectARB", glUseProgramObjectARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glUseProgramStages", glUseProgramStages, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glUseShaderProgramEXT", glUseShaderProgramEXT, { GL_EXT_separate_shader_objects, GL_EXTENSION_COUNT } }, + { "glVDPAUFiniNV", glVDPAUFiniNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUGetSurfaceivNV", glVDPAUGetSurfaceivNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUInitNV", glVDPAUInitNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUIsSurfaceNV", glVDPAUIsSurfaceNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUMapSurfacesNV", glVDPAUMapSurfacesNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAURegisterOutputSurfaceNV", glVDPAURegisterOutputSurfaceNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAURegisterVideoSurfaceNV", glVDPAURegisterVideoSurfaceNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAURegisterVideoSurfaceWithPictureStructureNV", glVDPAURegisterVideoSurfaceWithPictureStructureNV, { GL_NV_vdpau_interop2, GL_EXTENSION_COUNT } }, + { "glVDPAUSurfaceAccessNV", glVDPAUSurfaceAccessNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUUnmapSurfacesNV", glVDPAUUnmapSurfacesNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glVDPAUUnregisterSurfaceNV", glVDPAUUnregisterSurfaceNV, { GL_NV_vdpau_interop, GL_EXTENSION_COUNT } }, + { "glValidateProgram", glValidateProgram, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glValidateProgramARB", glValidateProgramARB, { GL_ARB_shader_objects, GL_EXTENSION_COUNT } }, + { "glValidateProgramPipeline", glValidateProgramPipeline, { GL_ARB_separate_shader_objects, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVariantArrayObjectATI", glVariantArrayObjectATI, { GL_ATI_vertex_array_object, GL_EXTENSION_COUNT } }, + { "glVariantPointerEXT", glVariantPointerEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantbvEXT", glVariantbvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantdvEXT", glVariantdvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantfvEXT", glVariantfvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantivEXT", glVariantivEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantsvEXT", glVariantsvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantubvEXT", glVariantubvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantuivEXT", glVariantuivEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVariantusvEXT", glVariantusvEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertex2bOES", glVertex2bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex2bvOES", glVertex2bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex2hNV", glVertex2hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex2hvNV", glVertex2hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex2xOES", glVertex2xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertex2xvOES", glVertex2xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertex3bOES", glVertex3bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex3bvOES", glVertex3bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex3hNV", glVertex3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex3hvNV", glVertex3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex3xOES", glVertex3xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertex3xvOES", glVertex3xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertex4bOES", glVertex4bOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex4bvOES", glVertex4bvOES, { GL_OES_byte_coordinates, GL_EXTENSION_COUNT } }, + { "glVertex4hNV", glVertex4hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex4hvNV", glVertex4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertex4xOES", glVertex4xOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertex4xvOES", glVertex4xvOES, { GL_OES_fixed_point, GL_EXTENSION_COUNT } }, + { "glVertexArrayAttribBinding", glVertexArrayAttribBinding, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayAttribFormat", glVertexArrayAttribFormat, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayAttribIFormat", glVertexArrayAttribIFormat, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayAttribLFormat", glVertexArrayAttribLFormat, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayBindVertexBufferEXT", glVertexArrayBindVertexBufferEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayBindingDivisor", glVertexArrayBindingDivisor, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayColorOffsetEXT", glVertexArrayColorOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayEdgeFlagOffsetEXT", glVertexArrayEdgeFlagOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayElementBuffer", glVertexArrayElementBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayFogCoordOffsetEXT", glVertexArrayFogCoordOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayIndexOffsetEXT", glVertexArrayIndexOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayMultiTexCoordOffsetEXT", glVertexArrayMultiTexCoordOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayNormalOffsetEXT", glVertexArrayNormalOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayParameteriAPPLE", glVertexArrayParameteriAPPLE, { GL_APPLE_vertex_array_range, GL_EXTENSION_COUNT } }, + { "glVertexArrayRangeAPPLE", glVertexArrayRangeAPPLE, { GL_APPLE_vertex_array_range, GL_EXTENSION_COUNT } }, + { "glVertexArrayRangeNV", glVertexArrayRangeNV, { GL_NV_vertex_array_range, GL_EXTENSION_COUNT } }, + { "glVertexArraySecondaryColorOffsetEXT", glVertexArraySecondaryColorOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayTexCoordOffsetEXT", glVertexArrayTexCoordOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribBindingEXT", glVertexArrayVertexAttribBindingEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribDivisorEXT", glVertexArrayVertexAttribDivisorEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribFormatEXT", glVertexArrayVertexAttribFormatEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribIFormatEXT", glVertexArrayVertexAttribIFormatEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribIOffsetEXT", glVertexArrayVertexAttribIOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribLFormatEXT", glVertexArrayVertexAttribLFormatEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribLOffsetEXT", glVertexArrayVertexAttribLOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexAttribOffsetEXT", glVertexArrayVertexAttribOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexBindingDivisorEXT", glVertexArrayVertexBindingDivisorEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexBuffer", glVertexArrayVertexBuffer, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexBuffers", glVertexArrayVertexBuffers, { GL_ARB_direct_state_access, MAKELONG(5, 4), GL_EXTENSION_COUNT } }, + { "glVertexArrayVertexOffsetEXT", glVertexArrayVertexOffsetEXT, { GL_EXT_direct_state_access, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1d", glVertexAttrib1d, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1dARB", glVertexAttrib1dARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1dNV", glVertexAttrib1dNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1dv", glVertexAttrib1dv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1dvARB", glVertexAttrib1dvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1dvNV", glVertexAttrib1dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1f", glVertexAttrib1f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1fARB", glVertexAttrib1fARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1fNV", glVertexAttrib1fNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1fv", glVertexAttrib1fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1fvARB", glVertexAttrib1fvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1fvNV", glVertexAttrib1fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1hNV", glVertexAttrib1hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1hvNV", glVertexAttrib1hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1s", glVertexAttrib1s, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1sARB", glVertexAttrib1sARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1sNV", glVertexAttrib1sNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1sv", glVertexAttrib1sv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib1svARB", glVertexAttrib1svARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib1svNV", glVertexAttrib1svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2d", glVertexAttrib2d, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2dARB", glVertexAttrib2dARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2dNV", glVertexAttrib2dNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2dv", glVertexAttrib2dv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2dvARB", glVertexAttrib2dvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2dvNV", glVertexAttrib2dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2f", glVertexAttrib2f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2fARB", glVertexAttrib2fARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2fNV", glVertexAttrib2fNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2fv", glVertexAttrib2fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2fvARB", glVertexAttrib2fvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2fvNV", glVertexAttrib2fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2hNV", glVertexAttrib2hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2hvNV", glVertexAttrib2hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2s", glVertexAttrib2s, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2sARB", glVertexAttrib2sARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2sNV", glVertexAttrib2sNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2sv", glVertexAttrib2sv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib2svARB", glVertexAttrib2svARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib2svNV", glVertexAttrib2svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3d", glVertexAttrib3d, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3dARB", glVertexAttrib3dARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3dNV", glVertexAttrib3dNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3dv", glVertexAttrib3dv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3dvARB", glVertexAttrib3dvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3dvNV", glVertexAttrib3dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3f", glVertexAttrib3f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3fARB", glVertexAttrib3fARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3fNV", glVertexAttrib3fNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3fv", glVertexAttrib3fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3fvARB", glVertexAttrib3fvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3fvNV", glVertexAttrib3fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3hNV", glVertexAttrib3hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3hvNV", glVertexAttrib3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3s", glVertexAttrib3s, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3sARB", glVertexAttrib3sARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3sNV", glVertexAttrib3sNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3sv", glVertexAttrib3sv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib3svARB", glVertexAttrib3svARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib3svNV", glVertexAttrib3svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nbv", glVertexAttrib4Nbv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NbvARB", glVertexAttrib4NbvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Niv", glVertexAttrib4Niv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NivARB", glVertexAttrib4NivARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nsv", glVertexAttrib4Nsv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NsvARB", glVertexAttrib4NsvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nub", glVertexAttrib4Nub, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NubARB", glVertexAttrib4NubARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nubv", glVertexAttrib4Nubv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NubvARB", glVertexAttrib4NubvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nuiv", glVertexAttrib4Nuiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NuivARB", glVertexAttrib4NuivARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4Nusv", glVertexAttrib4Nusv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4NusvARB", glVertexAttrib4NusvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4bv", glVertexAttrib4bv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4bvARB", glVertexAttrib4bvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4d", glVertexAttrib4d, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4dARB", glVertexAttrib4dARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4dNV", glVertexAttrib4dNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4dv", glVertexAttrib4dv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4dvARB", glVertexAttrib4dvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4dvNV", glVertexAttrib4dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4f", glVertexAttrib4f, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4fARB", glVertexAttrib4fARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4fNV", glVertexAttrib4fNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4fv", glVertexAttrib4fv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4fvARB", glVertexAttrib4fvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4fvNV", glVertexAttrib4fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4hNV", glVertexAttrib4hNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4hvNV", glVertexAttrib4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4iv", glVertexAttrib4iv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4ivARB", glVertexAttrib4ivARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4s", glVertexAttrib4s, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4sARB", glVertexAttrib4sARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4sNV", glVertexAttrib4sNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4sv", glVertexAttrib4sv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4svARB", glVertexAttrib4svARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4svNV", glVertexAttrib4svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4ubNV", glVertexAttrib4ubNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4ubv", glVertexAttrib4ubv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4ubvARB", glVertexAttrib4ubvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4ubvNV", glVertexAttrib4ubvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4uiv", glVertexAttrib4uiv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4uivARB", glVertexAttrib4uivARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttrib4usv", glVertexAttrib4usv, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttrib4usvARB", glVertexAttrib4usvARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttribArrayObjectATI", glVertexAttribArrayObjectATI, { GL_ATI_vertex_attrib_array_object, GL_EXTENSION_COUNT } }, + { "glVertexAttribBinding", glVertexAttribBinding, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribDivisor", glVertexAttribDivisor, { MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribDivisorARB", glVertexAttribDivisorARB, { GL_ARB_instanced_arrays, GL_EXTENSION_COUNT } }, + { "glVertexAttribFormat", glVertexAttribFormat, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribFormatNV", glVertexAttribFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glVertexAttribI1i", glVertexAttribI1i, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI1iEXT", glVertexAttribI1iEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI1iv", glVertexAttribI1iv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI1ivEXT", glVertexAttribI1ivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI1ui", glVertexAttribI1ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI1uiEXT", glVertexAttribI1uiEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI1uiv", glVertexAttribI1uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI1uivEXT", glVertexAttribI1uivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI2i", glVertexAttribI2i, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI2iEXT", glVertexAttribI2iEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI2iv", glVertexAttribI2iv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI2ivEXT", glVertexAttribI2ivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI2ui", glVertexAttribI2ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI2uiEXT", glVertexAttribI2uiEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI2uiv", glVertexAttribI2uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI2uivEXT", glVertexAttribI2uivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI3i", glVertexAttribI3i, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI3iEXT", glVertexAttribI3iEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI3iv", glVertexAttribI3iv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI3ivEXT", glVertexAttribI3ivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI3ui", glVertexAttribI3ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI3uiEXT", glVertexAttribI3uiEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI3uiv", glVertexAttribI3uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI3uivEXT", glVertexAttribI3uivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4bv", glVertexAttribI4bv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4bvEXT", glVertexAttribI4bvEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4i", glVertexAttribI4i, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4iEXT", glVertexAttribI4iEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4iv", glVertexAttribI4iv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4ivEXT", glVertexAttribI4ivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4sv", glVertexAttribI4sv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4svEXT", glVertexAttribI4svEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4ubv", glVertexAttribI4ubv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4ubvEXT", glVertexAttribI4ubvEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4ui", glVertexAttribI4ui, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4uiEXT", glVertexAttribI4uiEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4uiv", glVertexAttribI4uiv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4uivEXT", glVertexAttribI4uivEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribI4usv", glVertexAttribI4usv, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribI4usvEXT", glVertexAttribI4usvEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribIFormat", glVertexAttribIFormat, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribIFormatNV", glVertexAttribIFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glVertexAttribIPointer", glVertexAttribIPointer, { MAKELONG(0, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribIPointerEXT", glVertexAttribIPointerEXT, { GL_EXT_gpu_shader4, GL_NV_vertex_program4, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1d", glVertexAttribL1d, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL1dEXT", glVertexAttribL1dEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1dv", glVertexAttribL1dv, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL1dvEXT", glVertexAttribL1dvEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1i64NV", glVertexAttribL1i64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1i64vNV", glVertexAttribL1i64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1ui64ARB", glVertexAttribL1ui64ARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1ui64NV", glVertexAttribL1ui64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1ui64vARB", glVertexAttribL1ui64vARB, { GL_ARB_bindless_texture, GL_EXTENSION_COUNT } }, + { "glVertexAttribL1ui64vNV", glVertexAttribL1ui64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2d", glVertexAttribL2d, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL2dEXT", glVertexAttribL2dEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2dv", glVertexAttribL2dv, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL2dvEXT", glVertexAttribL2dvEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2i64NV", glVertexAttribL2i64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2i64vNV", glVertexAttribL2i64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2ui64NV", glVertexAttribL2ui64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL2ui64vNV", glVertexAttribL2ui64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3d", glVertexAttribL3d, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL3dEXT", glVertexAttribL3dEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3dv", glVertexAttribL3dv, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL3dvEXT", glVertexAttribL3dvEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3i64NV", glVertexAttribL3i64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3i64vNV", glVertexAttribL3i64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3ui64NV", glVertexAttribL3ui64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL3ui64vNV", glVertexAttribL3ui64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4d", glVertexAttribL4d, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL4dEXT", glVertexAttribL4dEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4dv", glVertexAttribL4dv, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribL4dvEXT", glVertexAttribL4dvEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4i64NV", glVertexAttribL4i64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4i64vNV", glVertexAttribL4i64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4ui64NV", glVertexAttribL4ui64NV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribL4ui64vNV", glVertexAttribL4ui64vNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribLFormat", glVertexAttribLFormat, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribLFormatNV", glVertexAttribLFormatNV, { GL_NV_vertex_attrib_integer_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribLPointer", glVertexAttribLPointer, { GL_ARB_vertex_attrib_64bit, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glVertexAttribLPointerEXT", glVertexAttribLPointerEXT, { GL_EXT_vertex_attrib_64bit, GL_EXTENSION_COUNT } }, + { "glVertexAttribP1ui", glVertexAttribP1ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP1uiv", glVertexAttribP1uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP2ui", glVertexAttribP2ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP2uiv", glVertexAttribP2uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP3ui", glVertexAttribP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP3uiv", glVertexAttribP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP4ui", glVertexAttribP4ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribP4uiv", glVertexAttribP4uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexAttribParameteriAMD", glVertexAttribParameteriAMD, { GL_AMD_interleaved_elements, GL_EXTENSION_COUNT } }, + { "glVertexAttribPointer", glVertexAttribPointer, { MAKELONG(0, 2), GL_EXTENSION_COUNT } }, + { "glVertexAttribPointerARB", glVertexAttribPointerARB, { GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_EXTENSION_COUNT } }, + { "glVertexAttribPointerNV", glVertexAttribPointerNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs1dvNV", glVertexAttribs1dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs1fvNV", glVertexAttribs1fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs1hvNV", glVertexAttribs1hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttribs1svNV", glVertexAttribs1svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs2dvNV", glVertexAttribs2dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs2fvNV", glVertexAttribs2fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs2hvNV", glVertexAttribs2hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttribs2svNV", glVertexAttribs2svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs3dvNV", glVertexAttribs3dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs3fvNV", glVertexAttribs3fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs3hvNV", glVertexAttribs3hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttribs3svNV", glVertexAttribs3svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs4dvNV", glVertexAttribs4dvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs4fvNV", glVertexAttribs4fvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs4hvNV", glVertexAttribs4hvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexAttribs4svNV", glVertexAttribs4svNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexAttribs4ubvNV", glVertexAttribs4ubvNV, { GL_NV_vertex_program, GL_EXTENSION_COUNT } }, + { "glVertexBindingDivisor", glVertexBindingDivisor, { GL_ARB_vertex_attrib_binding, MAKELONG(3, 4), GL_EXTENSION_COUNT } }, + { "glVertexBlendARB", glVertexBlendARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glVertexBlendEnvfATI", glVertexBlendEnvfATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexBlendEnviATI", glVertexBlendEnviATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexFormatNV", glVertexFormatNV, { GL_NV_vertex_buffer_unified_memory, GL_EXTENSION_COUNT } }, + { "glVertexP2ui", glVertexP2ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexP2uiv", glVertexP2uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexP3ui", glVertexP3ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexP3uiv", glVertexP3uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexP4ui", glVertexP4ui, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexP4uiv", glVertexP4uiv, { GL_ARB_vertex_type_2_10_10_10_rev, MAKELONG(3, 3), GL_EXTENSION_COUNT } }, + { "glVertexPointerEXT", glVertexPointerEXT, { GL_EXT_vertex_array, GL_EXTENSION_COUNT } }, + { "glVertexPointerListIBM", glVertexPointerListIBM, { GL_IBM_vertex_array_lists, GL_EXTENSION_COUNT } }, + { "glVertexPointervINTEL", glVertexPointervINTEL, { GL_INTEL_parallel_arrays, GL_EXTENSION_COUNT } }, + { "glVertexStream1dATI", glVertexStream1dATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1dvATI", glVertexStream1dvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1fATI", glVertexStream1fATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1fvATI", glVertexStream1fvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1iATI", glVertexStream1iATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1ivATI", glVertexStream1ivATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1sATI", glVertexStream1sATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream1svATI", glVertexStream1svATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2dATI", glVertexStream2dATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2dvATI", glVertexStream2dvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2fATI", glVertexStream2fATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2fvATI", glVertexStream2fvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2iATI", glVertexStream2iATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2ivATI", glVertexStream2ivATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2sATI", glVertexStream2sATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream2svATI", glVertexStream2svATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3dATI", glVertexStream3dATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3dvATI", glVertexStream3dvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3fATI", glVertexStream3fATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3fvATI", glVertexStream3fvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3iATI", glVertexStream3iATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3ivATI", glVertexStream3ivATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3sATI", glVertexStream3sATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream3svATI", glVertexStream3svATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4dATI", glVertexStream4dATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4dvATI", glVertexStream4dvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4fATI", glVertexStream4fATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4fvATI", glVertexStream4fvATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4iATI", glVertexStream4iATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4ivATI", glVertexStream4ivATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4sATI", glVertexStream4sATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexStream4svATI", glVertexStream4svATI, { GL_ATI_vertex_streams, GL_EXTENSION_COUNT } }, + { "glVertexWeightPointerEXT", glVertexWeightPointerEXT, { GL_EXT_vertex_weighting, GL_EXTENSION_COUNT } }, + { "glVertexWeightfEXT", glVertexWeightfEXT, { GL_EXT_vertex_weighting, GL_EXTENSION_COUNT } }, + { "glVertexWeightfvEXT", glVertexWeightfvEXT, { GL_EXT_vertex_weighting, GL_EXTENSION_COUNT } }, + { "glVertexWeighthNV", glVertexWeighthNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVertexWeighthvNV", glVertexWeighthvNV, { GL_NV_half_float, GL_EXTENSION_COUNT } }, + { "glVideoCaptureNV", glVideoCaptureNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glVideoCaptureStreamParameterdvNV", glVideoCaptureStreamParameterdvNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glVideoCaptureStreamParameterfvNV", glVideoCaptureStreamParameterfvNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glVideoCaptureStreamParameterivNV", glVideoCaptureStreamParameterivNV, { GL_NV_video_capture, GL_EXTENSION_COUNT } }, + { "glViewportArrayv", glViewportArrayv, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glViewportIndexedf", glViewportIndexedf, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glViewportIndexedfv", glViewportIndexedfv, { GL_ARB_viewport_array, MAKELONG(1, 4), GL_EXTENSION_COUNT } }, + { "glViewportPositionWScaleNV", glViewportPositionWScaleNV, { GL_NV_clip_space_w_scaling, GL_EXTENSION_COUNT } }, + { "glViewportSwizzleNV", glViewportSwizzleNV, { GL_NV_viewport_swizzle, GL_EXTENSION_COUNT } }, + { "glWaitSemaphoreEXT", glWaitSemaphoreEXT, { GL_EXT_semaphore, GL_EXTENSION_COUNT } }, + { "glWaitSemaphoreui64NVX", glWaitSemaphoreui64NVX, { GL_NVX_progress_fence, GL_EXTENSION_COUNT } }, + { "glWaitSync", glWaitSync, { GL_ARB_sync, MAKELONG(2, 3), GL_EXTENSION_COUNT } }, + { "glWaitVkSemaphoreNV", glWaitVkSemaphoreNV, { GL_NV_draw_vulkan_image, GL_EXTENSION_COUNT } }, + { "glWeightPathsNV", glWeightPathsNV, { GL_NV_path_rendering, GL_EXTENSION_COUNT } }, + { "glWeightPointerARB", glWeightPointerARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightbvARB", glWeightbvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightdvARB", glWeightdvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightfvARB", glWeightfvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightivARB", glWeightivARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightsvARB", glWeightsvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightubvARB", glWeightubvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightuivARB", glWeightuivARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWeightusvARB", glWeightusvARB, { GL_ARB_vertex_blend, GL_EXTENSION_COUNT } }, + { "glWindowPos2d", glWindowPos2d, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2dARB", glWindowPos2dARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2dMESA", glWindowPos2dMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2dv", glWindowPos2dv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2dvARB", glWindowPos2dvARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2dvMESA", glWindowPos2dvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2f", glWindowPos2f, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2fARB", glWindowPos2fARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2fMESA", glWindowPos2fMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2fv", glWindowPos2fv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2fvARB", glWindowPos2fvARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2fvMESA", glWindowPos2fvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2i", glWindowPos2i, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2iARB", glWindowPos2iARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2iMESA", glWindowPos2iMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2iv", glWindowPos2iv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2ivARB", glWindowPos2ivARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2ivMESA", glWindowPos2ivMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2s", glWindowPos2s, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2sARB", glWindowPos2sARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2sMESA", glWindowPos2sMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2sv", glWindowPos2sv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos2svARB", glWindowPos2svARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos2svMESA", glWindowPos2svMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3d", glWindowPos3d, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3dARB", glWindowPos3dARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3dMESA", glWindowPos3dMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3dv", glWindowPos3dv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3dvARB", glWindowPos3dvARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3dvMESA", glWindowPos3dvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3f", glWindowPos3f, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3fARB", glWindowPos3fARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3fMESA", glWindowPos3fMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3fv", glWindowPos3fv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3fvARB", glWindowPos3fvARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3fvMESA", glWindowPos3fvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3i", glWindowPos3i, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3iARB", glWindowPos3iARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3iMESA", glWindowPos3iMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3iv", glWindowPos3iv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3ivARB", glWindowPos3ivARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3ivMESA", glWindowPos3ivMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3s", glWindowPos3s, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3sARB", glWindowPos3sARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3sMESA", glWindowPos3sMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3sv", glWindowPos3sv, { MAKELONG(4, 1), GL_EXTENSION_COUNT } }, + { "glWindowPos3svARB", glWindowPos3svARB, { GL_ARB_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos3svMESA", glWindowPos3svMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4dMESA", glWindowPos4dMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4dvMESA", glWindowPos4dvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4fMESA", glWindowPos4fMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4fvMESA", glWindowPos4fvMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4iMESA", glWindowPos4iMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4ivMESA", glWindowPos4ivMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4sMESA", glWindowPos4sMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowPos4svMESA", glWindowPos4svMESA, { GL_MESA_window_pos, GL_EXTENSION_COUNT } }, + { "glWindowRectanglesEXT", glWindowRectanglesEXT, { GL_EXT_window_rectangles, GL_EXTENSION_COUNT } }, + { "glWriteMaskEXT", glWriteMaskEXT, { GL_EXT_vertex_shader, GL_EXTENSION_COUNT } }, + { "wglAllocateMemoryNV", wglAllocateMemoryNV, { WGL_NV_vertex_array_range, GL_EXTENSION_COUNT } }, + { "wglBindTexImageARB", wglBindTexImageARB, { WGL_ARB_render_texture, GL_EXTENSION_COUNT } }, + { "wglChoosePixelFormatARB", wglChoosePixelFormatARB, { WGL_ARB_pixel_format, GL_EXTENSION_COUNT } }, + { "wglCreateContextAttribsARB", wglCreateContextAttribsARB, { WGL_ARB_create_context, GL_EXTENSION_COUNT } }, + { "wglCreatePbufferARB", wglCreatePbufferARB, { WGL_ARB_pbuffer, GL_EXTENSION_COUNT } }, + { "wglDestroyPbufferARB", wglDestroyPbufferARB, { WGL_ARB_pbuffer, GL_EXTENSION_COUNT } }, + { "wglFreeMemoryNV", wglFreeMemoryNV, { WGL_NV_vertex_array_range, GL_EXTENSION_COUNT } }, + { "wglGetCurrentReadDCARB", wglGetCurrentReadDCARB, { WGL_ARB_make_current_read, GL_EXTENSION_COUNT } }, + { "wglGetExtensionsStringARB", wglGetExtensionsStringARB, { WGL_ARB_extensions_string, GL_EXTENSION_COUNT } }, + { "wglGetExtensionsStringEXT", wglGetExtensionsStringEXT, { WGL_EXT_extensions_string, GL_EXTENSION_COUNT } }, + { "wglGetPbufferDCARB", wglGetPbufferDCARB, { WGL_ARB_pbuffer, GL_EXTENSION_COUNT } }, + { "wglGetPixelFormatAttribfvARB", wglGetPixelFormatAttribfvARB, { WGL_ARB_pixel_format, GL_EXTENSION_COUNT } }, + { "wglGetPixelFormatAttribivARB", wglGetPixelFormatAttribivARB, { WGL_ARB_pixel_format, GL_EXTENSION_COUNT } }, + { "wglGetSwapIntervalEXT", wglGetSwapIntervalEXT, { WGL_EXT_swap_control, GL_EXTENSION_COUNT } }, + { "wglMakeContextCurrentARB", wglMakeContextCurrentARB, { WGL_ARB_make_current_read, GL_EXTENSION_COUNT } }, + { "wglQueryCurrentRendererIntegerWINE", wglQueryCurrentRendererIntegerWINE, { WGL_WINE_query_renderer, GL_EXTENSION_COUNT } }, + { "wglQueryCurrentRendererStringWINE", wglQueryCurrentRendererStringWINE, { WGL_WINE_query_renderer, GL_EXTENSION_COUNT } }, + { "wglQueryPbufferARB", wglQueryPbufferARB, { WGL_ARB_pbuffer, GL_EXTENSION_COUNT } }, + { "wglQueryRendererIntegerWINE", wglQueryRendererIntegerWINE, { WGL_WINE_query_renderer, GL_EXTENSION_COUNT } }, + { "wglQueryRendererStringWINE", wglQueryRendererStringWINE, { WGL_WINE_query_renderer, GL_EXTENSION_COUNT } }, + { "wglReleasePbufferDCARB", wglReleasePbufferDCARB, { WGL_ARB_pbuffer, GL_EXTENSION_COUNT } }, + { "wglReleaseTexImageARB", wglReleaseTexImageARB, { WGL_ARB_render_texture, GL_EXTENSION_COUNT } }, + { "wglSetPbufferAttribARB", wglSetPbufferAttribARB, { WGL_ARB_render_texture, GL_EXTENSION_COUNT } }, + { "wglSetPixelFormatWINE", wglSetPixelFormatWINE, { WGL_WINE_pixel_format_passthrough, GL_EXTENSION_COUNT } }, + { "wglSwapIntervalEXT", wglSwapIntervalEXT, { WGL_EXT_swap_control, GL_EXTENSION_COUNT } }, + }; + const struct function_entry *found, entry = { .name = name }; + if (!(found = bsearch( &entry, functions, ARRAY_SIZE(functions), sizeof(entry), function_entry_cmp ))) + { + WARN( "Function %s unknown\n", name ); + return NULL; + } + if (!is_function_supported( found, ctx )) + { + WARN( "Function %s not supported\n", name ); + return NULL; + } + return found->function; +} diff --git a/dlls/opengl32/unix_private.h b/dlls/opengl32/unix_private.h index d5ec8cee7c4..c236c0a87b1 100644 --- a/dlls/opengl32/unix_private.h +++ b/dlls/opengl32/unix_private.h @@ -34,16 +34,6 @@ #include "wine/opengl_driver.h" #include "unix_thunks.h" -struct registry_entry -{ - const char *name; /* name of the extension */ - const char *extension; /* name of the GL/WGL extension */ - size_t offset; /* offset in the opengl_funcs table */ -}; - -extern const struct registry_entry extension_registry[]; -extern const int extension_registry_size; - extern struct opengl_funcs null_opengl_funcs; static inline const struct opengl_funcs *get_dc_funcs( HDC hdc ) diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index f7656b811d4..37ff6a14a99 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -59,13 +59,6 @@ static NTSTATUS wgl_wglGetPixelFormat( void *args ) return STATUS_SUCCESS; } -static NTSTATUS wgl_wglGetProcAddress( void *args ) -{ - struct wglGetProcAddress_params *params = args; - params->ret = wrap_wglGetProcAddress( params->teb, params->lpszProc ); - return STATUS_SUCCESS; -} - static NTSTATUS wgl_wglMakeCurrent( void *args ) { struct wglMakeCurrent_params *params = args; @@ -30524,7 +30517,6 @@ const unixlib_entry_t __wine_unix_call_funcs[] = wgl_wglCreateContext, wgl_wglDeleteContext, wgl_wglGetPixelFormat, - wgl_wglGetProcAddress, wgl_wglMakeCurrent, wgl_wglSetPixelFormat, wgl_wglShareLists, @@ -33688,19 +33680,6 @@ static NTSTATUS wow64_wgl_wglGetPixelFormat( void *args ) return STATUS_SUCCESS; } -static NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) -{ - struct - { - PTR32 teb; - PTR32 lpszProc; - PTR32 ret; - } *params = args; - TEB *teb = get_teb64( params->teb ); - params->ret = (UINT_PTR)wrap_wglGetProcAddress( teb, ULongToPtr(params->lpszProc) ); - return STATUS_SUCCESS; -} - static NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) { struct @@ -86864,7 +86843,6 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] = wow64_wgl_wglCreateContext, wow64_wgl_wglDeleteContext, wow64_wgl_wglGetPixelFormat, - wow64_wgl_wglGetProcAddress, wow64_wgl_wglMakeCurrent, wow64_wgl_wglSetPixelFormat, wow64_wgl_wglShareLists, @@ -89984,11 +89962,6 @@ static int null_wglGetPixelFormat( HDC hdc ) RtlSetLastWin32Error( ERROR_INVALID_PIXEL_FORMAT ); return 0; } -static PROC null_wglGetProcAddress( LPCSTR lpszProc ) -{ - WARN( "unsupported\n" ); - return 0; -} static BOOL null_wglMakeCurrent( HDC hDc, HGLRC newContext ) { WARN( "unsupported\n" ); @@ -91368,7 +91341,6 @@ struct opengl_funcs null_opengl_funcs = .p_wglCreateContext = null_wglCreateContext, .p_wglDeleteContext = null_wglDeleteContext, .p_wglGetPixelFormat = null_wglGetPixelFormat, - .p_wglGetProcAddress = null_wglGetProcAddress, .p_wglMakeCurrent = null_wglMakeCurrent, .p_wglSetPixelFormat = null_wglSetPixelFormat, .p_wglShareLists = null_wglShareLists, @@ -91710,2766 +91682,3 @@ struct opengl_funcs null_opengl_funcs = .p_glVertexPointer = null_glVertexPointer, .p_glViewport = null_glViewport, }; - -const int extension_registry_size = 2758; -const struct registry_entry extension_registry[2758] = -{ - { "glAccumxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glAccumxOES) }, - { "glAcquireKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex\0", offsetof(struct opengl_funcs, p_glAcquireKeyedMutexWin32EXT) }, - { "glActiveProgramEXT", "GL_EXT_separate_shader_objects\0", offsetof(struct opengl_funcs, p_glActiveProgramEXT) }, - { "glActiveShaderProgram", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glActiveShaderProgram) }, - { "glActiveStencilFaceEXT", "GL_EXT_stencil_two_side\0", offsetof(struct opengl_funcs, p_glActiveStencilFaceEXT) }, - { "glActiveTexture", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glActiveTexture) }, - { "glActiveTextureARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glActiveTextureARB) }, - { "glActiveVaryingNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glActiveVaryingNV) }, - { "glAlphaFragmentOp1ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glAlphaFragmentOp1ATI) }, - { "glAlphaFragmentOp2ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glAlphaFragmentOp2ATI) }, - { "glAlphaFragmentOp3ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glAlphaFragmentOp3ATI) }, - { "glAlphaFuncx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glAlphaFuncx) }, - { "glAlphaFuncxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glAlphaFuncxOES) }, - { "glAlphaToCoverageDitherControlNV", "GL_NV_alpha_to_coverage_dither_control\0", offsetof(struct opengl_funcs, p_glAlphaToCoverageDitherControlNV) }, - { "glApplyFramebufferAttachmentCMAAINTEL", "GL_INTEL_framebuffer_CMAA\0", offsetof(struct opengl_funcs, p_glApplyFramebufferAttachmentCMAAINTEL) }, - { "glApplyTextureEXT", "GL_EXT_light_texture\0", offsetof(struct opengl_funcs, p_glApplyTextureEXT) }, - { "glAreProgramsResidentNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glAreProgramsResidentNV) }, - { "glAreTexturesResidentEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glAreTexturesResidentEXT) }, - { "glArrayElementEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glArrayElementEXT) }, - { "glArrayObjectATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glArrayObjectATI) }, - { "glAsyncCopyBufferSubDataNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glAsyncCopyBufferSubDataNVX) }, - { "glAsyncCopyImageSubDataNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glAsyncCopyImageSubDataNVX) }, - { "glAsyncMarkerSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glAsyncMarkerSGIX) }, - { "glAttachObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glAttachObjectARB) }, - { "glAttachShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glAttachShader) }, - { "glBeginConditionalRender", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBeginConditionalRender) }, - { "glBeginConditionalRenderNV", "GL_NV_conditional_render\0", offsetof(struct opengl_funcs, p_glBeginConditionalRenderNV) }, - { "glBeginConditionalRenderNVX", "GL_NVX_conditional_render\0", offsetof(struct opengl_funcs, p_glBeginConditionalRenderNVX) }, - { "glBeginFragmentShaderATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glBeginFragmentShaderATI) }, - { "glBeginOcclusionQueryNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glBeginOcclusionQueryNV) }, - { "glBeginPerfMonitorAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glBeginPerfMonitorAMD) }, - { "glBeginPerfQueryINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glBeginPerfQueryINTEL) }, - { "glBeginQuery", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glBeginQuery) }, - { "glBeginQueryARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glBeginQueryARB) }, - { "glBeginQueryIndexed", "GL_ARB_transform_feedback3\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBeginQueryIndexed) }, - { "glBeginTransformFeedback", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBeginTransformFeedback) }, - { "glBeginTransformFeedbackEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glBeginTransformFeedbackEXT) }, - { "glBeginTransformFeedbackNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glBeginTransformFeedbackNV) }, - { "glBeginVertexShaderEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBeginVertexShaderEXT) }, - { "glBeginVideoCaptureNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glBeginVideoCaptureNV) }, - { "glBindAttribLocation", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glBindAttribLocation) }, - { "glBindAttribLocationARB", "GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindAttribLocationARB) }, - { "glBindBuffer", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glBindBuffer) }, - { "glBindBufferARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glBindBufferARB) }, - { "glBindBufferBase", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindBufferBase) }, - { "glBindBufferBaseEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferBaseEXT) }, - { "glBindBufferBaseNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferBaseNV) }, - { "glBindBufferOffsetEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferOffsetEXT) }, - { "glBindBufferOffsetNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferOffsetNV) }, - { "glBindBufferRange", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindBufferRange) }, - { "glBindBufferRangeEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferRangeEXT) }, - { "glBindBufferRangeNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glBindBufferRangeNV) }, - { "glBindBuffersBase", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindBuffersBase) }, - { "glBindBuffersRange", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindBuffersRange) }, - { "glBindFragDataLocation", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindFragDataLocation) }, - { "glBindFragDataLocationEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glBindFragDataLocationEXT) }, - { "glBindFragDataLocationIndexed", "GL_ARB_blend_func_extended\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glBindFragDataLocationIndexed) }, - { "glBindFragmentShaderATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glBindFragmentShaderATI) }, - { "glBindFramebuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindFramebuffer) }, - { "glBindFramebufferEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glBindFramebufferEXT) }, - { "glBindImageTexture", "GL_ARB_shader_image_load_store\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glBindImageTexture) }, - { "glBindImageTextureEXT", "GL_EXT_shader_image_load_store\0", offsetof(struct opengl_funcs, p_glBindImageTextureEXT) }, - { "glBindImageTextures", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindImageTextures) }, - { "glBindLightParameterEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindLightParameterEXT) }, - { "glBindMaterialParameterEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindMaterialParameterEXT) }, - { "glBindMultiTextureEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glBindMultiTextureEXT) }, - { "glBindParameterEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindParameterEXT) }, - { "glBindProgramARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glBindProgramARB) }, - { "glBindProgramNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glBindProgramNV) }, - { "glBindProgramPipeline", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glBindProgramPipeline) }, - { "glBindRenderbuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindRenderbuffer) }, - { "glBindRenderbufferEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glBindRenderbufferEXT) }, - { "glBindSampler", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glBindSampler) }, - { "glBindSamplers", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindSamplers) }, - { "glBindShadingRateImageNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glBindShadingRateImageNV) }, - { "glBindTexGenParameterEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindTexGenParameterEXT) }, - { "glBindTextureEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glBindTextureEXT) }, - { "glBindTextureUnit", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glBindTextureUnit) }, - { "glBindTextureUnitParameterEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindTextureUnitParameterEXT) }, - { "glBindTextures", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindTextures) }, - { "glBindTransformFeedback", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBindTransformFeedback) }, - { "glBindTransformFeedbackNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glBindTransformFeedbackNV) }, - { "glBindVertexArray", "GL_ARB_vertex_array_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBindVertexArray) }, - { "glBindVertexArrayAPPLE", "GL_APPLE_vertex_array_object\0", offsetof(struct opengl_funcs, p_glBindVertexArrayAPPLE) }, - { "glBindVertexBuffer", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glBindVertexBuffer) }, - { "glBindVertexBuffers", "GL_ARB_multi_bind\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBindVertexBuffers) }, - { "glBindVertexShaderEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glBindVertexShaderEXT) }, - { "glBindVideoCaptureStreamBufferNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glBindVideoCaptureStreamBufferNV) }, - { "glBindVideoCaptureStreamTextureNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glBindVideoCaptureStreamTextureNV) }, - { "glBinormal3bEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3bEXT) }, - { "glBinormal3bvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3bvEXT) }, - { "glBinormal3dEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3dEXT) }, - { "glBinormal3dvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3dvEXT) }, - { "glBinormal3fEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3fEXT) }, - { "glBinormal3fvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3fvEXT) }, - { "glBinormal3iEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3iEXT) }, - { "glBinormal3ivEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3ivEXT) }, - { "glBinormal3sEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3sEXT) }, - { "glBinormal3svEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormal3svEXT) }, - { "glBinormalPointerEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glBinormalPointerEXT) }, - { "glBitmapxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glBitmapxOES) }, - { "glBlendBarrier", "GL_ARB_ES3_2_compatibility\0", offsetof(struct opengl_funcs, p_glBlendBarrier) }, - { "glBlendBarrierKHR", "GL_KHR_blend_equation_advanced\0", offsetof(struct opengl_funcs, p_glBlendBarrierKHR) }, - { "glBlendBarrierNV", "GL_NV_blend_equation_advanced\0", offsetof(struct opengl_funcs, p_glBlendBarrierNV) }, - { "glBlendColor", "GL_ARB_imaging\0GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glBlendColor) }, - { "glBlendColorEXT", "GL_EXT_blend_color\0", offsetof(struct opengl_funcs, p_glBlendColorEXT) }, - { "glBlendColorxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glBlendColorxOES) }, - { "glBlendEquation", "GL_ARB_imaging\0GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glBlendEquation) }, - { "glBlendEquationEXT", "GL_EXT_blend_minmax\0", offsetof(struct opengl_funcs, p_glBlendEquationEXT) }, - { "glBlendEquationIndexedAMD", "GL_AMD_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendEquationIndexedAMD) }, - { "glBlendEquationSeparate", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glBlendEquationSeparate) }, - { "glBlendEquationSeparateEXT", "GL_ATI_blend_equation_separate\0GL_EXT_blend_equation_separate\0", offsetof(struct opengl_funcs, p_glBlendEquationSeparateEXT) }, - { "glBlendEquationSeparateIndexedAMD", "GL_AMD_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendEquationSeparateIndexedAMD) }, - { "glBlendEquationSeparatei", "GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBlendEquationSeparatei) }, - { "glBlendEquationSeparateiARB", "GL_ARB_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendEquationSeparateiARB) }, - { "glBlendEquationi", "GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBlendEquationi) }, - { "glBlendEquationiARB", "GL_ARB_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendEquationiARB) }, - { "glBlendFuncIndexedAMD", "GL_AMD_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendFuncIndexedAMD) }, - { "glBlendFuncSeparate", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparate) }, - { "glBlendFuncSeparateEXT", "GL_EXT_blend_func_separate\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparateEXT) }, - { "glBlendFuncSeparateINGR", "GL_INGR_blend_func_separate\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparateINGR) }, - { "glBlendFuncSeparateIndexedAMD", "GL_AMD_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparateIndexedAMD) }, - { "glBlendFuncSeparatei", "GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparatei) }, - { "glBlendFuncSeparateiARB", "GL_ARB_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendFuncSeparateiARB) }, - { "glBlendFunci", "GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glBlendFunci) }, - { "glBlendFunciARB", "GL_ARB_draw_buffers_blend\0", offsetof(struct opengl_funcs, p_glBlendFunciARB) }, - { "glBlendParameteriNV", "GL_NV_blend_equation_advanced\0", offsetof(struct opengl_funcs, p_glBlendParameteriNV) }, - { "glBlitFramebuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glBlitFramebuffer) }, - { "glBlitFramebufferEXT", "GL_EXT_framebuffer_blit\0", offsetof(struct opengl_funcs, p_glBlitFramebufferEXT) }, - { "glBlitFramebufferLayerEXT", "GL_EXT_framebuffer_blit_layers\0", offsetof(struct opengl_funcs, p_glBlitFramebufferLayerEXT) }, - { "glBlitFramebufferLayersEXT", "GL_EXT_framebuffer_blit_layers\0", offsetof(struct opengl_funcs, p_glBlitFramebufferLayersEXT) }, - { "glBlitNamedFramebuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glBlitNamedFramebuffer) }, - { "glBufferAddressRangeNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glBufferAddressRangeNV) }, - { "glBufferAttachMemoryNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glBufferAttachMemoryNV) }, - { "glBufferData", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glBufferData) }, - { "glBufferDataARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glBufferDataARB) }, - { "glBufferPageCommitmentARB", "GL_ARB_sparse_buffer\0", offsetof(struct opengl_funcs, p_glBufferPageCommitmentARB) }, - { "glBufferPageCommitmentMemNV", "GL_NV_memory_object_sparse\0", offsetof(struct opengl_funcs, p_glBufferPageCommitmentMemNV) }, - { "glBufferParameteriAPPLE", "GL_APPLE_flush_buffer_range\0", offsetof(struct opengl_funcs, p_glBufferParameteriAPPLE) }, - { "glBufferRegionEnabled", "GL_KTX_buffer_region\0", offsetof(struct opengl_funcs, p_glBufferRegionEnabled) }, - { "glBufferStorage", "GL_ARB_buffer_storage\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glBufferStorage) }, - { "glBufferStorageExternalEXT", "GL_EXT_external_buffer\0", offsetof(struct opengl_funcs, p_glBufferStorageExternalEXT) }, - { "glBufferStorageMemEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glBufferStorageMemEXT) }, - { "glBufferSubData", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glBufferSubData) }, - { "glBufferSubDataARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glBufferSubDataARB) }, - { "glCallCommandListNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glCallCommandListNV) }, - { "glCheckFramebufferStatus", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glCheckFramebufferStatus) }, - { "glCheckFramebufferStatusEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glCheckFramebufferStatusEXT) }, - { "glCheckNamedFramebufferStatus", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCheckNamedFramebufferStatus) }, - { "glCheckNamedFramebufferStatusEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCheckNamedFramebufferStatusEXT) }, - { "glClampColor", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glClampColor) }, - { "glClampColorARB", "GL_ARB_color_buffer_float\0", offsetof(struct opengl_funcs, p_glClampColorARB) }, - { "glClearAccumxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glClearAccumxOES) }, - { "glClearBufferData", "GL_ARB_clear_buffer_object\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glClearBufferData) }, - { "glClearBufferSubData", "GL_ARB_clear_buffer_object\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glClearBufferSubData) }, - { "glClearBufferfi", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glClearBufferfi) }, - { "glClearBufferfv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glClearBufferfv) }, - { "glClearBufferiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glClearBufferiv) }, - { "glClearBufferuiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glClearBufferuiv) }, - { "glClearColorIiEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glClearColorIiEXT) }, - { "glClearColorIuiEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glClearColorIuiEXT) }, - { "glClearColorx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glClearColorx) }, - { "glClearColorxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glClearColorxOES) }, - { "glClearDepthdNV", "GL_NV_depth_buffer_float\0", offsetof(struct opengl_funcs, p_glClearDepthdNV) }, - { "glClearDepthf", "GL_ARB_ES2_compatibility\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glClearDepthf) }, - { "glClearDepthfOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glClearDepthfOES) }, - { "glClearDepthx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glClearDepthx) }, - { "glClearDepthxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glClearDepthxOES) }, - { "glClearNamedBufferData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedBufferData) }, - { "glClearNamedBufferDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glClearNamedBufferDataEXT) }, - { "glClearNamedBufferSubData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedBufferSubData) }, - { "glClearNamedBufferSubDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glClearNamedBufferSubDataEXT) }, - { "glClearNamedFramebufferfi", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedFramebufferfi) }, - { "glClearNamedFramebufferfv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedFramebufferfv) }, - { "glClearNamedFramebufferiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedFramebufferiv) }, - { "glClearNamedFramebufferuiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClearNamedFramebufferuiv) }, - { "glClearTexImage", "GL_ARB_clear_texture\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glClearTexImage) }, - { "glClearTexSubImage", "GL_ARB_clear_texture\0GL_VERSION_4_4\0", offsetof(struct opengl_funcs, p_glClearTexSubImage) }, - { "glClientActiveTexture", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glClientActiveTexture) }, - { "glClientActiveTextureARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glClientActiveTextureARB) }, - { "glClientActiveVertexStreamATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glClientActiveVertexStreamATI) }, - { "glClientAttribDefaultEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glClientAttribDefaultEXT) }, - { "glClientWaitSemaphoreui64NVX", "GL_NVX_progress_fence\0", offsetof(struct opengl_funcs, p_glClientWaitSemaphoreui64NVX) }, - { "glClientWaitSync", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glClientWaitSync) }, - { "glClipControl", "GL_ARB_clip_control\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glClipControl) }, - { "glClipPlanef", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glClipPlanef) }, - { "glClipPlanefOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glClipPlanefOES) }, - { "glClipPlanex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glClipPlanex) }, - { "glClipPlanexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glClipPlanexOES) }, - { "glColor3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor3fVertex3fSUN) }, - { "glColor3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor3fVertex3fvSUN) }, - { "glColor3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glColor3hNV) }, - { "glColor3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glColor3hvNV) }, - { "glColor3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glColor3xOES) }, - { "glColor3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glColor3xvOES) }, - { "glColor4fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4fNormal3fVertex3fSUN) }, - { "glColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4fNormal3fVertex3fvSUN) }, - { "glColor4hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glColor4hNV) }, - { "glColor4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glColor4hvNV) }, - { "glColor4ubVertex2fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4ubVertex2fSUN) }, - { "glColor4ubVertex2fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4ubVertex2fvSUN) }, - { "glColor4ubVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4ubVertex3fSUN) }, - { "glColor4ubVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glColor4ubVertex3fvSUN) }, - { "glColor4x", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glColor4x) }, - { "glColor4xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glColor4xOES) }, - { "glColor4xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glColor4xvOES) }, - { "glColorFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glColorFormatNV) }, - { "glColorFragmentOp1ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glColorFragmentOp1ATI) }, - { "glColorFragmentOp2ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glColorFragmentOp2ATI) }, - { "glColorFragmentOp3ATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glColorFragmentOp3ATI) }, - { "glColorMaskIndexedEXT", "GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glColorMaskIndexedEXT) }, - { "glColorMaski", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glColorMaski) }, - { "glColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glColorP3ui) }, - { "glColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glColorP3uiv) }, - { "glColorP4ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glColorP4ui) }, - { "glColorP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glColorP4uiv) }, - { "glColorPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glColorPointerEXT) }, - { "glColorPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glColorPointerListIBM) }, - { "glColorPointervINTEL", "GL_INTEL_parallel_arrays\0", offsetof(struct opengl_funcs, p_glColorPointervINTEL) }, - { "glColorSubTable", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glColorSubTable) }, - { "glColorSubTableEXT", "GL_EXT_color_subtable\0", offsetof(struct opengl_funcs, p_glColorSubTableEXT) }, - { "glColorTable", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glColorTable) }, - { "glColorTableEXT", "GL_EXT_paletted_texture\0", offsetof(struct opengl_funcs, p_glColorTableEXT) }, - { "glColorTableParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glColorTableParameterfv) }, - { "glColorTableParameterfvSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glColorTableParameterfvSGI) }, - { "glColorTableParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glColorTableParameteriv) }, - { "glColorTableParameterivSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glColorTableParameterivSGI) }, - { "glColorTableSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glColorTableSGI) }, - { "glCombinerInputNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerInputNV) }, - { "glCombinerOutputNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerOutputNV) }, - { "glCombinerParameterfNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerParameterfNV) }, - { "glCombinerParameterfvNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerParameterfvNV) }, - { "glCombinerParameteriNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerParameteriNV) }, - { "glCombinerParameterivNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glCombinerParameterivNV) }, - { "glCombinerStageParameterfvNV", "GL_NV_register_combiners2\0", offsetof(struct opengl_funcs, p_glCombinerStageParameterfvNV) }, - { "glCommandListSegmentsNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glCommandListSegmentsNV) }, - { "glCompileCommandListNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glCompileCommandListNV) }, - { "glCompileShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glCompileShader) }, - { "glCompileShaderARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glCompileShaderARB) }, - { "glCompileShaderIncludeARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glCompileShaderIncludeARB) }, - { "glCompressedMultiTexImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexImage1DEXT) }, - { "glCompressedMultiTexImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexImage2DEXT) }, - { "glCompressedMultiTexImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexImage3DEXT) }, - { "glCompressedMultiTexSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexSubImage1DEXT) }, - { "glCompressedMultiTexSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexSubImage2DEXT) }, - { "glCompressedMultiTexSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedMultiTexSubImage3DEXT) }, - { "glCompressedTexImage1D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage1D) }, - { "glCompressedTexImage1DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage1DARB) }, - { "glCompressedTexImage2D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage2D) }, - { "glCompressedTexImage2DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage2DARB) }, - { "glCompressedTexImage3D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage3D) }, - { "glCompressedTexImage3DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexImage3DARB) }, - { "glCompressedTexSubImage1D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage1D) }, - { "glCompressedTexSubImage1DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage1DARB) }, - { "glCompressedTexSubImage2D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage2D) }, - { "glCompressedTexSubImage2DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage2DARB) }, - { "glCompressedTexSubImage3D", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage3D) }, - { "glCompressedTexSubImage3DARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glCompressedTexSubImage3DARB) }, - { "glCompressedTextureImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureImage1DEXT) }, - { "glCompressedTextureImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureImage2DEXT) }, - { "glCompressedTextureImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureImage3DEXT) }, - { "glCompressedTextureSubImage1D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage1D) }, - { "glCompressedTextureSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage1DEXT) }, - { "glCompressedTextureSubImage2D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage2D) }, - { "glCompressedTextureSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage2DEXT) }, - { "glCompressedTextureSubImage3D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage3D) }, - { "glCompressedTextureSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCompressedTextureSubImage3DEXT) }, - { "glConservativeRasterParameterfNV", "GL_NV_conservative_raster_dilate\0", offsetof(struct opengl_funcs, p_glConservativeRasterParameterfNV) }, - { "glConservativeRasterParameteriNV", "GL_NV_conservative_raster_pre_snap_triangles\0", offsetof(struct opengl_funcs, p_glConservativeRasterParameteriNV) }, - { "glConvolutionFilter1D", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionFilter1D) }, - { "glConvolutionFilter1DEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionFilter1DEXT) }, - { "glConvolutionFilter2D", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionFilter2D) }, - { "glConvolutionFilter2DEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionFilter2DEXT) }, - { "glConvolutionParameterf", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionParameterf) }, - { "glConvolutionParameterfEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionParameterfEXT) }, - { "glConvolutionParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionParameterfv) }, - { "glConvolutionParameterfvEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionParameterfvEXT) }, - { "glConvolutionParameteri", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionParameteri) }, - { "glConvolutionParameteriEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionParameteriEXT) }, - { "glConvolutionParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glConvolutionParameteriv) }, - { "glConvolutionParameterivEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glConvolutionParameterivEXT) }, - { "glConvolutionParameterxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glConvolutionParameterxOES) }, - { "glConvolutionParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glConvolutionParameterxvOES) }, - { "glCopyBufferSubData", "GL_ARB_copy_buffer\0GL_EXT_copy_buffer\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glCopyBufferSubData) }, - { "glCopyColorSubTable", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glCopyColorSubTable) }, - { "glCopyColorSubTableEXT", "GL_EXT_color_subtable\0", offsetof(struct opengl_funcs, p_glCopyColorSubTableEXT) }, - { "glCopyColorTable", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glCopyColorTable) }, - { "glCopyColorTableSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glCopyColorTableSGI) }, - { "glCopyConvolutionFilter1D", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glCopyConvolutionFilter1D) }, - { "glCopyConvolutionFilter1DEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glCopyConvolutionFilter1DEXT) }, - { "glCopyConvolutionFilter2D", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glCopyConvolutionFilter2D) }, - { "glCopyConvolutionFilter2DEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glCopyConvolutionFilter2DEXT) }, - { "glCopyImageSubData", "GL_ARB_copy_image\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glCopyImageSubData) }, - { "glCopyImageSubDataNV", "GL_NV_copy_image\0", offsetof(struct opengl_funcs, p_glCopyImageSubDataNV) }, - { "glCopyMultiTexImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyMultiTexImage1DEXT) }, - { "glCopyMultiTexImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyMultiTexImage2DEXT) }, - { "glCopyMultiTexSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyMultiTexSubImage1DEXT) }, - { "glCopyMultiTexSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyMultiTexSubImage2DEXT) }, - { "glCopyMultiTexSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyMultiTexSubImage3DEXT) }, - { "glCopyNamedBufferSubData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCopyNamedBufferSubData) }, - { "glCopyPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glCopyPathNV) }, - { "glCopyTexImage1DEXT", "GL_EXT_copy_texture\0GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexImage1DEXT) }, - { "glCopyTexImage2DEXT", "GL_EXT_copy_texture\0GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexImage2DEXT) }, - { "glCopyTexSubImage1DEXT", "GL_EXT_copy_texture\0GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexSubImage1DEXT) }, - { "glCopyTexSubImage2DEXT", "GL_EXT_copy_texture\0GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexSubImage2DEXT) }, - { "glCopyTexSubImage3D", "GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexSubImage3D) }, - { "glCopyTexSubImage3DEXT", "GL_EXT_copy_texture\0GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glCopyTexSubImage3DEXT) }, - { "glCopyTextureImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyTextureImage1DEXT) }, - { "glCopyTextureImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyTextureImage2DEXT) }, - { "glCopyTextureSubImage1D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage1D) }, - { "glCopyTextureSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage1DEXT) }, - { "glCopyTextureSubImage2D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage2D) }, - { "glCopyTextureSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage2DEXT) }, - { "glCopyTextureSubImage3D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage3D) }, - { "glCopyTextureSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glCopyTextureSubImage3DEXT) }, - { "glCoverFillPathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glCoverFillPathInstancedNV) }, - { "glCoverFillPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glCoverFillPathNV) }, - { "glCoverStrokePathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glCoverStrokePathInstancedNV) }, - { "glCoverStrokePathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glCoverStrokePathNV) }, - { "glCoverageModulationNV", "GL_NV_framebuffer_mixed_samples\0", offsetof(struct opengl_funcs, p_glCoverageModulationNV) }, - { "glCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples\0", offsetof(struct opengl_funcs, p_glCoverageModulationTableNV) }, - { "glCreateBuffers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateBuffers) }, - { "glCreateCommandListsNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glCreateCommandListsNV) }, - { "glCreateFramebuffers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateFramebuffers) }, - { "glCreateMemoryObjectsEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glCreateMemoryObjectsEXT) }, - { "glCreatePerfQueryINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glCreatePerfQueryINTEL) }, - { "glCreateProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glCreateProgram) }, - { "glCreateProgramObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glCreateProgramObjectARB) }, - { "glCreateProgramPipelines", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateProgramPipelines) }, - { "glCreateProgressFenceNVX", "GL_NVX_progress_fence\0", offsetof(struct opengl_funcs, p_glCreateProgressFenceNVX) }, - { "glCreateQueries", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateQueries) }, - { "glCreateRenderbuffers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateRenderbuffers) }, - { "glCreateSamplers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateSamplers) }, - { "glCreateSemaphoresNV", "GL_NV_timeline_semaphore\0", offsetof(struct opengl_funcs, p_glCreateSemaphoresNV) }, - { "glCreateShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glCreateShader) }, - { "glCreateShaderObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glCreateShaderObjectARB) }, - { "glCreateShaderProgramEXT", "GL_EXT_separate_shader_objects\0", offsetof(struct opengl_funcs, p_glCreateShaderProgramEXT) }, - { "glCreateShaderProgramv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glCreateShaderProgramv) }, - { "glCreateStatesNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glCreateStatesNV) }, - { "glCreateSyncFromCLeventARB", "GL_ARB_cl_event\0", offsetof(struct opengl_funcs, p_glCreateSyncFromCLeventARB) }, - { "glCreateTextures", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateTextures) }, - { "glCreateTransformFeedbacks", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateTransformFeedbacks) }, - { "glCreateVertexArrays", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glCreateVertexArrays) }, - { "glCullParameterdvEXT", "GL_EXT_cull_vertex\0", offsetof(struct opengl_funcs, p_glCullParameterdvEXT) }, - { "glCullParameterfvEXT", "GL_EXT_cull_vertex\0", offsetof(struct opengl_funcs, p_glCullParameterfvEXT) }, - { "glCurrentPaletteMatrixARB", "GL_ARB_matrix_palette\0", offsetof(struct opengl_funcs, p_glCurrentPaletteMatrixARB) }, - { "glDebugMessageCallback", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glDebugMessageCallback) }, - { "glDebugMessageCallbackAMD", "GL_AMDX_debug_output\0GL_AMD_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageCallbackAMD) }, - { "glDebugMessageCallbackARB", "GL_ARB_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageCallbackARB) }, - { "glDebugMessageControl", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glDebugMessageControl) }, - { "glDebugMessageControlARB", "GL_ARB_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageControlARB) }, - { "glDebugMessageEnableAMD", "GL_AMDX_debug_output\0GL_AMD_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageEnableAMD) }, - { "glDebugMessageInsert", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glDebugMessageInsert) }, - { "glDebugMessageInsertAMD", "GL_AMDX_debug_output\0GL_AMD_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageInsertAMD) }, - { "glDebugMessageInsertARB", "GL_ARB_debug_output\0", offsetof(struct opengl_funcs, p_glDebugMessageInsertARB) }, - { "glDeformSGIX", "GL_SGIX_polynomial_ffd\0", offsetof(struct opengl_funcs, p_glDeformSGIX) }, - { "glDeformationMap3dSGIX", "GL_SGIX_polynomial_ffd\0", offsetof(struct opengl_funcs, p_glDeformationMap3dSGIX) }, - { "glDeformationMap3fSGIX", "GL_SGIX_polynomial_ffd\0", offsetof(struct opengl_funcs, p_glDeformationMap3fSGIX) }, - { "glDeleteAsyncMarkersSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glDeleteAsyncMarkersSGIX) }, - { "glDeleteBufferRegion", "GL_KTX_buffer_region\0", offsetof(struct opengl_funcs, p_glDeleteBufferRegion) }, - { "glDeleteBuffers", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glDeleteBuffers) }, - { "glDeleteBuffersARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glDeleteBuffersARB) }, - { "glDeleteCommandListsNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDeleteCommandListsNV) }, - { "glDeleteFencesAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glDeleteFencesAPPLE) }, - { "glDeleteFencesNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glDeleteFencesNV) }, - { "glDeleteFragmentShaderATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glDeleteFragmentShaderATI) }, - { "glDeleteFramebuffers", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glDeleteFramebuffers) }, - { "glDeleteFramebuffersEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glDeleteFramebuffersEXT) }, - { "glDeleteMemoryObjectsEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glDeleteMemoryObjectsEXT) }, - { "glDeleteNamedStringARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glDeleteNamedStringARB) }, - { "glDeleteNamesAMD", "GL_AMD_name_gen_delete\0", offsetof(struct opengl_funcs, p_glDeleteNamesAMD) }, - { "glDeleteObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glDeleteObjectARB) }, - { "glDeleteObjectBufferATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glDeleteObjectBufferATI) }, - { "glDeleteOcclusionQueriesNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glDeleteOcclusionQueriesNV) }, - { "glDeletePathsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glDeletePathsNV) }, - { "glDeletePerfMonitorsAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glDeletePerfMonitorsAMD) }, - { "glDeletePerfQueryINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glDeletePerfQueryINTEL) }, - { "glDeleteProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glDeleteProgram) }, - { "glDeleteProgramPipelines", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glDeleteProgramPipelines) }, - { "glDeleteProgramsARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glDeleteProgramsARB) }, - { "glDeleteProgramsNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glDeleteProgramsNV) }, - { "glDeleteQueries", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glDeleteQueries) }, - { "glDeleteQueriesARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glDeleteQueriesARB) }, - { "glDeleteQueryResourceTagNV", "GL_NV_query_resource_tag\0", offsetof(struct opengl_funcs, p_glDeleteQueryResourceTagNV) }, - { "glDeleteRenderbuffers", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glDeleteRenderbuffers) }, - { "glDeleteRenderbuffersEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glDeleteRenderbuffersEXT) }, - { "glDeleteSamplers", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glDeleteSamplers) }, - { "glDeleteSemaphoresEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glDeleteSemaphoresEXT) }, - { "glDeleteShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glDeleteShader) }, - { "glDeleteStatesNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDeleteStatesNV) }, - { "glDeleteSync", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glDeleteSync) }, - { "glDeleteTexturesEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glDeleteTexturesEXT) }, - { "glDeleteTransformFeedbacks", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glDeleteTransformFeedbacks) }, - { "glDeleteTransformFeedbacksNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glDeleteTransformFeedbacksNV) }, - { "glDeleteVertexArrays", "GL_ARB_vertex_array_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glDeleteVertexArrays) }, - { "glDeleteVertexArraysAPPLE", "GL_APPLE_vertex_array_object\0", offsetof(struct opengl_funcs, p_glDeleteVertexArraysAPPLE) }, - { "glDeleteVertexShaderEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glDeleteVertexShaderEXT) }, - { "glDepthBoundsEXT", "GL_EXT_depth_bounds_test\0", offsetof(struct opengl_funcs, p_glDepthBoundsEXT) }, - { "glDepthBoundsdNV", "GL_NV_depth_buffer_float\0", offsetof(struct opengl_funcs, p_glDepthBoundsdNV) }, - { "glDepthRangeArraydvNV", "GL_ARB_viewport_array\0", offsetof(struct opengl_funcs, p_glDepthRangeArraydvNV) }, - { "glDepthRangeArrayv", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glDepthRangeArrayv) }, - { "glDepthRangeIndexed", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glDepthRangeIndexed) }, - { "glDepthRangeIndexeddNV", "GL_ARB_viewport_array\0", offsetof(struct opengl_funcs, p_glDepthRangeIndexeddNV) }, - { "glDepthRangedNV", "GL_NV_depth_buffer_float\0", offsetof(struct opengl_funcs, p_glDepthRangedNV) }, - { "glDepthRangef", "GL_ARB_ES2_compatibility\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glDepthRangef) }, - { "glDepthRangefOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glDepthRangefOES) }, - { "glDepthRangex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glDepthRangex) }, - { "glDepthRangexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glDepthRangexOES) }, - { "glDetachObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glDetachObjectARB) }, - { "glDetachShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glDetachShader) }, - { "glDetailTexFuncSGIS", "GL_SGIS_detail_texture\0", offsetof(struct opengl_funcs, p_glDetailTexFuncSGIS) }, - { "glDisableClientStateIndexedEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glDisableClientStateIndexedEXT) }, - { "glDisableClientStateiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glDisableClientStateiEXT) }, - { "glDisableIndexedEXT", "GL_EXT_direct_state_access\0GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glDisableIndexedEXT) }, - { "glDisableVariantClientStateEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glDisableVariantClientStateEXT) }, - { "glDisableVertexArrayAttrib", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glDisableVertexArrayAttrib) }, - { "glDisableVertexArrayAttribEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glDisableVertexArrayAttribEXT) }, - { "glDisableVertexArrayEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glDisableVertexArrayEXT) }, - { "glDisableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glDisableVertexAttribAPPLE) }, - { "glDisableVertexAttribArray", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glDisableVertexAttribArray) }, - { "glDisableVertexAttribArrayARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glDisableVertexAttribArrayARB) }, - { "glDisablei", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glDisablei) }, - { "glDispatchCompute", "GL_ARB_compute_shader\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glDispatchCompute) }, - { "glDispatchComputeGroupSizeARB", "GL_ARB_compute_variable_group_size\0", offsetof(struct opengl_funcs, p_glDispatchComputeGroupSizeARB) }, - { "glDispatchComputeIndirect", "GL_ARB_compute_shader\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glDispatchComputeIndirect) }, - { "glDrawArraysEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glDrawArraysEXT) }, - { "glDrawArraysIndirect", "GL_ARB_draw_indirect\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glDrawArraysIndirect) }, - { "glDrawArraysInstanced", "GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glDrawArraysInstanced) }, - { "glDrawArraysInstancedARB", "GL_ARB_draw_instanced\0", offsetof(struct opengl_funcs, p_glDrawArraysInstancedARB) }, - { "glDrawArraysInstancedBaseInstance", "GL_ARB_base_instance\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glDrawArraysInstancedBaseInstance) }, - { "glDrawArraysInstancedEXT", "GL_EXT_draw_instanced\0", offsetof(struct opengl_funcs, p_glDrawArraysInstancedEXT) }, - { "glDrawBufferRegion", "GL_KTX_buffer_region\0", offsetof(struct opengl_funcs, p_glDrawBufferRegion) }, - { "glDrawBuffers", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glDrawBuffers) }, - { "glDrawBuffersARB", "GL_ARB_draw_buffers\0", offsetof(struct opengl_funcs, p_glDrawBuffersARB) }, - { "glDrawBuffersATI", "GL_ATI_draw_buffers\0", offsetof(struct opengl_funcs, p_glDrawBuffersATI) }, - { "glDrawCommandsAddressNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDrawCommandsAddressNV) }, - { "glDrawCommandsNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDrawCommandsNV) }, - { "glDrawCommandsStatesAddressNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDrawCommandsStatesAddressNV) }, - { "glDrawCommandsStatesNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glDrawCommandsStatesNV) }, - { "glDrawElementArrayAPPLE", "GL_APPLE_element_array\0", offsetof(struct opengl_funcs, p_glDrawElementArrayAPPLE) }, - { "glDrawElementArrayATI", "GL_ATI_element_array\0", offsetof(struct opengl_funcs, p_glDrawElementArrayATI) }, - { "glDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glDrawElementsBaseVertex) }, - { "glDrawElementsIndirect", "GL_ARB_draw_indirect\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glDrawElementsIndirect) }, - { "glDrawElementsInstanced", "GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glDrawElementsInstanced) }, - { "glDrawElementsInstancedARB", "GL_ARB_draw_instanced\0", offsetof(struct opengl_funcs, p_glDrawElementsInstancedARB) }, - { "glDrawElementsInstancedBaseInstance", "GL_ARB_base_instance\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glDrawElementsInstancedBaseInstance) }, - { "glDrawElementsInstancedBaseVertex", "GL_ARB_draw_elements_base_vertex\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glDrawElementsInstancedBaseVertex) }, - { "glDrawElementsInstancedBaseVertexBaseInstance", "GL_ARB_base_instance\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glDrawElementsInstancedBaseVertexBaseInstance) }, - { "glDrawElementsInstancedEXT", "GL_EXT_draw_instanced\0", offsetof(struct opengl_funcs, p_glDrawElementsInstancedEXT) }, - { "glDrawMeshArraysSUN", "GL_SUN_mesh_array\0", offsetof(struct opengl_funcs, p_glDrawMeshArraysSUN) }, - { "glDrawMeshTasksEXT", "GL_EXT_mesh_shader\0", offsetof(struct opengl_funcs, p_glDrawMeshTasksEXT) }, - { "glDrawMeshTasksIndirectEXT", "GL_EXT_mesh_shader\0", offsetof(struct opengl_funcs, p_glDrawMeshTasksIndirectEXT) }, - { "glDrawMeshTasksIndirectNV", "GL_NV_mesh_shader\0", offsetof(struct opengl_funcs, p_glDrawMeshTasksIndirectNV) }, - { "glDrawMeshTasksNV", "GL_NV_mesh_shader\0", offsetof(struct opengl_funcs, p_glDrawMeshTasksNV) }, - { "glDrawRangeElementArrayAPPLE", "GL_APPLE_element_array\0", offsetof(struct opengl_funcs, p_glDrawRangeElementArrayAPPLE) }, - { "glDrawRangeElementArrayATI", "GL_ATI_element_array\0", offsetof(struct opengl_funcs, p_glDrawRangeElementArrayATI) }, - { "glDrawRangeElements", "GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glDrawRangeElements) }, - { "glDrawRangeElementsBaseVertex", "GL_ARB_draw_elements_base_vertex\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glDrawRangeElementsBaseVertex) }, - { "glDrawRangeElementsEXT", "GL_EXT_draw_range_elements\0", offsetof(struct opengl_funcs, p_glDrawRangeElementsEXT) }, - { "glDrawTextureNV", "GL_NV_draw_texture\0", offsetof(struct opengl_funcs, p_glDrawTextureNV) }, - { "glDrawTransformFeedback", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glDrawTransformFeedback) }, - { "glDrawTransformFeedbackInstanced", "GL_ARB_transform_feedback_instanced\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glDrawTransformFeedbackInstanced) }, - { "glDrawTransformFeedbackNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glDrawTransformFeedbackNV) }, - { "glDrawTransformFeedbackStream", "GL_ARB_transform_feedback3\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glDrawTransformFeedbackStream) }, - { "glDrawTransformFeedbackStreamInstanced", "GL_ARB_transform_feedback_instanced\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glDrawTransformFeedbackStreamInstanced) }, - { "glDrawVkImageNV", "GL_NV_draw_vulkan_image\0", offsetof(struct opengl_funcs, p_glDrawVkImageNV) }, - { "glEGLImageTargetTexStorageEXT", "GL_EXT_EGL_image_storage\0", offsetof(struct opengl_funcs, p_glEGLImageTargetTexStorageEXT) }, - { "glEGLImageTargetTextureStorageEXT", "GL_EXT_EGL_image_storage\0", offsetof(struct opengl_funcs, p_glEGLImageTargetTextureStorageEXT) }, - { "glEdgeFlagFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glEdgeFlagFormatNV) }, - { "glEdgeFlagPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glEdgeFlagPointerEXT) }, - { "glEdgeFlagPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glEdgeFlagPointerListIBM) }, - { "glElementPointerAPPLE", "GL_APPLE_element_array\0", offsetof(struct opengl_funcs, p_glElementPointerAPPLE) }, - { "glElementPointerATI", "GL_ATI_element_array\0", offsetof(struct opengl_funcs, p_glElementPointerATI) }, - { "glEnableClientStateIndexedEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glEnableClientStateIndexedEXT) }, - { "glEnableClientStateiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glEnableClientStateiEXT) }, - { "glEnableIndexedEXT", "GL_EXT_direct_state_access\0GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glEnableIndexedEXT) }, - { "glEnableVariantClientStateEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glEnableVariantClientStateEXT) }, - { "glEnableVertexArrayAttrib", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glEnableVertexArrayAttrib) }, - { "glEnableVertexArrayAttribEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glEnableVertexArrayAttribEXT) }, - { "glEnableVertexArrayEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glEnableVertexArrayEXT) }, - { "glEnableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glEnableVertexAttribAPPLE) }, - { "glEnableVertexAttribArray", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glEnableVertexAttribArray) }, - { "glEnableVertexAttribArrayARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glEnableVertexAttribArrayARB) }, - { "glEnablei", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glEnablei) }, - { "glEndConditionalRender", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glEndConditionalRender) }, - { "glEndConditionalRenderNV", "GL_NV_conditional_render\0", offsetof(struct opengl_funcs, p_glEndConditionalRenderNV) }, - { "glEndConditionalRenderNVX", "GL_NVX_conditional_render\0", offsetof(struct opengl_funcs, p_glEndConditionalRenderNVX) }, - { "glEndFragmentShaderATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glEndFragmentShaderATI) }, - { "glEndOcclusionQueryNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glEndOcclusionQueryNV) }, - { "glEndPerfMonitorAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glEndPerfMonitorAMD) }, - { "glEndPerfQueryINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glEndPerfQueryINTEL) }, - { "glEndQuery", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glEndQuery) }, - { "glEndQueryARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glEndQueryARB) }, - { "glEndQueryIndexed", "GL_ARB_transform_feedback3\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glEndQueryIndexed) }, - { "glEndTransformFeedback", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glEndTransformFeedback) }, - { "glEndTransformFeedbackEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glEndTransformFeedbackEXT) }, - { "glEndTransformFeedbackNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glEndTransformFeedbackNV) }, - { "glEndVertexShaderEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glEndVertexShaderEXT) }, - { "glEndVideoCaptureNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glEndVideoCaptureNV) }, - { "glEvalCoord1xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glEvalCoord1xOES) }, - { "glEvalCoord1xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glEvalCoord1xvOES) }, - { "glEvalCoord2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glEvalCoord2xOES) }, - { "glEvalCoord2xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glEvalCoord2xvOES) }, - { "glEvalMapsNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glEvalMapsNV) }, - { "glEvaluateDepthValuesARB", "GL_ARB_sample_locations\0", offsetof(struct opengl_funcs, p_glEvaluateDepthValuesARB) }, - { "glExecuteProgramNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glExecuteProgramNV) }, - { "glExtractComponentEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glExtractComponentEXT) }, - { "glFeedbackBufferxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glFeedbackBufferxOES) }, - { "glFenceSync", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glFenceSync) }, - { "glFinalCombinerInputNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glFinalCombinerInputNV) }, - { "glFinishAsyncSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glFinishAsyncSGIX) }, - { "glFinishFenceAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glFinishFenceAPPLE) }, - { "glFinishFenceNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glFinishFenceNV) }, - { "glFinishObjectAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glFinishObjectAPPLE) }, - { "glFinishTextureSUNX", "GL_SUNX_constant_data\0", offsetof(struct opengl_funcs, p_glFinishTextureSUNX) }, - { "glFlushMappedBufferRange", "GL_ARB_map_buffer_range\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFlushMappedBufferRange) }, - { "glFlushMappedBufferRangeAPPLE", "GL_APPLE_flush_buffer_range\0", offsetof(struct opengl_funcs, p_glFlushMappedBufferRangeAPPLE) }, - { "glFlushMappedNamedBufferRange", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glFlushMappedNamedBufferRange) }, - { "glFlushMappedNamedBufferRangeEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glFlushMappedNamedBufferRangeEXT) }, - { "glFlushPixelDataRangeNV", "GL_NV_pixel_data_range\0", offsetof(struct opengl_funcs, p_glFlushPixelDataRangeNV) }, - { "glFlushRasterSGIX", "GL_SGIX_flush_raster\0", offsetof(struct opengl_funcs, p_glFlushRasterSGIX) }, - { "glFlushStaticDataIBM", "GL_IBM_static_data\0", offsetof(struct opengl_funcs, p_glFlushStaticDataIBM) }, - { "glFlushVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range\0", offsetof(struct opengl_funcs, p_glFlushVertexArrayRangeAPPLE) }, - { "glFlushVertexArrayRangeNV", "GL_NV_vertex_array_range\0", offsetof(struct opengl_funcs, p_glFlushVertexArrayRangeNV) }, - { "glFogCoordFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glFogCoordFormatNV) }, - { "glFogCoordPointer", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glFogCoordPointer) }, - { "glFogCoordPointerEXT", "GL_EXT_fog_coord\0", offsetof(struct opengl_funcs, p_glFogCoordPointerEXT) }, - { "glFogCoordPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glFogCoordPointerListIBM) }, - { "glFogCoordd", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glFogCoordd) }, - { "glFogCoorddEXT", "GL_EXT_fog_coord\0", offsetof(struct opengl_funcs, p_glFogCoorddEXT) }, - { "glFogCoorddv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glFogCoorddv) }, - { "glFogCoorddvEXT", "GL_EXT_fog_coord\0", offsetof(struct opengl_funcs, p_glFogCoorddvEXT) }, - { "glFogCoordf", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glFogCoordf) }, - { "glFogCoordfEXT", "GL_EXT_fog_coord\0", offsetof(struct opengl_funcs, p_glFogCoordfEXT) }, - { "glFogCoordfv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glFogCoordfv) }, - { "glFogCoordfvEXT", "GL_EXT_fog_coord\0", offsetof(struct opengl_funcs, p_glFogCoordfvEXT) }, - { "glFogCoordhNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glFogCoordhNV) }, - { "glFogCoordhvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glFogCoordhvNV) }, - { "glFogFuncSGIS", "GL_SGIS_fog_function\0", offsetof(struct opengl_funcs, p_glFogFuncSGIS) }, - { "glFogx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glFogx) }, - { "glFogxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glFogxOES) }, - { "glFogxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glFogxv) }, - { "glFogxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glFogxvOES) }, - { "glFragmentColorMaterialSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentColorMaterialSGIX) }, - { "glFragmentCoverageColorNV", "GL_NV_fragment_coverage_to_color\0", offsetof(struct opengl_funcs, p_glFragmentCoverageColorNV) }, - { "glFragmentLightModelfSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightModelfSGIX) }, - { "glFragmentLightModelfvSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightModelfvSGIX) }, - { "glFragmentLightModeliSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightModeliSGIX) }, - { "glFragmentLightModelivSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightModelivSGIX) }, - { "glFragmentLightfSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightfSGIX) }, - { "glFragmentLightfvSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightfvSGIX) }, - { "glFragmentLightiSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightiSGIX) }, - { "glFragmentLightivSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentLightivSGIX) }, - { "glFragmentMaterialfSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentMaterialfSGIX) }, - { "glFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentMaterialfvSGIX) }, - { "glFragmentMaterialiSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentMaterialiSGIX) }, - { "glFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glFragmentMaterialivSGIX) }, - { "glFrameTerminatorGREMEDY", "GL_GREMEDY_frame_terminator\0", offsetof(struct opengl_funcs, p_glFrameTerminatorGREMEDY) }, - { "glFrameZoomSGIX", "GL_SGIX_framezoom\0", offsetof(struct opengl_funcs, p_glFrameZoomSGIX) }, - { "glFramebufferDrawBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glFramebufferDrawBufferEXT) }, - { "glFramebufferDrawBuffersEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glFramebufferDrawBuffersEXT) }, - { "glFramebufferFetchBarrierEXT", "GL_EXT_shader_framebuffer_fetch_non_coherent\0", offsetof(struct opengl_funcs, p_glFramebufferFetchBarrierEXT) }, - { "glFramebufferParameteri", "GL_ARB_framebuffer_no_attachments\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glFramebufferParameteri) }, - { "glFramebufferParameteriMESA", "GL_MESA_framebuffer_flip_y\0", offsetof(struct opengl_funcs, p_glFramebufferParameteriMESA) }, - { "glFramebufferReadBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glFramebufferReadBufferEXT) }, - { "glFramebufferRenderbuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFramebufferRenderbuffer) }, - { "glFramebufferRenderbufferEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glFramebufferRenderbufferEXT) }, - { "glFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations\0", offsetof(struct opengl_funcs, p_glFramebufferSampleLocationsfvARB) }, - { "glFramebufferSampleLocationsfvNV", "GL_NV_sample_locations\0", offsetof(struct opengl_funcs, p_glFramebufferSampleLocationsfvNV) }, - { "glFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions\0", offsetof(struct opengl_funcs, p_glFramebufferSamplePositionsfvAMD) }, - { "glFramebufferShadingRateEXT", "GL_EXT_fragment_shading_rate\0GL_EXT_fragment_shading_rate_attachment\0GL_EXT_fragment_shading_rate_primitive\0", offsetof(struct opengl_funcs, p_glFramebufferShadingRateEXT) }, - { "glFramebufferTexture", "GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glFramebufferTexture) }, - { "glFramebufferTexture1D", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFramebufferTexture1D) }, - { "glFramebufferTexture1DEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glFramebufferTexture1DEXT) }, - { "glFramebufferTexture2D", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFramebufferTexture2D) }, - { "glFramebufferTexture2DEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glFramebufferTexture2DEXT) }, - { "glFramebufferTexture3D", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFramebufferTexture3D) }, - { "glFramebufferTexture3DEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glFramebufferTexture3DEXT) }, - { "glFramebufferTextureARB", "GL_ARB_geometry_shader4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureARB) }, - { "glFramebufferTextureEXT", "GL_NV_geometry_program4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureEXT) }, - { "glFramebufferTextureFaceARB", "GL_ARB_geometry_shader4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureFaceARB) }, - { "glFramebufferTextureFaceEXT", "GL_NV_geometry_program4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureFaceEXT) }, - { "glFramebufferTextureLayer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glFramebufferTextureLayer) }, - { "glFramebufferTextureLayerARB", "GL_ARB_geometry_shader4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureLayerARB) }, - { "glFramebufferTextureLayerEXT", "GL_EXT_texture_array\0GL_NV_geometry_program4\0", offsetof(struct opengl_funcs, p_glFramebufferTextureLayerEXT) }, - { "glFramebufferTextureMultiviewOVR", "GL_OVR_multiview\0", offsetof(struct opengl_funcs, p_glFramebufferTextureMultiviewOVR) }, - { "glFreeObjectBufferATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glFreeObjectBufferATI) }, - { "glFrustumf", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glFrustumf) }, - { "glFrustumfOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glFrustumfOES) }, - { "glFrustumx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glFrustumx) }, - { "glFrustumxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glFrustumxOES) }, - { "glGenAsyncMarkersSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glGenAsyncMarkersSGIX) }, - { "glGenBuffers", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGenBuffers) }, - { "glGenBuffersARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glGenBuffersARB) }, - { "glGenFencesAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glGenFencesAPPLE) }, - { "glGenFencesNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glGenFencesNV) }, - { "glGenFragmentShadersATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glGenFragmentShadersATI) }, - { "glGenFramebuffers", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGenFramebuffers) }, - { "glGenFramebuffersEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glGenFramebuffersEXT) }, - { "glGenNamesAMD", "GL_AMD_name_gen_delete\0", offsetof(struct opengl_funcs, p_glGenNamesAMD) }, - { "glGenOcclusionQueriesNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glGenOcclusionQueriesNV) }, - { "glGenPathsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGenPathsNV) }, - { "glGenPerfMonitorsAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGenPerfMonitorsAMD) }, - { "glGenProgramPipelines", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGenProgramPipelines) }, - { "glGenProgramsARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGenProgramsARB) }, - { "glGenProgramsNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGenProgramsNV) }, - { "glGenQueries", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGenQueries) }, - { "glGenQueriesARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glGenQueriesARB) }, - { "glGenQueryResourceTagNV", "GL_NV_query_resource_tag\0", offsetof(struct opengl_funcs, p_glGenQueryResourceTagNV) }, - { "glGenRenderbuffers", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGenRenderbuffers) }, - { "glGenRenderbuffersEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glGenRenderbuffersEXT) }, - { "glGenSamplers", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGenSamplers) }, - { "glGenSemaphoresEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glGenSemaphoresEXT) }, - { "glGenSymbolsEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGenSymbolsEXT) }, - { "glGenTexturesEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glGenTexturesEXT) }, - { "glGenTransformFeedbacks", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGenTransformFeedbacks) }, - { "glGenTransformFeedbacksNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glGenTransformFeedbacksNV) }, - { "glGenVertexArrays", "GL_ARB_vertex_array_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGenVertexArrays) }, - { "glGenVertexArraysAPPLE", "GL_APPLE_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGenVertexArraysAPPLE) }, - { "glGenVertexShadersEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGenVertexShadersEXT) }, - { "glGenerateMipmap", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGenerateMipmap) }, - { "glGenerateMipmapEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glGenerateMipmapEXT) }, - { "glGenerateMultiTexMipmapEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGenerateMultiTexMipmapEXT) }, - { "glGenerateTextureMipmap", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGenerateTextureMipmap) }, - { "glGenerateTextureMipmapEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGenerateTextureMipmapEXT) }, - { "glGetActiveAtomicCounterBufferiv", "GL_ARB_shader_atomic_counters\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glGetActiveAtomicCounterBufferiv) }, - { "glGetActiveAttrib", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetActiveAttrib) }, - { "glGetActiveAttribARB", "GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetActiveAttribARB) }, - { "glGetActiveSubroutineName", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetActiveSubroutineName) }, - { "glGetActiveSubroutineUniformName", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetActiveSubroutineUniformName) }, - { "glGetActiveSubroutineUniformiv", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetActiveSubroutineUniformiv) }, - { "glGetActiveUniform", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetActiveUniform) }, - { "glGetActiveUniformARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetActiveUniformARB) }, - { "glGetActiveUniformBlockName", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetActiveUniformBlockName) }, - { "glGetActiveUniformBlockiv", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetActiveUniformBlockiv) }, - { "glGetActiveUniformName", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetActiveUniformName) }, - { "glGetActiveUniformsiv", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetActiveUniformsiv) }, - { "glGetActiveVaryingNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glGetActiveVaryingNV) }, - { "glGetArrayObjectfvATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetArrayObjectfvATI) }, - { "glGetArrayObjectivATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetArrayObjectivATI) }, - { "glGetAttachedObjectsARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetAttachedObjectsARB) }, - { "glGetAttachedShaders", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetAttachedShaders) }, - { "glGetAttribLocation", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetAttribLocation) }, - { "glGetAttribLocationARB", "GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetAttribLocationARB) }, - { "glGetBooleanIndexedvEXT", "GL_EXT_direct_state_access\0GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glGetBooleanIndexedvEXT) }, - { "glGetBooleani_v", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetBooleani_v) }, - { "glGetBufferParameteri64v", "GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glGetBufferParameteri64v) }, - { "glGetBufferParameteriv", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetBufferParameteriv) }, - { "glGetBufferParameterivARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glGetBufferParameterivARB) }, - { "glGetBufferParameterui64vNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glGetBufferParameterui64vNV) }, - { "glGetBufferPointerv", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetBufferPointerv) }, - { "glGetBufferPointervARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glGetBufferPointervARB) }, - { "glGetBufferSubData", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetBufferSubData) }, - { "glGetBufferSubDataARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glGetBufferSubDataARB) }, - { "glGetClipPlanef", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetClipPlanef) }, - { "glGetClipPlanefOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glGetClipPlanefOES) }, - { "glGetClipPlanex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetClipPlanex) }, - { "glGetClipPlanexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetClipPlanexOES) }, - { "glGetColorTable", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetColorTable) }, - { "glGetColorTableEXT", "GL_EXT_paletted_texture\0", offsetof(struct opengl_funcs, p_glGetColorTableEXT) }, - { "glGetColorTableParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetColorTableParameterfv) }, - { "glGetColorTableParameterfvEXT", "GL_EXT_paletted_texture\0", offsetof(struct opengl_funcs, p_glGetColorTableParameterfvEXT) }, - { "glGetColorTableParameterfvSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glGetColorTableParameterfvSGI) }, - { "glGetColorTableParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetColorTableParameteriv) }, - { "glGetColorTableParameterivEXT", "GL_EXT_paletted_texture\0", offsetof(struct opengl_funcs, p_glGetColorTableParameterivEXT) }, - { "glGetColorTableParameterivSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glGetColorTableParameterivSGI) }, - { "glGetColorTableSGI", "GL_SGI_color_table\0", offsetof(struct opengl_funcs, p_glGetColorTableSGI) }, - { "glGetCombinerInputParameterfvNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetCombinerInputParameterfvNV) }, - { "glGetCombinerInputParameterivNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetCombinerInputParameterivNV) }, - { "glGetCombinerOutputParameterfvNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetCombinerOutputParameterfvNV) }, - { "glGetCombinerOutputParameterivNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetCombinerOutputParameterivNV) }, - { "glGetCombinerStageParameterfvNV", "GL_NV_register_combiners2\0", offsetof(struct opengl_funcs, p_glGetCombinerStageParameterfvNV) }, - { "glGetCommandHeaderNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glGetCommandHeaderNV) }, - { "glGetCompressedMultiTexImageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetCompressedMultiTexImageEXT) }, - { "glGetCompressedTexImage", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glGetCompressedTexImage) }, - { "glGetCompressedTexImageARB", "GL_ARB_texture_compression\0GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glGetCompressedTexImageARB) }, - { "glGetCompressedTextureImage", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetCompressedTextureImage) }, - { "glGetCompressedTextureImageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetCompressedTextureImageEXT) }, - { "glGetCompressedTextureSubImage", "GL_ARB_get_texture_sub_image\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetCompressedTextureSubImage) }, - { "glGetConvolutionFilter", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetConvolutionFilter) }, - { "glGetConvolutionFilterEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glGetConvolutionFilterEXT) }, - { "glGetConvolutionParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetConvolutionParameterfv) }, - { "glGetConvolutionParameterfvEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glGetConvolutionParameterfvEXT) }, - { "glGetConvolutionParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetConvolutionParameteriv) }, - { "glGetConvolutionParameterivEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glGetConvolutionParameterivEXT) }, - { "glGetConvolutionParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetConvolutionParameterxvOES) }, - { "glGetCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples\0", offsetof(struct opengl_funcs, p_glGetCoverageModulationTableNV) }, - { "glGetDebugMessageLog", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetDebugMessageLog) }, - { "glGetDebugMessageLogAMD", "GL_AMDX_debug_output\0GL_AMD_debug_output\0", offsetof(struct opengl_funcs, p_glGetDebugMessageLogAMD) }, - { "glGetDebugMessageLogARB", "GL_ARB_debug_output\0", offsetof(struct opengl_funcs, p_glGetDebugMessageLogARB) }, - { "glGetDetailTexFuncSGIS", "GL_SGIS_detail_texture\0", offsetof(struct opengl_funcs, p_glGetDetailTexFuncSGIS) }, - { "glGetDoubleIndexedvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetDoubleIndexedvEXT) }, - { "glGetDoublei_v", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetDoublei_v) }, - { "glGetDoublei_vEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetDoublei_vEXT) }, - { "glGetFenceivNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glGetFenceivNV) }, - { "glGetFinalCombinerInputParameterfvNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetFinalCombinerInputParameterfvNV) }, - { "glGetFinalCombinerInputParameterivNV", "GL_NV_register_combiners\0", offsetof(struct opengl_funcs, p_glGetFinalCombinerInputParameterivNV) }, - { "glGetFirstPerfQueryIdINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetFirstPerfQueryIdINTEL) }, - { "glGetFixedv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetFixedv) }, - { "glGetFixedvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetFixedvOES) }, - { "glGetFloatIndexedvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetFloatIndexedvEXT) }, - { "glGetFloati_v", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetFloati_v) }, - { "glGetFloati_vEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetFloati_vEXT) }, - { "glGetFogFuncSGIS", "GL_SGIS_fog_function\0", offsetof(struct opengl_funcs, p_glGetFogFuncSGIS) }, - { "glGetFragDataIndex", "GL_ARB_blend_func_extended\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetFragDataIndex) }, - { "glGetFragDataLocation", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetFragDataLocation) }, - { "glGetFragDataLocationEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glGetFragDataLocationEXT) }, - { "glGetFragmentLightfvSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glGetFragmentLightfvSGIX) }, - { "glGetFragmentLightivSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glGetFragmentLightivSGIX) }, - { "glGetFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glGetFragmentMaterialfvSGIX) }, - { "glGetFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glGetFragmentMaterialivSGIX) }, - { "glGetFragmentShadingRatesEXT", "GL_EXT_fragment_shading_rate\0GL_EXT_fragment_shading_rate_attachment\0GL_EXT_fragment_shading_rate_primitive\0", offsetof(struct opengl_funcs, p_glGetFragmentShadingRatesEXT) }, - { "glGetFramebufferAttachmentParameteriv", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetFramebufferAttachmentParameteriv) }, - { "glGetFramebufferAttachmentParameterivEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glGetFramebufferAttachmentParameterivEXT) }, - { "glGetFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions\0", offsetof(struct opengl_funcs, p_glGetFramebufferParameterfvAMD) }, - { "glGetFramebufferParameteriv", "GL_ARB_framebuffer_no_attachments\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetFramebufferParameteriv) }, - { "glGetFramebufferParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetFramebufferParameterivEXT) }, - { "glGetFramebufferParameterivMESA", "GL_MESA_framebuffer_flip_y\0", offsetof(struct opengl_funcs, p_glGetFramebufferParameterivMESA) }, - { "glGetGraphicsResetStatus", "GL_KHR_robustness\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetGraphicsResetStatus) }, - { "glGetGraphicsResetStatusARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetGraphicsResetStatusARB) }, - { "glGetHandleARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetHandleARB) }, - { "glGetHistogram", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetHistogram) }, - { "glGetHistogramEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetHistogramEXT) }, - { "glGetHistogramParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetHistogramParameterfv) }, - { "glGetHistogramParameterfvEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetHistogramParameterfvEXT) }, - { "glGetHistogramParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetHistogramParameteriv) }, - { "glGetHistogramParameterivEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetHistogramParameterivEXT) }, - { "glGetHistogramParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetHistogramParameterxvOES) }, - { "glGetImageHandleARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetImageHandleARB) }, - { "glGetImageHandleNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetImageHandleNV) }, - { "glGetImageTransformParameterfvHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glGetImageTransformParameterfvHP) }, - { "glGetImageTransformParameterivHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glGetImageTransformParameterivHP) }, - { "glGetInfoLogARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetInfoLogARB) }, - { "glGetInstrumentsSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glGetInstrumentsSGIX) }, - { "glGetInteger64i_v", "GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glGetInteger64i_v) }, - { "glGetInteger64v", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glGetInteger64v) }, - { "glGetIntegerIndexedvEXT", "GL_EXT_direct_state_access\0GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glGetIntegerIndexedvEXT) }, - { "glGetIntegeri_v", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetIntegeri_v) }, - { "glGetIntegerui64i_vNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glGetIntegerui64i_vNV) }, - { "glGetIntegerui64vNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glGetIntegerui64vNV) }, - { "glGetInternalformatSampleivNV", "GL_NV_internalformat_sample_query\0", offsetof(struct opengl_funcs, p_glGetInternalformatSampleivNV) }, - { "glGetInternalformati64v", "GL_ARB_internalformat_query2\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetInternalformati64v) }, - { "glGetInternalformativ", "GL_ARB_internalformat_query\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glGetInternalformativ) }, - { "glGetInvariantBooleanvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetInvariantBooleanvEXT) }, - { "glGetInvariantFloatvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetInvariantFloatvEXT) }, - { "glGetInvariantIntegervEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetInvariantIntegervEXT) }, - { "glGetLightxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetLightxOES) }, - { "glGetLightxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetLightxv) }, - { "glGetListParameterfvSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glGetListParameterfvSGIX) }, - { "glGetListParameterivSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glGetListParameterivSGIX) }, - { "glGetLocalConstantBooleanvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetLocalConstantBooleanvEXT) }, - { "glGetLocalConstantFloatvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetLocalConstantFloatvEXT) }, - { "glGetLocalConstantIntegervEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetLocalConstantIntegervEXT) }, - { "glGetMapAttribParameterfvNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glGetMapAttribParameterfvNV) }, - { "glGetMapAttribParameterivNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glGetMapAttribParameterivNV) }, - { "glGetMapControlPointsNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glGetMapControlPointsNV) }, - { "glGetMapParameterfvNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glGetMapParameterfvNV) }, - { "glGetMapParameterivNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glGetMapParameterivNV) }, - { "glGetMapxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetMapxvOES) }, - { "glGetMaterialxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetMaterialxOES) }, - { "glGetMaterialxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetMaterialxv) }, - { "glGetMemoryObjectDetachedResourcesuivNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glGetMemoryObjectDetachedResourcesuivNV) }, - { "glGetMemoryObjectParameterivEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glGetMemoryObjectParameterivEXT) }, - { "glGetMinmax", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetMinmax) }, - { "glGetMinmaxEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetMinmaxEXT) }, - { "glGetMinmaxParameterfv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetMinmaxParameterfv) }, - { "glGetMinmaxParameterfvEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetMinmaxParameterfvEXT) }, - { "glGetMinmaxParameteriv", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetMinmaxParameteriv) }, - { "glGetMinmaxParameterivEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glGetMinmaxParameterivEXT) }, - { "glGetMultiTexEnvfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexEnvfvEXT) }, - { "glGetMultiTexEnvivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexEnvivEXT) }, - { "glGetMultiTexGendvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexGendvEXT) }, - { "glGetMultiTexGenfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexGenfvEXT) }, - { "glGetMultiTexGenivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexGenivEXT) }, - { "glGetMultiTexImageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexImageEXT) }, - { "glGetMultiTexLevelParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexLevelParameterfvEXT) }, - { "glGetMultiTexLevelParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexLevelParameterivEXT) }, - { "glGetMultiTexParameterIivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexParameterIivEXT) }, - { "glGetMultiTexParameterIuivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexParameterIuivEXT) }, - { "glGetMultiTexParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexParameterfvEXT) }, - { "glGetMultiTexParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetMultiTexParameterivEXT) }, - { "glGetMultisamplefv", "GL_ARB_texture_multisample\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glGetMultisamplefv) }, - { "glGetMultisamplefvNV", "GL_NV_explicit_multisample\0", offsetof(struct opengl_funcs, p_glGetMultisamplefvNV) }, - { "glGetNamedBufferParameteri64v", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedBufferParameteri64v) }, - { "glGetNamedBufferParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedBufferParameteriv) }, - { "glGetNamedBufferParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedBufferParameterivEXT) }, - { "glGetNamedBufferParameterui64vNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glGetNamedBufferParameterui64vNV) }, - { "glGetNamedBufferPointerv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedBufferPointerv) }, - { "glGetNamedBufferPointervEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedBufferPointervEXT) }, - { "glGetNamedBufferSubData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedBufferSubData) }, - { "glGetNamedBufferSubDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedBufferSubDataEXT) }, - { "glGetNamedFramebufferAttachmentParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedFramebufferAttachmentParameteriv) }, - { "glGetNamedFramebufferAttachmentParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedFramebufferAttachmentParameterivEXT) }, - { "glGetNamedFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions\0", offsetof(struct opengl_funcs, p_glGetNamedFramebufferParameterfvAMD) }, - { "glGetNamedFramebufferParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedFramebufferParameteriv) }, - { "glGetNamedFramebufferParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedFramebufferParameterivEXT) }, - { "glGetNamedProgramLocalParameterIivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramLocalParameterIivEXT) }, - { "glGetNamedProgramLocalParameterIuivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramLocalParameterIuivEXT) }, - { "glGetNamedProgramLocalParameterdvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramLocalParameterdvEXT) }, - { "glGetNamedProgramLocalParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramLocalParameterfvEXT) }, - { "glGetNamedProgramStringEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramStringEXT) }, - { "glGetNamedProgramivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedProgramivEXT) }, - { "glGetNamedRenderbufferParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetNamedRenderbufferParameteriv) }, - { "glGetNamedRenderbufferParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetNamedRenderbufferParameterivEXT) }, - { "glGetNamedStringARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glGetNamedStringARB) }, - { "glGetNamedStringivARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glGetNamedStringivARB) }, - { "glGetNextPerfQueryIdINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetNextPerfQueryIdINTEL) }, - { "glGetObjectBufferfvATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetObjectBufferfvATI) }, - { "glGetObjectBufferivATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetObjectBufferivATI) }, - { "glGetObjectLabel", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetObjectLabel) }, - { "glGetObjectLabelEXT", "GL_EXT_debug_label\0", offsetof(struct opengl_funcs, p_glGetObjectLabelEXT) }, - { "glGetObjectParameterfvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetObjectParameterfvARB) }, - { "glGetObjectParameterivAPPLE", "GL_APPLE_object_purgeable\0", offsetof(struct opengl_funcs, p_glGetObjectParameterivAPPLE) }, - { "glGetObjectParameterivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetObjectParameterivARB) }, - { "glGetObjectPtrLabel", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetObjectPtrLabel) }, - { "glGetOcclusionQueryivNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glGetOcclusionQueryivNV) }, - { "glGetOcclusionQueryuivNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glGetOcclusionQueryuivNV) }, - { "glGetPathColorGenfvNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathColorGenfvNV) }, - { "glGetPathColorGenivNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathColorGenivNV) }, - { "glGetPathCommandsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathCommandsNV) }, - { "glGetPathCoordsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathCoordsNV) }, - { "glGetPathDashArrayNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathDashArrayNV) }, - { "glGetPathLengthNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathLengthNV) }, - { "glGetPathMetricRangeNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathMetricRangeNV) }, - { "glGetPathMetricsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathMetricsNV) }, - { "glGetPathParameterfvNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathParameterfvNV) }, - { "glGetPathParameterivNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathParameterivNV) }, - { "glGetPathSpacingNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathSpacingNV) }, - { "glGetPathTexGenfvNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathTexGenfvNV) }, - { "glGetPathTexGenivNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetPathTexGenivNV) }, - { "glGetPerfCounterInfoINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetPerfCounterInfoINTEL) }, - { "glGetPerfMonitorCounterDataAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorCounterDataAMD) }, - { "glGetPerfMonitorCounterInfoAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorCounterInfoAMD) }, - { "glGetPerfMonitorCounterStringAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorCounterStringAMD) }, - { "glGetPerfMonitorCountersAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorCountersAMD) }, - { "glGetPerfMonitorGroupStringAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorGroupStringAMD) }, - { "glGetPerfMonitorGroupsAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glGetPerfMonitorGroupsAMD) }, - { "glGetPerfQueryDataINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetPerfQueryDataINTEL) }, - { "glGetPerfQueryIdByNameINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetPerfQueryIdByNameINTEL) }, - { "glGetPerfQueryInfoINTEL", "GL_INTEL_performance_query\0", offsetof(struct opengl_funcs, p_glGetPerfQueryInfoINTEL) }, - { "glGetPixelMapxv", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetPixelMapxv) }, - { "glGetPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glGetPixelTexGenParameterfvSGIS) }, - { "glGetPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glGetPixelTexGenParameterivSGIS) }, - { "glGetPixelTransformParameterfvEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glGetPixelTransformParameterfvEXT) }, - { "glGetPixelTransformParameterivEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glGetPixelTransformParameterivEXT) }, - { "glGetPointerIndexedvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetPointerIndexedvEXT) }, - { "glGetPointeri_vEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetPointeri_vEXT) }, - { "glGetPointervEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glGetPointervEXT) }, - { "glGetProgramBinary", "GL_ARB_get_program_binary\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetProgramBinary) }, - { "glGetProgramEnvParameterIivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glGetProgramEnvParameterIivNV) }, - { "glGetProgramEnvParameterIuivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glGetProgramEnvParameterIuivNV) }, - { "glGetProgramEnvParameterdvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramEnvParameterdvARB) }, - { "glGetProgramEnvParameterfvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramEnvParameterfvARB) }, - { "glGetProgramInfoLog", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetProgramInfoLog) }, - { "glGetProgramInterfaceiv", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramInterfaceiv) }, - { "glGetProgramLocalParameterIivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glGetProgramLocalParameterIivNV) }, - { "glGetProgramLocalParameterIuivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glGetProgramLocalParameterIuivNV) }, - { "glGetProgramLocalParameterdvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramLocalParameterdvARB) }, - { "glGetProgramLocalParameterfvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramLocalParameterfvARB) }, - { "glGetProgramNamedParameterdvNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glGetProgramNamedParameterdvNV) }, - { "glGetProgramNamedParameterfvNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glGetProgramNamedParameterfvNV) }, - { "glGetProgramParameterdvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramParameterdvNV) }, - { "glGetProgramParameterfvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramParameterfvNV) }, - { "glGetProgramPipelineInfoLog", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetProgramPipelineInfoLog) }, - { "glGetProgramPipelineiv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetProgramPipelineiv) }, - { "glGetProgramResourceIndex", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramResourceIndex) }, - { "glGetProgramResourceLocation", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramResourceLocation) }, - { "glGetProgramResourceLocationIndex", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramResourceLocationIndex) }, - { "glGetProgramResourceName", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramResourceName) }, - { "glGetProgramResourcefvNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glGetProgramResourcefvNV) }, - { "glGetProgramResourceiv", "GL_ARB_program_interface_query\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glGetProgramResourceiv) }, - { "glGetProgramStageiv", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetProgramStageiv) }, - { "glGetProgramStringARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramStringARB) }, - { "glGetProgramStringNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramStringNV) }, - { "glGetProgramSubroutineParameteruivNV", "GL_NV_gpu_program5\0GL_NV_gpu_program_fp64\0", offsetof(struct opengl_funcs, p_glGetProgramSubroutineParameteruivNV) }, - { "glGetProgramiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetProgramiv) }, - { "glGetProgramivARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramivARB) }, - { "glGetProgramivNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetProgramivNV) }, - { "glGetQueryBufferObjecti64v", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetQueryBufferObjecti64v) }, - { "glGetQueryBufferObjectiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetQueryBufferObjectiv) }, - { "glGetQueryBufferObjectui64v", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetQueryBufferObjectui64v) }, - { "glGetQueryBufferObjectuiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetQueryBufferObjectuiv) }, - { "glGetQueryIndexediv", "GL_ARB_transform_feedback3\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetQueryIndexediv) }, - { "glGetQueryObjecti64v", "GL_ARB_timer_query\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetQueryObjecti64v) }, - { "glGetQueryObjecti64vEXT", "GL_EXT_timer_query\0", offsetof(struct opengl_funcs, p_glGetQueryObjecti64vEXT) }, - { "glGetQueryObjectiv", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetQueryObjectiv) }, - { "glGetQueryObjectivARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glGetQueryObjectivARB) }, - { "glGetQueryObjectui64v", "GL_ARB_timer_query\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetQueryObjectui64v) }, - { "glGetQueryObjectui64vEXT", "GL_EXT_timer_query\0", offsetof(struct opengl_funcs, p_glGetQueryObjectui64vEXT) }, - { "glGetQueryObjectuiv", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetQueryObjectuiv) }, - { "glGetQueryObjectuivARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glGetQueryObjectuivARB) }, - { "glGetQueryiv", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glGetQueryiv) }, - { "glGetQueryivARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glGetQueryivARB) }, - { "glGetRenderbufferParameteriv", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetRenderbufferParameteriv) }, - { "glGetRenderbufferParameterivEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glGetRenderbufferParameterivEXT) }, - { "glGetSamplerParameterIiv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetSamplerParameterIiv) }, - { "glGetSamplerParameterIuiv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetSamplerParameterIuiv) }, - { "glGetSamplerParameterfv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetSamplerParameterfv) }, - { "glGetSamplerParameteriv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glGetSamplerParameteriv) }, - { "glGetSemaphoreParameterivNV", "GL_NV_timeline_semaphore\0", offsetof(struct opengl_funcs, p_glGetSemaphoreParameterivNV) }, - { "glGetSemaphoreParameterui64vEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glGetSemaphoreParameterui64vEXT) }, - { "glGetSeparableFilter", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glGetSeparableFilter) }, - { "glGetSeparableFilterEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glGetSeparableFilterEXT) }, - { "glGetShaderInfoLog", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetShaderInfoLog) }, - { "glGetShaderPrecisionFormat", "GL_ARB_ES2_compatibility\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetShaderPrecisionFormat) }, - { "glGetShaderSource", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetShaderSource) }, - { "glGetShaderSourceARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetShaderSourceARB) }, - { "glGetShaderiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetShaderiv) }, - { "glGetShadingRateImagePaletteNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glGetShadingRateImagePaletteNV) }, - { "glGetShadingRateSampleLocationivNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glGetShadingRateSampleLocationivNV) }, - { "glGetSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture\0", offsetof(struct opengl_funcs, p_glGetSharpenTexFuncSGIS) }, - { "glGetStageIndexNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glGetStageIndexNV) }, - { "glGetStringi", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetStringi) }, - { "glGetSubroutineIndex", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetSubroutineIndex) }, - { "glGetSubroutineUniformLocation", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetSubroutineUniformLocation) }, - { "glGetSynciv", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glGetSynciv) }, - { "glGetTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap\0", offsetof(struct opengl_funcs, p_glGetTexBumpParameterfvATI) }, - { "glGetTexBumpParameterivATI", "GL_ATI_envmap_bumpmap\0", offsetof(struct opengl_funcs, p_glGetTexBumpParameterivATI) }, - { "glGetTexEnvxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetTexEnvxv) }, - { "glGetTexEnvxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetTexEnvxvOES) }, - { "glGetTexFilterFuncSGIS", "GL_SGIS_texture_filter4\0", offsetof(struct opengl_funcs, p_glGetTexFilterFuncSGIS) }, - { "glGetTexGenxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetTexGenxvOES) }, - { "glGetTexLevelParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetTexLevelParameterxvOES) }, - { "glGetTexParameterIiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetTexParameterIiv) }, - { "glGetTexParameterIivEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glGetTexParameterIivEXT) }, - { "glGetTexParameterIuiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetTexParameterIuiv) }, - { "glGetTexParameterIuivEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glGetTexParameterIuivEXT) }, - { "glGetTexParameterPointervAPPLE", "GL_APPLE_texture_range\0", offsetof(struct opengl_funcs, p_glGetTexParameterPointervAPPLE) }, - { "glGetTexParameterxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glGetTexParameterxv) }, - { "glGetTexParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glGetTexParameterxvOES) }, - { "glGetTextureHandleARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetTextureHandleARB) }, - { "glGetTextureHandleNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetTextureHandleNV) }, - { "glGetTextureImage", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureImage) }, - { "glGetTextureImageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureImageEXT) }, - { "glGetTextureLevelParameterfv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureLevelParameterfv) }, - { "glGetTextureLevelParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureLevelParameterfvEXT) }, - { "glGetTextureLevelParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureLevelParameteriv) }, - { "glGetTextureLevelParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureLevelParameterivEXT) }, - { "glGetTextureParameterIiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureParameterIiv) }, - { "glGetTextureParameterIivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureParameterIivEXT) }, - { "glGetTextureParameterIuiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureParameterIuiv) }, - { "glGetTextureParameterIuivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureParameterIuivEXT) }, - { "glGetTextureParameterfv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureParameterfv) }, - { "glGetTextureParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureParameterfvEXT) }, - { "glGetTextureParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureParameteriv) }, - { "glGetTextureParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetTextureParameterivEXT) }, - { "glGetTextureSamplerHandleARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetTextureSamplerHandleARB) }, - { "glGetTextureSamplerHandleNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetTextureSamplerHandleNV) }, - { "glGetTextureSubImage", "GL_ARB_get_texture_sub_image\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTextureSubImage) }, - { "glGetTrackMatrixivNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetTrackMatrixivNV) }, - { "glGetTransformFeedbackVarying", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbackVarying) }, - { "glGetTransformFeedbackVaryingEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbackVaryingEXT) }, - { "glGetTransformFeedbackVaryingNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbackVaryingNV) }, - { "glGetTransformFeedbacki64_v", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbacki64_v) }, - { "glGetTransformFeedbacki_v", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbacki_v) }, - { "glGetTransformFeedbackiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetTransformFeedbackiv) }, - { "glGetUniformBlockIndex", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetUniformBlockIndex) }, - { "glGetUniformBufferSizeEXT", "GL_EXT_bindable_uniform\0", offsetof(struct opengl_funcs, p_glGetUniformBufferSizeEXT) }, - { "glGetUniformIndices", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glGetUniformIndices) }, - { "glGetUniformLocation", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetUniformLocation) }, - { "glGetUniformLocationARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetUniformLocationARB) }, - { "glGetUniformOffsetEXT", "GL_EXT_bindable_uniform\0", offsetof(struct opengl_funcs, p_glGetUniformOffsetEXT) }, - { "glGetUniformSubroutineuiv", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetUniformSubroutineuiv) }, - { "glGetUniformdv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glGetUniformdv) }, - { "glGetUniformfv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetUniformfv) }, - { "glGetUniformfvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetUniformfvARB) }, - { "glGetUniformi64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glGetUniformi64vARB) }, - { "glGetUniformi64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glGetUniformi64vNV) }, - { "glGetUniformiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetUniformiv) }, - { "glGetUniformivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glGetUniformivARB) }, - { "glGetUniformui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glGetUniformui64vARB) }, - { "glGetUniformui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glGetUniformui64vNV) }, - { "glGetUniformuiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetUniformuiv) }, - { "glGetUniformuivEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glGetUniformuivEXT) }, - { "glGetUnsignedBytei_vEXT", "GL_EXT_memory_object\0GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glGetUnsignedBytei_vEXT) }, - { "glGetUnsignedBytevEXT", "GL_EXT_memory_object\0GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glGetUnsignedBytevEXT) }, - { "glGetVariantArrayObjectfvATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetVariantArrayObjectfvATI) }, - { "glGetVariantArrayObjectivATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glGetVariantArrayObjectivATI) }, - { "glGetVariantBooleanvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVariantBooleanvEXT) }, - { "glGetVariantFloatvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVariantFloatvEXT) }, - { "glGetVariantIntegervEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVariantIntegervEXT) }, - { "glGetVariantPointervEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVariantPointervEXT) }, - { "glGetVaryingLocationNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glGetVaryingLocationNV) }, - { "glGetVertexArrayIndexed64iv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetVertexArrayIndexed64iv) }, - { "glGetVertexArrayIndexediv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetVertexArrayIndexediv) }, - { "glGetVertexArrayIntegeri_vEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetVertexArrayIntegeri_vEXT) }, - { "glGetVertexArrayIntegervEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetVertexArrayIntegervEXT) }, - { "glGetVertexArrayPointeri_vEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetVertexArrayPointeri_vEXT) }, - { "glGetVertexArrayPointervEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glGetVertexArrayPointervEXT) }, - { "glGetVertexArrayiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetVertexArrayiv) }, - { "glGetVertexAttribArrayObjectfvATI", "GL_ATI_vertex_attrib_array_object\0", offsetof(struct opengl_funcs, p_glGetVertexAttribArrayObjectfvATI) }, - { "glGetVertexAttribArrayObjectivATI", "GL_ATI_vertex_attrib_array_object\0", offsetof(struct opengl_funcs, p_glGetVertexAttribArrayObjectivATI) }, - { "glGetVertexAttribIiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribIiv) }, - { "glGetVertexAttribIivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glGetVertexAttribIivEXT) }, - { "glGetVertexAttribIuiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribIuiv) }, - { "glGetVertexAttribIuivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glGetVertexAttribIuivEXT) }, - { "glGetVertexAttribLdv", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glGetVertexAttribLdv) }, - { "glGetVertexAttribLdvEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glGetVertexAttribLdvEXT) }, - { "glGetVertexAttribLi64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glGetVertexAttribLi64vNV) }, - { "glGetVertexAttribLui64vARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glGetVertexAttribLui64vARB) }, - { "glGetVertexAttribLui64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glGetVertexAttribLui64vNV) }, - { "glGetVertexAttribPointerv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribPointerv) }, - { "glGetVertexAttribPointervARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVertexAttribPointervARB) }, - { "glGetVertexAttribPointervNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetVertexAttribPointervNV) }, - { "glGetVertexAttribdv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribdv) }, - { "glGetVertexAttribdvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVertexAttribdvARB) }, - { "glGetVertexAttribdvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetVertexAttribdvNV) }, - { "glGetVertexAttribfv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribfv) }, - { "glGetVertexAttribfvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVertexAttribfvARB) }, - { "glGetVertexAttribfvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetVertexAttribfvNV) }, - { "glGetVertexAttribiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glGetVertexAttribiv) }, - { "glGetVertexAttribivARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glGetVertexAttribivARB) }, - { "glGetVertexAttribivNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glGetVertexAttribivNV) }, - { "glGetVideoCaptureStreamdvNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glGetVideoCaptureStreamdvNV) }, - { "glGetVideoCaptureStreamfvNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glGetVideoCaptureStreamfvNV) }, - { "glGetVideoCaptureStreamivNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glGetVideoCaptureStreamivNV) }, - { "glGetVideoCaptureivNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glGetVideoCaptureivNV) }, - { "glGetVideoi64vNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glGetVideoi64vNV) }, - { "glGetVideoivNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glGetVideoivNV) }, - { "glGetVideoui64vNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glGetVideoui64vNV) }, - { "glGetVideouivNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glGetVideouivNV) }, - { "glGetVkProcAddrNV", "GL_NV_draw_vulkan_image\0", offsetof(struct opengl_funcs, p_glGetVkProcAddrNV) }, - { "glGetnColorTable", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnColorTable) }, - { "glGetnColorTableARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnColorTableARB) }, - { "glGetnCompressedTexImage", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnCompressedTexImage) }, - { "glGetnCompressedTexImageARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnCompressedTexImageARB) }, - { "glGetnConvolutionFilter", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnConvolutionFilter) }, - { "glGetnConvolutionFilterARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnConvolutionFilterARB) }, - { "glGetnHistogram", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnHistogram) }, - { "glGetnHistogramARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnHistogramARB) }, - { "glGetnMapdv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnMapdv) }, - { "glGetnMapdvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnMapdvARB) }, - { "glGetnMapfv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnMapfv) }, - { "glGetnMapfvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnMapfvARB) }, - { "glGetnMapiv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnMapiv) }, - { "glGetnMapivARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnMapivARB) }, - { "glGetnMinmax", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnMinmax) }, - { "glGetnMinmaxARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnMinmaxARB) }, - { "glGetnPixelMapfv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnPixelMapfv) }, - { "glGetnPixelMapfvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnPixelMapfvARB) }, - { "glGetnPixelMapuiv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnPixelMapuiv) }, - { "glGetnPixelMapuivARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnPixelMapuivARB) }, - { "glGetnPixelMapusv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnPixelMapusv) }, - { "glGetnPixelMapusvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnPixelMapusvARB) }, - { "glGetnPolygonStipple", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnPolygonStipple) }, - { "glGetnPolygonStippleARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnPolygonStippleARB) }, - { "glGetnSeparableFilter", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnSeparableFilter) }, - { "glGetnSeparableFilterARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnSeparableFilterARB) }, - { "glGetnTexImage", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnTexImage) }, - { "glGetnTexImageARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnTexImageARB) }, - { "glGetnUniformdv", "GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnUniformdv) }, - { "glGetnUniformdvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnUniformdvARB) }, - { "glGetnUniformfv", "GL_KHR_robustness\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnUniformfv) }, - { "glGetnUniformfvARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnUniformfvARB) }, - { "glGetnUniformi64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glGetnUniformi64vARB) }, - { "glGetnUniformiv", "GL_KHR_robustness\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnUniformiv) }, - { "glGetnUniformivARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnUniformivARB) }, - { "glGetnUniformui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glGetnUniformui64vARB) }, - { "glGetnUniformuiv", "GL_KHR_robustness\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glGetnUniformuiv) }, - { "glGetnUniformuivARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glGetnUniformuivARB) }, - { "glGlobalAlphaFactorbSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactorbSUN) }, - { "glGlobalAlphaFactordSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactordSUN) }, - { "glGlobalAlphaFactorfSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactorfSUN) }, - { "glGlobalAlphaFactoriSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactoriSUN) }, - { "glGlobalAlphaFactorsSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactorsSUN) }, - { "glGlobalAlphaFactorubSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactorubSUN) }, - { "glGlobalAlphaFactoruiSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactoruiSUN) }, - { "glGlobalAlphaFactorusSUN", "GL_SUN_global_alpha\0", offsetof(struct opengl_funcs, p_glGlobalAlphaFactorusSUN) }, - { "glHintPGI", "GL_PGI_misc_hints\0", offsetof(struct opengl_funcs, p_glHintPGI) }, - { "glHistogram", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glHistogram) }, - { "glHistogramEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glHistogramEXT) }, - { "glIglooInterfaceSGIX", "GL_SGIX_igloo_interface\0", offsetof(struct opengl_funcs, p_glIglooInterfaceSGIX) }, - { "glImageTransformParameterfHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glImageTransformParameterfHP) }, - { "glImageTransformParameterfvHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glImageTransformParameterfvHP) }, - { "glImageTransformParameteriHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glImageTransformParameteriHP) }, - { "glImageTransformParameterivHP", "GL_HP_image_transform\0", offsetof(struct opengl_funcs, p_glImageTransformParameterivHP) }, - { "glImportMemoryWin32HandleEXT", "GL_EXT_memory_object_win32\0", offsetof(struct opengl_funcs, p_glImportMemoryWin32HandleEXT) }, - { "glImportMemoryWin32NameEXT", "GL_EXT_memory_object_win32\0", offsetof(struct opengl_funcs, p_glImportMemoryWin32NameEXT) }, - { "glImportSemaphoreWin32HandleEXT", "GL_EXT_semaphore_win32\0", offsetof(struct opengl_funcs, p_glImportSemaphoreWin32HandleEXT) }, - { "glImportSemaphoreWin32NameEXT", "GL_EXT_semaphore_win32\0", offsetof(struct opengl_funcs, p_glImportSemaphoreWin32NameEXT) }, - { "glImportSyncEXT", "GL_EXT_x11_sync_object\0", offsetof(struct opengl_funcs, p_glImportSyncEXT) }, - { "glIndexFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glIndexFormatNV) }, - { "glIndexFuncEXT", "GL_EXT_index_func\0", offsetof(struct opengl_funcs, p_glIndexFuncEXT) }, - { "glIndexMaterialEXT", "GL_EXT_index_material\0", offsetof(struct opengl_funcs, p_glIndexMaterialEXT) }, - { "glIndexPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glIndexPointerEXT) }, - { "glIndexPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glIndexPointerListIBM) }, - { "glIndexxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glIndexxOES) }, - { "glIndexxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glIndexxvOES) }, - { "glInsertComponentEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glInsertComponentEXT) }, - { "glInsertEventMarkerEXT", "GL_EXT_debug_marker\0", offsetof(struct opengl_funcs, p_glInsertEventMarkerEXT) }, - { "glInstrumentsBufferSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glInstrumentsBufferSGIX) }, - { "glInterpolatePathsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glInterpolatePathsNV) }, - { "glInvalidateBufferData", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateBufferData) }, - { "glInvalidateBufferSubData", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateBufferSubData) }, - { "glInvalidateFramebuffer", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateFramebuffer) }, - { "glInvalidateNamedFramebufferData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glInvalidateNamedFramebufferData) }, - { "glInvalidateNamedFramebufferSubData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glInvalidateNamedFramebufferSubData) }, - { "glInvalidateSubFramebuffer", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateSubFramebuffer) }, - { "glInvalidateTexImage", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateTexImage) }, - { "glInvalidateTexSubImage", "GL_ARB_invalidate_subdata\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glInvalidateTexSubImage) }, - { "glIsAsyncMarkerSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glIsAsyncMarkerSGIX) }, - { "glIsBuffer", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glIsBuffer) }, - { "glIsBufferARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glIsBufferARB) }, - { "glIsBufferResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glIsBufferResidentNV) }, - { "glIsCommandListNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glIsCommandListNV) }, - { "glIsEnabledIndexedEXT", "GL_EXT_direct_state_access\0GL_EXT_draw_buffers2\0", offsetof(struct opengl_funcs, p_glIsEnabledIndexedEXT) }, - { "glIsEnabledi", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glIsEnabledi) }, - { "glIsFenceAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glIsFenceAPPLE) }, - { "glIsFenceNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glIsFenceNV) }, - { "glIsFramebuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glIsFramebuffer) }, - { "glIsFramebufferEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glIsFramebufferEXT) }, - { "glIsImageHandleResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glIsImageHandleResidentARB) }, - { "glIsImageHandleResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glIsImageHandleResidentNV) }, - { "glIsMemoryObjectEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glIsMemoryObjectEXT) }, - { "glIsNameAMD", "GL_AMD_name_gen_delete\0", offsetof(struct opengl_funcs, p_glIsNameAMD) }, - { "glIsNamedBufferResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glIsNamedBufferResidentNV) }, - { "glIsNamedStringARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glIsNamedStringARB) }, - { "glIsObjectBufferATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glIsObjectBufferATI) }, - { "glIsOcclusionQueryNV", "GL_NV_occlusion_query\0", offsetof(struct opengl_funcs, p_glIsOcclusionQueryNV) }, - { "glIsPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glIsPathNV) }, - { "glIsPointInFillPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glIsPointInFillPathNV) }, - { "glIsPointInStrokePathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glIsPointInStrokePathNV) }, - { "glIsProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glIsProgram) }, - { "glIsProgramARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glIsProgramARB) }, - { "glIsProgramNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glIsProgramNV) }, - { "glIsProgramPipeline", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glIsProgramPipeline) }, - { "glIsQuery", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glIsQuery) }, - { "glIsQueryARB", "GL_ARB_occlusion_query\0", offsetof(struct opengl_funcs, p_glIsQueryARB) }, - { "glIsRenderbuffer", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glIsRenderbuffer) }, - { "glIsRenderbufferEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glIsRenderbufferEXT) }, - { "glIsSampler", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glIsSampler) }, - { "glIsSemaphoreEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glIsSemaphoreEXT) }, - { "glIsShader", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glIsShader) }, - { "glIsStateNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glIsStateNV) }, - { "glIsSync", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glIsSync) }, - { "glIsTextureEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glIsTextureEXT) }, - { "glIsTextureHandleResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glIsTextureHandleResidentARB) }, - { "glIsTextureHandleResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glIsTextureHandleResidentNV) }, - { "glIsTransformFeedback", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glIsTransformFeedback) }, - { "glIsTransformFeedbackNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glIsTransformFeedbackNV) }, - { "glIsVariantEnabledEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glIsVariantEnabledEXT) }, - { "glIsVertexArray", "GL_ARB_vertex_array_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glIsVertexArray) }, - { "glIsVertexArrayAPPLE", "GL_APPLE_vertex_array_object\0", offsetof(struct opengl_funcs, p_glIsVertexArrayAPPLE) }, - { "glIsVertexAttribEnabledAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glIsVertexAttribEnabledAPPLE) }, - { "glLGPUCopyImageSubDataNVX", "GL_NVX_linked_gpu_multicast\0", offsetof(struct opengl_funcs, p_glLGPUCopyImageSubDataNVX) }, - { "glLGPUInterlockNVX", "GL_NVX_linked_gpu_multicast\0", offsetof(struct opengl_funcs, p_glLGPUInterlockNVX) }, - { "glLGPUNamedBufferSubDataNVX", "GL_NVX_linked_gpu_multicast\0", offsetof(struct opengl_funcs, p_glLGPUNamedBufferSubDataNVX) }, - { "glLabelObjectEXT", "GL_EXT_debug_label\0", offsetof(struct opengl_funcs, p_glLabelObjectEXT) }, - { "glLightEnviSGIX", "GL_SGIX_fragment_lighting\0", offsetof(struct opengl_funcs, p_glLightEnviSGIX) }, - { "glLightModelx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLightModelx) }, - { "glLightModelxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLightModelxOES) }, - { "glLightModelxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLightModelxv) }, - { "glLightModelxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLightModelxvOES) }, - { "glLightx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLightx) }, - { "glLightxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLightxOES) }, - { "glLightxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLightxv) }, - { "glLightxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLightxvOES) }, - { "glLineWidthx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLineWidthx) }, - { "glLineWidthxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLineWidthxOES) }, - { "glLinkProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glLinkProgram) }, - { "glLinkProgramARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glLinkProgramARB) }, - { "glListDrawCommandsStatesClientNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glListDrawCommandsStatesClientNV) }, - { "glListParameterfSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glListParameterfSGIX) }, - { "glListParameterfvSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glListParameterfvSGIX) }, - { "glListParameteriSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glListParameteriSGIX) }, - { "glListParameterivSGIX", "GL_SGIX_list_priority\0", offsetof(struct opengl_funcs, p_glListParameterivSGIX) }, - { "glLoadIdentityDeformationMapSGIX", "GL_SGIX_polynomial_ffd\0", offsetof(struct opengl_funcs, p_glLoadIdentityDeformationMapSGIX) }, - { "glLoadMatrixx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glLoadMatrixx) }, - { "glLoadMatrixxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLoadMatrixxOES) }, - { "glLoadProgramNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glLoadProgramNV) }, - { "glLoadTransposeMatrixd", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glLoadTransposeMatrixd) }, - { "glLoadTransposeMatrixdARB", "GL_ARB_transpose_matrix\0", offsetof(struct opengl_funcs, p_glLoadTransposeMatrixdARB) }, - { "glLoadTransposeMatrixf", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glLoadTransposeMatrixf) }, - { "glLoadTransposeMatrixfARB", "GL_ARB_transpose_matrix\0", offsetof(struct opengl_funcs, p_glLoadTransposeMatrixfARB) }, - { "glLoadTransposeMatrixxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glLoadTransposeMatrixxOES) }, - { "glLockArraysEXT", "GL_EXT_compiled_vertex_array\0", offsetof(struct opengl_funcs, p_glLockArraysEXT) }, - { "glMTexCoord2fSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMTexCoord2fSGIS) }, - { "glMTexCoord2fvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMTexCoord2fvSGIS) }, - { "glMakeBufferNonResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glMakeBufferNonResidentNV) }, - { "glMakeBufferResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glMakeBufferResidentNV) }, - { "glMakeImageHandleNonResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeImageHandleNonResidentARB) }, - { "glMakeImageHandleNonResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeImageHandleNonResidentNV) }, - { "glMakeImageHandleResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeImageHandleResidentARB) }, - { "glMakeImageHandleResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeImageHandleResidentNV) }, - { "glMakeNamedBufferNonResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glMakeNamedBufferNonResidentNV) }, - { "glMakeNamedBufferResidentNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glMakeNamedBufferResidentNV) }, - { "glMakeTextureHandleNonResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeTextureHandleNonResidentARB) }, - { "glMakeTextureHandleNonResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeTextureHandleNonResidentNV) }, - { "glMakeTextureHandleResidentARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeTextureHandleResidentARB) }, - { "glMakeTextureHandleResidentNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glMakeTextureHandleResidentNV) }, - { "glMap1xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMap1xOES) }, - { "glMap2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMap2xOES) }, - { "glMapBuffer", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glMapBuffer) }, - { "glMapBufferARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glMapBufferARB) }, - { "glMapBufferRange", "GL_ARB_map_buffer_range\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glMapBufferRange) }, - { "glMapControlPointsNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glMapControlPointsNV) }, - { "glMapGrid1xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMapGrid1xOES) }, - { "glMapGrid2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMapGrid2xOES) }, - { "glMapNamedBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glMapNamedBuffer) }, - { "glMapNamedBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMapNamedBufferEXT) }, - { "glMapNamedBufferRange", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glMapNamedBufferRange) }, - { "glMapNamedBufferRangeEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMapNamedBufferRangeEXT) }, - { "glMapObjectBufferATI", "GL_ATI_map_object_buffer\0", offsetof(struct opengl_funcs, p_glMapObjectBufferATI) }, - { "glMapParameterfvNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glMapParameterfvNV) }, - { "glMapParameterivNV", "GL_NV_evaluators\0", offsetof(struct opengl_funcs, p_glMapParameterivNV) }, - { "glMapTexture2DINTEL", "GL_INTEL_map_texture\0", offsetof(struct opengl_funcs, p_glMapTexture2DINTEL) }, - { "glMapVertexAttrib1dAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glMapVertexAttrib1dAPPLE) }, - { "glMapVertexAttrib1fAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glMapVertexAttrib1fAPPLE) }, - { "glMapVertexAttrib2dAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glMapVertexAttrib2dAPPLE) }, - { "glMapVertexAttrib2fAPPLE", "GL_APPLE_vertex_program_evaluators\0", offsetof(struct opengl_funcs, p_glMapVertexAttrib2fAPPLE) }, - { "glMaterialx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glMaterialx) }, - { "glMaterialxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMaterialxOES) }, - { "glMaterialxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glMaterialxv) }, - { "glMaterialxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMaterialxvOES) }, - { "glMatrixFrustumEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixFrustumEXT) }, - { "glMatrixIndexPointerARB", "GL_ARB_matrix_palette\0", offsetof(struct opengl_funcs, p_glMatrixIndexPointerARB) }, - { "glMatrixIndexubvARB", "GL_ARB_matrix_palette\0", offsetof(struct opengl_funcs, p_glMatrixIndexubvARB) }, - { "glMatrixIndexuivARB", "GL_ARB_matrix_palette\0", offsetof(struct opengl_funcs, p_glMatrixIndexuivARB) }, - { "glMatrixIndexusvARB", "GL_ARB_matrix_palette\0", offsetof(struct opengl_funcs, p_glMatrixIndexusvARB) }, - { "glMatrixLoad3x2fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoad3x2fNV) }, - { "glMatrixLoad3x3fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoad3x3fNV) }, - { "glMatrixLoadIdentityEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoadIdentityEXT) }, - { "glMatrixLoadTranspose3x3fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoadTranspose3x3fNV) }, - { "glMatrixLoadTransposedEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoadTransposedEXT) }, - { "glMatrixLoadTransposefEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoadTransposefEXT) }, - { "glMatrixLoaddEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoaddEXT) }, - { "glMatrixLoadfEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixLoadfEXT) }, - { "glMatrixMult3x2fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMult3x2fNV) }, - { "glMatrixMult3x3fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMult3x3fNV) }, - { "glMatrixMultTranspose3x3fNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMultTranspose3x3fNV) }, - { "glMatrixMultTransposedEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMultTransposedEXT) }, - { "glMatrixMultTransposefEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMultTransposefEXT) }, - { "glMatrixMultdEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMultdEXT) }, - { "glMatrixMultfEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixMultfEXT) }, - { "glMatrixOrthoEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixOrthoEXT) }, - { "glMatrixPopEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixPopEXT) }, - { "glMatrixPushEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixPushEXT) }, - { "glMatrixRotatedEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixRotatedEXT) }, - { "glMatrixRotatefEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixRotatefEXT) }, - { "glMatrixScaledEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixScaledEXT) }, - { "glMatrixScalefEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixScalefEXT) }, - { "glMatrixTranslatedEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixTranslatedEXT) }, - { "glMatrixTranslatefEXT", "GL_EXT_direct_state_access\0GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glMatrixTranslatefEXT) }, - { "glMaxShaderCompilerThreadsARB", "GL_ARB_parallel_shader_compile\0", offsetof(struct opengl_funcs, p_glMaxShaderCompilerThreadsARB) }, - { "glMaxShaderCompilerThreadsKHR", "GL_KHR_parallel_shader_compile\0", offsetof(struct opengl_funcs, p_glMaxShaderCompilerThreadsKHR) }, - { "glMemoryBarrier", "GL_ARB_shader_image_load_store\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glMemoryBarrier) }, - { "glMemoryBarrierByRegion", "GL_ARB_ES3_1_compatibility\0GL_NV_ES3_1_compatibility\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glMemoryBarrierByRegion) }, - { "glMemoryBarrierEXT", "GL_EXT_shader_image_load_store\0", offsetof(struct opengl_funcs, p_glMemoryBarrierEXT) }, - { "glMemoryObjectParameterivEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glMemoryObjectParameterivEXT) }, - { "glMinSampleShading", "GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glMinSampleShading) }, - { "glMinSampleShadingARB", "GL_ARB_sample_shading\0", offsetof(struct opengl_funcs, p_glMinSampleShadingARB) }, - { "glMinmax", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glMinmax) }, - { "glMinmaxEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glMinmaxEXT) }, - { "glMultMatrixx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glMultMatrixx) }, - { "glMultMatrixxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultMatrixxOES) }, - { "glMultTransposeMatrixd", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultTransposeMatrixd) }, - { "glMultTransposeMatrixdARB", "GL_ARB_transpose_matrix\0", offsetof(struct opengl_funcs, p_glMultTransposeMatrixdARB) }, - { "glMultTransposeMatrixf", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultTransposeMatrixf) }, - { "glMultTransposeMatrixfARB", "GL_ARB_transpose_matrix\0", offsetof(struct opengl_funcs, p_glMultTransposeMatrixfARB) }, - { "glMultTransposeMatrixxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultTransposeMatrixxOES) }, - { "glMultiDrawArrays", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glMultiDrawArrays) }, - { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays\0GL_SUN_multi_draw_arrays\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysEXT) }, - { "glMultiDrawArraysIndirect", "GL_ARB_multi_draw_indirect\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirect) }, - { "glMultiDrawArraysIndirectAMD", "GL_AMD_multi_draw_indirect\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectAMD) }, - { "glMultiDrawArraysIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectBindlessCountNV) }, - { "glMultiDrawArraysIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectBindlessNV) }, - { "glMultiDrawArraysIndirectCount", "GL_VERSION_4_6\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectCount) }, - { "glMultiDrawArraysIndirectCountARB", "GL_ARB_indirect_parameters\0", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectCountARB) }, - { "glMultiDrawElementArrayAPPLE", "GL_APPLE_element_array\0", offsetof(struct opengl_funcs, p_glMultiDrawElementArrayAPPLE) }, - { "glMultiDrawElements", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glMultiDrawElements) }, - { "glMultiDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsBaseVertex) }, - { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays\0GL_SUN_multi_draw_arrays\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsEXT) }, - { "glMultiDrawElementsIndirect", "GL_ARB_multi_draw_indirect\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirect) }, - { "glMultiDrawElementsIndirectAMD", "GL_AMD_multi_draw_indirect\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectAMD) }, - { "glMultiDrawElementsIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectBindlessCountNV) }, - { "glMultiDrawElementsIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectBindlessNV) }, - { "glMultiDrawElementsIndirectCount", "GL_VERSION_4_6\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectCount) }, - { "glMultiDrawElementsIndirectCountARB", "GL_ARB_indirect_parameters\0", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectCountARB) }, - { "glMultiDrawMeshTasksIndirectCountEXT", "GL_EXT_mesh_shader\0", offsetof(struct opengl_funcs, p_glMultiDrawMeshTasksIndirectCountEXT) }, - { "glMultiDrawMeshTasksIndirectCountNV", "GL_NV_mesh_shader\0", offsetof(struct opengl_funcs, p_glMultiDrawMeshTasksIndirectCountNV) }, - { "glMultiDrawMeshTasksIndirectEXT", "GL_EXT_mesh_shader\0", offsetof(struct opengl_funcs, p_glMultiDrawMeshTasksIndirectEXT) }, - { "glMultiDrawMeshTasksIndirectNV", "GL_NV_mesh_shader\0", offsetof(struct opengl_funcs, p_glMultiDrawMeshTasksIndirectNV) }, - { "glMultiDrawRangeElementArrayAPPLE", "GL_APPLE_element_array\0", offsetof(struct opengl_funcs, p_glMultiDrawRangeElementArrayAPPLE) }, - { "glMultiModeDrawArraysIBM", "GL_IBM_multimode_draw_arrays\0", offsetof(struct opengl_funcs, p_glMultiModeDrawArraysIBM) }, - { "glMultiModeDrawElementsIBM", "GL_IBM_multimode_draw_arrays\0", offsetof(struct opengl_funcs, p_glMultiModeDrawElementsIBM) }, - { "glMultiTexBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexBufferEXT) }, - { "glMultiTexCoord1bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1bOES) }, - { "glMultiTexCoord1bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1bvOES) }, - { "glMultiTexCoord1d", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1d) }, - { "glMultiTexCoord1dARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1dARB) }, - { "glMultiTexCoord1dSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1dSGIS) }, - { "glMultiTexCoord1dv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1dv) }, - { "glMultiTexCoord1dvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1dvARB) }, - { "glMultiTexCoord1dvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1dvSGIS) }, - { "glMultiTexCoord1f", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1f) }, - { "glMultiTexCoord1fARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1fARB) }, - { "glMultiTexCoord1fSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1fSGIS) }, - { "glMultiTexCoord1fv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1fv) }, - { "glMultiTexCoord1fvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1fvARB) }, - { "glMultiTexCoord1fvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1fvSGIS) }, - { "glMultiTexCoord1hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1hNV) }, - { "glMultiTexCoord1hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1hvNV) }, - { "glMultiTexCoord1i", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1i) }, - { "glMultiTexCoord1iARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1iARB) }, - { "glMultiTexCoord1iSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1iSGIS) }, - { "glMultiTexCoord1iv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1iv) }, - { "glMultiTexCoord1ivARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1ivARB) }, - { "glMultiTexCoord1ivSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1ivSGIS) }, - { "glMultiTexCoord1s", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1s) }, - { "glMultiTexCoord1sARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1sARB) }, - { "glMultiTexCoord1sSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1sSGIS) }, - { "glMultiTexCoord1sv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1sv) }, - { "glMultiTexCoord1svARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1svARB) }, - { "glMultiTexCoord1svSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1svSGIS) }, - { "glMultiTexCoord1xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1xOES) }, - { "glMultiTexCoord1xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord1xvOES) }, - { "glMultiTexCoord2bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2bOES) }, - { "glMultiTexCoord2bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2bvOES) }, - { "glMultiTexCoord2d", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2d) }, - { "glMultiTexCoord2dARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2dARB) }, - { "glMultiTexCoord2dSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2dSGIS) }, - { "glMultiTexCoord2dv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2dv) }, - { "glMultiTexCoord2dvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2dvARB) }, - { "glMultiTexCoord2dvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2dvSGIS) }, - { "glMultiTexCoord2f", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2f) }, - { "glMultiTexCoord2fARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2fARB) }, - { "glMultiTexCoord2fSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2fSGIS) }, - { "glMultiTexCoord2fv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2fv) }, - { "glMultiTexCoord2fvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2fvARB) }, - { "glMultiTexCoord2fvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2fvSGIS) }, - { "glMultiTexCoord2hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2hNV) }, - { "glMultiTexCoord2hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2hvNV) }, - { "glMultiTexCoord2i", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2i) }, - { "glMultiTexCoord2iARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2iARB) }, - { "glMultiTexCoord2iSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2iSGIS) }, - { "glMultiTexCoord2iv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2iv) }, - { "glMultiTexCoord2ivARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2ivARB) }, - { "glMultiTexCoord2ivSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2ivSGIS) }, - { "glMultiTexCoord2s", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2s) }, - { "glMultiTexCoord2sARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2sARB) }, - { "glMultiTexCoord2sSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2sSGIS) }, - { "glMultiTexCoord2sv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2sv) }, - { "glMultiTexCoord2svARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2svARB) }, - { "glMultiTexCoord2svSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2svSGIS) }, - { "glMultiTexCoord2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2xOES) }, - { "glMultiTexCoord2xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord2xvOES) }, - { "glMultiTexCoord3bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3bOES) }, - { "glMultiTexCoord3bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3bvOES) }, - { "glMultiTexCoord3d", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3d) }, - { "glMultiTexCoord3dARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3dARB) }, - { "glMultiTexCoord3dSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3dSGIS) }, - { "glMultiTexCoord3dv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3dv) }, - { "glMultiTexCoord3dvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3dvARB) }, - { "glMultiTexCoord3dvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3dvSGIS) }, - { "glMultiTexCoord3f", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3f) }, - { "glMultiTexCoord3fARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3fARB) }, - { "glMultiTexCoord3fSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3fSGIS) }, - { "glMultiTexCoord3fv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3fv) }, - { "glMultiTexCoord3fvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3fvARB) }, - { "glMultiTexCoord3fvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3fvSGIS) }, - { "glMultiTexCoord3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3hNV) }, - { "glMultiTexCoord3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3hvNV) }, - { "glMultiTexCoord3i", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3i) }, - { "glMultiTexCoord3iARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3iARB) }, - { "glMultiTexCoord3iSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3iSGIS) }, - { "glMultiTexCoord3iv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3iv) }, - { "glMultiTexCoord3ivARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3ivARB) }, - { "glMultiTexCoord3ivSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3ivSGIS) }, - { "glMultiTexCoord3s", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3s) }, - { "glMultiTexCoord3sARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3sARB) }, - { "glMultiTexCoord3sSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3sSGIS) }, - { "glMultiTexCoord3sv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3sv) }, - { "glMultiTexCoord3svARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3svARB) }, - { "glMultiTexCoord3svSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3svSGIS) }, - { "glMultiTexCoord3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3xOES) }, - { "glMultiTexCoord3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord3xvOES) }, - { "glMultiTexCoord4bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4bOES) }, - { "glMultiTexCoord4bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4bvOES) }, - { "glMultiTexCoord4d", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4d) }, - { "glMultiTexCoord4dARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4dARB) }, - { "glMultiTexCoord4dSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4dSGIS) }, - { "glMultiTexCoord4dv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4dv) }, - { "glMultiTexCoord4dvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4dvARB) }, - { "glMultiTexCoord4dvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4dvSGIS) }, - { "glMultiTexCoord4f", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4f) }, - { "glMultiTexCoord4fARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4fARB) }, - { "glMultiTexCoord4fSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4fSGIS) }, - { "glMultiTexCoord4fv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4fv) }, - { "glMultiTexCoord4fvARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4fvARB) }, - { "glMultiTexCoord4fvSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4fvSGIS) }, - { "glMultiTexCoord4hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4hNV) }, - { "glMultiTexCoord4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4hvNV) }, - { "glMultiTexCoord4i", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4i) }, - { "glMultiTexCoord4iARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4iARB) }, - { "glMultiTexCoord4iSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4iSGIS) }, - { "glMultiTexCoord4iv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4iv) }, - { "glMultiTexCoord4ivARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4ivARB) }, - { "glMultiTexCoord4ivSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4ivSGIS) }, - { "glMultiTexCoord4s", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4s) }, - { "glMultiTexCoord4sARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4sARB) }, - { "glMultiTexCoord4sSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4sSGIS) }, - { "glMultiTexCoord4sv", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4sv) }, - { "glMultiTexCoord4svARB", "GL_ARB_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4svARB) }, - { "glMultiTexCoord4svSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4svSGIS) }, - { "glMultiTexCoord4x", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4x) }, - { "glMultiTexCoord4xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4xOES) }, - { "glMultiTexCoord4xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glMultiTexCoord4xvOES) }, - { "glMultiTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP1ui) }, - { "glMultiTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP1uiv) }, - { "glMultiTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP2ui) }, - { "glMultiTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP2uiv) }, - { "glMultiTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP3ui) }, - { "glMultiTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP3uiv) }, - { "glMultiTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP4ui) }, - { "glMultiTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glMultiTexCoordP4uiv) }, - { "glMultiTexCoordPointerEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexCoordPointerEXT) }, - { "glMultiTexCoordPointerSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glMultiTexCoordPointerSGIS) }, - { "glMultiTexEnvfEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexEnvfEXT) }, - { "glMultiTexEnvfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexEnvfvEXT) }, - { "glMultiTexEnviEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexEnviEXT) }, - { "glMultiTexEnvivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexEnvivEXT) }, - { "glMultiTexGendEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGendEXT) }, - { "glMultiTexGendvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGendvEXT) }, - { "glMultiTexGenfEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGenfEXT) }, - { "glMultiTexGenfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGenfvEXT) }, - { "glMultiTexGeniEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGeniEXT) }, - { "glMultiTexGenivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexGenivEXT) }, - { "glMultiTexImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexImage1DEXT) }, - { "glMultiTexImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexImage2DEXT) }, - { "glMultiTexImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexImage3DEXT) }, - { "glMultiTexParameterIivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameterIivEXT) }, - { "glMultiTexParameterIuivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameterIuivEXT) }, - { "glMultiTexParameterfEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameterfEXT) }, - { "glMultiTexParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameterfvEXT) }, - { "glMultiTexParameteriEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameteriEXT) }, - { "glMultiTexParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexParameterivEXT) }, - { "glMultiTexRenderbufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexRenderbufferEXT) }, - { "glMultiTexSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexSubImage1DEXT) }, - { "glMultiTexSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexSubImage2DEXT) }, - { "glMultiTexSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glMultiTexSubImage3DEXT) }, - { "glMulticastBarrierNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastBarrierNV) }, - { "glMulticastBlitFramebufferNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastBlitFramebufferNV) }, - { "glMulticastBufferSubDataNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastBufferSubDataNV) }, - { "glMulticastCopyBufferSubDataNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastCopyBufferSubDataNV) }, - { "glMulticastCopyImageSubDataNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastCopyImageSubDataNV) }, - { "glMulticastFramebufferSampleLocationsfvNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastFramebufferSampleLocationsfvNV) }, - { "glMulticastGetQueryObjecti64vNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastGetQueryObjecti64vNV) }, - { "glMulticastGetQueryObjectivNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastGetQueryObjectivNV) }, - { "glMulticastGetQueryObjectui64vNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastGetQueryObjectui64vNV) }, - { "glMulticastGetQueryObjectuivNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastGetQueryObjectuivNV) }, - { "glMulticastScissorArrayvNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glMulticastScissorArrayvNVX) }, - { "glMulticastViewportArrayvNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glMulticastViewportArrayvNVX) }, - { "glMulticastViewportPositionWScaleNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glMulticastViewportPositionWScaleNVX) }, - { "glMulticastWaitSyncNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glMulticastWaitSyncNV) }, - { "glNamedBufferAttachMemoryNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glNamedBufferAttachMemoryNV) }, - { "glNamedBufferData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedBufferData) }, - { "glNamedBufferDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedBufferDataEXT) }, - { "glNamedBufferPageCommitmentARB", "GL_ARB_sparse_buffer\0", offsetof(struct opengl_funcs, p_glNamedBufferPageCommitmentARB) }, - { "glNamedBufferPageCommitmentEXT", "GL_ARB_sparse_buffer\0", offsetof(struct opengl_funcs, p_glNamedBufferPageCommitmentEXT) }, - { "glNamedBufferPageCommitmentMemNV", "GL_NV_memory_object_sparse\0", offsetof(struct opengl_funcs, p_glNamedBufferPageCommitmentMemNV) }, - { "glNamedBufferStorage", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedBufferStorage) }, - { "glNamedBufferStorageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedBufferStorageEXT) }, - { "glNamedBufferStorageExternalEXT", "GL_EXT_external_buffer\0", offsetof(struct opengl_funcs, p_glNamedBufferStorageExternalEXT) }, - { "glNamedBufferStorageMemEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glNamedBufferStorageMemEXT) }, - { "glNamedBufferSubData", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedBufferSubData) }, - { "glNamedBufferSubDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedBufferSubDataEXT) }, - { "glNamedCopyBufferSubDataEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedCopyBufferSubDataEXT) }, - { "glNamedFramebufferDrawBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferDrawBuffer) }, - { "glNamedFramebufferDrawBuffers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferDrawBuffers) }, - { "glNamedFramebufferParameteri", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferParameteri) }, - { "glNamedFramebufferParameteriEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferParameteriEXT) }, - { "glNamedFramebufferReadBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferReadBuffer) }, - { "glNamedFramebufferRenderbuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferRenderbuffer) }, - { "glNamedFramebufferRenderbufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferRenderbufferEXT) }, - { "glNamedFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations\0", offsetof(struct opengl_funcs, p_glNamedFramebufferSampleLocationsfvARB) }, - { "glNamedFramebufferSampleLocationsfvNV", "GL_NV_sample_locations\0", offsetof(struct opengl_funcs, p_glNamedFramebufferSampleLocationsfvNV) }, - { "glNamedFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions\0", offsetof(struct opengl_funcs, p_glNamedFramebufferSamplePositionsfvAMD) }, - { "glNamedFramebufferTexture", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTexture) }, - { "glNamedFramebufferTexture1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTexture1DEXT) }, - { "glNamedFramebufferTexture2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTexture2DEXT) }, - { "glNamedFramebufferTexture3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTexture3DEXT) }, - { "glNamedFramebufferTextureEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTextureEXT) }, - { "glNamedFramebufferTextureFaceEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTextureFaceEXT) }, - { "glNamedFramebufferTextureLayer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTextureLayer) }, - { "glNamedFramebufferTextureLayerEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTextureLayerEXT) }, - { "glNamedFramebufferTextureMultiviewOVR", "GL_OVR_multiview\0", offsetof(struct opengl_funcs, p_glNamedFramebufferTextureMultiviewOVR) }, - { "glNamedProgramLocalParameter4dEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameter4dEXT) }, - { "glNamedProgramLocalParameter4dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameter4dvEXT) }, - { "glNamedProgramLocalParameter4fEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameter4fEXT) }, - { "glNamedProgramLocalParameter4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameter4fvEXT) }, - { "glNamedProgramLocalParameterI4iEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameterI4iEXT) }, - { "glNamedProgramLocalParameterI4ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameterI4ivEXT) }, - { "glNamedProgramLocalParameterI4uiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameterI4uiEXT) }, - { "glNamedProgramLocalParameterI4uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameterI4uivEXT) }, - { "glNamedProgramLocalParameters4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParameters4fvEXT) }, - { "glNamedProgramLocalParametersI4ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParametersI4ivEXT) }, - { "glNamedProgramLocalParametersI4uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramLocalParametersI4uivEXT) }, - { "glNamedProgramStringEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedProgramStringEXT) }, - { "glNamedRenderbufferStorage", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorage) }, - { "glNamedRenderbufferStorageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorageEXT) }, - { "glNamedRenderbufferStorageMultisample", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorageMultisample) }, - { "glNamedRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorageMultisampleAdvancedAMD) }, - { "glNamedRenderbufferStorageMultisampleCoverageEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorageMultisampleCoverageEXT) }, - { "glNamedRenderbufferStorageMultisampleEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glNamedRenderbufferStorageMultisampleEXT) }, - { "glNamedStringARB", "GL_ARB_shading_language_include\0", offsetof(struct opengl_funcs, p_glNamedStringARB) }, - { "glNewBufferRegion", "GL_KTX_buffer_region\0", offsetof(struct opengl_funcs, p_glNewBufferRegion) }, - { "glNewObjectBufferATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glNewObjectBufferATI) }, - { "glNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glNormal3fVertex3fSUN) }, - { "glNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glNormal3fVertex3fvSUN) }, - { "glNormal3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glNormal3hNV) }, - { "glNormal3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glNormal3hvNV) }, - { "glNormal3x", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glNormal3x) }, - { "glNormal3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glNormal3xOES) }, - { "glNormal3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glNormal3xvOES) }, - { "glNormalFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glNormalFormatNV) }, - { "glNormalP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glNormalP3ui) }, - { "glNormalP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glNormalP3uiv) }, - { "glNormalPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glNormalPointerEXT) }, - { "glNormalPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glNormalPointerListIBM) }, - { "glNormalPointervINTEL", "GL_INTEL_parallel_arrays\0", offsetof(struct opengl_funcs, p_glNormalPointervINTEL) }, - { "glNormalStream3bATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3bATI) }, - { "glNormalStream3bvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3bvATI) }, - { "glNormalStream3dATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3dATI) }, - { "glNormalStream3dvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3dvATI) }, - { "glNormalStream3fATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3fATI) }, - { "glNormalStream3fvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3fvATI) }, - { "glNormalStream3iATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3iATI) }, - { "glNormalStream3ivATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3ivATI) }, - { "glNormalStream3sATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3sATI) }, - { "glNormalStream3svATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glNormalStream3svATI) }, - { "glObjectLabel", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glObjectLabel) }, - { "glObjectPtrLabel", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glObjectPtrLabel) }, - { "glObjectPurgeableAPPLE", "GL_APPLE_object_purgeable\0", offsetof(struct opengl_funcs, p_glObjectPurgeableAPPLE) }, - { "glObjectUnpurgeableAPPLE", "GL_APPLE_object_purgeable\0", offsetof(struct opengl_funcs, p_glObjectUnpurgeableAPPLE) }, - { "glOrthof", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glOrthof) }, - { "glOrthofOES", "GL_OES_single_precision\0", offsetof(struct opengl_funcs, p_glOrthofOES) }, - { "glOrthox", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glOrthox) }, - { "glOrthoxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glOrthoxOES) }, - { "glPNTrianglesfATI", "GL_ATI_pn_triangles\0", offsetof(struct opengl_funcs, p_glPNTrianglesfATI) }, - { "glPNTrianglesiATI", "GL_ATI_pn_triangles\0", offsetof(struct opengl_funcs, p_glPNTrianglesiATI) }, - { "glPassTexCoordATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glPassTexCoordATI) }, - { "glPassThroughxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPassThroughxOES) }, - { "glPatchParameterfv", "GL_ARB_tessellation_shader\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glPatchParameterfv) }, - { "glPatchParameteri", "GL_ARB_tessellation_shader\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glPatchParameteri) }, - { "glPathColorGenNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathColorGenNV) }, - { "glPathCommandsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathCommandsNV) }, - { "glPathCoordsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathCoordsNV) }, - { "glPathCoverDepthFuncNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathCoverDepthFuncNV) }, - { "glPathDashArrayNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathDashArrayNV) }, - { "glPathFogGenNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathFogGenNV) }, - { "glPathGlyphIndexArrayNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathGlyphIndexArrayNV) }, - { "glPathGlyphIndexRangeNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathGlyphIndexRangeNV) }, - { "glPathGlyphRangeNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathGlyphRangeNV) }, - { "glPathGlyphsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathGlyphsNV) }, - { "glPathMemoryGlyphIndexArrayNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathMemoryGlyphIndexArrayNV) }, - { "glPathParameterfNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathParameterfNV) }, - { "glPathParameterfvNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathParameterfvNV) }, - { "glPathParameteriNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathParameteriNV) }, - { "glPathParameterivNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathParameterivNV) }, - { "glPathStencilDepthOffsetNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathStencilDepthOffsetNV) }, - { "glPathStencilFuncNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathStencilFuncNV) }, - { "glPathStringNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathStringNV) }, - { "glPathSubCommandsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathSubCommandsNV) }, - { "glPathSubCoordsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathSubCoordsNV) }, - { "glPathTexGenNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPathTexGenNV) }, - { "glPauseTransformFeedback", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glPauseTransformFeedback) }, - { "glPauseTransformFeedbackNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glPauseTransformFeedbackNV) }, - { "glPixelDataRangeNV", "GL_NV_pixel_data_range\0", offsetof(struct opengl_funcs, p_glPixelDataRangeNV) }, - { "glPixelMapx", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPixelMapx) }, - { "glPixelStorex", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPixelStorex) }, - { "glPixelTexGenParameterfSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glPixelTexGenParameterfSGIS) }, - { "glPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glPixelTexGenParameterfvSGIS) }, - { "glPixelTexGenParameteriSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glPixelTexGenParameteriSGIS) }, - { "glPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture\0", offsetof(struct opengl_funcs, p_glPixelTexGenParameterivSGIS) }, - { "glPixelTexGenSGIX", "GL_SGIX_pixel_texture\0", offsetof(struct opengl_funcs, p_glPixelTexGenSGIX) }, - { "glPixelTransferxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPixelTransferxOES) }, - { "glPixelTransformParameterfEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glPixelTransformParameterfEXT) }, - { "glPixelTransformParameterfvEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glPixelTransformParameterfvEXT) }, - { "glPixelTransformParameteriEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glPixelTransformParameteriEXT) }, - { "glPixelTransformParameterivEXT", "GL_EXT_pixel_transform\0", offsetof(struct opengl_funcs, p_glPixelTransformParameterivEXT) }, - { "glPixelZoomxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPixelZoomxOES) }, - { "glPointAlongPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glPointAlongPathNV) }, - { "glPointParameterf", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glPointParameterf) }, - { "glPointParameterfARB", "GL_ARB_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfARB) }, - { "glPointParameterfEXT", "GL_EXT_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfEXT) }, - { "glPointParameterfSGIS", "GL_SGIS_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfSGIS) }, - { "glPointParameterfv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glPointParameterfv) }, - { "glPointParameterfvARB", "GL_ARB_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfvARB) }, - { "glPointParameterfvEXT", "GL_EXT_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfvEXT) }, - { "glPointParameterfvSGIS", "GL_SGIS_point_parameters\0", offsetof(struct opengl_funcs, p_glPointParameterfvSGIS) }, - { "glPointParameteri", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glPointParameteri) }, - { "glPointParameteriNV", "GL_NV_point_sprite\0", offsetof(struct opengl_funcs, p_glPointParameteriNV) }, - { "glPointParameteriv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glPointParameteriv) }, - { "glPointParameterivNV", "GL_NV_point_sprite\0", offsetof(struct opengl_funcs, p_glPointParameterivNV) }, - { "glPointParameterx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glPointParameterx) }, - { "glPointParameterxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glPointParameterxv) }, - { "glPointParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPointParameterxvOES) }, - { "glPointSizex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glPointSizex) }, - { "glPointSizexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPointSizexOES) }, - { "glPollAsyncSGIX", "GL_SGIX_async\0", offsetof(struct opengl_funcs, p_glPollAsyncSGIX) }, - { "glPollInstrumentsSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glPollInstrumentsSGIX) }, - { "glPolygonOffsetClamp", "GL_ARB_polygon_offset_clamp\0GL_VERSION_4_6\0", offsetof(struct opengl_funcs, p_glPolygonOffsetClamp) }, - { "glPolygonOffsetClampEXT", "GL_EXT_polygon_offset_clamp\0", offsetof(struct opengl_funcs, p_glPolygonOffsetClampEXT) }, - { "glPolygonOffsetEXT", "GL_EXT_polygon_offset\0", offsetof(struct opengl_funcs, p_glPolygonOffsetEXT) }, - { "glPolygonOffsetx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glPolygonOffsetx) }, - { "glPolygonOffsetxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPolygonOffsetxOES) }, - { "glPopDebugGroup", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glPopDebugGroup) }, - { "glPopGroupMarkerEXT", "GL_EXT_debug_marker\0", offsetof(struct opengl_funcs, p_glPopGroupMarkerEXT) }, - { "glPresentFrameDualFillNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glPresentFrameDualFillNV) }, - { "glPresentFrameKeyedNV", "GL_NV_present_video\0", offsetof(struct opengl_funcs, p_glPresentFrameKeyedNV) }, - { "glPrimitiveBoundingBox", "GL_ARB_ES3_2_compatibility\0", offsetof(struct opengl_funcs, p_glPrimitiveBoundingBox) }, - { "glPrimitiveBoundingBoxARB", "GL_ARB_ES3_2_compatibility\0", offsetof(struct opengl_funcs, p_glPrimitiveBoundingBoxARB) }, - { "glPrimitiveRestartIndex", "GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glPrimitiveRestartIndex) }, - { "glPrimitiveRestartIndexNV", "GL_NV_primitive_restart\0", offsetof(struct opengl_funcs, p_glPrimitiveRestartIndexNV) }, - { "glPrimitiveRestartNV", "GL_NV_primitive_restart\0", offsetof(struct opengl_funcs, p_glPrimitiveRestartNV) }, - { "glPrioritizeTexturesEXT", "GL_EXT_texture_object\0", offsetof(struct opengl_funcs, p_glPrioritizeTexturesEXT) }, - { "glPrioritizeTexturesxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glPrioritizeTexturesxOES) }, - { "glProgramBinary", "GL_ARB_get_program_binary\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramBinary) }, - { "glProgramBufferParametersIivNV", "GL_NV_parameter_buffer_object\0", offsetof(struct opengl_funcs, p_glProgramBufferParametersIivNV) }, - { "glProgramBufferParametersIuivNV", "GL_NV_parameter_buffer_object\0", offsetof(struct opengl_funcs, p_glProgramBufferParametersIuivNV) }, - { "glProgramBufferParametersfvNV", "GL_NV_parameter_buffer_object\0", offsetof(struct opengl_funcs, p_glProgramBufferParametersfvNV) }, - { "glProgramEnvParameter4dARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramEnvParameter4dARB) }, - { "glProgramEnvParameter4dvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramEnvParameter4dvARB) }, - { "glProgramEnvParameter4fARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramEnvParameter4fARB) }, - { "glProgramEnvParameter4fvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramEnvParameter4fvARB) }, - { "glProgramEnvParameterI4iNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParameterI4iNV) }, - { "glProgramEnvParameterI4ivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParameterI4ivNV) }, - { "glProgramEnvParameterI4uiNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParameterI4uiNV) }, - { "glProgramEnvParameterI4uivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParameterI4uivNV) }, - { "glProgramEnvParameters4fvEXT", "GL_EXT_gpu_program_parameters\0", offsetof(struct opengl_funcs, p_glProgramEnvParameters4fvEXT) }, - { "glProgramEnvParametersI4ivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParametersI4ivNV) }, - { "glProgramEnvParametersI4uivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramEnvParametersI4uivNV) }, - { "glProgramLocalParameter4dARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramLocalParameter4dARB) }, - { "glProgramLocalParameter4dvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramLocalParameter4dvARB) }, - { "glProgramLocalParameter4fARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramLocalParameter4fARB) }, - { "glProgramLocalParameter4fvARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramLocalParameter4fvARB) }, - { "glProgramLocalParameterI4iNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParameterI4iNV) }, - { "glProgramLocalParameterI4ivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParameterI4ivNV) }, - { "glProgramLocalParameterI4uiNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParameterI4uiNV) }, - { "glProgramLocalParameterI4uivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParameterI4uivNV) }, - { "glProgramLocalParameters4fvEXT", "GL_EXT_gpu_program_parameters\0", offsetof(struct opengl_funcs, p_glProgramLocalParameters4fvEXT) }, - { "glProgramLocalParametersI4ivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParametersI4ivNV) }, - { "glProgramLocalParametersI4uivNV", "GL_NV_gpu_program4\0", offsetof(struct opengl_funcs, p_glProgramLocalParametersI4uivNV) }, - { "glProgramNamedParameter4dNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glProgramNamedParameter4dNV) }, - { "glProgramNamedParameter4dvNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glProgramNamedParameter4dvNV) }, - { "glProgramNamedParameter4fNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glProgramNamedParameter4fNV) }, - { "glProgramNamedParameter4fvNV", "GL_NV_fragment_program\0", offsetof(struct opengl_funcs, p_glProgramNamedParameter4fvNV) }, - { "glProgramParameter4dNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameter4dNV) }, - { "glProgramParameter4dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameter4dvNV) }, - { "glProgramParameter4fNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameter4fNV) }, - { "glProgramParameter4fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameter4fvNV) }, - { "glProgramParameteri", "GL_ARB_get_program_binary\0GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramParameteri) }, - { "glProgramParameteriARB", "GL_ARB_geometry_shader4\0", offsetof(struct opengl_funcs, p_glProgramParameteriARB) }, - { "glProgramParameteriEXT", "GL_EXT_geometry_shader4\0", offsetof(struct opengl_funcs, p_glProgramParameteriEXT) }, - { "glProgramParameters4dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameters4dvNV) }, - { "glProgramParameters4fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramParameters4fvNV) }, - { "glProgramPathFragmentInputGenNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glProgramPathFragmentInputGenNV) }, - { "glProgramStringARB", "GL_ARB_fragment_program\0GL_ARB_vertex_program\0", offsetof(struct opengl_funcs, p_glProgramStringARB) }, - { "glProgramSubroutineParametersuivNV", "GL_NV_gpu_program5\0GL_NV_gpu_program_fp64\0", offsetof(struct opengl_funcs, p_glProgramSubroutineParametersuivNV) }, - { "glProgramUniform1d", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1d) }, - { "glProgramUniform1dEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1dEXT) }, - { "glProgramUniform1dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1dv) }, - { "glProgramUniform1dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1dvEXT) }, - { "glProgramUniform1f", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1f) }, - { "glProgramUniform1fEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1fEXT) }, - { "glProgramUniform1fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1fv) }, - { "glProgramUniform1fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1fvEXT) }, - { "glProgramUniform1i", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1i) }, - { "glProgramUniform1i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform1i64ARB) }, - { "glProgramUniform1i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform1i64NV) }, - { "glProgramUniform1i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform1i64vARB) }, - { "glProgramUniform1i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform1i64vNV) }, - { "glProgramUniform1iEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1iEXT) }, - { "glProgramUniform1iv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1iv) }, - { "glProgramUniform1ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1ivEXT) }, - { "glProgramUniform1ui", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1ui) }, - { "glProgramUniform1ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform1ui64ARB) }, - { "glProgramUniform1ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform1ui64NV) }, - { "glProgramUniform1ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform1ui64vARB) }, - { "glProgramUniform1ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform1ui64vNV) }, - { "glProgramUniform1uiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1uiEXT) }, - { "glProgramUniform1uiv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform1uiv) }, - { "glProgramUniform1uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform1uivEXT) }, - { "glProgramUniform2d", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2d) }, - { "glProgramUniform2dEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2dEXT) }, - { "glProgramUniform2dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2dv) }, - { "glProgramUniform2dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2dvEXT) }, - { "glProgramUniform2f", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2f) }, - { "glProgramUniform2fEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2fEXT) }, - { "glProgramUniform2fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2fv) }, - { "glProgramUniform2fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2fvEXT) }, - { "glProgramUniform2i", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2i) }, - { "glProgramUniform2i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform2i64ARB) }, - { "glProgramUniform2i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform2i64NV) }, - { "glProgramUniform2i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform2i64vARB) }, - { "glProgramUniform2i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform2i64vNV) }, - { "glProgramUniform2iEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2iEXT) }, - { "glProgramUniform2iv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2iv) }, - { "glProgramUniform2ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2ivEXT) }, - { "glProgramUniform2ui", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2ui) }, - { "glProgramUniform2ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform2ui64ARB) }, - { "glProgramUniform2ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform2ui64NV) }, - { "glProgramUniform2ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform2ui64vARB) }, - { "glProgramUniform2ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform2ui64vNV) }, - { "glProgramUniform2uiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2uiEXT) }, - { "glProgramUniform2uiv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform2uiv) }, - { "glProgramUniform2uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform2uivEXT) }, - { "glProgramUniform3d", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3d) }, - { "glProgramUniform3dEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3dEXT) }, - { "glProgramUniform3dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3dv) }, - { "glProgramUniform3dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3dvEXT) }, - { "glProgramUniform3f", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3f) }, - { "glProgramUniform3fEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3fEXT) }, - { "glProgramUniform3fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3fv) }, - { "glProgramUniform3fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3fvEXT) }, - { "glProgramUniform3i", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3i) }, - { "glProgramUniform3i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform3i64ARB) }, - { "glProgramUniform3i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform3i64NV) }, - { "glProgramUniform3i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform3i64vARB) }, - { "glProgramUniform3i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform3i64vNV) }, - { "glProgramUniform3iEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3iEXT) }, - { "glProgramUniform3iv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3iv) }, - { "glProgramUniform3ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3ivEXT) }, - { "glProgramUniform3ui", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3ui) }, - { "glProgramUniform3ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform3ui64ARB) }, - { "glProgramUniform3ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform3ui64NV) }, - { "glProgramUniform3ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform3ui64vARB) }, - { "glProgramUniform3ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform3ui64vNV) }, - { "glProgramUniform3uiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3uiEXT) }, - { "glProgramUniform3uiv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform3uiv) }, - { "glProgramUniform3uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform3uivEXT) }, - { "glProgramUniform4d", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4d) }, - { "glProgramUniform4dEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4dEXT) }, - { "glProgramUniform4dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4dv) }, - { "glProgramUniform4dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4dvEXT) }, - { "glProgramUniform4f", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4f) }, - { "glProgramUniform4fEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4fEXT) }, - { "glProgramUniform4fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4fv) }, - { "glProgramUniform4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4fvEXT) }, - { "glProgramUniform4i", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4i) }, - { "glProgramUniform4i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform4i64ARB) }, - { "glProgramUniform4i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform4i64NV) }, - { "glProgramUniform4i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform4i64vARB) }, - { "glProgramUniform4i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform4i64vNV) }, - { "glProgramUniform4iEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4iEXT) }, - { "glProgramUniform4iv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4iv) }, - { "glProgramUniform4ivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4ivEXT) }, - { "glProgramUniform4ui", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4ui) }, - { "glProgramUniform4ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform4ui64ARB) }, - { "glProgramUniform4ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform4ui64NV) }, - { "glProgramUniform4ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glProgramUniform4ui64vARB) }, - { "glProgramUniform4ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glProgramUniform4ui64vNV) }, - { "glProgramUniform4uiEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4uiEXT) }, - { "glProgramUniform4uiv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniform4uiv) }, - { "glProgramUniform4uivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniform4uivEXT) }, - { "glProgramUniformHandleui64ARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glProgramUniformHandleui64ARB) }, - { "glProgramUniformHandleui64NV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glProgramUniformHandleui64NV) }, - { "glProgramUniformHandleui64vARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glProgramUniformHandleui64vARB) }, - { "glProgramUniformHandleui64vNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glProgramUniformHandleui64vNV) }, - { "glProgramUniformMatrix2dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2dv) }, - { "glProgramUniformMatrix2dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2dvEXT) }, - { "glProgramUniformMatrix2fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2fv) }, - { "glProgramUniformMatrix2fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2fvEXT) }, - { "glProgramUniformMatrix2x3dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x3dv) }, - { "glProgramUniformMatrix2x3dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x3dvEXT) }, - { "glProgramUniformMatrix2x3fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x3fv) }, - { "glProgramUniformMatrix2x3fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x3fvEXT) }, - { "glProgramUniformMatrix2x4dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x4dv) }, - { "glProgramUniformMatrix2x4dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x4dvEXT) }, - { "glProgramUniformMatrix2x4fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x4fv) }, - { "glProgramUniformMatrix2x4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix2x4fvEXT) }, - { "glProgramUniformMatrix3dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3dv) }, - { "glProgramUniformMatrix3dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3dvEXT) }, - { "glProgramUniformMatrix3fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3fv) }, - { "glProgramUniformMatrix3fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3fvEXT) }, - { "glProgramUniformMatrix3x2dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x2dv) }, - { "glProgramUniformMatrix3x2dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x2dvEXT) }, - { "glProgramUniformMatrix3x2fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x2fv) }, - { "glProgramUniformMatrix3x2fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x2fvEXT) }, - { "glProgramUniformMatrix3x4dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x4dv) }, - { "glProgramUniformMatrix3x4dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x4dvEXT) }, - { "glProgramUniformMatrix3x4fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x4fv) }, - { "glProgramUniformMatrix3x4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix3x4fvEXT) }, - { "glProgramUniformMatrix4dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4dv) }, - { "glProgramUniformMatrix4dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4dvEXT) }, - { "glProgramUniformMatrix4fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4fv) }, - { "glProgramUniformMatrix4fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4fvEXT) }, - { "glProgramUniformMatrix4x2dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x2dv) }, - { "glProgramUniformMatrix4x2dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x2dvEXT) }, - { "glProgramUniformMatrix4x2fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x2fv) }, - { "glProgramUniformMatrix4x2fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x2fvEXT) }, - { "glProgramUniformMatrix4x3dv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x3dv) }, - { "glProgramUniformMatrix4x3dvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x3dvEXT) }, - { "glProgramUniformMatrix4x3fv", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x3fv) }, - { "glProgramUniformMatrix4x3fvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glProgramUniformMatrix4x3fvEXT) }, - { "glProgramUniformui64NV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glProgramUniformui64NV) }, - { "glProgramUniformui64vNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glProgramUniformui64vNV) }, - { "glProgramVertexLimitNV", "GL_NV_geometry_program4\0", offsetof(struct opengl_funcs, p_glProgramVertexLimitNV) }, - { "glProvokingVertex", "GL_ARB_provoking_vertex\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glProvokingVertex) }, - { "glProvokingVertexEXT", "GL_EXT_provoking_vertex\0", offsetof(struct opengl_funcs, p_glProvokingVertexEXT) }, - { "glPushClientAttribDefaultEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glPushClientAttribDefaultEXT) }, - { "glPushDebugGroup", "GL_KHR_debug\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glPushDebugGroup) }, - { "glPushGroupMarkerEXT", "GL_EXT_debug_marker\0", offsetof(struct opengl_funcs, p_glPushGroupMarkerEXT) }, - { "glQueryCounter", "GL_ARB_timer_query\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glQueryCounter) }, - { "glQueryMatrixxOES", "GL_OES_query_matrix\0", offsetof(struct opengl_funcs, p_glQueryMatrixxOES) }, - { "glQueryObjectParameteruiAMD", "GL_AMD_occlusion_query_event\0", offsetof(struct opengl_funcs, p_glQueryObjectParameteruiAMD) }, - { "glQueryResourceNV", "GL_NV_query_resource\0", offsetof(struct opengl_funcs, p_glQueryResourceNV) }, - { "glQueryResourceTagNV", "GL_NV_query_resource_tag\0", offsetof(struct opengl_funcs, p_glQueryResourceTagNV) }, - { "glRasterPos2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos2xOES) }, - { "glRasterPos2xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos2xvOES) }, - { "glRasterPos3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos3xOES) }, - { "glRasterPos3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos3xvOES) }, - { "glRasterPos4xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos4xOES) }, - { "glRasterPos4xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRasterPos4xvOES) }, - { "glRasterSamplesEXT", "GL_EXT_raster_multisample\0GL_NV_framebuffer_mixed_samples\0", offsetof(struct opengl_funcs, p_glRasterSamplesEXT) }, - { "glReadBufferRegion", "GL_KTX_buffer_region\0", offsetof(struct opengl_funcs, p_glReadBufferRegion) }, - { "glReadInstrumentsSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glReadInstrumentsSGIX) }, - { "glReadnPixels", "GL_KHR_robustness\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glReadnPixels) }, - { "glReadnPixelsARB", "GL_ARB_robustness\0", offsetof(struct opengl_funcs, p_glReadnPixelsARB) }, - { "glRectxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRectxOES) }, - { "glRectxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRectxvOES) }, - { "glReferencePlaneSGIX", "GL_SGIX_reference_plane\0", offsetof(struct opengl_funcs, p_glReferencePlaneSGIX) }, - { "glReleaseKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex\0", offsetof(struct opengl_funcs, p_glReleaseKeyedMutexWin32EXT) }, - { "glReleaseShaderCompiler", "GL_ARB_ES2_compatibility\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glReleaseShaderCompiler) }, - { "glRenderGpuMaskNV", "GL_NV_gpu_multicast\0", offsetof(struct opengl_funcs, p_glRenderGpuMaskNV) }, - { "glRenderbufferStorage", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glRenderbufferStorage) }, - { "glRenderbufferStorageEXT", "GL_EXT_framebuffer_object\0", offsetof(struct opengl_funcs, p_glRenderbufferStorageEXT) }, - { "glRenderbufferStorageMultisample", "GL_ARB_framebuffer_object\0GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glRenderbufferStorageMultisample) }, - { "glRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced\0", offsetof(struct opengl_funcs, p_glRenderbufferStorageMultisampleAdvancedAMD) }, - { "glRenderbufferStorageMultisampleCoverageNV", "GL_NV_framebuffer_multisample_coverage\0", offsetof(struct opengl_funcs, p_glRenderbufferStorageMultisampleCoverageNV) }, - { "glRenderbufferStorageMultisampleEXT", "GL_EXT_framebuffer_multisample\0", offsetof(struct opengl_funcs, p_glRenderbufferStorageMultisampleEXT) }, - { "glReplacementCodePointerSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodePointerSUN) }, - { "glReplacementCodeubSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeubSUN) }, - { "glReplacementCodeubvSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeubvSUN) }, - { "glReplacementCodeuiColor3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor3fVertex3fSUN) }, - { "glReplacementCodeuiColor3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor3fVertex3fvSUN) }, - { "glReplacementCodeuiColor4fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor4fNormal3fVertex3fSUN) }, - { "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor4fNormal3fVertex3fvSUN) }, - { "glReplacementCodeuiColor4ubVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor4ubVertex3fSUN) }, - { "glReplacementCodeuiColor4ubVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiColor4ubVertex3fvSUN) }, - { "glReplacementCodeuiNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiNormal3fVertex3fSUN) }, - { "glReplacementCodeuiNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiNormal3fVertex3fvSUN) }, - { "glReplacementCodeuiSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiSUN) }, - { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) }, - { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) }, - { "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) }, - { "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) }, - { "glReplacementCodeuiTexCoord2fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fVertex3fSUN) }, - { "glReplacementCodeuiTexCoord2fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiTexCoord2fVertex3fvSUN) }, - { "glReplacementCodeuiVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiVertex3fSUN) }, - { "glReplacementCodeuiVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glReplacementCodeuiVertex3fvSUN) }, - { "glReplacementCodeuivSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeuivSUN) }, - { "glReplacementCodeusSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeusSUN) }, - { "glReplacementCodeusvSUN", "GL_SUN_triangle_list\0", offsetof(struct opengl_funcs, p_glReplacementCodeusvSUN) }, - { "glRequestResidentProgramsNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glRequestResidentProgramsNV) }, - { "glResetHistogram", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glResetHistogram) }, - { "glResetHistogramEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glResetHistogramEXT) }, - { "glResetMemoryObjectParameterNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glResetMemoryObjectParameterNV) }, - { "glResetMinmax", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glResetMinmax) }, - { "glResetMinmaxEXT", "GL_EXT_histogram\0", offsetof(struct opengl_funcs, p_glResetMinmaxEXT) }, - { "glResizeBuffersMESA", "GL_MESA_resize_buffers\0", offsetof(struct opengl_funcs, p_glResizeBuffersMESA) }, - { "glResolveDepthValuesNV", "GL_NV_sample_locations\0", offsetof(struct opengl_funcs, p_glResolveDepthValuesNV) }, - { "glResumeTransformFeedback", "GL_ARB_transform_feedback2\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glResumeTransformFeedback) }, - { "glResumeTransformFeedbackNV", "GL_NV_transform_feedback2\0", offsetof(struct opengl_funcs, p_glResumeTransformFeedbackNV) }, - { "glRotatex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glRotatex) }, - { "glRotatexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glRotatexOES) }, - { "glSampleCoverage", "GL_VERSION_1_3\0", offsetof(struct opengl_funcs, p_glSampleCoverage) }, - { "glSampleCoverageARB", "GL_ARB_multisample\0", offsetof(struct opengl_funcs, p_glSampleCoverageARB) }, - { "glSampleCoveragex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glSampleCoveragex) }, - { "glSampleMapATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glSampleMapATI) }, - { "glSampleMaskEXT", "GL_EXT_multisample\0", offsetof(struct opengl_funcs, p_glSampleMaskEXT) }, - { "glSampleMaskIndexedNV", "GL_NV_explicit_multisample\0", offsetof(struct opengl_funcs, p_glSampleMaskIndexedNV) }, - { "glSampleMaskSGIS", "GL_SGIS_multisample\0", offsetof(struct opengl_funcs, p_glSampleMaskSGIS) }, - { "glSampleMaski", "GL_ARB_texture_multisample\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glSampleMaski) }, - { "glSamplePatternEXT", "GL_EXT_multisample\0", offsetof(struct opengl_funcs, p_glSamplePatternEXT) }, - { "glSamplePatternSGIS", "GL_SGIS_multisample\0", offsetof(struct opengl_funcs, p_glSamplePatternSGIS) }, - { "glSamplerParameterIiv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameterIiv) }, - { "glSamplerParameterIuiv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameterIuiv) }, - { "glSamplerParameterf", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameterf) }, - { "glSamplerParameterfv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameterfv) }, - { "glSamplerParameteri", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameteri) }, - { "glSamplerParameteriv", "GL_ARB_sampler_objects\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSamplerParameteriv) }, - { "glScalex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glScalex) }, - { "glScalexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glScalexOES) }, - { "glScissorArrayv", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glScissorArrayv) }, - { "glScissorExclusiveArrayvNV", "GL_NV_scissor_exclusive\0", offsetof(struct opengl_funcs, p_glScissorExclusiveArrayvNV) }, - { "glScissorExclusiveNV", "GL_NV_scissor_exclusive\0", offsetof(struct opengl_funcs, p_glScissorExclusiveNV) }, - { "glScissorIndexed", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glScissorIndexed) }, - { "glScissorIndexedv", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glScissorIndexedv) }, - { "glSecondaryColor3b", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3b) }, - { "glSecondaryColor3bEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3bEXT) }, - { "glSecondaryColor3bv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3bv) }, - { "glSecondaryColor3bvEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3bvEXT) }, - { "glSecondaryColor3d", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3d) }, - { "glSecondaryColor3dEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3dEXT) }, - { "glSecondaryColor3dv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3dv) }, - { "glSecondaryColor3dvEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3dvEXT) }, - { "glSecondaryColor3f", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3f) }, - { "glSecondaryColor3fEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3fEXT) }, - { "glSecondaryColor3fv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3fv) }, - { "glSecondaryColor3fvEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3fvEXT) }, - { "glSecondaryColor3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glSecondaryColor3hNV) }, - { "glSecondaryColor3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glSecondaryColor3hvNV) }, - { "glSecondaryColor3i", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3i) }, - { "glSecondaryColor3iEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3iEXT) }, - { "glSecondaryColor3iv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3iv) }, - { "glSecondaryColor3ivEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ivEXT) }, - { "glSecondaryColor3s", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3s) }, - { "glSecondaryColor3sEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3sEXT) }, - { "glSecondaryColor3sv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3sv) }, - { "glSecondaryColor3svEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3svEXT) }, - { "glSecondaryColor3ub", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ub) }, - { "glSecondaryColor3ubEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ubEXT) }, - { "glSecondaryColor3ubv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ubv) }, - { "glSecondaryColor3ubvEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ubvEXT) }, - { "glSecondaryColor3ui", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3ui) }, - { "glSecondaryColor3uiEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3uiEXT) }, - { "glSecondaryColor3uiv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3uiv) }, - { "glSecondaryColor3uivEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3uivEXT) }, - { "glSecondaryColor3us", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3us) }, - { "glSecondaryColor3usEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3usEXT) }, - { "glSecondaryColor3usv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColor3usv) }, - { "glSecondaryColor3usvEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColor3usvEXT) }, - { "glSecondaryColorFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glSecondaryColorFormatNV) }, - { "glSecondaryColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSecondaryColorP3ui) }, - { "glSecondaryColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glSecondaryColorP3uiv) }, - { "glSecondaryColorPointer", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glSecondaryColorPointer) }, - { "glSecondaryColorPointerEXT", "GL_EXT_secondary_color\0", offsetof(struct opengl_funcs, p_glSecondaryColorPointerEXT) }, - { "glSecondaryColorPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glSecondaryColorPointerListIBM) }, - { "glSelectPerfMonitorCountersAMD", "GL_AMD_performance_monitor\0", offsetof(struct opengl_funcs, p_glSelectPerfMonitorCountersAMD) }, - { "glSelectTextureCoordSetSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glSelectTextureCoordSetSGIS) }, - { "glSelectTextureSGIS", "GL_SGIS_multitexture\0", offsetof(struct opengl_funcs, p_glSelectTextureSGIS) }, - { "glSemaphoreParameterivNV", "GL_NV_timeline_semaphore\0", offsetof(struct opengl_funcs, p_glSemaphoreParameterivNV) }, - { "glSemaphoreParameterui64vEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glSemaphoreParameterui64vEXT) }, - { "glSeparableFilter2D", "GL_ARB_imaging\0", offsetof(struct opengl_funcs, p_glSeparableFilter2D) }, - { "glSeparableFilter2DEXT", "GL_EXT_convolution\0", offsetof(struct opengl_funcs, p_glSeparableFilter2DEXT) }, - { "glSetFenceAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glSetFenceAPPLE) }, - { "glSetFenceNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glSetFenceNV) }, - { "glSetFragmentShaderConstantATI", "GL_ATI_fragment_shader\0", offsetof(struct opengl_funcs, p_glSetFragmentShaderConstantATI) }, - { "glSetInvariantEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glSetInvariantEXT) }, - { "glSetLocalConstantEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glSetLocalConstantEXT) }, - { "glSetMultisamplefvAMD", "GL_AMD_sample_positions\0", offsetof(struct opengl_funcs, p_glSetMultisamplefvAMD) }, - { "glShaderBinary", "GL_ARB_ES2_compatibility\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glShaderBinary) }, - { "glShaderOp1EXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glShaderOp1EXT) }, - { "glShaderOp2EXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glShaderOp2EXT) }, - { "glShaderOp3EXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glShaderOp3EXT) }, - { "glShaderSource", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glShaderSource) }, - { "glShaderSourceARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glShaderSourceARB) }, - { "glShaderStorageBlockBinding", "GL_ARB_shader_storage_buffer_object\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glShaderStorageBlockBinding) }, - { "glShadingRateCombinerOpsEXT", "GL_EXT_fragment_shading_rate\0GL_EXT_fragment_shading_rate_attachment\0GL_EXT_fragment_shading_rate_primitive\0", offsetof(struct opengl_funcs, p_glShadingRateCombinerOpsEXT) }, - { "glShadingRateEXT", "GL_EXT_fragment_shading_rate\0GL_EXT_fragment_shading_rate_attachment\0GL_EXT_fragment_shading_rate_primitive\0", offsetof(struct opengl_funcs, p_glShadingRateEXT) }, - { "glShadingRateImageBarrierNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glShadingRateImageBarrierNV) }, - { "glShadingRateImagePaletteNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glShadingRateImagePaletteNV) }, - { "glShadingRateSampleOrderCustomNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glShadingRateSampleOrderCustomNV) }, - { "glShadingRateSampleOrderNV", "GL_NV_shading_rate_image\0", offsetof(struct opengl_funcs, p_glShadingRateSampleOrderNV) }, - { "glSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture\0", offsetof(struct opengl_funcs, p_glSharpenTexFuncSGIS) }, - { "glSignalSemaphoreEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glSignalSemaphoreEXT) }, - { "glSignalSemaphoreui64NVX", "GL_NVX_progress_fence\0", offsetof(struct opengl_funcs, p_glSignalSemaphoreui64NVX) }, - { "glSignalVkFenceNV", "GL_NV_draw_vulkan_image\0", offsetof(struct opengl_funcs, p_glSignalVkFenceNV) }, - { "glSignalVkSemaphoreNV", "GL_NV_draw_vulkan_image\0", offsetof(struct opengl_funcs, p_glSignalVkSemaphoreNV) }, - { "glSpecializeShader", "GL_VERSION_4_6\0", offsetof(struct opengl_funcs, p_glSpecializeShader) }, - { "glSpecializeShaderARB", "GL_ARB_gl_spirv\0", offsetof(struct opengl_funcs, p_glSpecializeShaderARB) }, - { "glSpriteParameterfSGIX", "GL_SGIX_sprite\0", offsetof(struct opengl_funcs, p_glSpriteParameterfSGIX) }, - { "glSpriteParameterfvSGIX", "GL_SGIX_sprite\0", offsetof(struct opengl_funcs, p_glSpriteParameterfvSGIX) }, - { "glSpriteParameteriSGIX", "GL_SGIX_sprite\0", offsetof(struct opengl_funcs, p_glSpriteParameteriSGIX) }, - { "glSpriteParameterivSGIX", "GL_SGIX_sprite\0", offsetof(struct opengl_funcs, p_glSpriteParameterivSGIX) }, - { "glStartInstrumentsSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glStartInstrumentsSGIX) }, - { "glStateCaptureNV", "GL_NV_command_list\0", offsetof(struct opengl_funcs, p_glStateCaptureNV) }, - { "glStencilClearTagEXT", "GL_EXT_stencil_clear_tag\0", offsetof(struct opengl_funcs, p_glStencilClearTagEXT) }, - { "glStencilFillPathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilFillPathInstancedNV) }, - { "glStencilFillPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilFillPathNV) }, - { "glStencilFuncSeparate", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glStencilFuncSeparate) }, - { "glStencilFuncSeparateATI", "GL_ATI_separate_stencil\0", offsetof(struct opengl_funcs, p_glStencilFuncSeparateATI) }, - { "glStencilMaskSeparate", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glStencilMaskSeparate) }, - { "glStencilOpSeparate", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glStencilOpSeparate) }, - { "glStencilOpSeparateATI", "GL_ATI_separate_stencil\0", offsetof(struct opengl_funcs, p_glStencilOpSeparateATI) }, - { "glStencilOpValueAMD", "GL_AMD_stencil_operation_extended\0", offsetof(struct opengl_funcs, p_glStencilOpValueAMD) }, - { "glStencilStrokePathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilStrokePathInstancedNV) }, - { "glStencilStrokePathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilStrokePathNV) }, - { "glStencilThenCoverFillPathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilThenCoverFillPathInstancedNV) }, - { "glStencilThenCoverFillPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilThenCoverFillPathNV) }, - { "glStencilThenCoverStrokePathInstancedNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilThenCoverStrokePathInstancedNV) }, - { "glStencilThenCoverStrokePathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glStencilThenCoverStrokePathNV) }, - { "glStopInstrumentsSGIX", "GL_SGIX_instruments\0", offsetof(struct opengl_funcs, p_glStopInstrumentsSGIX) }, - { "glStringMarkerGREMEDY", "GL_GREMEDY_string_marker\0", offsetof(struct opengl_funcs, p_glStringMarkerGREMEDY) }, - { "glSubpixelPrecisionBiasNV", "GL_NV_conservative_raster\0", offsetof(struct opengl_funcs, p_glSubpixelPrecisionBiasNV) }, - { "glSwizzleEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glSwizzleEXT) }, - { "glSyncTextureINTEL", "GL_INTEL_map_texture\0", offsetof(struct opengl_funcs, p_glSyncTextureINTEL) }, - { "glTagSampleBufferSGIX", "GL_SGIX_tag_sample_buffer\0", offsetof(struct opengl_funcs, p_glTagSampleBufferSGIX) }, - { "glTangent3bEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3bEXT) }, - { "glTangent3bvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3bvEXT) }, - { "glTangent3dEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3dEXT) }, - { "glTangent3dvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3dvEXT) }, - { "glTangent3fEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3fEXT) }, - { "glTangent3fvEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3fvEXT) }, - { "glTangent3iEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3iEXT) }, - { "glTangent3ivEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3ivEXT) }, - { "glTangent3sEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3sEXT) }, - { "glTangent3svEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangent3svEXT) }, - { "glTangentPointerEXT", "GL_EXT_coordinate_frame\0", offsetof(struct opengl_funcs, p_glTangentPointerEXT) }, - { "glTbufferMask3DFX", "GL_3DFX_tbuffer\0", offsetof(struct opengl_funcs, p_glTbufferMask3DFX) }, - { "glTessellationFactorAMD", "GL_AMD_vertex_shader_tessellator\0", offsetof(struct opengl_funcs, p_glTessellationFactorAMD) }, - { "glTessellationModeAMD", "GL_AMD_vertex_shader_tessellator\0", offsetof(struct opengl_funcs, p_glTessellationModeAMD) }, - { "glTestFenceAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glTestFenceAPPLE) }, - { "glTestFenceNV", "GL_NV_fence\0", offsetof(struct opengl_funcs, p_glTestFenceNV) }, - { "glTestObjectAPPLE", "GL_APPLE_fence\0", offsetof(struct opengl_funcs, p_glTestObjectAPPLE) }, - { "glTexAttachMemoryNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glTexAttachMemoryNV) }, - { "glTexBuffer", "GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glTexBuffer) }, - { "glTexBufferARB", "GL_ARB_texture_buffer_object\0", offsetof(struct opengl_funcs, p_glTexBufferARB) }, - { "glTexBufferEXT", "GL_EXT_texture_buffer_object\0", offsetof(struct opengl_funcs, p_glTexBufferEXT) }, - { "glTexBufferRange", "GL_ARB_texture_buffer_range\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glTexBufferRange) }, - { "glTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap\0", offsetof(struct opengl_funcs, p_glTexBumpParameterfvATI) }, - { "glTexBumpParameterivATI", "GL_ATI_envmap_bumpmap\0", offsetof(struct opengl_funcs, p_glTexBumpParameterivATI) }, - { "glTexCoord1bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord1bOES) }, - { "glTexCoord1bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord1bvOES) }, - { "glTexCoord1hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord1hNV) }, - { "glTexCoord1hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord1hvNV) }, - { "glTexCoord1xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord1xOES) }, - { "glTexCoord1xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord1xvOES) }, - { "glTexCoord2bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord2bOES) }, - { "glTexCoord2bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord2bvOES) }, - { "glTexCoord2fColor3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor3fVertex3fSUN) }, - { "glTexCoord2fColor3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor3fVertex3fvSUN) }, - { "glTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor4fNormal3fVertex3fSUN) }, - { "glTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor4fNormal3fVertex3fvSUN) }, - { "glTexCoord2fColor4ubVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor4ubVertex3fSUN) }, - { "glTexCoord2fColor4ubVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fColor4ubVertex3fvSUN) }, - { "glTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fNormal3fVertex3fSUN) }, - { "glTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fNormal3fVertex3fvSUN) }, - { "glTexCoord2fVertex3fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fVertex3fSUN) }, - { "glTexCoord2fVertex3fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord2fVertex3fvSUN) }, - { "glTexCoord2hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord2hNV) }, - { "glTexCoord2hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord2hvNV) }, - { "glTexCoord2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord2xOES) }, - { "glTexCoord2xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord2xvOES) }, - { "glTexCoord3bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord3bOES) }, - { "glTexCoord3bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord3bvOES) }, - { "glTexCoord3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord3hNV) }, - { "glTexCoord3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord3hvNV) }, - { "glTexCoord3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord3xOES) }, - { "glTexCoord3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord3xvOES) }, - { "glTexCoord4bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord4bOES) }, - { "glTexCoord4bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glTexCoord4bvOES) }, - { "glTexCoord4fColor4fNormal3fVertex4fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord4fColor4fNormal3fVertex4fSUN) }, - { "glTexCoord4fColor4fNormal3fVertex4fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord4fColor4fNormal3fVertex4fvSUN) }, - { "glTexCoord4fVertex4fSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord4fVertex4fSUN) }, - { "glTexCoord4fVertex4fvSUN", "GL_SUN_vertex\0", offsetof(struct opengl_funcs, p_glTexCoord4fVertex4fvSUN) }, - { "glTexCoord4hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord4hNV) }, - { "glTexCoord4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glTexCoord4hvNV) }, - { "glTexCoord4xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord4xOES) }, - { "glTexCoord4xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexCoord4xvOES) }, - { "glTexCoordFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glTexCoordFormatNV) }, - { "glTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP1ui) }, - { "glTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP1uiv) }, - { "glTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP2ui) }, - { "glTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP2uiv) }, - { "glTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP3ui) }, - { "glTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP3uiv) }, - { "glTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP4ui) }, - { "glTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glTexCoordP4uiv) }, - { "glTexCoordPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glTexCoordPointerEXT) }, - { "glTexCoordPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glTexCoordPointerListIBM) }, - { "glTexCoordPointervINTEL", "GL_INTEL_parallel_arrays\0", offsetof(struct opengl_funcs, p_glTexCoordPointervINTEL) }, - { "glTexEnvx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glTexEnvx) }, - { "glTexEnvxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexEnvxOES) }, - { "glTexEnvxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glTexEnvxv) }, - { "glTexEnvxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexEnvxvOES) }, - { "glTexFilterFuncSGIS", "GL_SGIS_texture_filter4\0", offsetof(struct opengl_funcs, p_glTexFilterFuncSGIS) }, - { "glTexGenxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexGenxOES) }, - { "glTexGenxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexGenxvOES) }, - { "glTexImage2DMultisample", "GL_ARB_texture_multisample\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glTexImage2DMultisample) }, - { "glTexImage2DMultisampleCoverageNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTexImage2DMultisampleCoverageNV) }, - { "glTexImage3D", "GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glTexImage3D) }, - { "glTexImage3DEXT", "GL_EXT_texture3D\0", offsetof(struct opengl_funcs, p_glTexImage3DEXT) }, - { "glTexImage3DMultisample", "GL_ARB_texture_multisample\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glTexImage3DMultisample) }, - { "glTexImage3DMultisampleCoverageNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTexImage3DMultisampleCoverageNV) }, - { "glTexImage4DSGIS", "GL_SGIS_texture4D\0", offsetof(struct opengl_funcs, p_glTexImage4DSGIS) }, - { "glTexPageCommitmentARB", "GL_ARB_sparse_texture\0", offsetof(struct opengl_funcs, p_glTexPageCommitmentARB) }, - { "glTexPageCommitmentMemNV", "GL_NV_memory_object_sparse\0", offsetof(struct opengl_funcs, p_glTexPageCommitmentMemNV) }, - { "glTexParameterIiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glTexParameterIiv) }, - { "glTexParameterIivEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glTexParameterIivEXT) }, - { "glTexParameterIuiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glTexParameterIuiv) }, - { "glTexParameterIuivEXT", "GL_EXT_texture_integer\0", offsetof(struct opengl_funcs, p_glTexParameterIuivEXT) }, - { "glTexParameterx", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glTexParameterx) }, - { "glTexParameterxOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexParameterxOES) }, - { "glTexParameterxv", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glTexParameterxv) }, - { "glTexParameterxvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTexParameterxvOES) }, - { "glTexRenderbufferNV", "GL_NV_explicit_multisample\0", offsetof(struct opengl_funcs, p_glTexRenderbufferNV) }, - { "glTexStorage1D", "GL_ARB_texture_storage\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glTexStorage1D) }, - { "glTexStorage1DEXT", "GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTexStorage1DEXT) }, - { "glTexStorage2D", "GL_ARB_texture_storage\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glTexStorage2D) }, - { "glTexStorage2DEXT", "GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTexStorage2DEXT) }, - { "glTexStorage2DMultisample", "GL_ARB_texture_storage_multisample\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glTexStorage2DMultisample) }, - { "glTexStorage3D", "GL_ARB_texture_storage\0GL_VERSION_4_2\0", offsetof(struct opengl_funcs, p_glTexStorage3D) }, - { "glTexStorage3DEXT", "GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTexStorage3DEXT) }, - { "glTexStorage3DMultisample", "GL_ARB_texture_storage_multisample\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glTexStorage3DMultisample) }, - { "glTexStorageMem1DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTexStorageMem1DEXT) }, - { "glTexStorageMem2DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTexStorageMem2DEXT) }, - { "glTexStorageMem2DMultisampleEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTexStorageMem2DMultisampleEXT) }, - { "glTexStorageMem3DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTexStorageMem3DEXT) }, - { "glTexStorageMem3DMultisampleEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTexStorageMem3DMultisampleEXT) }, - { "glTexStorageSparseAMD", "GL_AMD_sparse_texture\0", offsetof(struct opengl_funcs, p_glTexStorageSparseAMD) }, - { "glTexSubImage1DEXT", "GL_EXT_subtexture\0", offsetof(struct opengl_funcs, p_glTexSubImage1DEXT) }, - { "glTexSubImage2DEXT", "GL_EXT_subtexture\0", offsetof(struct opengl_funcs, p_glTexSubImage2DEXT) }, - { "glTexSubImage3D", "GL_VERSION_1_2\0", offsetof(struct opengl_funcs, p_glTexSubImage3D) }, - { "glTexSubImage3DEXT", "GL_EXT_texture3D\0", offsetof(struct opengl_funcs, p_glTexSubImage3DEXT) }, - { "glTexSubImage4DSGIS", "GL_SGIS_texture4D\0", offsetof(struct opengl_funcs, p_glTexSubImage4DSGIS) }, - { "glTextureAttachMemoryNV", "GL_NV_memory_attachment\0", offsetof(struct opengl_funcs, p_glTextureAttachMemoryNV) }, - { "glTextureBarrier", "GL_ARB_texture_barrier\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureBarrier) }, - { "glTextureBarrierNV", "GL_NV_texture_barrier\0", offsetof(struct opengl_funcs, p_glTextureBarrierNV) }, - { "glTextureBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureBuffer) }, - { "glTextureBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureBufferEXT) }, - { "glTextureBufferRange", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureBufferRange) }, - { "glTextureBufferRangeEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureBufferRangeEXT) }, - { "glTextureColorMaskSGIS", "GL_SGIS_texture_color_mask\0", offsetof(struct opengl_funcs, p_glTextureColorMaskSGIS) }, - { "glTextureImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureImage1DEXT) }, - { "glTextureImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureImage2DEXT) }, - { "glTextureImage2DMultisampleCoverageNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTextureImage2DMultisampleCoverageNV) }, - { "glTextureImage2DMultisampleNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTextureImage2DMultisampleNV) }, - { "glTextureImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureImage3DEXT) }, - { "glTextureImage3DMultisampleCoverageNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTextureImage3DMultisampleCoverageNV) }, - { "glTextureImage3DMultisampleNV", "GL_NV_texture_multisample\0", offsetof(struct opengl_funcs, p_glTextureImage3DMultisampleNV) }, - { "glTextureLightEXT", "GL_EXT_light_texture\0", offsetof(struct opengl_funcs, p_glTextureLightEXT) }, - { "glTextureMaterialEXT", "GL_EXT_light_texture\0", offsetof(struct opengl_funcs, p_glTextureMaterialEXT) }, - { "glTextureNormalEXT", "GL_EXT_texture_perturb_normal\0", offsetof(struct opengl_funcs, p_glTextureNormalEXT) }, - { "glTexturePageCommitmentEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTexturePageCommitmentEXT) }, - { "glTexturePageCommitmentMemNV", "GL_NV_memory_object_sparse\0", offsetof(struct opengl_funcs, p_glTexturePageCommitmentMemNV) }, - { "glTextureParameterIiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameterIiv) }, - { "glTextureParameterIivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameterIivEXT) }, - { "glTextureParameterIuiv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameterIuiv) }, - { "glTextureParameterIuivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameterIuivEXT) }, - { "glTextureParameterf", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameterf) }, - { "glTextureParameterfEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameterfEXT) }, - { "glTextureParameterfv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameterfv) }, - { "glTextureParameterfvEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameterfvEXT) }, - { "glTextureParameteri", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameteri) }, - { "glTextureParameteriEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameteriEXT) }, - { "glTextureParameteriv", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureParameteriv) }, - { "glTextureParameterivEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureParameterivEXT) }, - { "glTextureRangeAPPLE", "GL_APPLE_texture_range\0", offsetof(struct opengl_funcs, p_glTextureRangeAPPLE) }, - { "glTextureRenderbufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureRenderbufferEXT) }, - { "glTextureStorage1D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureStorage1D) }, - { "glTextureStorage1DEXT", "GL_EXT_direct_state_access\0GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTextureStorage1DEXT) }, - { "glTextureStorage2D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureStorage2D) }, - { "glTextureStorage2DEXT", "GL_EXT_direct_state_access\0GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTextureStorage2DEXT) }, - { "glTextureStorage2DMultisample", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureStorage2DMultisample) }, - { "glTextureStorage2DMultisampleEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureStorage2DMultisampleEXT) }, - { "glTextureStorage3D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureStorage3D) }, - { "glTextureStorage3DEXT", "GL_EXT_direct_state_access\0GL_EXT_texture_storage\0", offsetof(struct opengl_funcs, p_glTextureStorage3DEXT) }, - { "glTextureStorage3DMultisample", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureStorage3DMultisample) }, - { "glTextureStorage3DMultisampleEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureStorage3DMultisampleEXT) }, - { "glTextureStorageMem1DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTextureStorageMem1DEXT) }, - { "glTextureStorageMem2DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTextureStorageMem2DEXT) }, - { "glTextureStorageMem2DMultisampleEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTextureStorageMem2DMultisampleEXT) }, - { "glTextureStorageMem3DEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTextureStorageMem3DEXT) }, - { "glTextureStorageMem3DMultisampleEXT", "GL_EXT_memory_object\0", offsetof(struct opengl_funcs, p_glTextureStorageMem3DMultisampleEXT) }, - { "glTextureStorageSparseAMD", "GL_AMD_sparse_texture\0", offsetof(struct opengl_funcs, p_glTextureStorageSparseAMD) }, - { "glTextureSubImage1D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureSubImage1D) }, - { "glTextureSubImage1DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureSubImage1DEXT) }, - { "glTextureSubImage2D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureSubImage2D) }, - { "glTextureSubImage2DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureSubImage2DEXT) }, - { "glTextureSubImage3D", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTextureSubImage3D) }, - { "glTextureSubImage3DEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glTextureSubImage3DEXT) }, - { "glTextureView", "GL_ARB_texture_view\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glTextureView) }, - { "glTrackMatrixNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glTrackMatrixNV) }, - { "glTransformFeedbackAttribsNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glTransformFeedbackAttribsNV) }, - { "glTransformFeedbackBufferBase", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTransformFeedbackBufferBase) }, - { "glTransformFeedbackBufferRange", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glTransformFeedbackBufferRange) }, - { "glTransformFeedbackStreamAttribsNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glTransformFeedbackStreamAttribsNV) }, - { "glTransformFeedbackVaryings", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glTransformFeedbackVaryings) }, - { "glTransformFeedbackVaryingsEXT", "GL_EXT_transform_feedback\0", offsetof(struct opengl_funcs, p_glTransformFeedbackVaryingsEXT) }, - { "glTransformFeedbackVaryingsNV", "GL_NV_transform_feedback\0", offsetof(struct opengl_funcs, p_glTransformFeedbackVaryingsNV) }, - { "glTransformPathNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glTransformPathNV) }, - { "glTranslatex", "GL_NV_ES1_1_compatibility\0", offsetof(struct opengl_funcs, p_glTranslatex) }, - { "glTranslatexOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glTranslatexOES) }, - { "glUniform1d", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform1d) }, - { "glUniform1dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform1dv) }, - { "glUniform1f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform1f) }, - { "glUniform1fARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform1fARB) }, - { "glUniform1fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform1fv) }, - { "glUniform1fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform1fvARB) }, - { "glUniform1i", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform1i) }, - { "glUniform1i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform1i64ARB) }, - { "glUniform1i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform1i64NV) }, - { "glUniform1i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform1i64vARB) }, - { "glUniform1i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform1i64vNV) }, - { "glUniform1iARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform1iARB) }, - { "glUniform1iv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform1iv) }, - { "glUniform1ivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform1ivARB) }, - { "glUniform1ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform1ui) }, - { "glUniform1ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform1ui64ARB) }, - { "glUniform1ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform1ui64NV) }, - { "glUniform1ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform1ui64vARB) }, - { "glUniform1ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform1ui64vNV) }, - { "glUniform1uiEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform1uiEXT) }, - { "glUniform1uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform1uiv) }, - { "glUniform1uivEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform1uivEXT) }, - { "glUniform2d", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform2d) }, - { "glUniform2dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform2dv) }, - { "glUniform2f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform2f) }, - { "glUniform2fARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform2fARB) }, - { "glUniform2fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform2fv) }, - { "glUniform2fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform2fvARB) }, - { "glUniform2i", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform2i) }, - { "glUniform2i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform2i64ARB) }, - { "glUniform2i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform2i64NV) }, - { "glUniform2i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform2i64vARB) }, - { "glUniform2i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform2i64vNV) }, - { "glUniform2iARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform2iARB) }, - { "glUniform2iv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform2iv) }, - { "glUniform2ivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform2ivARB) }, - { "glUniform2ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform2ui) }, - { "glUniform2ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform2ui64ARB) }, - { "glUniform2ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform2ui64NV) }, - { "glUniform2ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform2ui64vARB) }, - { "glUniform2ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform2ui64vNV) }, - { "glUniform2uiEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform2uiEXT) }, - { "glUniform2uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform2uiv) }, - { "glUniform2uivEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform2uivEXT) }, - { "glUniform3d", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform3d) }, - { "glUniform3dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform3dv) }, - { "glUniform3f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform3f) }, - { "glUniform3fARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform3fARB) }, - { "glUniform3fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform3fv) }, - { "glUniform3fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform3fvARB) }, - { "glUniform3i", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform3i) }, - { "glUniform3i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform3i64ARB) }, - { "glUniform3i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform3i64NV) }, - { "glUniform3i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform3i64vARB) }, - { "glUniform3i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform3i64vNV) }, - { "glUniform3iARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform3iARB) }, - { "glUniform3iv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform3iv) }, - { "glUniform3ivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform3ivARB) }, - { "glUniform3ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform3ui) }, - { "glUniform3ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform3ui64ARB) }, - { "glUniform3ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform3ui64NV) }, - { "glUniform3ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform3ui64vARB) }, - { "glUniform3ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform3ui64vNV) }, - { "glUniform3uiEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform3uiEXT) }, - { "glUniform3uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform3uiv) }, - { "glUniform3uivEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform3uivEXT) }, - { "glUniform4d", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform4d) }, - { "glUniform4dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniform4dv) }, - { "glUniform4f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform4f) }, - { "glUniform4fARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform4fARB) }, - { "glUniform4fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform4fv) }, - { "glUniform4fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform4fvARB) }, - { "glUniform4i", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform4i) }, - { "glUniform4i64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform4i64ARB) }, - { "glUniform4i64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform4i64NV) }, - { "glUniform4i64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform4i64vARB) }, - { "glUniform4i64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform4i64vNV) }, - { "glUniform4iARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform4iARB) }, - { "glUniform4iv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniform4iv) }, - { "glUniform4ivARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniform4ivARB) }, - { "glUniform4ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform4ui) }, - { "glUniform4ui64ARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform4ui64ARB) }, - { "glUniform4ui64NV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform4ui64NV) }, - { "glUniform4ui64vARB", "GL_ARB_gpu_shader_int64\0", offsetof(struct opengl_funcs, p_glUniform4ui64vARB) }, - { "glUniform4ui64vNV", "GL_AMD_gpu_shader_int64\0GL_NV_gpu_shader5\0", offsetof(struct opengl_funcs, p_glUniform4ui64vNV) }, - { "glUniform4uiEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform4uiEXT) }, - { "glUniform4uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glUniform4uiv) }, - { "glUniform4uivEXT", "GL_EXT_gpu_shader4\0", offsetof(struct opengl_funcs, p_glUniform4uivEXT) }, - { "glUniformBlockBinding", "GL_ARB_uniform_buffer_object\0GL_VERSION_3_1\0", offsetof(struct opengl_funcs, p_glUniformBlockBinding) }, - { "glUniformBufferEXT", "GL_EXT_bindable_uniform\0", offsetof(struct opengl_funcs, p_glUniformBufferEXT) }, - { "glUniformHandleui64ARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glUniformHandleui64ARB) }, - { "glUniformHandleui64NV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glUniformHandleui64NV) }, - { "glUniformHandleui64vARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glUniformHandleui64vARB) }, - { "glUniformHandleui64vNV", "GL_NV_bindless_texture\0", offsetof(struct opengl_funcs, p_glUniformHandleui64vNV) }, - { "glUniformMatrix2dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix2dv) }, - { "glUniformMatrix2fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix2fv) }, - { "glUniformMatrix2fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniformMatrix2fvARB) }, - { "glUniformMatrix2x3dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix2x3dv) }, - { "glUniformMatrix2x3fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix2x3fv) }, - { "glUniformMatrix2x4dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix2x4dv) }, - { "glUniformMatrix2x4fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix2x4fv) }, - { "glUniformMatrix3dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix3dv) }, - { "glUniformMatrix3fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix3fv) }, - { "glUniformMatrix3fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniformMatrix3fvARB) }, - { "glUniformMatrix3x2dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix3x2dv) }, - { "glUniformMatrix3x2fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix3x2fv) }, - { "glUniformMatrix3x4dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix3x4dv) }, - { "glUniformMatrix3x4fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix3x4fv) }, - { "glUniformMatrix4dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix4dv) }, - { "glUniformMatrix4fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix4fv) }, - { "glUniformMatrix4fvARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUniformMatrix4fvARB) }, - { "glUniformMatrix4x2dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix4x2dv) }, - { "glUniformMatrix4x2fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix4x2fv) }, - { "glUniformMatrix4x3dv", "GL_ARB_gpu_shader_fp64\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformMatrix4x3dv) }, - { "glUniformMatrix4x3fv", "GL_VERSION_2_1\0", offsetof(struct opengl_funcs, p_glUniformMatrix4x3fv) }, - { "glUniformSubroutinesuiv", "GL_ARB_shader_subroutine\0GL_VERSION_4_0\0", offsetof(struct opengl_funcs, p_glUniformSubroutinesuiv) }, - { "glUniformui64NV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glUniformui64NV) }, - { "glUniformui64vNV", "GL_NV_shader_buffer_load\0", offsetof(struct opengl_funcs, p_glUniformui64vNV) }, - { "glUnlockArraysEXT", "GL_EXT_compiled_vertex_array\0", offsetof(struct opengl_funcs, p_glUnlockArraysEXT) }, - { "glUnmapBuffer", "GL_VERSION_1_5\0", offsetof(struct opengl_funcs, p_glUnmapBuffer) }, - { "glUnmapBufferARB", "GL_ARB_vertex_buffer_object\0", offsetof(struct opengl_funcs, p_glUnmapBufferARB) }, - { "glUnmapNamedBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glUnmapNamedBuffer) }, - { "glUnmapNamedBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glUnmapNamedBufferEXT) }, - { "glUnmapObjectBufferATI", "GL_ATI_map_object_buffer\0", offsetof(struct opengl_funcs, p_glUnmapObjectBufferATI) }, - { "glUnmapTexture2DINTEL", "GL_INTEL_map_texture\0", offsetof(struct opengl_funcs, p_glUnmapTexture2DINTEL) }, - { "glUpdateObjectBufferATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glUpdateObjectBufferATI) }, - { "glUploadGpuMaskNVX", "GL_NVX_gpu_multicast2\0", offsetof(struct opengl_funcs, p_glUploadGpuMaskNVX) }, - { "glUseProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glUseProgram) }, - { "glUseProgramObjectARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glUseProgramObjectARB) }, - { "glUseProgramStages", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glUseProgramStages) }, - { "glUseShaderProgramEXT", "GL_EXT_separate_shader_objects\0", offsetof(struct opengl_funcs, p_glUseShaderProgramEXT) }, - { "glVDPAUFiniNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUFiniNV) }, - { "glVDPAUGetSurfaceivNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUGetSurfaceivNV) }, - { "glVDPAUInitNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUInitNV) }, - { "glVDPAUIsSurfaceNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUIsSurfaceNV) }, - { "glVDPAUMapSurfacesNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUMapSurfacesNV) }, - { "glVDPAURegisterOutputSurfaceNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAURegisterOutputSurfaceNV) }, - { "glVDPAURegisterVideoSurfaceNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAURegisterVideoSurfaceNV) }, - { "glVDPAURegisterVideoSurfaceWithPictureStructureNV", "GL_NV_vdpau_interop2\0", offsetof(struct opengl_funcs, p_glVDPAURegisterVideoSurfaceWithPictureStructureNV) }, - { "glVDPAUSurfaceAccessNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUSurfaceAccessNV) }, - { "glVDPAUUnmapSurfacesNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUUnmapSurfacesNV) }, - { "glVDPAUUnregisterSurfaceNV", "GL_NV_vdpau_interop\0", offsetof(struct opengl_funcs, p_glVDPAUUnregisterSurfaceNV) }, - { "glValidateProgram", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glValidateProgram) }, - { "glValidateProgramARB", "GL_ARB_shader_objects\0", offsetof(struct opengl_funcs, p_glValidateProgramARB) }, - { "glValidateProgramPipeline", "GL_ARB_separate_shader_objects\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glValidateProgramPipeline) }, - { "glVariantArrayObjectATI", "GL_ATI_vertex_array_object\0", offsetof(struct opengl_funcs, p_glVariantArrayObjectATI) }, - { "glVariantPointerEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantPointerEXT) }, - { "glVariantbvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantbvEXT) }, - { "glVariantdvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantdvEXT) }, - { "glVariantfvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantfvEXT) }, - { "glVariantivEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantivEXT) }, - { "glVariantsvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantsvEXT) }, - { "glVariantubvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantubvEXT) }, - { "glVariantuivEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantuivEXT) }, - { "glVariantusvEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glVariantusvEXT) }, - { "glVertex2bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex2bOES) }, - { "glVertex2bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex2bvOES) }, - { "glVertex2hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex2hNV) }, - { "glVertex2hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex2hvNV) }, - { "glVertex2xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex2xOES) }, - { "glVertex2xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex2xvOES) }, - { "glVertex3bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex3bOES) }, - { "glVertex3bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex3bvOES) }, - { "glVertex3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex3hNV) }, - { "glVertex3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex3hvNV) }, - { "glVertex3xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex3xOES) }, - { "glVertex3xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex3xvOES) }, - { "glVertex4bOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex4bOES) }, - { "glVertex4bvOES", "GL_OES_byte_coordinates\0", offsetof(struct opengl_funcs, p_glVertex4bvOES) }, - { "glVertex4hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex4hNV) }, - { "glVertex4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertex4hvNV) }, - { "glVertex4xOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex4xOES) }, - { "glVertex4xvOES", "GL_OES_fixed_point\0", offsetof(struct opengl_funcs, p_glVertex4xvOES) }, - { "glVertexArrayAttribBinding", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayAttribBinding) }, - { "glVertexArrayAttribFormat", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayAttribFormat) }, - { "glVertexArrayAttribIFormat", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayAttribIFormat) }, - { "glVertexArrayAttribLFormat", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayAttribLFormat) }, - { "glVertexArrayBindVertexBufferEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayBindVertexBufferEXT) }, - { "glVertexArrayBindingDivisor", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayBindingDivisor) }, - { "glVertexArrayColorOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayColorOffsetEXT) }, - { "glVertexArrayEdgeFlagOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayEdgeFlagOffsetEXT) }, - { "glVertexArrayElementBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayElementBuffer) }, - { "glVertexArrayFogCoordOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayFogCoordOffsetEXT) }, - { "glVertexArrayIndexOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayIndexOffsetEXT) }, - { "glVertexArrayMultiTexCoordOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayMultiTexCoordOffsetEXT) }, - { "glVertexArrayNormalOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayNormalOffsetEXT) }, - { "glVertexArrayParameteriAPPLE", "GL_APPLE_vertex_array_range\0", offsetof(struct opengl_funcs, p_glVertexArrayParameteriAPPLE) }, - { "glVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range\0", offsetof(struct opengl_funcs, p_glVertexArrayRangeAPPLE) }, - { "glVertexArrayRangeNV", "GL_NV_vertex_array_range\0", offsetof(struct opengl_funcs, p_glVertexArrayRangeNV) }, - { "glVertexArraySecondaryColorOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArraySecondaryColorOffsetEXT) }, - { "glVertexArrayTexCoordOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayTexCoordOffsetEXT) }, - { "glVertexArrayVertexAttribBindingEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribBindingEXT) }, - { "glVertexArrayVertexAttribDivisorEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribDivisorEXT) }, - { "glVertexArrayVertexAttribFormatEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribFormatEXT) }, - { "glVertexArrayVertexAttribIFormatEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribIFormatEXT) }, - { "glVertexArrayVertexAttribIOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribIOffsetEXT) }, - { "glVertexArrayVertexAttribLFormatEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribLFormatEXT) }, - { "glVertexArrayVertexAttribLOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribLOffsetEXT) }, - { "glVertexArrayVertexAttribOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexAttribOffsetEXT) }, - { "glVertexArrayVertexBindingDivisorEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexBindingDivisorEXT) }, - { "glVertexArrayVertexBuffer", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexBuffer) }, - { "glVertexArrayVertexBuffers", "GL_ARB_direct_state_access\0GL_VERSION_4_5\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexBuffers) }, - { "glVertexArrayVertexOffsetEXT", "GL_EXT_direct_state_access\0", offsetof(struct opengl_funcs, p_glVertexArrayVertexOffsetEXT) }, - { "glVertexAttrib1d", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1d) }, - { "glVertexAttrib1dARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1dARB) }, - { "glVertexAttrib1dNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1dNV) }, - { "glVertexAttrib1dv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1dv) }, - { "glVertexAttrib1dvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1dvARB) }, - { "glVertexAttrib1dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1dvNV) }, - { "glVertexAttrib1f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1f) }, - { "glVertexAttrib1fARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1fARB) }, - { "glVertexAttrib1fNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1fNV) }, - { "glVertexAttrib1fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1fv) }, - { "glVertexAttrib1fvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1fvARB) }, - { "glVertexAttrib1fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1fvNV) }, - { "glVertexAttrib1hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib1hNV) }, - { "glVertexAttrib1hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib1hvNV) }, - { "glVertexAttrib1s", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1s) }, - { "glVertexAttrib1sARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1sARB) }, - { "glVertexAttrib1sNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1sNV) }, - { "glVertexAttrib1sv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib1sv) }, - { "glVertexAttrib1svARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib1svARB) }, - { "glVertexAttrib1svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib1svNV) }, - { "glVertexAttrib2d", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2d) }, - { "glVertexAttrib2dARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2dARB) }, - { "glVertexAttrib2dNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2dNV) }, - { "glVertexAttrib2dv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2dv) }, - { "glVertexAttrib2dvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2dvARB) }, - { "glVertexAttrib2dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2dvNV) }, - { "glVertexAttrib2f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2f) }, - { "glVertexAttrib2fARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2fARB) }, - { "glVertexAttrib2fNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2fNV) }, - { "glVertexAttrib2fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2fv) }, - { "glVertexAttrib2fvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2fvARB) }, - { "glVertexAttrib2fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2fvNV) }, - { "glVertexAttrib2hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib2hNV) }, - { "glVertexAttrib2hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib2hvNV) }, - { "glVertexAttrib2s", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2s) }, - { "glVertexAttrib2sARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2sARB) }, - { "glVertexAttrib2sNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2sNV) }, - { "glVertexAttrib2sv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib2sv) }, - { "glVertexAttrib2svARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib2svARB) }, - { "glVertexAttrib2svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib2svNV) }, - { "glVertexAttrib3d", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3d) }, - { "glVertexAttrib3dARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3dARB) }, - { "glVertexAttrib3dNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3dNV) }, - { "glVertexAttrib3dv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3dv) }, - { "glVertexAttrib3dvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3dvARB) }, - { "glVertexAttrib3dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3dvNV) }, - { "glVertexAttrib3f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3f) }, - { "glVertexAttrib3fARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3fARB) }, - { "glVertexAttrib3fNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3fNV) }, - { "glVertexAttrib3fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3fv) }, - { "glVertexAttrib3fvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3fvARB) }, - { "glVertexAttrib3fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3fvNV) }, - { "glVertexAttrib3hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib3hNV) }, - { "glVertexAttrib3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib3hvNV) }, - { "glVertexAttrib3s", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3s) }, - { "glVertexAttrib3sARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3sARB) }, - { "glVertexAttrib3sNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3sNV) }, - { "glVertexAttrib3sv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib3sv) }, - { "glVertexAttrib3svARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib3svARB) }, - { "glVertexAttrib3svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib3svNV) }, - { "glVertexAttrib4Nbv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nbv) }, - { "glVertexAttrib4NbvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NbvARB) }, - { "glVertexAttrib4Niv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Niv) }, - { "glVertexAttrib4NivARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NivARB) }, - { "glVertexAttrib4Nsv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nsv) }, - { "glVertexAttrib4NsvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NsvARB) }, - { "glVertexAttrib4Nub", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nub) }, - { "glVertexAttrib4NubARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NubARB) }, - { "glVertexAttrib4Nubv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nubv) }, - { "glVertexAttrib4NubvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NubvARB) }, - { "glVertexAttrib4Nuiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nuiv) }, - { "glVertexAttrib4NuivARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NuivARB) }, - { "glVertexAttrib4Nusv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4Nusv) }, - { "glVertexAttrib4NusvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4NusvARB) }, - { "glVertexAttrib4bv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4bv) }, - { "glVertexAttrib4bvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4bvARB) }, - { "glVertexAttrib4d", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4d) }, - { "glVertexAttrib4dARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4dARB) }, - { "glVertexAttrib4dNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4dNV) }, - { "glVertexAttrib4dv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4dv) }, - { "glVertexAttrib4dvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4dvARB) }, - { "glVertexAttrib4dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4dvNV) }, - { "glVertexAttrib4f", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4f) }, - { "glVertexAttrib4fARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4fARB) }, - { "glVertexAttrib4fNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4fNV) }, - { "glVertexAttrib4fv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4fv) }, - { "glVertexAttrib4fvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4fvARB) }, - { "glVertexAttrib4fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4fvNV) }, - { "glVertexAttrib4hNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib4hNV) }, - { "glVertexAttrib4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttrib4hvNV) }, - { "glVertexAttrib4iv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4iv) }, - { "glVertexAttrib4ivARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4ivARB) }, - { "glVertexAttrib4s", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4s) }, - { "glVertexAttrib4sARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4sARB) }, - { "glVertexAttrib4sNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4sNV) }, - { "glVertexAttrib4sv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4sv) }, - { "glVertexAttrib4svARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4svARB) }, - { "glVertexAttrib4svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4svNV) }, - { "glVertexAttrib4ubNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4ubNV) }, - { "glVertexAttrib4ubv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4ubv) }, - { "glVertexAttrib4ubvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4ubvARB) }, - { "glVertexAttrib4ubvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttrib4ubvNV) }, - { "glVertexAttrib4uiv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4uiv) }, - { "glVertexAttrib4uivARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4uivARB) }, - { "glVertexAttrib4usv", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttrib4usv) }, - { "glVertexAttrib4usvARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttrib4usvARB) }, - { "glVertexAttribArrayObjectATI", "GL_ATI_vertex_attrib_array_object\0", offsetof(struct opengl_funcs, p_glVertexAttribArrayObjectATI) }, - { "glVertexAttribBinding", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glVertexAttribBinding) }, - { "glVertexAttribDivisor", "GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribDivisor) }, - { "glVertexAttribDivisorARB", "GL_ARB_instanced_arrays\0", offsetof(struct opengl_funcs, p_glVertexAttribDivisorARB) }, - { "glVertexAttribFormat", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glVertexAttribFormat) }, - { "glVertexAttribFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glVertexAttribFormatNV) }, - { "glVertexAttribI1i", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI1i) }, - { "glVertexAttribI1iEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI1iEXT) }, - { "glVertexAttribI1iv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI1iv) }, - { "glVertexAttribI1ivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI1ivEXT) }, - { "glVertexAttribI1ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI1ui) }, - { "glVertexAttribI1uiEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI1uiEXT) }, - { "glVertexAttribI1uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI1uiv) }, - { "glVertexAttribI1uivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI1uivEXT) }, - { "glVertexAttribI2i", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI2i) }, - { "glVertexAttribI2iEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI2iEXT) }, - { "glVertexAttribI2iv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI2iv) }, - { "glVertexAttribI2ivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI2ivEXT) }, - { "glVertexAttribI2ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI2ui) }, - { "glVertexAttribI2uiEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI2uiEXT) }, - { "glVertexAttribI2uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI2uiv) }, - { "glVertexAttribI2uivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI2uivEXT) }, - { "glVertexAttribI3i", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI3i) }, - { "glVertexAttribI3iEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI3iEXT) }, - { "glVertexAttribI3iv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI3iv) }, - { "glVertexAttribI3ivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI3ivEXT) }, - { "glVertexAttribI3ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI3ui) }, - { "glVertexAttribI3uiEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI3uiEXT) }, - { "glVertexAttribI3uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI3uiv) }, - { "glVertexAttribI3uivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI3uivEXT) }, - { "glVertexAttribI4bv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4bv) }, - { "glVertexAttribI4bvEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4bvEXT) }, - { "glVertexAttribI4i", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4i) }, - { "glVertexAttribI4iEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4iEXT) }, - { "glVertexAttribI4iv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4iv) }, - { "glVertexAttribI4ivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4ivEXT) }, - { "glVertexAttribI4sv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4sv) }, - { "glVertexAttribI4svEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4svEXT) }, - { "glVertexAttribI4ubv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4ubv) }, - { "glVertexAttribI4ubvEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4ubvEXT) }, - { "glVertexAttribI4ui", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4ui) }, - { "glVertexAttribI4uiEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4uiEXT) }, - { "glVertexAttribI4uiv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4uiv) }, - { "glVertexAttribI4uivEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4uivEXT) }, - { "glVertexAttribI4usv", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribI4usv) }, - { "glVertexAttribI4usvEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribI4usvEXT) }, - { "glVertexAttribIFormat", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glVertexAttribIFormat) }, - { "glVertexAttribIFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glVertexAttribIFormatNV) }, - { "glVertexAttribIPointer", "GL_VERSION_3_0\0", offsetof(struct opengl_funcs, p_glVertexAttribIPointer) }, - { "glVertexAttribIPointerEXT", "GL_EXT_gpu_shader4\0GL_NV_vertex_program4\0", offsetof(struct opengl_funcs, p_glVertexAttribIPointerEXT) }, - { "glVertexAttribL1d", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL1d) }, - { "glVertexAttribL1dEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1dEXT) }, - { "glVertexAttribL1dv", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL1dv) }, - { "glVertexAttribL1dvEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1dvEXT) }, - { "glVertexAttribL1i64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1i64NV) }, - { "glVertexAttribL1i64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1i64vNV) }, - { "glVertexAttribL1ui64ARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glVertexAttribL1ui64ARB) }, - { "glVertexAttribL1ui64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1ui64NV) }, - { "glVertexAttribL1ui64vARB", "GL_ARB_bindless_texture\0", offsetof(struct opengl_funcs, p_glVertexAttribL1ui64vARB) }, - { "glVertexAttribL1ui64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL1ui64vNV) }, - { "glVertexAttribL2d", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL2d) }, - { "glVertexAttribL2dEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2dEXT) }, - { "glVertexAttribL2dv", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL2dv) }, - { "glVertexAttribL2dvEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2dvEXT) }, - { "glVertexAttribL2i64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2i64NV) }, - { "glVertexAttribL2i64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2i64vNV) }, - { "glVertexAttribL2ui64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2ui64NV) }, - { "glVertexAttribL2ui64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL2ui64vNV) }, - { "glVertexAttribL3d", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL3d) }, - { "glVertexAttribL3dEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3dEXT) }, - { "glVertexAttribL3dv", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL3dv) }, - { "glVertexAttribL3dvEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3dvEXT) }, - { "glVertexAttribL3i64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3i64NV) }, - { "glVertexAttribL3i64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3i64vNV) }, - { "glVertexAttribL3ui64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3ui64NV) }, - { "glVertexAttribL3ui64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL3ui64vNV) }, - { "glVertexAttribL4d", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL4d) }, - { "glVertexAttribL4dEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4dEXT) }, - { "glVertexAttribL4dv", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribL4dv) }, - { "glVertexAttribL4dvEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4dvEXT) }, - { "glVertexAttribL4i64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4i64NV) }, - { "glVertexAttribL4i64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4i64vNV) }, - { "glVertexAttribL4ui64NV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4ui64NV) }, - { "glVertexAttribL4ui64vNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribL4ui64vNV) }, - { "glVertexAttribLFormat", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glVertexAttribLFormat) }, - { "glVertexAttribLFormatNV", "GL_NV_vertex_attrib_integer_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribLFormatNV) }, - { "glVertexAttribLPointer", "GL_ARB_vertex_attrib_64bit\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glVertexAttribLPointer) }, - { "glVertexAttribLPointerEXT", "GL_EXT_vertex_attrib_64bit\0", offsetof(struct opengl_funcs, p_glVertexAttribLPointerEXT) }, - { "glVertexAttribP1ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP1ui) }, - { "glVertexAttribP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP1uiv) }, - { "glVertexAttribP2ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP2ui) }, - { "glVertexAttribP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP2uiv) }, - { "glVertexAttribP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP3ui) }, - { "glVertexAttribP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP3uiv) }, - { "glVertexAttribP4ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP4ui) }, - { "glVertexAttribP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexAttribP4uiv) }, - { "glVertexAttribParameteriAMD", "GL_AMD_interleaved_elements\0", offsetof(struct opengl_funcs, p_glVertexAttribParameteriAMD) }, - { "glVertexAttribPointer", "GL_VERSION_2_0\0", offsetof(struct opengl_funcs, p_glVertexAttribPointer) }, - { "glVertexAttribPointerARB", "GL_ARB_vertex_program\0GL_ARB_vertex_shader\0", offsetof(struct opengl_funcs, p_glVertexAttribPointerARB) }, - { "glVertexAttribPointerNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribPointerNV) }, - { "glVertexAttribs1dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs1dvNV) }, - { "glVertexAttribs1fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs1fvNV) }, - { "glVertexAttribs1hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttribs1hvNV) }, - { "glVertexAttribs1svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs1svNV) }, - { "glVertexAttribs2dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs2dvNV) }, - { "glVertexAttribs2fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs2fvNV) }, - { "glVertexAttribs2hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttribs2hvNV) }, - { "glVertexAttribs2svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs2svNV) }, - { "glVertexAttribs3dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs3dvNV) }, - { "glVertexAttribs3fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs3fvNV) }, - { "glVertexAttribs3hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttribs3hvNV) }, - { "glVertexAttribs3svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs3svNV) }, - { "glVertexAttribs4dvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs4dvNV) }, - { "glVertexAttribs4fvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs4fvNV) }, - { "glVertexAttribs4hvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexAttribs4hvNV) }, - { "glVertexAttribs4svNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs4svNV) }, - { "glVertexAttribs4ubvNV", "GL_NV_vertex_program\0", offsetof(struct opengl_funcs, p_glVertexAttribs4ubvNV) }, - { "glVertexBindingDivisor", "GL_ARB_vertex_attrib_binding\0GL_VERSION_4_3\0", offsetof(struct opengl_funcs, p_glVertexBindingDivisor) }, - { "glVertexBlendARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glVertexBlendARB) }, - { "glVertexBlendEnvfATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexBlendEnvfATI) }, - { "glVertexBlendEnviATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexBlendEnviATI) }, - { "glVertexFormatNV", "GL_NV_vertex_buffer_unified_memory\0", offsetof(struct opengl_funcs, p_glVertexFormatNV) }, - { "glVertexP2ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP2ui) }, - { "glVertexP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP2uiv) }, - { "glVertexP3ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP3ui) }, - { "glVertexP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP3uiv) }, - { "glVertexP4ui", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP4ui) }, - { "glVertexP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev\0GL_VERSION_3_3\0", offsetof(struct opengl_funcs, p_glVertexP4uiv) }, - { "glVertexPointerEXT", "GL_EXT_vertex_array\0", offsetof(struct opengl_funcs, p_glVertexPointerEXT) }, - { "glVertexPointerListIBM", "GL_IBM_vertex_array_lists\0", offsetof(struct opengl_funcs, p_glVertexPointerListIBM) }, - { "glVertexPointervINTEL", "GL_INTEL_parallel_arrays\0", offsetof(struct opengl_funcs, p_glVertexPointervINTEL) }, - { "glVertexStream1dATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1dATI) }, - { "glVertexStream1dvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1dvATI) }, - { "glVertexStream1fATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1fATI) }, - { "glVertexStream1fvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1fvATI) }, - { "glVertexStream1iATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1iATI) }, - { "glVertexStream1ivATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1ivATI) }, - { "glVertexStream1sATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1sATI) }, - { "glVertexStream1svATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream1svATI) }, - { "glVertexStream2dATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2dATI) }, - { "glVertexStream2dvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2dvATI) }, - { "glVertexStream2fATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2fATI) }, - { "glVertexStream2fvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2fvATI) }, - { "glVertexStream2iATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2iATI) }, - { "glVertexStream2ivATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2ivATI) }, - { "glVertexStream2sATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2sATI) }, - { "glVertexStream2svATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream2svATI) }, - { "glVertexStream3dATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3dATI) }, - { "glVertexStream3dvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3dvATI) }, - { "glVertexStream3fATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3fATI) }, - { "glVertexStream3fvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3fvATI) }, - { "glVertexStream3iATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3iATI) }, - { "glVertexStream3ivATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3ivATI) }, - { "glVertexStream3sATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3sATI) }, - { "glVertexStream3svATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream3svATI) }, - { "glVertexStream4dATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4dATI) }, - { "glVertexStream4dvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4dvATI) }, - { "glVertexStream4fATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4fATI) }, - { "glVertexStream4fvATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4fvATI) }, - { "glVertexStream4iATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4iATI) }, - { "glVertexStream4ivATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4ivATI) }, - { "glVertexStream4sATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4sATI) }, - { "glVertexStream4svATI", "GL_ATI_vertex_streams\0", offsetof(struct opengl_funcs, p_glVertexStream4svATI) }, - { "glVertexWeightPointerEXT", "GL_EXT_vertex_weighting\0", offsetof(struct opengl_funcs, p_glVertexWeightPointerEXT) }, - { "glVertexWeightfEXT", "GL_EXT_vertex_weighting\0", offsetof(struct opengl_funcs, p_glVertexWeightfEXT) }, - { "glVertexWeightfvEXT", "GL_EXT_vertex_weighting\0", offsetof(struct opengl_funcs, p_glVertexWeightfvEXT) }, - { "glVertexWeighthNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexWeighthNV) }, - { "glVertexWeighthvNV", "GL_NV_half_float\0", offsetof(struct opengl_funcs, p_glVertexWeighthvNV) }, - { "glVideoCaptureNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glVideoCaptureNV) }, - { "glVideoCaptureStreamParameterdvNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glVideoCaptureStreamParameterdvNV) }, - { "glVideoCaptureStreamParameterfvNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glVideoCaptureStreamParameterfvNV) }, - { "glVideoCaptureStreamParameterivNV", "GL_NV_video_capture\0", offsetof(struct opengl_funcs, p_glVideoCaptureStreamParameterivNV) }, - { "glViewportArrayv", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glViewportArrayv) }, - { "glViewportIndexedf", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glViewportIndexedf) }, - { "glViewportIndexedfv", "GL_ARB_viewport_array\0GL_VERSION_4_1\0", offsetof(struct opengl_funcs, p_glViewportIndexedfv) }, - { "glViewportPositionWScaleNV", "GL_NV_clip_space_w_scaling\0", offsetof(struct opengl_funcs, p_glViewportPositionWScaleNV) }, - { "glViewportSwizzleNV", "GL_NV_viewport_swizzle\0", offsetof(struct opengl_funcs, p_glViewportSwizzleNV) }, - { "glWaitSemaphoreEXT", "GL_EXT_semaphore\0", offsetof(struct opengl_funcs, p_glWaitSemaphoreEXT) }, - { "glWaitSemaphoreui64NVX", "GL_NVX_progress_fence\0", offsetof(struct opengl_funcs, p_glWaitSemaphoreui64NVX) }, - { "glWaitSync", "GL_ARB_sync\0GL_VERSION_3_2\0", offsetof(struct opengl_funcs, p_glWaitSync) }, - { "glWaitVkSemaphoreNV", "GL_NV_draw_vulkan_image\0", offsetof(struct opengl_funcs, p_glWaitVkSemaphoreNV) }, - { "glWeightPathsNV", "GL_NV_path_rendering\0", offsetof(struct opengl_funcs, p_glWeightPathsNV) }, - { "glWeightPointerARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightPointerARB) }, - { "glWeightbvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightbvARB) }, - { "glWeightdvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightdvARB) }, - { "glWeightfvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightfvARB) }, - { "glWeightivARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightivARB) }, - { "glWeightsvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightsvARB) }, - { "glWeightubvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightubvARB) }, - { "glWeightuivARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightuivARB) }, - { "glWeightusvARB", "GL_ARB_vertex_blend\0", offsetof(struct opengl_funcs, p_glWeightusvARB) }, - { "glWindowPos2d", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2d) }, - { "glWindowPos2dARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2dARB) }, - { "glWindowPos2dMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2dMESA) }, - { "glWindowPos2dv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2dv) }, - { "glWindowPos2dvARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2dvARB) }, - { "glWindowPos2dvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2dvMESA) }, - { "glWindowPos2f", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2f) }, - { "glWindowPos2fARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2fARB) }, - { "glWindowPos2fMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2fMESA) }, - { "glWindowPos2fv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2fv) }, - { "glWindowPos2fvARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2fvARB) }, - { "glWindowPos2fvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2fvMESA) }, - { "glWindowPos2i", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2i) }, - { "glWindowPos2iARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2iARB) }, - { "glWindowPos2iMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2iMESA) }, - { "glWindowPos2iv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2iv) }, - { "glWindowPos2ivARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2ivARB) }, - { "glWindowPos2ivMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2ivMESA) }, - { "glWindowPos2s", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2s) }, - { "glWindowPos2sARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2sARB) }, - { "glWindowPos2sMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2sMESA) }, - { "glWindowPos2sv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos2sv) }, - { "glWindowPos2svARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2svARB) }, - { "glWindowPos2svMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos2svMESA) }, - { "glWindowPos3d", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3d) }, - { "glWindowPos3dARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3dARB) }, - { "glWindowPos3dMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3dMESA) }, - { "glWindowPos3dv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3dv) }, - { "glWindowPos3dvARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3dvARB) }, - { "glWindowPos3dvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3dvMESA) }, - { "glWindowPos3f", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3f) }, - { "glWindowPos3fARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3fARB) }, - { "glWindowPos3fMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3fMESA) }, - { "glWindowPos3fv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3fv) }, - { "glWindowPos3fvARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3fvARB) }, - { "glWindowPos3fvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3fvMESA) }, - { "glWindowPos3i", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3i) }, - { "glWindowPos3iARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3iARB) }, - { "glWindowPos3iMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3iMESA) }, - { "glWindowPos3iv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3iv) }, - { "glWindowPos3ivARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3ivARB) }, - { "glWindowPos3ivMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3ivMESA) }, - { "glWindowPos3s", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3s) }, - { "glWindowPos3sARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3sARB) }, - { "glWindowPos3sMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3sMESA) }, - { "glWindowPos3sv", "GL_VERSION_1_4\0", offsetof(struct opengl_funcs, p_glWindowPos3sv) }, - { "glWindowPos3svARB", "GL_ARB_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3svARB) }, - { "glWindowPos3svMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos3svMESA) }, - { "glWindowPos4dMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4dMESA) }, - { "glWindowPos4dvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4dvMESA) }, - { "glWindowPos4fMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4fMESA) }, - { "glWindowPos4fvMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4fvMESA) }, - { "glWindowPos4iMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4iMESA) }, - { "glWindowPos4ivMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4ivMESA) }, - { "glWindowPos4sMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4sMESA) }, - { "glWindowPos4svMESA", "GL_MESA_window_pos\0", offsetof(struct opengl_funcs, p_glWindowPos4svMESA) }, - { "glWindowRectanglesEXT", "GL_EXT_window_rectangles\0", offsetof(struct opengl_funcs, p_glWindowRectanglesEXT) }, - { "glWriteMaskEXT", "GL_EXT_vertex_shader\0", offsetof(struct opengl_funcs, p_glWriteMaskEXT) }, - { "wglAllocateMemoryNV", "WGL_NV_vertex_array_range\0", offsetof(struct opengl_funcs, p_wglAllocateMemoryNV) }, - { "wglBindTexImageARB", "WGL_ARB_render_texture\0", offsetof(struct opengl_funcs, p_wglBindTexImageARB) }, - { "wglChoosePixelFormatARB", "WGL_ARB_pixel_format\0", offsetof(struct opengl_funcs, p_wglChoosePixelFormatARB) }, - { "wglCreateContextAttribsARB", "WGL_ARB_create_context\0", offsetof(struct opengl_funcs, p_wglCreateContextAttribsARB) }, - { "wglCreatePbufferARB", "WGL_ARB_pbuffer\0", offsetof(struct opengl_funcs, p_wglCreatePbufferARB) }, - { "wglDestroyPbufferARB", "WGL_ARB_pbuffer\0", offsetof(struct opengl_funcs, p_wglDestroyPbufferARB) }, - { "wglFreeMemoryNV", "WGL_NV_vertex_array_range\0", offsetof(struct opengl_funcs, p_wglFreeMemoryNV) }, - { "wglGetCurrentReadDCARB", "WGL_ARB_make_current_read\0", offsetof(struct opengl_funcs, p_wglGetCurrentReadDCARB) }, - { "wglGetExtensionsStringARB", "WGL_ARB_extensions_string\0", offsetof(struct opengl_funcs, p_wglGetExtensionsStringARB) }, - { "wglGetExtensionsStringEXT", "WGL_EXT_extensions_string\0", offsetof(struct opengl_funcs, p_wglGetExtensionsStringEXT) }, - { "wglGetPbufferDCARB", "WGL_ARB_pbuffer\0", offsetof(struct opengl_funcs, p_wglGetPbufferDCARB) }, - { "wglGetPixelFormatAttribfvARB", "WGL_ARB_pixel_format\0", offsetof(struct opengl_funcs, p_wglGetPixelFormatAttribfvARB) }, - { "wglGetPixelFormatAttribivARB", "WGL_ARB_pixel_format\0", offsetof(struct opengl_funcs, p_wglGetPixelFormatAttribivARB) }, - { "wglGetSwapIntervalEXT", "WGL_EXT_swap_control\0", offsetof(struct opengl_funcs, p_wglGetSwapIntervalEXT) }, - { "wglMakeContextCurrentARB", "WGL_ARB_make_current_read\0", offsetof(struct opengl_funcs, p_wglMakeContextCurrentARB) }, - { "wglQueryCurrentRendererIntegerWINE", "WGL_WINE_query_renderer\0", offsetof(struct opengl_funcs, p_wglQueryCurrentRendererIntegerWINE) }, - { "wglQueryCurrentRendererStringWINE", "WGL_WINE_query_renderer\0", offsetof(struct opengl_funcs, p_wglQueryCurrentRendererStringWINE) }, - { "wglQueryPbufferARB", "WGL_ARB_pbuffer\0", offsetof(struct opengl_funcs, p_wglQueryPbufferARB) }, - { "wglQueryRendererIntegerWINE", "WGL_WINE_query_renderer\0", offsetof(struct opengl_funcs, p_wglQueryRendererIntegerWINE) }, - { "wglQueryRendererStringWINE", "WGL_WINE_query_renderer\0", offsetof(struct opengl_funcs, p_wglQueryRendererStringWINE) }, - { "wglReleasePbufferDCARB", "WGL_ARB_pbuffer\0", offsetof(struct opengl_funcs, p_wglReleasePbufferDCARB) }, - { "wglReleaseTexImageARB", "WGL_ARB_render_texture\0", offsetof(struct opengl_funcs, p_wglReleaseTexImageARB) }, - { "wglSetPbufferAttribARB", "WGL_ARB_render_texture\0", offsetof(struct opengl_funcs, p_wglSetPbufferAttribARB) }, - { "wglSetPixelFormatWINE", "WGL_WINE_pixel_format_passthrough\0", offsetof(struct opengl_funcs, p_wglSetPixelFormatWINE) }, - { "wglSwapIntervalEXT", "WGL_EXT_swap_control\0", offsetof(struct opengl_funcs, p_wglSwapIntervalEXT) }, -}; diff --git a/dlls/opengl32/unix_thunks.h b/dlls/opengl32/unix_thunks.h index a86626520f4..b2911b7e2a1 100644 --- a/dlls/opengl32/unix_thunks.h +++ b/dlls/opengl32/unix_thunks.h @@ -5,7 +5,6 @@ typedef ULONG PTR32; extern BOOL wrap_wglCopyContext( TEB *teb, HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask ); extern HGLRC wrap_wglCreateContext( TEB *teb, HDC hDc, HGLRC handle ); extern BOOL wrap_wglDeleteContext( TEB *teb, HGLRC oldContext ); -extern PROC wrap_wglGetProcAddress( TEB *teb, LPCSTR lpszProc ); extern BOOL wrap_wglMakeCurrent( TEB *teb, HDC hDc, HGLRC newContext ); extern BOOL wrap_wglShareLists( TEB *teb, HGLRC hrcSrvShare, HGLRC hrcSrvSource ); extern BOOL wrap_wglSwapBuffers( TEB *teb, HDC hdc ); diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 790302b533c..03fa25301eb 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -128,11 +128,8 @@ struct context DWORD tid; /* thread that the context is current in */ UINT64 debug_callback; /* client pointer */ UINT64 debug_user; /* client pointer */ - GLubyte *extensions; /* extension string */ char *wow64_version; /* wow64 GL version override */ struct buffers *buffers; /* wow64 buffers map */ - const char **extension_array; /* array of supported extensions */ - size_t extension_count; /* size of supported extensions */ BOOL use_pinned_memory; /* use GL_AMD_pinned_memory to emulate persistent maps */ /* semi-stub state tracker for wglCopyContext */ @@ -450,25 +447,6 @@ static int *memdup_attribs( const int *attribs ) return copy; } -/* check if the extension is present in the list */ -static BOOL has_extension( const char *list, const char *ext, size_t len ) -{ - while (list) - { - while (*list == ' ') list++; - if (!strncmp( list, ext, len ) && (!list[len] || list[len] == ' ')) return TRUE; - list = strchr( list, ' ' ); - } - return FALSE; -} - -static const char *legacy_extensions[] = -{ - "WGL_EXT_extensions_string", - "WGL_EXT_swap_control", - NULL, -}; - static const char *parse_gl_version( const char *gl_version, int *major, int *minor ) { const char *ptr = gl_version; @@ -639,62 +617,6 @@ static char *query_opengl_option( const char *name ) return str; } -static int string_array_cmp( const void *p1, const void *p2 ) -{ - const char *const *s1 = p1; - const char *const *s2 = p2; - return strcmp( *s1, *s2 ); -} - -/* Check if a GL extension is supported */ -static BOOL is_extension_supported( struct context *ctx, const char *extension ) -{ - return bsearch( &extension, ctx->extension_array, ctx->extension_count, - sizeof(ctx->extension_array[0]), string_array_cmp ) != NULL; -} - -/* Check if any GL extension from the list is supported */ -static BOOL is_any_extension_supported( struct context *ctx, const char *extension ) -{ - struct opengl_client_context *client = opengl_client_context_from_client( ctx->base.client_context ); - size_t len; - - /* We use the GetProcAddress function from the display driver to retrieve function pointers - * for OpenGL and WGL extensions. In case of winex11.drv the OpenGL extension lookup is done - * using glXGetProcAddress. This function is quite unreliable in the sense that its specs don't - * require the function to return NULL when an extension isn't found. For this reason we check - * if the OpenGL extension required for the function we are looking up is supported. */ - - while ((len = strlen( extension ))) - { - TRACE( "Checking for extension '%s'\n", extension ); - - /* Check if the extension is part of the GL extension string to see if it is supported. */ - if (is_extension_supported( ctx, extension )) return TRUE; - - /* In general an OpenGL function starts as an ARB/EXT extension and at some stage - * it becomes part of the core OpenGL library and can be reached without the ARB/EXT - * suffix as well. In the extension table, these functions contain GL_VERSION_major_minor. - * Check if we are searching for a core GL function */ - if (!strncmp( extension, "GL_VERSION_", 11 )) - { - int major = extension[11] - '0'; /* Move past 'GL_VERSION_' */ - int minor = extension[13] - '0'; - - /* Compare the major/minor version numbers of the native OpenGL library and what is required by the function. - * The gl_version string is guaranteed to have at least a major/minor and sometimes it has a release number as well. */ - if (client->major_version > major || (client->major_version == major && client->minor_version >= minor)) return TRUE; - - WARN( "The function requires OpenGL version '%d.%d' while your drivers only provide '%d.%d'\n", - major, minor, client->major_version, client->minor_version ); - } - - extension += len + 1; - } - - return FALSE; -} - static void set_gl_error( TEB *teb, GLenum error ) { const struct opengl_funcs *funcs = teb->glTable; @@ -812,60 +734,6 @@ const GLubyte *wrap_glGetString( TEB *teb, GLenum name ) return ret; } -static int registry_entry_cmp( const void *a, const void *b ) -{ - const struct registry_entry *entry_a = a, *entry_b = b; - return strcmp( entry_a->name, entry_b->name ); -} - -PROC wrap_wglGetProcAddress( TEB *teb, LPCSTR name ) -{ - const struct registry_entry entry = {.name = name}, *found; - struct opengl_funcs *funcs = teb->glTable; - const void **func_ptr; - struct context *ctx; - - /* Without an active context opengl32 doesn't know to what - * driver it has to dispatch wglGetProcAddress. - */ - if (!(ctx = get_current_context( teb, NULL, NULL ))) - { - WARN( "No active WGL context found\n" ); - return (void *)-1; - } - - if (!(found = bsearch( &entry, extension_registry, extension_registry_size, sizeof(entry), registry_entry_cmp ))) - { - WARN( "Function %s unknown\n", name ); - return (void *)-1; - } - - if (strncmp( name, "wgl", 3) && !is_any_extension_supported( ctx, found->extension )) - { - WARN( "Extension %s required for %s not supported\n", found->extension, name ); - return (void *)-1; - } - - func_ptr = (const void **)((char *)funcs + found->offset); - if (!*func_ptr) - { - void *driver_func = funcs->p_wglGetProcAddress( name ); - - if (driver_func == NULL) - { - WARN( "Function %s not supported by driver\n", name ); - return (void *)-1; - } - - *func_ptr = driver_func; - } - - /* Return the index into the extension registry instead of a useless - * function pointer, PE side will returns its own function pointers. - */ - return (void *)(UINT_PTR)(found - extension_registry); -} - BOOL wrap_wglCopyContext( TEB *teb, HGLRC client_src, HGLRC client_dst, UINT mask ) { struct context *src, *dst; @@ -1147,12 +1015,8 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD struct opengl_client_context *client = opengl_client_context_from_client( ctx->base.client_context ); enum opengl_extension parsed_extensions[GL_EXTENSION_COUNT] = {GL_EXTENSION_COUNT}; DWORD tid = HandleToULong(teb->ClientId.UniqueThread); - size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; - const char *version, *rest = "", **extensions; + const char *version, *compat, *rest = ""; USHORT *ptr; - int i, j; - - static const char *disabled, *enabled; ctx->tid = tid; teb->glReserved1[0] = draw_hdc; @@ -1171,16 +1035,10 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD funcs->p_init_extensions( ctx->base.extensions ); - if (funcs->p_glImportMemoryWin32HandleEXT) size++; - if (funcs->p_glImportSemaphoreWin32HandleEXT) size++; - if (client->major_version >= 3) { GLint extensions_count; funcs->p_glGetIntegerv( GL_NUM_EXTENSIONS, &extensions_count ); - size += extensions_count; - if (!(extensions = malloc( size * sizeof(*extensions) ))) return; - for (i = 0; i < extensions_count; i++) extensions[count++] = (const char *)funcs->p_glGetStringi( GL_EXTENSIONS, i ); for (GLint i = 0; i < extensions_count; i++) { @@ -1189,32 +1047,9 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD if (ext != GL_EXTENSION_COUNT) ctx->base.extensions[ext] = TRUE; } } - else + else if ((compat = (const char *)funcs->p_glGetString( GL_EXTENSIONS ))) { - const char *str = (const char *)funcs->p_glGetString( GL_EXTENSIONS ); - size_t len = strlen( str ); - const char *p; - char *ext; - if (!str) str = ""; - if ((len = strlen( str )) && str[len - 1] == ' ') len--; - if (*str) size++; - for (p = str; p < str + len; p++) if (*p == ' ') size++; - if (!(extensions = malloc( size * sizeof(*extensions) + len + 1 ))) return; - ext = (char *)&extensions[size]; - memcpy( ext, str, len ); - ext[len] = 0; - if (*ext) extensions[count++] = ext; - while (*ext) - { - if (*ext == ' ') - { - *ext = 0; - extensions[count++] = ext + 1; - } - ext++; - } - - if (str) parse_extensions( parsed_extensions, str ); + parse_extensions( parsed_extensions, compat ); for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) ctx->base.extensions[*ext] = TRUE; } @@ -1227,36 +1062,8 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD /* keep any other extension that has been enabled on the PE side directly */ } - if (!disabled && !(disabled = query_opengl_option( "DisabledExtensions" ))) disabled = ""; - if (!enabled && !(enabled = query_opengl_option( "EnabledExtensions" ))) enabled = ""; - if (*enabled || *disabled) - { - for (i = 0, j = 0; i < count; i++) - { - size_t len = strlen( extensions[i] ); - if (!has_extension( disabled, extensions[i], len ) && (!*enabled || has_extension( enabled, extensions[i], len ))) - extensions[j++] = extensions[i]; - else - TRACE( "-- %s (disabled by config)\n", extensions[i] ); - } - count = j; - } - - if (ctx->base.extensions[GL_EXT_memory_object_fd]) - { - client->extensions[GL_EXT_memory_object_win32] = 1; - extensions[count++] = "GL_EXT_memory_object_win32"; - } - if (ctx->base.extensions[GL_EXT_semaphore_fd]) - { - client->extensions[GL_EXT_semaphore_win32] = 1; - extensions[count++] = "GL_EXT_semaphore_win32"; - } - - for (i = 0; legacy_extensions[i]; i++) extensions[count++] = legacy_extensions[i]; - qsort( extensions, count, sizeof(*extensions), string_array_cmp ); - ctx->extension_array = extensions; - ctx->extension_count = count; + if (ctx->base.extensions[GL_EXT_memory_object_fd]) client->extensions[GL_EXT_memory_object_win32] = 1; + if (ctx->base.extensions[GL_EXT_semaphore_fd]) client->extensions[GL_EXT_semaphore_win32] = 1; if (is_win64 && ctx->buffers && !initialize_vk_device( teb, ctx ) && !(ctx->use_pinned_memory = ctx->base.extensions[GL_AMD_pinned_memory])) @@ -1268,22 +1075,11 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD client->minor_version = 3; asprintf( &ctx->wow64_version, "4.3%s", rest ); } - for (i = 0, j = 0; i < count; i++) - { - const char *ext = extensions[i]; - if (!strcmp( ext, "GL_ARB_buffer_storage" ) || !strcmp( ext, "GL_ARB_buffer_storage" )) - { - FIXME( "Disabling %s extension on wow64\n", ext ); - continue; - } - extensions[j++] = ext; - } if (client->extensions[GL_ARB_buffer_storage]) { FIXME( "Disabling has_GL_ARB_buffer_storage extension on wow64\n" ); client->extensions[GL_ARB_buffer_storage] = FALSE; } - ctx->extension_count = j; } dump_extensions( "Client", client->extensions ); @@ -1331,8 +1127,6 @@ BOOL wrap_wglMakeCurrent( TEB *teb, HDC hdc, HGLRC client_context ) static void free_context( struct context *ctx ) { free( ctx->wow64_version ); - free( ctx->extension_array ); - free( ctx->extensions ); free( ctx->attribs ); free( ctx ); } diff --git a/dlls/opengl32/unixlib.h b/dlls/opengl32/unixlib.h index 09340fce5d6..2d5290b1856 100644 --- a/dlls/opengl32/unixlib.h +++ b/dlls/opengl32/unixlib.h @@ -14,7 +14,7 @@ #include "wingdi.h" #include "ntuser.h" -#include "wine/wgl.h" +#include "wine/opengl_driver.h" #include "wine/unixlib.h" struct process_attach_params @@ -52,13 +52,6 @@ struct wglGetPixelFormat_params int ret; }; -struct wglGetProcAddress_params -{ - TEB *teb; - LPCSTR lpszProc; - PROC ret; -}; - struct wglMakeCurrent_params { TEB *teb; @@ -25846,7 +25839,6 @@ enum unix_funcs unix_wglCreateContext, unix_wglDeleteContext, unix_wglGetPixelFormat, - unix_wglGetProcAddress, unix_wglMakeCurrent, unix_wglSetPixelFormat, unix_wglShareLists, diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c index 3112e5fae1c..98a9db98c56 100644 --- a/dlls/opengl32/wgl.c +++ b/dlls/opengl32/wgl.c @@ -316,6 +316,11 @@ static struct handle_entry *alloc_client_context(void) return NULL; } + context->base.extensions[WGL_ARB_extensions_string] = TRUE; + context->base.extensions[WGL_ARB_multisample] = TRUE; + context->base.extensions[WGL_ARB_pixel_format] = TRUE; + context->base.extensions[WGL_EXT_extensions_string] = TRUE; + return ptr; } @@ -1326,17 +1331,13 @@ int WINAPI wglGetLayerPaletteEntries( HDC hdc, int plane, int start, int count, */ PROC WINAPI wglGetProcAddress( LPCSTR name ) { - struct wglGetProcAddress_params args = { .teb = NtCurrentTeb(), .lpszProc = name }; struct context *ctx; const void *proc; - NTSTATUS status; if (!name) return NULL; if (!(ctx = context_from_handle( NtCurrentTeb()->glCurrentRC ))) return NULL; - if ((status = UNIX_CALL( wglGetProcAddress, &args ))) - WARN( "wglGetProcAddress %s returned %#lx\n", debugstr_a(name), status ); - if (args.ret == (void *)-1) return NULL; + if (!(proc = get_proc_address( name, &ctx->base ))) return NULL; if (!strncmp( name, "wglGetExtensionsString", 22 )) { @@ -1345,7 +1346,6 @@ PROC WINAPI wglGetProcAddress( LPCSTR name ) LeaveCriticalSection( &wgl_cs ); } - proc = extension_procs[(UINT_PTR)args.ret]; TRACE( "returning %s -> %p\n", name, proc ); return proc; } diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index 7bbca1a53fa..01257928073 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -1720,15 +1720,6 @@ static BOOL win32u_wglSetPixelFormatWINE( HDC hdc, int format ) return TRUE; } -static PROC win32u_wglGetProcAddress( const char *name ) -{ - PROC ret; - if (!strncmp( name, "wgl", 3 )) return NULL; - ret = driver_funcs->p_get_proc_address( name ); - TRACE( "%s -> %p\n", debugstr_a(name), ret ); - return ret; -} - static void win32u_init_extensions( BOOLEAN extensions[GL_EXTENSION_COUNT] ) { memcpy( extensions, global_extensions, sizeof(global_extensions) ); @@ -2685,7 +2676,6 @@ static void display_funcs_init(void) ALL_GL_EXT_FUNCS #undef USE_GL_FUNC - display_funcs.p_wglGetProcAddress = win32u_wglGetProcAddress; display_funcs.p_init_extensions = win32u_init_extensions; display_funcs.p_get_pixel_formats = win32u_get_pixel_formats; @@ -2705,25 +2695,12 @@ static void display_funcs_init(void) display_funcs.p_context_destroy = win32u_context_destroy; display_funcs.p_context_reset = win32u_context_reset; - global_extensions[WGL_ARB_multisample] = 1; - - global_extensions[WGL_ARB_pixel_format] = 1; - display_funcs.p_wglChoosePixelFormatARB = (void *)1; /* never called */ - display_funcs.p_wglGetPixelFormatAttribfvARB = (void *)1; /* never called */ - display_funcs.p_wglGetPixelFormatAttribivARB = (void *)1; /* never called */ - if (display_egl.has_EGL_EXT_pixel_format_float) { global_extensions[WGL_ARB_pixel_format_float] = 1; global_extensions[WGL_ATI_pixel_format_float] = 1; } - global_extensions[WGL_ARB_extensions_string] = 1; - display_funcs.p_wglGetExtensionsStringARB = (void *)1 /* never called */; - - global_extensions[WGL_EXT_extensions_string] = 1; - display_funcs.p_wglGetExtensionsStringEXT = (void *)1 /* never called */; - /* In WineD3D we need the ability to set the pixel format more than once (e.g. after a device reset). * The default wglSetPixelFormat doesn't allow this, so add our own which allows it. */ @@ -2736,7 +2713,6 @@ static void display_funcs_init(void) display_funcs.p_wglCreateContextAttribsARB = (void *)1; /* never called */ global_extensions[WGL_ARB_make_current_read] = 1; - display_funcs.p_wglGetCurrentReadDCARB = (void *)1; /* never called */ display_funcs.p_wglMakeContextCurrentARB = win32u_wglMakeContextCurrentARB; global_extensions[WGL_ARB_pbuffer] = 1; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019
participants (2)
-
Rémi Bernon -
Rémi Bernon (@rbernon)